@customize-agent/server 4.2.6 → 4.2.7
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 +24 -24
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/208.js +2 -2
- package/.next/server/chunks/2405.js +10 -10
- package/.next/server/chunks/2484.js +1 -1
- package/.next/server/chunks/4680.js +2 -2
- package/.next/server/chunks/5284.js +8 -8
- package/.next/server/chunks/5840.js +1 -1
- package/.next/server/chunks/8204.js +1 -1
- 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/api/template-references.js +1 -1
- package/.next/server/pages/asset-library.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages/template-references.html +1 -1
- package/.next/server/pages-manifest.json +27 -27
- package/.next/static/aasdR0_3r-G2QH5k8ApZq/_buildManifest.js +1 -0
- package/.next/static/chunks/{224-790cf01fcf6820ee.js → 224-0415408fff1d1c8b.js} +1 -1
- package/.next/static/chunks/260-580088826d643423.js +1 -0
- package/.next/static/chunks/{289-42781fb699646699.js → 289-fc1b25371e004552.js} +1 -1
- package/.next/static/chunks/{592-c667dfd191c1ea0c.js → 564-30bfcb28e1d2c309.js} +3 -3
- package/.next/static/chunks/788-dca0d550ad6bd8b2.js +1 -0
- package/.next/static/chunks/pages/{_app-55467a8f660aa065.js → _app-064a0ba1b894144e.js} +1 -1
- package/.next/static/chunks/pages/documents-676b6c8d14dd5fac.js +1 -0
- package/.next/static/chunks/pages/knowledge/files-45b40149a6f4a9d5.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-5b1b4d3804752f8b.js +1 -0
- package/.next/static/chunks/pages/prompt-edc2dfea09aaedc1.js +1 -0
- package/.next/static/chunks/pages/system/logs-ee67e2c93147dfc3.js +1 -0
- package/.next/static/chunks/pages/template-references-e0ab1466f28cc4fc.js +1 -0
- package/.next/static/css/71d287d5aa97349c.css +1 -0
- package/messages/en-US.json +0 -4
- package/messages/zh-CN.json +0 -4
- package/package.json +1 -1
- package/.next/static/XgGKtqmwpahXYicc2ieXW/_buildManifest.js +0 -1
- package/.next/static/chunks/260-244c94eacd903620.js +0 -1
- package/.next/static/chunks/788-e98701da4d6ca319.js +0 -1
- package/.next/static/chunks/pages/documents-f9880371363a534c.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-3ba329d8e6335929.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-558987c599dc4cd5.js +0 -1
- package/.next/static/chunks/pages/prompt-839287c514595765.js +0 -1
- package/.next/static/chunks/pages/system/logs-2e849bcdf371d791.js +0 -1
- package/.next/static/chunks/pages/template-references-68b9bd99fc910922.js +0 -1
- package/.next/static/css/10c378422f47671a.css +0 -1
- /package/.next/static/{XgGKtqmwpahXYicc2ieXW → aasdR0_3r-G2QH5k8ApZq}/_ssgManifest.js +0 -0
|
@@ -104,7 +104,7 @@ ${t}
|
|
|
104
104
|
0 -6px 16px 0 ${d(.08)},
|
|
105
105
|
0 -3px 6px -4px ${d(.12)},
|
|
106
106
|
0 -9px 28px 8px ${d(.05)}
|
|
107
|
-
`,boxShadowTabsOverflowLeft:`inset 10px 0 8px -8px ${d(.08)}`,boxShadowTabsOverflowRight:`inset -10px 0 8px -8px ${d(.08)}`,boxShadowTabsOverflowTop:`inset 0 10px 8px -8px ${d(.08)}`,boxShadowTabsOverflowBottom:`inset 0 -10px 8px -8px ${d(.08)}`,...i}}},44539:(e,t,r)=>{"use strict";function n(e){return(e+8)/e}function o(e){let t=Array.from({length:10}).map((t,r)=>{let n=e*Math.E**((r-1)/5);return 2*Math.floor((r>1?Math.floor(n):Math.ceil(n))/2)});return t[1]=e,t.map(e=>({size:e,lineHeight:n(e)}))}r.d(t,{A:()=>o,k:()=>n})},44650:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=r(55289),o=r(61757);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},45042:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(97109),o=r(53314),a=r(88483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}let l=n.forwardRef((e,t)=>n.createElement(a.A,i({},e,{ref:t,icon:o.A})))},45384:(e,t,r)=>{"use strict";var n=r(3396).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=n(r(25325)).default},46254:(e,t,r)=>{"use strict";r.d(t,{cM:()=>s,bK:()=>f,UA:()=>C,uy:()=>c});var n=r(47252);let o=[{index:7,amount:15},{index:6,amount:25},{index:5,amount:30},{index:5,amount:45},{index:5,amount:65},{index:5,amount:85},{index:4,amount:90},{index:3,amount:95},{index:2,amount:97},{index:1,amount:98}];function a(e,t,r){let n;return(n=Math.round(e.h)>=60&&240>=Math.round(e.h)?r?Math.round(e.h)-2*t:Math.round(e.h)+2*t:r?Math.round(e.h)+2*t:Math.round(e.h)-2*t)<0?n+=360:n>=360&&(n-=360),n}function i(e,t,r){let n;return 0===e.h&&0===e.s?e.s:((n=r?e.s-.16*t:4===t?e.s+.16:e.s+.05*t)>1&&(n=1),r&&5===t&&n>.1&&(n=.1),n<.06&&(n=.06),Math.round(100*n)/100)}function l(e,t,r){return Math.round(100*Math.max(0,Math.min(1,r?e.v+.05*t:e.v-.15*t)))/100}function s(e,t={}){let r=[],c=new n.Y(e),d=c.toHsv();for(let e=5;e>0;e-=1){let t=new n.Y({h:a(d,e,!0),s:i(d,e,!0),v:l(d,e,!0)});r.push(t)}r.push(c);for(let e=1;e<=4;e+=1){let t=new n.Y({h:a(d,e),s:i(d,e),v:l(d,e)});r.push(t)}return"dark"===t.theme?o.map(({index:e,amount:o})=>new n.Y(t.backgroundColor||"#141414").mix(r[e],o).toHexString()):r.map(e=>e.toHexString())}let c={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},d=["#fff1f0","#ffccc7","#ffa39e","#ff7875","#ff4d4f","#f5222d","#cf1322","#a8071a","#820014","#5c0011"];d.primary=d[5];let u=["#fff2e8","#ffd8bf","#ffbb96","#ff9c6e","#ff7a45","#fa541c","#d4380d","#ad2102","#871400","#610b00"];u.primary=u[5];let p=["#fff7e6","#ffe7ba","#ffd591","#ffc069","#ffa940","#fa8c16","#d46b08","#ad4e00","#873800","#612500"];p.primary=p[5];let f=["#fffbe6","#fff1b8","#ffe58f","#ffd666","#ffc53d","#faad14","#d48806","#ad6800","#874d00","#613400"];f.primary=f[5];let m=["#feffe6","#ffffb8","#fffb8f","#fff566","#ffec3d","#fadb14","#d4b106","#ad8b00","#876800","#614700"];m.primary=m[5];let h=["#fcffe6","#f4ffb8","#eaff8f","#d3f261","#bae637","#a0d911","#7cb305","#5b8c00","#3f6600","#254000"];h.primary=h[5];let g=["#f6ffed","#d9f7be","#b7eb8f","#95de64","#73d13d","#52c41a","#389e0d","#237804","#135200","#092b00"];g.primary=g[5];let b=["#e6fffb","#b5f5ec","#87e8de","#5cdbd3","#36cfc9","#13c2c2","#08979c","#006d75","#00474f","#002329"];b.primary=b[5];let y=["#e6f4ff","#bae0ff","#91caff","#69b1ff","#4096ff","#1677ff","#0958d9","#003eb3","#002c8c","#001d66"];y.primary=y[5];let v=["#f0f5ff","#d6e4ff","#adc6ff","#85a5ff","#597ef7","#2f54eb","#1d39c4","#10239e","#061178","#030852"];v.primary=v[5];let $=["#f9f0ff","#efdbff","#d3adf7","#b37feb","#9254de","#722ed1","#531dab","#391085","#22075e","#120338"];$.primary=$[5];let x=["#fff0f6","#ffd6e7","#ffadd2","#ff85c0","#f759ab","#eb2f96","#c41d7f","#9e1068","#780650","#520339"];x.primary=x[5];let w=["#a6a6a6","#999999","#8c8c8c","#808080","#737373","#666666","#404040","#1a1a1a","#000000","#000000"];w.primary=w[5];let C={red:d,volcano:u,orange:p,gold:f,yellow:m,lime:h,green:g,cyan:b,blue:y,geekblue:v,purple:$,magenta:x,grey:w},E=["#2a1215","#431418","#58181c","#791a1f","#a61d24","#d32029","#e84749","#f37370","#f89f9a","#fac8c3"];E.primary=E[5];let S=["#2b1611","#441d12","#592716","#7c3118","#aa3e19","#d84a1b","#e87040","#f3956a","#f8b692","#fad4bc"];S.primary=S[5];let k=["#2b1d11","#442a11","#593815","#7c4a15","#aa6215","#d87a16","#e89a3c","#f3b765","#f8cf8d","#fae3b7"];k.primary=k[5];let A=["#2b2111","#443111","#594214","#7c5914","#aa7714","#d89614","#e8b339","#f3cc62","#f8df8b","#faedb5"];A.primary=A[5];let P=["#2b2611","#443b11","#595014","#7c6e14","#aa9514","#d8bd14","#e8d639","#f3ea62","#f8f48b","#fafab5"];P.primary=P[5];let R=["#1f2611","#2e3c10","#3e4f13","#536d13","#6f9412","#8bbb11","#a9d134","#c9e75d","#e4f88b","#f0fab5"];R.primary=R[5];let M=["#162312","#1d3712","#274916","#306317","#3c8618","#49aa19","#6abe39","#8fd460","#b2e58b","#d5f2bb"];M.primary=M[5];let T=["#112123","#113536","#144848","#146262","#138585","#13a8a8","#33bcb7","#58d1c9","#84e2d8","#b2f1e8"];T.primary=T[5];let O=["#111a2c","#112545","#15325b","#15417e","#1554ad","#1668dc","#3c89e8","#65a9f3","#8dc5f8","#b7dcfa"];O.primary=O[5];let F=["#131629","#161d40","#1c2755","#203175","#263ea0","#2b4acb","#5273e0","#7f9ef3","#a8c1f8","#d2e0fa"];F.primary=F[5];let N=["#1a1325","#24163a","#301c4d","#3e2069","#51258f","#642ab5","#854eca","#ab7ae0","#cda8f0","#ebd7fa"];N.primary=N[5];let j=["#291321","#40162f","#551c3b","#75204f","#a02669","#cb2b83","#e0529c","#f37fb7","#f8a8cc","#fad2e3"];j.primary=j[5];let I=["#151515","#1f1f1f","#2d2d2d","#393939","#494949","#5a5a5a","#6a6a6a","#7b7b7b","#888888","#969696"];I.primary=I[5]},46430:()=>{},47085:(e,t,r)=>{"use strict";r.d(t,{PE:()=>eJ,x_:()=>eX,Vr:()=>eG});var n=r(65321),o=r(97109),a=r(3454),i=r.n(a),l=r(86109),s=r(49759),c=r(48921),d=r(17807),u=r(27855),p=r(30945),f=r(80789),m=r.n(f),h=r(15561),g=r(18625),b=r(9311),y=r(44444),v=r(7709),$=r(12754),x=r(39261),w=r(94696),C=r(10740),E=r(46254),S=r(78012),k=r(47802),A=r(47252);let P=(e,t)=>new A.Y(e).setA(t).toRgbString(),R=(e,t)=>new A.Y(e).lighten(t).toHexString(),M=e=>{let t=(0,E.cM)(e,{theme:"dark"});return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[6],6:t[5],7:t[4],8:t[6],9:t[5],10:t[4]}},T=(e,t,r)=>{let n=e||"#000",o=t||"#fff";return{colorBgBase:n,colorTextBase:o,colorShadow:r||"rgba(255, 255, 255, 0.2)",colorText:P(o,.85),colorTextSecondary:P(o,.65),colorTextTertiary:P(o,.45),colorTextQuaternary:P(o,.25),colorFill:P(o,.18),colorFillSecondary:P(o,.12),colorFillTertiary:P(o,.08),colorFillQuaternary:P(o,.04),colorBgSolid:P(o,.95),colorBgSolidHover:P(o,1),colorBgSolidActive:P(o,.9),colorBgElevated:R(n,12),colorBgContainer:R(n,8),colorBgLayout:R(n,0),colorBgSpotlight:R(n,26),colorBgBlur:P(o,.04),colorBorder:R(n,26),colorBorderDisabled:R(n,26),colorBorderSecondary:R(n,19)}},O={defaultSeed:$.sb.token,useToken:function(){let[e,t,r,n]=(0,v.Ay)();return{theme:e,token:t,hashId:r,cssVar:n}},defaultAlgorithm:x.A,darkAlgorithm:(e,t)=>{let r=Object.keys(b.r).map(t=>{let r=(0,E.cM)(e[t],{theme:"dark"});return Array.from({length:10},()=>1).reduce((e,n,o)=>(e[`${t}-${o+1}`]=r[o],e[`${t}${o+1}`]=r[o],e),{})}).reduce((e,t)=>e={...e,...t},{}),n=t??(0,x.A)(e),o=(0,k.A)(e,{generateColorPalettes:M,generateNeutralColorPalettes:T}),a=S.s.reduce((t,r)=>{let n=e[r];if(n){let e=M(n);t[`${r}Hover`]=e[7],t[`${r}Active`]=e[5]}return t},{});return{...n,...r,...o,...a,colorPrimaryBg:o.colorPrimaryBorder,colorPrimaryBgHover:o.colorPrimaryBorderHover}},compactAlgorithm:(e,t)=>{let r=t??(0,x.A)(e),n=r.fontSizeSM,o=r.controlHeight-4;return{...r,...function(e){let{sizeUnit:t,sizeStep:r}=e,n=r-2;return{sizeXXL:t*(n+10),sizeXL:t*(n+6),sizeLG:t*(n+2),sizeMD:t*(n+2),sizeMS:t*(n+1),size:t*n,sizeSM:t*n,sizeXS:t*(n-1),sizeXXS:t*(n-1)}}(t??e),...(0,C.A)(n),controlHeight:o,...(0,w.A)({...r,controlHeight:o})}},getDesignToken:e=>{let t=e?.algorithm?(0,h.an)(e.algorithm):g.A,r={...b.A,...e?.token};return(0,h.lO)(r,{override:e?.token},t,y.A)},defaultConfig:$.sb,_internalContext:$.vG};var F=r(34986),N=r(43220),j=r.n(N),I=r(1278);let z=(0,I.A)("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var D=r(87824);let B=(0,I.A)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),L=(0,I.A)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),_=(0,I.A)("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]),H=(0,I.A)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),W=(0,I.A)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),q=(0,I.A)("Files",[["path",{d:"M20 7h-3a2 2 0 0 1-2-2V2",key:"x099mo"}],["path",{d:"M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z",key:"18t6ie"}],["path",{d:"M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8",key:"1nja0z"}]]),V=(0,I.A)("LibraryBig",[["rect",{width:"8",height:"18",x:"3",y:"3",rx:"1",key:"oynpb5"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z",key:"1qboyk"}]]),U=(0,I.A)("Bug",[["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}],["path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6",key:"xs1cw7"}],["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4",key:"k3fwyw"}]]),X=(0,I.A)("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);var K=r(38300),G=r(39219),Q=r(22931);let Y=(0,I.A)("PanelLeftOpen",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),J=(0,I.A)("PanelLeftClose",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var Z=r(14932);let ee=[{href:"/overview",icon:z,labelKey:"nav.overview"},{icon:D.A,labelKey:"nav.knowledge",children:[{href:"/knowledge/manage",icon:B,labelKey:"nav.knowledgeManage"},{href:"/knowledge/files",icon:L,labelKey:"nav.fileManagement"}]},{href:"/models",icon:_,labelKey:"nav.models"},{href:"/prompt",icon:H,labelKey:"nav.promptManagement"},{href:"/document-roles",icon:W,labelKey:"nav.documentRoles"},{href:"/documents",icon:q,labelKey:"nav.documents"},{href:"/template-references",icon:V,labelKey:"nav.templateReferences"},{href:"/asset-library",icon:B,labelKey:"nav.assetLibrary"},{href:"/system/logs",icon:U,labelKey:"nav.systemLogs"},{href:"/guide",icon:X,labelKey:"nav.guide"},{href:"/settings",icon:W,labelKey:"nav.settings"}];function et(){let e=(0,F.usePathname)(),t=eG(),r=(0,o.useMemo)(()=>{let t={};for(let n of ee){var r;(null==(r=n.children)?void 0:r.some(t=>e===t.href||e.startsWith(t.href+"/")))&&(t[n.labelKey]=!0)}return t},[e]),[a,i]=(0,o.useState)({}),[l,s]=(0,o.useState)(!1);return(0,o.useEffect)(()=>(document.documentElement.classList.toggle("sidebarCollapsed",l),()=>document.documentElement.classList.remove("sidebarCollapsed")),[l]),(0,n.jsxs)("aside",{className:"sidebar".concat(l?" sidebarCollapsedSelf":""),children:[(0,n.jsx)(j(),{href:"/overview",prefetch:!1,children:(0,n.jsxs)("div",{className:"sidebarLogo",children:[(0,n.jsx)("div",{className:"w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0",children:(0,n.jsx)(K.A,{className:"text-white dark:text-black",size:20})}),(0,n.jsx)("div",{className:"sidebarLogoTitle",children:(0,n.jsx)("span",{className:"logoGradient",children:"Customize Agent"})})]})}),(0,n.jsx)("nav",{className:"sidebarNav mt-2",children:ee.map(o=>{if(o.children){var c,d;let u,p=null!=(d=null!=(c=a[o.labelKey])?c:r[o.labelKey])&&d,f=null==(u=o.children)?void 0:u.some(t=>e===t.href||e.startsWith(t.href+"/"));return(0,n.jsxs)("div",{children:[(0,n.jsx)(Z.A,{title:l?t(o.labelKey):"",placement:"right",children:(0,n.jsxs)("div",{className:"sidebarItem sidebarParent".concat(f&&l?" sidebarItemActive":""),onClick:()=>{if(l)s(!1),i(e=>({...e,[o.labelKey]:!0}));else{var e;e=o.labelKey,i(t=>({...t,[e]:!t[e]}))}},children:[(0,n.jsx)(o.icon,{size:18}),(0,n.jsx)("span",{className:"sidebarLabel",children:t(o.labelKey)}),(0,n.jsx)("span",{className:"sidebarChevron",children:p?(0,n.jsx)(G.A,{size:14}):(0,n.jsx)(Q.A,{size:14})})]})}),p&&!l&&(0,n.jsx)("div",{className:"sidebarSubmenu animateFadeIn",children:o.children.map(r=>{let o=e===r.href||e.startsWith(r.href+"/");return(0,n.jsx)(j(),{href:r.href,prefetch:!1,children:(0,n.jsxs)("div",{className:"sidebarItem sidebarSubItem".concat(o?" sidebarItemActive":""),children:[(0,n.jsx)(r.icon,{size:16}),(0,n.jsx)("span",{className:"sidebarLabel",children:t(r.labelKey)})]})},r.href)})})]},o.labelKey)}let u=e===o.href||e.startsWith(o.href+"/");return(0,n.jsx)(Z.A,{title:l?t(o.labelKey):"",placement:"right",children:(0,n.jsx)(j(),{href:o.href,prefetch:!1,children:(0,n.jsxs)("div",{className:"sidebarItem".concat(u?" sidebarItemActive":""),children:[(0,n.jsx)(o.icon,{size:18}),(0,n.jsx)("span",{className:"sidebarLabel",children:t(o.labelKey)})]})})},o.href)})}),(0,n.jsx)("div",{className:"sidebarCollapseWrapper",children:(0,n.jsx)("button",{className:"sidebarCollapseBtn",onClick:()=>s(e=>!e),"aria-label":l?"展开侧边栏":"收起侧边栏",children:l?(0,n.jsx)(Y,{size:16}):(0,n.jsx)(J,{size:16})})})]})}var er=r(56733),en=r(73340),eo=r(64629),ea=r(84742),ei=r(58740),el=r(38762),es=r(35292),ec=r(11702),ed=r(99605),eu=r(67189),ep=r(3638),ef=r(95347),em=r(92162),eh=r(26047),eg=r(52690),eb=r(74567);let ey=e=>{let t,{prefixCls:r,value:n,current:a,offset:i=0}=e;return i&&(t={position:"absolute",top:`${i}00%`,left:0}),o.createElement("span",{style:t,className:(0,ep.$)(`${r}-only-unit`,{current:a})},n)},ev=e=>{let t,r,{prefixCls:n,count:a,value:i}=e,l=Number(i),s=Math.abs(a),[c,d]=o.useState(l),[u,p]=o.useState(s),f=()=>{d(l),p(s)};if(o.useEffect(()=>{let e=setTimeout(f,1e3);return()=>clearTimeout(e)},[l]),c===l||Number.isNaN(l)||Number.isNaN(c))t=[o.createElement(ey,{...e,key:l,current:!0})],r={transition:"none"};else{t=[];let n=l+10,a=[];for(let e=l;e<=n;e+=1)a.push(e);let i=u<s?1:-1,d=a.findIndex(e=>e%10===c);t=(i<0?a.slice(0,d+1):a.slice(d)).map((t,r)=>o.createElement(ey,{...e,key:t,value:t%10,offset:i<0?r-d:r,current:r===d})),r={transform:`translateY(${-function(e,t,r){let n=e,o=0;for(;(n+10)%10!==t;)n+=r,o+=r;return o}(c,l,i)}00%)`}}return o.createElement("span",{className:`${n}-only`,style:r,onTransitionEnd:f},t)},e$=o.forwardRef((e,t)=>{let{prefixCls:r,count:n,className:a,motionClassName:i,style:l,title:s,show:c,component:d="sup",children:u,...p}=e,{getPrefixCls:f}=o.useContext(eb.QO),m=f("scroll-number",r),h={...p,"data-show":c,style:l,className:(0,ep.$)(m,a,i),title:s},g=n;if(n&&Number(n)%1==0){let e=String(n).split("");g=o.createElement("bdi",null,e.map((t,r)=>o.createElement(ev,{prefixCls:m,count:Number(n),value:t,key:e.length-r})))}return(l?.borderColor&&(h.style={...l,boxShadow:`0 0 0 1px ${l.borderColor} inset`}),u)?(0,eg.Ob)(u,e=>({className:(0,ep.$)(`${m}-custom-component`,e?.className,i)})):o.createElement(d,{...h,ref:t},g)});var ex=r(7961),ew=r(16924),eC=r(28403),eE=r(10540);let eS=new h.Mo("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),ek=new h.Mo("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),eA=new h.Mo("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),eP=new h.Mo("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),eR=new h.Mo("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),eM=new h.Mo("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),eT=e=>{let{fontHeight:t,lineWidth:r,marginXS:n,colorBorderBg:o}=e,a=e.colorTextLightSolid,i=e.colorError,l=e.colorErrorHover;return(0,eC.oX)(e,{badgeFontHeight:t,badgeShadowSize:r,badgeTextColor:a,badgeColor:i,badgeColorHover:l,badgeShadowColor:o,badgeProcessingDuration:"1.2s",badgeRibbonOffset:n,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"})},eO=e=>{let{fontSize:t,lineHeight:r,fontSizeSM:n,lineWidth:o,paddingXS:a}=e;return{indicatorZIndex:"auto",indicatorHeight:Math.round(t*r)-2*o,indicatorHeightSM:t,dotSize:n/2,textFontSize:n,textFontSizeSM:n,textFontWeight:"normal",statusSize:n/2,paddingInline:a}},eF=(0,eE.OF)("Badge",e=>(e=>{let{componentCls:t,iconCls:r,antCls:n,badgeShadowSize:o,textFontSize:a,textFontSizeSM:i,statusSize:l,dotSize:s,textFontWeight:c,indicatorHeight:d,indicatorHeightSM:u,marginXS:p,calc:f}=e,m=`${n}-scroll-number`,g=(0,ew.A)(e,(e,{darkColor:r})=>({[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r},"a:hover &":{background:r}}}));return{[t]:{...(0,ex.dF)(e),position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${t}-count`]:{display:"inline-flex",justifyContent:"center",zIndex:e.indicatorZIndex,minWidth:d,height:d,color:e.badgeTextColor,fontWeight:c,fontSize:a,lineHeight:(0,h.zA)(d),whiteSpace:"nowrap",textAlign:"center",background:e.badgeColor,borderRadius:f(d).div(2).equal(),boxShadow:`0 0 0 ${(0,h.zA)(o)} ${e.badgeShadowColor}`,transition:`background-color ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:u,height:u,fontSize:i,lineHeight:(0,h.zA)(u),borderRadius:f(u).div(2).equal()},[`${t}-multiple-words`]:{paddingInline:e.paddingInline,bdi:{unicodeBidi:"plaintext"}},[`${t}-dot`]:{zIndex:e.indicatorZIndex,width:s,minWidth:s,height:s,background:e.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${(0,h.zA)(o)} ${e.badgeShadowColor}`},[`${t}-count, ${t}-dot, ${m}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${r}-spin`]:{animationName:eM,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${t}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${t}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:l,height:l,verticalAlign:"middle",borderRadius:"50%"},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:"visible",color:e.colorInfoTextHover,backgroundColor:e.colorInfo,borderColor:"currentcolor","&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:o,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:eS,animationDuration:e.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:p,color:e.colorText,fontSize:e.fontSize}},...g,[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:ek,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`${t}-zoom-leave`]:{animationName:eA,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:eP,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:eR,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:"middle"},[`${m}-custom-component, ${t}-count`]:{transform:"none"},[`${m}-custom-component, ${m}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[m]:{overflow:"hidden",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack}`,[`${m}-only`]:{position:"relative",display:"inline-block",height:d,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${m}-only-unit`]:{height:d,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${m}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${t}-count, ${t}-dot, ${m}-custom-component`]:{transform:"translate(-50%, -50%)"}}}}})(eT(e)),eO),eN=o.forwardRef((e,t)=>{let{prefixCls:r,scrollNumberPrefixCls:n,children:a,status:i,text:l,color:s,count:c=null,overflowCount:d=99,dot:u=!1,size:p="medium",title:f,offset:m,style:h,className:g,rootClassName:b,classNames:y,styles:v,showZero:$=!1,...x}=e,{getPrefixCls:w,direction:C,className:E,style:S,classNames:k,styles:A}=(0,eb.TP)("badge"),P=w("badge",r),[R,M]=eF(P),T={...e,overflowCount:d,size:p,dot:u,showZero:$},[O,F]=(0,em.AV)([k,y],[A,v],{props:T}),N=c>d?`${d}+`:c,j="0"===N||0===N||"0"===l||0===l,I=null===c||j&&!$,z=((0,eh.R)(i)||(0,eh.R)(s))&&I,D=(0,eh.R)(i)||!j,B=u&&!j,L=B?"":N,_=(0,o.useMemo)(()=>(!(0,eh.AZ)(L)&&!(0,eh.AZ)(l)||j&&!$)&&!B,[L,j,$,B,l]),H=(0,o.useRef)(c);_||(H.current=c);let W=H.current,q=(0,o.useRef)(L);_||(q.current=L);let V=q.current,U=(0,o.useRef)(B);_||(U.current=B);let X=(0,o.useMemo)(()=>{if(!m)return{...S,...h};let e=Number.parseInt(m[0],10);return{...{marginTop:m[1],insetInlineEnd:-e},...S,...h}},[m,h,S]),K=(0,eh.Kg)(W)||(0,eh.Et)(W)?W:void 0,G=null===f||!1===f?void 0:f??K,Q=!_&&(0===l?$:!!l&&!0!==l),Y=Q?o.createElement("span",{className:`${P}-status-text`},l):null,J=(0,eh.Qd)(W)?(0,eg.Ob)(W,e=>({style:{...X,...e.style}})):void 0,Z=(0,ef.nP)(s,!1),ee=(0,ep.$)(O.indicator,{[`${P}-status-dot`]:z,[`${P}-status-${i}`]:!!i,[`${P}-color-${s}`]:Z}),et={};s&&!Z&&(et.color=s,et.background=s);let er=(0,ep.$)(P,{[`${P}-status`]:z,[`${P}-not-a-wrapper`]:!a,[`${P}-rtl`]:"rtl"===C},g,b,E,O.root,R,M);if(!a&&z&&(l||D||!I)){let e=X.color;return o.createElement("span",{ref:t,...x,className:er,style:{...F.root,...X}},o.createElement("span",{className:ee,style:{...F.indicator,...et}}),Q&&o.createElement("span",{style:{color:e},className:`${P}-status-text`},l))}return o.createElement("span",{ref:t,...x,className:er,style:F.root},a,o.createElement(eu.Ay,{visible:!_,motionName:`${P}-zoom`,motionAppear:!1,motionDeadline:1e3},({className:e})=>{let t=w("scroll-number",n),r=U.current,a=(0,ep.$)(O.indicator,{[`${P}-dot`]:r,[`${P}-count`]:!r,[`${P}-count-sm`]:"small"===p,[`${P}-multiple-words`]:!r&&V&&V.toString().length>1,[`${P}-status-${i}`]:!!i,[`${P}-color-${s}`]:Z}),l={...F.indicator,...X};return s&&!Z&&((l=l||{}).background=s),o.createElement(e$,{prefixCls:t,show:!_,motionClassName:e,className:a,count:V,title:G,style:l,key:"scrollNumber"},J)}),Y)}),ej=(0,eE.OF)(["Badge","Ribbon"],e=>(e=>{let{antCls:t,badgeFontHeight:r,marginXS:n,badgeRibbonOffset:o,calc:a}=e,i=`${t}-ribbon`,l=`${t}-ribbon-wrapper`,s=(0,ew.A)(e,(e,{darkColor:t})=>({[`&${i}-color-${e}`]:{background:t,color:t}}));return{[l]:{position:"relative"},[i]:{...(0,ex.dF)(e),position:"absolute",top:n,padding:`0 ${(0,h.zA)(e.paddingXS)}`,color:e.colorPrimary,lineHeight:(0,h.zA)(r),whiteSpace:"nowrap",backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${i}-content`]:{color:e.badgeTextColor},[`${i}-corner`]:{position:"absolute",top:"100%",width:o,height:o,color:"currentcolor",border:`${(0,h.zA)(a(o).div(2).equal())} solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:"top",filter:e.badgeRibbonCornerFilter},...s,[`&${i}-placement-end`]:{insetInlineEnd:a(o).mul(-1).equal(),borderEndEndRadius:0,[`${i}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${i}-placement-start`]:{insetInlineStart:a(o).mul(-1).equal(),borderEndStartRadius:0,[`${i}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}}}})(eT(e)),eO);eN.Ribbon=e=>{let{className:t,prefixCls:r,style:n,color:a,children:i,text:l,placement:s="end",rootClassName:c,styles:d,classNames:u}=e,{getPrefixCls:p,direction:f,className:m,style:h,classNames:g,styles:b}=(0,eb.TP)("ribbon"),y=p("ribbon",r),v=`${y}-wrapper`,[$,x]=ej(y,v),w={...e,placement:s},[C,E]=(0,em.AV)([g,u],[b,d],{props:w}),S=(0,ef.nP)(a,!1),k=(0,ep.$)(y,`${y}-placement-${s}`,{[`${y}-rtl`]:"rtl"===f,[`${y}-color-${a}`]:S},t,m,C.indicator),A={},P={};return a&&!S&&(A.background=a,P.color=a),o.createElement("div",{className:(0,ep.$)(v,c,$,x,C.root),style:E.root},i,o.createElement("div",{className:(0,ep.$)(k,$),style:{...A,...E.indicator,...h,...n}},o.createElement("span",{className:(0,ep.$)(`${y}-content`,C.content),style:E.content},l),o.createElement("div",{className:`${y}-corner`,style:P})))};var eI=r(85114),ez=r(34052),eD=r(84253),eB=r(6578);function eL(e){let{label:t,value:r}=e;return(0,n.jsxs)("div",{className:"flex gap-3 text-xs text-slate-500",children:[(0,n.jsx)("span",{className:"w-16 shrink-0",children:t}),(0,n.jsx)("span",{className:"min-w-0 break-words",children:r})]})}function e_(e){var t,r,o,a;let{job:i,mounted:l}=e,s=Math.max(0,Math.min(100,Math.round(i.percent||0))),c="error"===i.status?"exception":"success"===i.status?"success":"active",d=(null==(t=i.details)?void 0:t.slice(0,40))||[],u=l?new Date(i.updatedAt).toLocaleString():String(i.updatedAt);return(0,n.jsx)("div",{className:"border-b border-slate-100 px-5 py-4",children:(0,n.jsxs)("div",{className:"flex items-start gap-3 text-left",children:[(0,n.jsx)("span",{className:"mt-1 inline-flex text-base",children:"processing"===(r=i.status)?(0,n.jsx)(eo.A,{spin:!0}):"success"===r?(0,n.jsx)(ea.A,{}):"warning"===r?(0,n.jsx)(ei.A,{}):(0,n.jsx)(el.A,{})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-3",children:[(0,n.jsx)(es.A.Text,{strong:!0,className:"min-w-0 flex-1 leading-6",ellipsis:{tooltip:i.title},children:i.title}),(0,n.jsx)(ec.A,{color:"processing"===(o=i.status)?"processing":"success"===o?"success":"warning"===o?"warning":"error",className:"m-0 shrink-0",children:i.status})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,n.jsx)(es.A.Text,{type:"error"===i.status?"danger":void 0,className:"block whitespace-pre-wrap break-words leading-6",children:i.error||i.message}),(0,n.jsx)(ed.A,{percent:s,status:c}),(0,n.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,n.jsx)(eL,{label:"类型",value:"document"===(a=i.type)?"文档生成":"upload"===a?"文件上传":"reindex"===a?"重新解析":"delete"===a?"删除":a}),(0,n.jsx)(eL,{label:"阶段",value:i.stage}),i.chunkCount?(0,n.jsx)(eL,{label:"切片数",value:i.chunkCount}):null,i.filePath?(0,n.jsx)(eL,{label:"文件",value:i.filePath}):null,(0,n.jsx)(eL,{label:"更新时间",value:u})]}),d.length>0?(0,n.jsxs)("div",{className:"rounded border border-slate-100 bg-slate-50 p-2",children:[(0,n.jsx)(es.A.Text,{type:"secondary",className:"block text-xs",children:"诊断详情"}),(0,n.jsx)("ul",{className:"m-0 mt-1 max-h-52 overflow-auto pl-4 text-xs leading-5 text-slate-500",children:d.map((e,t)=>(0,n.jsx)("li",{className:"break-words",children:e},"".concat(i.id,"-").concat(t)))})]}):null]})]})]})})}function eH(){let[e,t]=(0,o.useState)(!1),[r,a]=(0,o.useState)([]),[i,l]=(0,o.useState)(!1),s=(0,o.useRef)(0),c=(0,o.useRef)(null),d=(0,o.useRef)([]),u=async()=>{let e=await (0,eB.zA)({limit:50});s.current=0,d.current=e.jobs||[],a(e.jobs||[])};(0,o.useEffect)(()=>{l(!0);let e=!1,t=e=>{null!=c.current&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>{r()},e)},r=async()=>{try{await u();let r=d.current.some(e=>"processing"===e.status);e||t(r?2e3:3e4)}catch(n){s.current+=1;let r=Math.min(3e4,2e3*2**Math.min(4,s.current));e||t(r)}};return r(),()=>{e=!0,null!=c.current&&window.clearTimeout(c.current)}},[]);let p=(0,o.useMemo)(()=>r.filter(e=>"processing"===e.status),[r]),f=p.length,m=p[0];return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eN,{count:f,size:"small",children:(0,n.jsx)(eI.Ay,{className:"topbarBtn",onClick:()=>t(!0),icon:f?(0,n.jsx)(eo.A,{spin:!0}):(0,n.jsx)(ei.A,{}),children:"后台任务"})}),m&&!e&&f>0?(0,n.jsxs)("span",{style:{maxWidth:260,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--colorTextSecondary)"},children:[m.title," \xb7 ",m.percent,"%"]}):null,(0,n.jsx)(ez.A,{title:"后台任务",placement:"right",size:"large",open:e,onClose:()=>t(!1),extra:(0,n.jsx)(eI.Ay,{size:"small",onClick:()=>void u(),children:"刷新"}),styles:{body:{padding:0}},children:0===r.length?(0,n.jsx)("div",{className:"flex h-full items-start justify-center pt-16",children:(0,n.jsx)(eD.A,{description:"暂无后台任务"})}):(0,n.jsx)("div",{className:"text-left",children:r.map(e=>(0,n.jsx)(e_,{job:e,mounted:i},e.id))})})]})}function eW(){let{resolvedTheme:e,setTheme:t}=(0,s.D)(),{locale:r,setLocale:a}=eX(),i=eG("settings"),[l,c]=(0,o.useState)(!1),d=l&&"dark"===e;return(0,o.useEffect)(()=>{c(!0)},[]),(0,n.jsxs)("header",{className:"topbar",children:[(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)(eH,{}),(0,n.jsxs)("button",{onClick:()=>t(d?"light":"dark"),className:"topbarBtn",children:[d?(0,n.jsx)(er.A,{size:14}):(0,n.jsx)(K.A,{size:14}),(0,n.jsx)("span",{children:i(d?"light":"dark")})]}),(0,n.jsxs)("button",{onClick:()=>{a("zh-CN"===r?"en-US":"zh-CN")},className:"topbarBtn",children:[(0,n.jsx)(en.A,{size:14}),(0,n.jsx)("span",{children:"zh-CN"===(l?r:"zh-CN")?"English":"中文"})]})]})}let eq=JSON.parse('{"app":{"title":"Customize Agent","subtitle":"管理控制台"},"nav":{"overview":"总览","knowledge":"知识库","knowledgeManage":"知识库管理","fileManagement":"文件管理","knowledgeSearch":"知识库搜索","documents":"工作流模版库","assetLibrary":"生成资源","documentRoles":"角色配置","documentSpecs":"文档规范包","guide":"指引","models":"模型配置","settings":"设置","promptManagement":"提示词管理","systemLogs":"系统日志","templateReferences":"模板参考"},"overview":{"title":"系统总览","description":"查看 Customize Agent 运行状态与关键指标","status":"服务状态","statusRunning":"运行中","statusError":"异常","knowledgeBase":"知识库","modelConfig":"模型配置","filesCount":"文件总数","chunksCount":"分块总数","storageSize":"存储空间","providersCount":"已配置模型","quickActions":"快捷操作","goToKnowledge":"管理知识库","goToModels":"配置模型","goToSettings":"系统设置","cores":"核","memory":"内存","tokensUsed":"累计 Tokens","tasksTotal":"总任务数","successRate":"成功率","topModel":"调用最多模型","taskTypes":"任务类型","calls":"次调用","systemResources":"系统资源","hardwareUsage":"硬件使用率","cpuUsage":"CPU 使用率","memoryUsage":"内存使用率","activityContext":"活动上下文","recentTaskTypes":"最近任务类型","noDataAvailable":"暂无数据","updated":"已更新","noLogs":"暂无日志","uptime":"运行时间","fileRoles":"文件角色","promptRoles":"提示词角色","templateCount":"模板数量","semanticModel":"语义模型","external":"外部","local":"本地","notConfigured":"未配置","modelProviders":"模型供应商","auditLogs":"审计日志"},"knowledge":{"title":"知识库管理","description":"管理本地文件和知识库索引","manageTitle":"知识库管理","manageDesc":"查看知识库统计、分类和功能状态","stats":"统计概览","files":"文件管理","settings":"知识库设置","totalFiles":"文件总数","totalChunks":"分块总数","totalSize":"存储大小","lastIndexed":"上次索引","categories":"文件分类","fileCount":"文件数量","search":"搜索文件","searchPlaceholder":"输入文件名或内容关键词...","filterCategory":"筛选分类","allCategories":"全部类型","upload":"上传文件","uploadHint":"点击或拖拽上传 (PDF, Word, Excel, 图片, 代码等)","uploading":"上传中...","reindex":"重新索引","reindexing":"正在重新索引...","delete":"删除","deleteConfirm":"确定要删除该文件吗?此操作不可恢复。","fileList":"文件列表","fileName":"文件名","fileSize":"大小","fileCategory":"分类","fileDate":"修改日期","totalRootFolders":"总根文件夹数","totalFilesStats":"总文件数","successfullyParsed":"解析成功","parsingErrors":"解析失败","chunksCount":"切片数","parsingStatus":"解析状态","source":"来源","fileSource":"文件","showingMatchingFiles":"显示 {count} 个匹配文件","deleteSelected":"删除选中","deleteAll":"删除全部","uploadFiles":"上传文件","uploadFolder":"上传文件夹","reindexAll":"重新解析全部","new":"新建","manageRawFiles":"管理原始文件、文档和代码源","noFiles":"暂无文件,请上传文件开始使用","loadError":"加载文件列表失败","emptySearch":"未找到匹配的文件","ignoreRules":"忽略规则","ignoreHint":"每行一个 glob 模式,匹配的文件将被跳过","saveIgnore":"保存规则","duplicates":"重复文件","noDuplicates":"未发现重复文件","duplicatesFound":"发现 {count} 组重复文件","features":"功能状态","featureName":"功能","featureDesc":"说明","featureValue":"实现","featureVectorStoreDesc":"向量数据库,存储文档向量索引","vectorStore":"向量存储","embedding":"Embedding","averageSize":"平均大小","builtinExtractors":"内置提取器","featureEmbeddingDesc":"文本嵌入模型,将文本转换为向量","featureDedup":"去重引擎","featureDedupDesc":"检测并移除重复/相似文档","featureChunker":"分块器","featureChunkerDesc":"将文档拆分为可检索的语义块","globalSearch":"全局搜索","projectSearch":"项目搜索","autoIndex":"自动索引","enabled":"已启用","disabled":"已禁用","parentChunks":"父级切片","childChunks":"子级切片","parentChunkId":"父级 ID","chunkIndex":"切片序号","chunkType":"类型","sectionOrRange":"章节/范围","chunkContent":"内容","parentChunkHint":"父级切片是同一 parentId 下子级切片的上下文合集;当一个父级只包含一个子级时,两处内容相同是正常现象。","fileDetailLoadFailed":"文件详情加载失败","openFileRequested":"已请求打开文件","openDirectoryRequested":"已请求打开目录","table":"表格","sheet":"工作表","header":"表头","rows":"行数","columns":"列数","formulaCount":"公式数","mergeCount":"合并单元格","columnName":"列名","rowRange":"行范围","tableGridPreview":"表格网格预览","drawing":"图纸","layer":"图层","entityType":"实体类型","blockSymbol":"块/符号","productPart":"产品/零件","material":"材料","entityName":"实体名称","layerTogglePreview":"图层开关 / 图纸预览","type":"类型","name":"名称","dataPath":"数据路径","path":"路径","value":"值","pageNumber":"页码","ocrText":"OCR 文本","openExpand":"展开","index":"序号","tokens":"Token","section":"章节","backToFileList":"返回文件列表","fileDetailTitle":"文件详情","fileDetailDesc":"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。","copySourcePath":"复制原文件路径","copyDirectory":"复制所在目录","originalFile":"原文件","directory":"所在目录","detailFilter":"详情筛选","detailFilterPlaceholder":"筛选 rowRange、图层、实体、data path、section、chunk 内容","fileReindexed":"文件索引已重建","copied":"已复制","rowPrefix":"行","ocrPdf":"OCR/PDF","ocrRecommended":"OCR 建议","ocrReason":"OCR 原因","ocrProvider":"OCR 引擎","ocrLanguages":"OCR 语言","ocrTextLength":"OCR 文本长度","pdfPageCount":"PDF 总页数","pdfTextPages":"PDF 文本页数","pdfOcrAugmented":"PDF 已 OCR 增强","pdfOcrPages":"PDF OCR 页码","pdfFailedPages":"PDF 失败页","pdfPageOcrSupported":"PDF 页面 OCR 支持","pdfOcrPageCount":"PDF OCR 页数","pdfOcrPageLimit":"PDF OCR 页数上限","pdfRenderer":"PDF 渲染器","imagePreprocessor":"图像预处理","selectFile":"请选择文件","reOcr":"重新 OCR","reindexFile":"重建该文件索引","basicInfo":"基础信息","status":"状态","extractionMode":"解析模式","contentCoverage":"覆盖范围","textLength":"正文长度","structuredInfo":"结构化信息","chunkCount":"切片数","parentMatches":"父级命中","childMatches":"子级命中","filterTerm":"筛选词","searchTitle":"知识库搜索","searchDesc":"查看混合检索、父级回填、分块来源和评分明细;文档工作台会使用同一套检索链路按章节自动召回证据。","goToDocuments":"进入文档工作台","autoSearchFirst":"自动检索为主,人工确认为辅","autoSearchFirstDesc":"文档工作台会自动按章节检索证据;只有当必须指定官方资料、图纸或表格时,才需要复制文件路径作为高级优先证据。","searchContentPlaceholder":"输入要搜索的知识库内容","searchAction":"搜索","searchFailed":"搜索失败","recallWeightTuning":"召回权重调节","debugPanel":"检索调试面板","originalQuery":"原始查询","reranker":"重排器","rewrittenQueries":"查询改写","recallCounts":"召回数量","recallWeights":"召回权重","searchResults":"搜索结果","noSearchResults":"暂无结果","resultIndex":"序号","copyAsPriorityEvidence":"复制为高级优先证据","copyPriorityEvidenceSuccess":"已复制文件路径;仅在需要人工指定证据时粘贴到章节的高级优先证据中","expand":"展开","weights":{"keyword":"关键词权重","vector":"向量权重","rewrite":"改写权重","hybridBonus":"混合加成"},"recallSources":{"keyword":"关键词检索","vector":"向量检索","rewrite":"查询改写","hybrid":"混合检索","rerank":"重排"},"scopes":{"project":"当前项目","global":"全局"},"scoreDetails":{"keywordScore":"关键词分","bm25Score":"BM25 分","vectorScore":"向量分","rerankBoost":"重排加成","hybridScore":"混合分"}},"models":{"title":"模型配置","description":"管理 LLM 模型与层级分配","modelList":"Model 列表","addModel":"添加模型","editModel":"编辑模型","providerName":"Provider 名称","modelName":"模型名称","apiKey":"API Key","baseUrl":"Base URL","protocol":"请求协议","testConnection":"测试连接","testing":"测试中...","connected":"已连接","connectionFailed":"连接失败","noProviders":"暂无模型,请添加一个","modelTiers":"模型层级分配","tierReader":"Reader(只读)","tierReaderDesc":"处理低风险、只读和成本敏感任务,例如读取文件、检索知识库、搜索文本、整理上下文。建议选择速度快、价格低、长上下文能力稳定的模型。","tierReasoning":"Reasoning(推理)","tierReasoningDesc":"处理需要深入分析、规划、代码理解和多步骤推理的任务。建议选择推理能力强、稳定性高的模型,必要时可使用更高阶模型。","tierAction":"Action(操作)","tierActionDesc":"处理会产生副作用的任务,例如写文件、修改代码、执行命令、调用外部工具。建议选择可靠、遵循指令能力强且经过验证的模型。","activeModel":"当前模型","deleteProvider":"删除","deleteProviderConfirm":"确定要删除此模型及其所有配置吗?","modelNamePlaceholder":"例如: gpt-4o / deepseek-chat","selectModelPlaceholder":"暂不配置","apiKeyEditHint":"已配置的 Key 会以掩码回显,聚焦后可输入新 Key;掩码不可复制,留空或保持掩码则不修改。","apiKeyEditPlaceholder":"输入新的 API Key,留空保持不变","embeddingConfig":"Embedding 配置","embeddingProvider":"Embedding Provider","embeddingProviderHash":"本地语义模型","embeddingProviderOpenAI":"OpenAI 兼容 Embedding","embeddingHint":"Embedding 用于知识库向量检索。修改 Embedding 模型或维度后,建议到知识库页面重新索引。","model":"模型","dimensions":"维度","dimensionsPlaceholder":"例如 1024","none":"无","active":"已启用","localRecommended":"本地(推荐)","externalAdvanced":"外部(高级)","status":"状态","localHash":"本地语义模型","openAICompatible":"OpenAI 兼容","saveEmbedding":"保存 Embedding 配置","testEmbedding":"测试 Embedding","embeddingApiKeyHint":"留空或保持掩码表示不修改密钥","optional":"可选","save":"保存","cancel":"取消","webEnhancement":"联网增强","webEnhancementDesc":"默认关闭。开启后,系统会受控检索公开规范、政策和通用技术资料,用于增强措施准确性;联网资料不会覆盖本地项目事实。","webEnhancementEnabled":"已开启联网增强","webEnhancementDisabled":"未开启联网增强","maxQueriesPerChapter":"每章最大查询数","maxResultsPerQuery":"每次最大结果数","directEndpoint":"直连端点","directEndpointDesc":"Base URL 是完整接口地址","capabilities":"多模态能力","anthropic":"Anthropic","google":"Google","ollama":"Ollama","openRouter":"OpenRouter","imageGeneration":"图片生成","imageUnderstanding":"图片理解","fileUnderstanding":"文件理解","audioCapability":"音频能力","videoCapability":"视频能力","localEmbedding":"本地 Embedding"},"prompt":{"title":"提示词管理","description":"管理各项目的 CUSTOMIZE.md 系统提示词文件","filePath":"文件路径","lastModified":"最后修改","hasFile":"已配置","noFile":"未配置","noProjects":"暂无项目,请先初始化 Customize Agent 项目","promptName":"提示词名称","customPrompt":"我的提示词","currentProject":"当前项目","otherProjects":"其他项目","allPrompts":"全部提示词","promptStatus":"提示词状态","selected":"已选中","unselected":"未选中","hasFileStatus":"有文件","missingFileStatus":"无文件","sortByName":"名称 A-Z","sortByMtime":"最近修改优先","sortBySource":"来源优先","sortBySelected":"已选中优先","groupNav":"分组导航","detailPreview":"详情预览","noMatchDesc":"没有找到匹配的提示词,请尝试更换关键词或清空筛选条件","noPromptInGroup":"当前分组没有提示词","searchPrompt":"搜索名称、内容、路径...","import":"导入","exportFiltered":"导出筛选","createPrompt":"创建提示词","exportSelected":"导出选中","batchSelect":"批量选中","cancelSelect":"取消选中","clearSelect":"清空选择","aiPromptAssistant":"AI 提示词助手","clearHistory":"清空历史","generating":"生成中","canConverse":"可对话优化","mentionRecallHint":"输入 @ 召回知识库文件,再描述你的优化目标","apply":"应用","aiAnalyzing":"AI 正在分析并生成内容...","recallKbFiles":"召回知识库文件","recallLimitHint":"支持文件名与知识库内容检索,最多召回 3 个文件","inputAtKeyword":"输入 @关键词","loadingKbFiles":"正在加载知识库文件...","noRecallableKbFiles":"暂无可召回的知识库文件","searchingKbContent":"正在检索知识库内容...","noMatchingKbFiles":"没有匹配的知识库文件,请换个关键词","continueSearchingKb":"正在继续检索内容匹配...","unclassified":"未分类","unknownFormat":"未知格式","contentMatch":"内容匹配","diskFile":"磁盘文件","fileMatch":"文件匹配","mentionRecallPlaceholder":"输入 @ 召回知识库文件,再描述优化目标...","send":"发送"},"assets":{"description":"管理模板运行生成的文档、图片和附件。生成结果仅保存在生成资源中,不进入知识库。","total":"共 {count} 个资源","deleteSelected":"删除已选 {count}","deleteAll":"删除全部","empty":"暂无生成资源","resource":"资源","path":"路径","source":"来源","usedDocuments":"使用文档","updatedAt":"更新时间","actions":"操作","copyPath":"复制路径","openFile":"打开文件","openDirectory":"打开目录","copiedPath":"已复制路径","operationFailed":"操作失败","deleteAllConfirm":"删除全部资源?","deleteSelectedConfirm":"删除已选 {count} 个资源?","deleteIrreversible":"此操作不可撤销。","deleted":"已删除 {count} 个资源","batchDeleteFailed":"批量删除失败","sourceKnowledgeBase":"知识库","sourceGenerated":"AI 生成","sourceUploaded":"上传","sourceExternalUrl":"外部 URL"},"logs":{"monitorSystem":"监控系统异常、API 错误和运行时问题","searchLogs":"搜索日志...","refresh":"刷新","clear":"清空","clearConfirm":"确认清空所有错误日志?","logStorageInfo":"日志存储在本地","maxLoaded":"最多加载 500 条。","noLogsFound":"没有找到日志","loadFailed":"加载日志失败","time":"时间","level":"级别","source":"来源","message":"消息","requestId":"请求 ID","function":"函数","requestContext":"请求上下文","metadata":"元数据","stackTrace":"堆栈跟踪"},"settings":{"title":"系统设置","description":"管理系统界面选项和状态概览","language":"界面语言","languageDesc":"选择系统显示的语言","theme":"外观主题","themeDesc":"调整界面的亮色和暗色主题","light":"浅色","dark":"深色","system":"跟随系统","serverStatus":"服务状态","serverStatusDesc":"查看资源使用和运行健康度","status":"状态","healthy":"健康","unknown":"未知","uptime":"运行时间","days":"天","hours":"小时","minutes":"分","cpu":"处理器","cores":"核","memory":"内存使用","embeddingConfig":"向量配置","embeddingConfigDesc":"查看知识库的向量检索设定","provider":"供应商","model":"模型","apiKey":"密钥配置","configured":"已配置","none":"未配置","dimensions":"向量维度","localData":"本地数据","localDataDesc":"所有数据仅存储在您的本地设备上","directory":"存储目录","knowledgeBase":"知识库格式","localVectors":"本地向量","tasks":"总任务","tokens":"累计 Tokens"},"documents":{"title":"工作流模版库","description":"基于模板库和本地知识库生成、编辑、校验业务文档","templateLibrary":"模板库","workflow":"模板工作流","template":"模板","selected":"已选择","boundPrompts":"绑定提示词","boundFiles":"绑定知识库文件","boundPromptsRequired":"请选择提示词","boundFilesRequired":"请选择知识库文件","promptRole":"提示词角色","fileRole":"文件角色","manageRoles":"管理角色","roleEditor":"角色编辑器","roleType":"角色类型","roleName":"角色名称","roleDescription":"角色说明","addPromptBinding":"添加提示词绑定","addFileBinding":"添加文件绑定","structuredFacts":"结构化事实","exportGate":"导出门禁","executionStages":"执行阶段","executionStatus":"执行状态","flowPrepare":"准备配置","flowPrepareDesc":"读取模板、项目角色配置、文件角色和提示词角色","flowPrepareDone":"配置读取完成","flowFactExtraction":"事实抽取","flowFactExtractionDesc":"按文件处理类型抽取 JSON 事实和表格结构","flowChapterGeneration":"章节生成","flowChapterGenerationDesc":"基于证据、事实和提示词生成章节草稿","flowValidation":"严格校验","flowValidationDesc":"检查事实完整性、来源追踪和章节证据","flowFormatting":"正式排版","flowFormattingDesc":"生成封面、目录、分页和正式文档结构","flowDone":"生成完成","flowDoneDesc":"流程完成,可进入编辑和导出","flowGateFailed":"生成完成,但导出门禁未通过,请检查校验结果","projectRoleConfig":"项目角色配置","documentSpec":"文档规范包","documentSpecPlaceholder":"请选择文档规范包","exportDocx":"导出 Word","projectRoleConfigRequired":"请选择项目角色配置","noRoleConfig":"未绑定项目角色配置","evidenceLimit":"每章证据数","requirement":"生成要求","requirementPlaceholder":"例如:根据上传的招标文件、图纸和清单,生成一份施工组织设计草稿。","generate":"开始生成","editor":"生成 / 编辑器","edit":"编辑","chapters":"章节","sources":"资料来源","missingItems":"缺失项","validation":"校验","evidenceCount":"证据数量","missingCount":"缺失事实","downloadMarkdown":"下载 Markdown","exportHtml":"导出 HTML","exportPdf":"导出 PDF","saveDraft":"保存草稿","draftHistory":"草稿历史","regenerateChapter":"重新生成本章","newTemplate":"新建模板","templateEditor":"模板编辑器","templateName":"模板名称","templateCategory":"模板分类","templateDescription":"模板说明","outputTitle":"输出标题","chapter":"章节","chapterTitle":"章节标题","chapterPurpose":"章节用途","chapterQueries":"检索 Query","requiredFacts":"必需事实","addChapter":"添加章节","builtIn":"内置","deleteTemplateConfirm":"确定删除该模板吗?","noDraft":"请选择模板并生成草稿"},"specs":{"title":"文档规范包","description":"配置事实字段、章节要求和可执行门禁规则。系统门禁和自定义门禁都会参与生成校验。","newSpec":"新建规范包","list":"规范包列表","editor":"规范包编辑器","name":"规范包名称","specDescription":"规范包说明","wordTemplatePath":"Word 模板路径","facts":"事实字段","chapters":"章节规则","gates":"门禁规则","factName":"字段名称","factType":"字段类型","required":"必填/必需","sourceRoles":"来源文件角色","extractionHint":"抽取说明","validationHint":"校验说明","addFact":"添加事实字段","chapterTitle":"章节标题","order":"顺序","minWords":"最低字数","requiredFacts":"必需事实","requiredFileRoles":"必需文件角色","requiredPromptRoles":"必需提示词角色","generationHint":"生成说明","addChapter":"添加章节规则","gateName":"门禁名称","addGate":"添加门禁规则","plainGuideTitle":"大白话说明:文档规范包是干什么的?","plainGuideDesc":"文档规范包不是固定模板,而是一组可配置的生产规则:事实字段=这份文档必须知道哪些信息;章节规则=必须有哪些章节、最低写多少、需要哪些事实;门禁规则=生成和导出前必须检查什么。用户可以创建自定义门禁类型,并为它选择校验对象和校验方式;保存后会和系统门禁类型一样执行。不同公司、不同项目可以复制一份规范包再微调。"},"guide":{"title":"学习说明:如何跑通文档生成全流程","description":"本页面用于指导用户从模型配置、上传我的资料、提示词、角色配置、规范包、模板创建、生成校验到导出的完整流程。建议第一次使用时按顺序完成每一步。","fullFlow":"全流程步骤","stepModel":"1. 配置模型","stepModelDesc":"进入模型配置页面,添加可用的大模型供应商和模型,并设置当前启用模型。LLM JSON 事实抽取会优先使用已启用模型;如果模型不可用,系统会回退到本地确定性抽取。","stepKnowledge":"2. 上传知识库文件","stepKnowledgeDesc":"进入知识库页面上传招标文件、工程说明、表格数据、图纸说明、规范文件等资料。上传后等待索引完成,确保文件能在知识库文件列表中看到。","stepPrompt":"3. 创建提示词","stepPromptDesc":"进入提示词页面创建事实抽取、章节生成、校验、格式化等提示词。提示词应明确输出要求、禁止编造、引用来源和格式规范。","stepRole":"4. 配置角色和项目角色配置","stepRoleDesc":"进入角色配置页面,创建文件角色并绑定知识库文件,创建提示词角色并绑定提示词,再创建项目角色配置,对文件角色和提示词角色排序。","stepTemplate":"5. 创建模板","stepTemplateDesc":"进入工作流模版库页面,新建模板,填写名称、分类、输出标题,并绑定一个项目角色配置。模板不直接绑定文件和提示词,只绑定项目角色配置。","stepGenerate":"6. 执行生成","stepGenerateDesc":"点击生成后,执行状态 Card 会展示准备配置、事实抽取、章节生成、严格校验、正式排版和完成状态,方便用户感知当前进度。","stepReview":"7. 审查结果","stepReviewDesc":"生成后检查编辑器、章节、结构化事实、来源、缺失项、严格校验、导出门禁和执行阶段。校验错误需要先处理再导出正式 PDF。","stepExport":"8. 导出文件","stepExportDesc":"可以导出 Markdown、HTML、PDF。PDF 会启用导出门禁,门禁未通过时系统会阻止导出,避免未经校验的文档流出。","roleDesign":"角色设计说明","roleDesignDesc":"角色用于把用户自定义名称和系统可执行能力连接起来。用户可以完全自定义角色名称,但必须选择执行类型或处理类型,让系统知道如何使用它。","fileRole":"文件角色","fileRoleDesc":"文件角色绑定知识库文件,并选择处理类型,例如规则文件、项目事实文件、表格数据、图纸文件、规范文件或参考资料。","promptRole":"提示词角色","promptRoleDesc":"提示词角色绑定提示词,并选择执行类型,例如事实抽取、章节生成、校验、格式化或参考。","projectConfig":"项目角色配置","projectConfigDesc":"项目角色配置把多个文件角色和提示词角色组合起来,并定义执行顺序。模板只需要绑定项目角色配置。","generationEngine":"生成引擎说明","generationEngineDesc":"生成引擎会按角色配置组织资料和提示词,执行事实抽取、表格解析、章节生成、严格校验和正式排版。","prepareTitle":"准备资料时要注意什么?","prepareContent":"建议至少准备项目事实文件、规则文件和生成提示词。表格类资料应尽量使用清晰表头,图纸资料建议配套图纸目录或说明文件。","rolesTitle":"角色应该怎么命名?","rolesContent":"角色名称建议使用业务语义,例如“招标文件事实源”“劳动力计划表”“施工组织设计章节生成提示词”。系统不依赖名称判断能力,而是依赖处理类型和执行类型。","templateTitle":"模板应该怎么创建?","templateContent":"模板用于定义输出文档类型和标题,绑定项目角色配置即可。不同项目可以复用同一模板,但应创建不同的项目角色配置来绑定不同资料。","generateTitle":"生成过程中怎么看进度?","generateContent":"生成页会显示执行状态 Card。当前步骤会高亮,成功后变为完成;如果失败会显示错误。生成完成后,下方执行阶段会展示后端真实阶段结果。","qaTitle":"怎样判断能否正式导出?","qaContent":"重点查看导出门禁。只有无阻断级错误、基础事实齐全、事实具备来源、章节有证据且没有资料未提供章节时,才建议导出 PDF。"},"roles":{"title":"角色配置","description":"创建文件角色、提示词角色,并组合成可排序的项目角色配置供模板绑定使用","newFileRole":"新建文件角色","newPromptRole":"新建提示词角色","newConfig":"新建项目配置","fileRoles":"文件角色","promptRoles":"提示词角色","configs":"项目角色配置","roleEditor":"角色编辑器","configEditor":"项目角色配置编辑器","roleType":"角色类型","fileRole":"文件角色","promptRole":"提示词角色","roleName":"角色名称","roleDescription":"角色说明","bindFile":"绑定知识库文件","bindPrompt":"绑定提示词","executionType":"执行类型","processingType":"处理类型","factExtraction":"事实抽取","chapterGeneration":"章节生成","validation":"校验","formatting":"格式化","llmReview":"LLM审阅","reference":"参考","ruleFile":"规则文件","tableFile":"表格数据","drawingFile":"图纸文件","specificationFile":"规范文件","configName":"配置名称","configDescription":"配置说明","addRole":"添加角色","plainGuideTitle":"大白话说明:文件角色和提示词角色到底是什么?","plainGuideDesc":"文件角色就是给资料贴用途标签:规则文件=告诉系统必须遵守什么;项目事实文件=告诉系统项目真实信息;表格数据=清单、计划、数据表;图纸文件=图纸目录和设计说明;规范文件=国家/行业/企业标准;参考资料=可参考但不是强事实。提示词角色就是给提示词贴执行标签:事实抽取=先把资料变成事实;章节生成=写正文;校验=找问题;格式化=整理成正式文档。一个角色可以绑定多个文件或多个提示词,适合一个用途对应多份资料的情况。","executionTypeHelp":"大白话:这条提示词在哪个阶段用。事实抽取负责找资料里的真信息;章节生成负责写正文;校验负责挑错;格式化负责整理版式;参考只作为辅助说明。","processingTypeHelp":"大白话:这个文件在生成里扮演什么角色。规则文件是要求和评分规则;项目事实文件是真实项目资料;表格数据是 Excel/CSV/清单;图纸文件是图纸目录和设计说明;规范文件是标准规范;参考资料只做辅助参考。","multiBindFileHelp":"可以多选。比如“项目事实文件”可以同时绑定招标文件、合同摘要、项目概况。少量明确资料建议单绑;同一用途多份资料建议多绑。","multiBindPromptHelp":"可以多选。比如“章节生成”可以同时绑定通用写作要求、公司风格要求、甲方特殊要求。系统会按项目角色配置中的角色顺序使用。","noFileRoleSelected":"暂未选择文件角色","noPromptRoleSelected":"暂未选择提示词角色","bindPromptCount":"绑定 {count} 个提示词"},"common":{"save":"保存","cancel":"取消","confirm":"确认","delete":"删除","edit":"编辑","add":"添加","search":"搜索","loading":"加载中...","error":"出错了","success":"操作成功","retry":"重试","close":"关闭","back":"返回","more":"更多","noData":"暂无数据","bytes":"字节","kb":"KB","mb":"MB","gb":"GB","unknown":"未知","never":"从未"},"refs":{"title":"模板参考库","description":"上传优秀入围施组文件作为质量对标基准。系统自动解析质量画像(参数密度、工序链、结构等),生成文档后按工程类型对标。参考文件仅用于质量对标与结构参考,绝不作为项目事实材料参与生成。","uploadTitle":"点击或拖拽上传参考文件","uploadHint":"支持 PDF / Word 文档,可上传多份不同类型的入围文件累积沉淀","uploading":"正在上传并解析…","uploaded":"参考文件已入库并完成画像解析","uploadFailed":"上传失败","operationFailed":"操作失败","projectType":"工程类型","autoClassify":"不选则自动分类","statusParsing":"解析中…","statusFailed":"解析失败","setPrimary":"设为主参考","unsetPrimary":"取消主参考","changeType":"改为","typeChanged":"类型已更新","delete":"删除","deleteConfirm":"删除该参考文件?原文将一并移除","paramDensity":"参数密度","arrowChain":"工序链覆盖率","duplication":"段落重复率","tables":"表格数","sections":"章节数","sectionSubsection":"章节/小节","subsections":"小节数","subitems":"子目数","words":"字数","more":"展开","noReferences":"暂无该类型的参考文件","redLineTitle":"红线说明","redLine":"参考文件独立存储,永不进入知识库检索、永不作为生成事实材料。","profileTitle":"类型画像","profileSamples":"份样本","profileUpdated":"更新于","profileDetail":"查看画像详情","profileDetailTitle":"类型画像详情","profileMetrics":"指标区间(最小 - 均值 - 最大)","profileTypicalHeadings":"典型章节结构(样本覆盖率)","profileCommonTables":"常见表格","profileFrequentParams":"高频工艺参数","profileSources":"画像来源文件","profileNoSamples":"该类型暂无样本,上传参考文件后自动沉淀画像","profilePrimaryBadge":"主参考","totalSamples":"有效样本","coveredTypes":"覆盖类型","primaryCount":"主参考","uploadSection":"上传参考文件","autoClassified":"自动分类","fileLibrary":"文件库","allFiles":"全部","profileSubtitle":"类型级累积画像,随参考文件持续沉淀","headingPreview":"章节结构","avgSectionWords":"平均每章字数"}}'),eV=JSON.parse('{"app":{"title":"Customize Agent","subtitle":"Admin Console"},"nav":{"overview":"Overview","knowledge":"Knowledge Base","knowledgeManage":"KB Management","fileManagement":"File Management","knowledgeSearch":"KB Search","documents":"Workflow Templates","assetLibrary":"Generated Assets","documentRoles":"Role Config","documentSpecs":"Document Specs","guide":"Guide","models":"Model Config","settings":"Settings","promptManagement":"Prompt Management","systemLogs":"System Logs","templateReferences":"Template References"},"overview":{"title":"System Overview","description":"Monitor Customize Agent status and key metrics","status":"Service Status","statusRunning":"Running","statusError":"Error","knowledgeBase":"Knowledge Base","modelConfig":"Model Config","filesCount":"Total Files","chunksCount":"Total Chunks","storageSize":"Storage Size","providersCount":"Models","quickActions":"Quick Actions","goToKnowledge":"Manage Knowledge Base","goToModels":"Configure Models","goToSettings":"System Settings","cores":"cores","memory":"Memory","tokensUsed":"Total Tokens","tasksTotal":"Total Tasks","successRate":"Success Rate","topModel":"Most Used Model","taskTypes":"Task Types","calls":"calls","systemResources":"System Resources","hardwareUsage":"Hardware usage","cpuUsage":"CPU usage","memoryUsage":"Memory usage","activityContext":"Activity Context","recentTaskTypes":"Recent task types","noDataAvailable":"No data available","updated":"Updated","noLogs":"No logs","uptime":"Uptime","fileRoles":"File Roles","promptRoles":"Prompt Roles","templateCount":"Templates","semanticModel":"Semantic Model","external":"External","local":"Local","notConfigured":"Not Configured","modelProviders":"Model Providers","auditLogs":"Audit Logs"},"knowledge":{"title":"Knowledge Base","description":"Manage local files and knowledge base index","manageTitle":"KB Management","manageDesc":"View knowledge base statistics, categories, and features","stats":"Statistics","files":"File Management","settings":"KB Settings","totalFiles":"Total Files","totalChunks":"Total Chunks","totalSize":"Total Size","lastIndexed":"Last Indexed","categories":"File Categories","fileCount":"File Count","search":"Search Files","searchPlaceholder":"Search by filename or content...","filterCategory":"Filter Category","allCategories":"All Types","upload":"Upload File","uploadHint":"Click or drag to upload (PDF, Word, Excel, images, code, etc.)","uploading":"Uploading...","reindex":"Reindex","reindexing":"Reindexing...","delete":"Delete","deleteConfirm":"Are you sure you want to delete this file? This action cannot be undone.","fileList":"File List","fileName":"File Name","fileSize":"Size","fileCategory":"Category","fileDate":"Modified","totalRootFolders":"Total Root Folders","totalFilesStats":"Total Files","successfullyParsed":"Successfully Parsed","parsingErrors":"Parsing Errors","chunksCount":"Chunks","parsingStatus":"Status","source":"Source","fileSource":"File","showingMatchingFiles":"Showing {count} matching files","deleteSelected":"Delete Selected","deleteAll":"Delete All","uploadFiles":"Upload Files","uploadFolder":"Upload Folder","reindexAll":"Reindex All","new":"New","manageRawFiles":"Manage raw files, documents, and code sources","noFiles":"No files yet. Upload files to get started.","loadError":"Failed to load file list","emptySearch":"No matching files found","ignoreRules":"Ignore Rules","ignoreHint":"One glob pattern per line. Matching files will be skipped.","saveIgnore":"Save Rules","duplicates":"Duplicate Files","noDuplicates":"No duplicate files found","duplicatesFound":"Found {count} duplicate groups","features":"Feature Status","featureName":"Feature","featureDesc":"Description","featureValue":"Implementation","featureVectorStoreDesc":"Vector database for storing document embeddings","vectorStore":"Vector Store","embedding":"Embedding","averageSize":"Average Size","builtinExtractors":"Built-in Extractors","featureEmbeddingDesc":"Text embedding model for converting text to vectors","featureDedup":"Dedup Engine","featureDedupDesc":"Detects and removes duplicate/similar documents","featureChunker":"Chunker","featureChunkerDesc":"Splits documents into retrievable semantic chunks","globalSearch":"Global Search","projectSearch":"Project Search","autoIndex":"Auto Index","enabled":"Enabled","disabled":"Disabled","parentChunks":"Parent Chunks","childChunks":"Child Chunks","parentChunkId":"Parent ID","chunkIndex":"Chunk Index","chunkType":"Type","sectionOrRange":"Section / Range","chunkContent":"Content","parentChunkHint":"A parent chunk is the context bundle of child chunks with the same parentId. If a parent contains only one child, identical content in both tables is expected.","fileDetailLoadFailed":"Failed to load file details","openFileRequested":"Open file requested","openDirectoryRequested":"Open directory requested","table":"Table","sheet":"Sheet","header":"Header","rows":"Rows","columns":"Columns","formulaCount":"Formulas","mergeCount":"Merged Cells","columnName":"Column Name","tableGridPreview":"Table Grid Preview","drawing":"Drawing","layer":"Layer","entityType":"Entity Type","blockSymbol":"Block/Symbol","productPart":"Product/Part","material":"Material","entityName":"Entity Name","layerTogglePreview":"Layer Toggle / Drawing Preview","type":"Type","name":"Name","dataPath":"Data Path","path":"Path","value":"Value","pageNumber":"Page","ocrText":"OCR Text","openExpand":"Expand","index":"Index","tokens":"Tokens","section":"Section","backToFileList":"Back to File List","fileDetailTitle":"File Details","fileDetailDesc":"View parsing results, drawing/table/data structured fields, parent chunks, and child chunks.","copySourcePath":"Copy Source Path","copyDirectory":"Copy Directory","originalFile":"Original File","directory":"Directory","detailFilter":"Detail Filter","detailFilterPlaceholder":"Filter rowRange, layers, entities, data paths, sections, and chunk content","fileReindexed":"File index rebuilt","copied":"Copied","rowPrefix":"Row","ocrPdf":"OCR/PDF","ocrRecommended":"OCR Recommended","ocrReason":"OCR Reason","ocrProvider":"OCR Engine","ocrLanguages":"OCR Languages","ocrTextLength":"OCR Text Length","pdfPageCount":"PDF Pages","pdfTextPages":"PDF Text Pages","pdfOcrAugmented":"PDF OCR Augmented","pdfOcrPages":"PDF OCR Pages","pdfFailedPages":"PDF Failed Pages","pdfPageOcrSupported":"PDF Page OCR Supported","pdfOcrPageCount":"PDF OCR Page Count","pdfOcrPageLimit":"PDF OCR Page Limit","pdfRenderer":"PDF Renderer","imagePreprocessor":"Image Preprocessor","selectFile":"Please select a file","reOcr":"Re-run OCR","reindexFile":"Rebuild File Index","basicInfo":"Basic Info","status":"Status","extractionMode":"Extraction Mode","contentCoverage":"Content Coverage","textLength":"Text Length","structuredInfo":"Structured Info","chunkCount":"Chunks","parentMatches":"Parent Matches","childMatches":"Child Matches","filterTerm":"Filter","searchTitle":"Knowledge Base Search","searchDesc":"Inspect hybrid retrieval, parent backfill, chunk sources, and score details. The document workspace uses the same retrieval pipeline to automatically recall chapter evidence.","goToDocuments":"Open Document Workspace","autoSearchFirst":"Automatic retrieval first, manual confirmation second","autoSearchFirstDesc":"The document workspace automatically retrieves evidence by chapter. Copy file paths as advanced priority evidence only when official documents, drawings, or tables must be specified.","searchContentPlaceholder":"Enter knowledge base content to search","searchAction":"Search","searchFailed":"Search failed","recallWeightTuning":"Recall Weight Tuning","debugPanel":"Retrieval Debug Panel","originalQuery":"Original Query","reranker":"Reranker","rewrittenQueries":"Query Rewrites","recallCounts":"Recall Counts","recallWeights":"Recall Weights","searchResults":"Search Results","noSearchResults":"No results","resultIndex":"No.","rowRange":"Rows","copyAsPriorityEvidence":"Copy as Priority Evidence","copyPriorityEvidenceSuccess":"File path copied. Paste it into advanced priority evidence only when manual evidence selection is required.","expand":"Expand","weights":{"keyword":"Keyword Weight","vector":"Vector Weight","rewrite":"Rewrite Weight","hybridBonus":"Hybrid Bonus"},"recallSources":{"keyword":"Keyword Retrieval","vector":"Vector Retrieval","rewrite":"Query Rewrite","hybrid":"Hybrid Retrieval","rerank":"Rerank"},"scopes":{"project":"Current Project","global":"Global"},"scoreDetails":{"keywordScore":"Keyword Score","bm25Score":"BM25 Score","vectorScore":"Vector Score","rerankBoost":"Rerank Boost","hybridScore":"Hybrid Score"}},"models":{"title":"Model Configuration","description":"Manage LLM models and tier assignments","modelList":"Model List","addModel":"Add Model","editModel":"Edit Model","providerName":"Provider Name","modelName":"Model Name","apiKey":"API Key","baseUrl":"Base URL","protocol":"Protocol","testConnection":"Test Connection","testing":"Testing...","connected":"Connected","connectionFailed":"Connection Failed","noProviders":"No models yet. Add one to get started.","modelTiers":"Model Tier Assignment","tierReader":"Reader (Read-only)","tierReaderDesc":"Handles low-risk, read-only, and cost-sensitive work such as reading files, searching the knowledge base, text search, and context organization. Prefer fast, inexpensive models with stable long-context support.","tierReasoning":"Reasoning (Analysis)","tierReasoningDesc":"Handles deeper analysis, planning, code understanding, and multi-step reasoning. Prefer models with stronger reasoning quality and reliability.","tierAction":"Action (Write/Execute)","tierActionDesc":"Handles side-effect operations such as writing files, changing code, running commands, and calling external tools. Prefer reliable models with strong instruction-following and verified behavior.","activeModel":"Active Model","deleteProvider":"Delete","deleteProviderConfirm":"Are you sure you want to delete this model and all its configs?","modelNamePlaceholder":"e.g. gpt-4o / deepseek-chat","selectModelPlaceholder":"No model selected","apiKeyEditHint":"Configured keys are shown as a masked value. Focus the field to enter a new key; the mask cannot be copied. Leave empty or keep the mask to avoid changes.","apiKeyEditPlaceholder":"Enter a new API key, or leave empty to keep current","embeddingConfig":"Embedding Configuration","embeddingProvider":"Embedding Provider","embeddingProviderHash":"Local Semantic Embedding","embeddingProviderOpenAI":"OpenAI-compatible Embedding","embeddingHint":"Embedding is used for knowledge base vector retrieval. After changing the embedding model or dimensions, reindex the knowledge base.","model":"Model","dimensions":"Dimensions","dimensionsPlaceholder":"e.g. 1024","none":"None","active":"Active","localRecommended":"Local (Recommended)","externalAdvanced":"External (Advanced)","status":"Status","localHash":"Local Semantic Embedding","openAICompatible":"OpenAI-compatible","saveEmbedding":"Save Embedding Config","testEmbedding":"Test Embedding","embeddingApiKeyHint":"Leave empty or keep the masked value to avoid changing the key","optional":"Optional","save":"Save","cancel":"Cancel","webEnhancement":"Web Enhancement","webEnhancementDesc":"Disabled by default. When enabled, the system will search public standards, policies, and general technical data to improve the accuracy of measures. Web data will not override local project facts.","webEnhancementEnabled":"Web Enhancement Enabled","webEnhancementDisabled":"Web Enhancement Disabled","maxQueriesPerChapter":"Max Queries Per Chapter","maxResultsPerQuery":"Max Results Per Query","directEndpoint":"Direct Endpoint","directEndpointDesc":"Base URL is the complete endpoint address","capabilities":"Capabilities","anthropic":"Anthropic","google":"Google","ollama":"Ollama","openRouter":"OpenRouter","imageGeneration":"Image Generation","imageUnderstanding":"Image Understanding","fileUnderstanding":"File Understanding","audioCapability":"Audio","videoCapability":"Video","localEmbedding":"Local Embedding"},"prompt":{"title":"Prompt Management","description":"Manage CUSTOMIZE.md system prompt files per project","filePath":"File Path","lastModified":"Last Modified","hasFile":"Configured","noFile":"Not Configured","noProjects":"No projects found. Initialize a Customize Agent project first.","promptName":"Prompt Name","customPrompt":"My Prompts","currentProject":"Current Project","otherProjects":"Other Projects","allPrompts":"All Prompts","promptStatus":"Prompt Status","selected":"Selected","unselected":"Unselected","hasFileStatus":"Has File","missingFileStatus":"Missing File","sortByName":"Name A-Z","sortByMtime":"Recently Modified","sortBySource":"Source","sortBySelected":"Selected First","groupNav":"Group Navigation","detailPreview":"Detail Preview","noMatchDesc":"No matching prompts found. Please try different keywords or clear filters.","noPromptInGroup":"No prompts in current group","searchPrompt":"Search name, content, path...","import":"Import","exportFiltered":"Export Filtered","createPrompt":"Create Prompt","exportSelected":"Export Selected","batchSelect":"Batch Select","cancelSelect":"Cancel Select","clearSelect":"Clear Selection","aiPromptAssistant":"AI Prompt Assistant","clearHistory":"Clear History","generating":"Generating","canConverse":"Conversational Optimization","mentionRecallHint":"Type @ to recall knowledge files, then describe your optimization goal","apply":"Apply","aiAnalyzing":"AI is analyzing and generating content...","recallKbFiles":"Recall Knowledge Files","recallLimitHint":"Supports file name and content search, recalls up to 3 files","inputAtKeyword":"Type @keyword","loadingKbFiles":"Loading knowledge files...","noRecallableKbFiles":"No knowledge files available to recall","searchingKbContent":"Searching knowledge content...","noMatchingKbFiles":"No matching knowledge files, try another keyword","continueSearchingKb":"Continuing to search for content matches...","unclassified":"Unclassified","unknownFormat":"Unknown Format","contentMatch":"Content Match","diskFile":"Disk File","fileMatch":"File Match","mentionRecallPlaceholder":"Type @ to recall knowledge files, then describe goal...","send":"Send"},"assets":{"description":"Manage documents, images, and attachments generated by template runs. Generated results are stored only in generated assets and are not added to the knowledge base.","total":"{count} assets","deleteSelected":"Delete Selected {count}","deleteAll":"Delete All","empty":"No generated assets","resource":"Resource","path":"Path","source":"Source","usedDocuments":"Used Documents","updatedAt":"Updated At","actions":"Actions","copyPath":"Copy Path","openFile":"Open File","openDirectory":"Open Directory","copiedPath":"Path copied","operationFailed":"Operation failed","deleteAllConfirm":"Delete all assets?","deleteSelectedConfirm":"Delete {count} selected assets?","deleteIrreversible":"This action cannot be undone.","deleted":"Deleted {count} assets","batchDeleteFailed":"Batch delete failed","sourceKnowledgeBase":"Knowledge Base","sourceGenerated":"AI Generated","sourceUploaded":"Uploaded","sourceExternalUrl":"External URL"},"logs":{"monitorSystem":"Monitor system exceptions, API errors, and runtime issues","searchLogs":"Search logs...","refresh":"Refresh","clear":"Clear","clearConfirm":"Are you sure you want to clear all error logs?","logStorageInfo":"Logs are stored locally in","maxLoaded":"Max 500 entries loaded.","noLogsFound":"No logs found","loadFailed":"Failed to load logs","time":"Time","level":"Level","source":"Source","message":"Message","requestId":"Req ID","function":"Function","requestContext":"Request Context","metadata":"Metadata","stackTrace":"Stack Trace"},"settings":{"title":"System Settings","description":"Manage interface preferences and view system overview","language":"Interface Language","languageDesc":"Select the language for the system interface","theme":"Appearance Theme","themeDesc":"Adjust light and dark themes","light":"Light","dark":"Dark","system":"System","serverStatus":"Server Status","serverStatusDesc":"Resource usage and health","status":"Status","healthy":"Healthy","unknown":"Unknown","uptime":"Uptime","days":"days","hours":"hours","minutes":"mins","cpu":"CPU","cores":"Cores","memory":"Memory Usage","embeddingConfig":"Embedding Config","embeddingConfigDesc":"Vector DB configurations","provider":"Provider","model":"Model","apiKey":"API Key","configured":"Configured","none":"None","dimensions":"Dimensions","localData":"Local Data & Storage","localDataDesc":"All data is stored locally on your machine","directory":"Directory","knowledgeBase":"Knowledge Base","localVectors":"Local Vectors","tasks":"Total Tasks","tokens":"Total Tokens"},"documents":{"title":"Workflow Templates","description":"Generate, edit, and validate business documents from templates and the local knowledge base","templateLibrary":"Template Library","workflow":"Template Workflow","template":"Template","selected":"Selected","boundPrompts":"Bound Prompts","boundFiles":"Bound Knowledge Files","boundPromptsRequired":"Select prompts","boundFilesRequired":"Select knowledge files","promptRole":"Prompt Role","fileRole":"File Role","manageRoles":"Manage Roles","roleEditor":"Role Editor","roleType":"Role Type","roleName":"Role Name","roleDescription":"Role Description","addPromptBinding":"Add Prompt Binding","addFileBinding":"Add File Binding","structuredFacts":"Structured Facts","exportGate":"Export Gate","executionStages":"Execution Stages","executionStatus":"Execution Status","flowPrepare":"Prepare Config","flowPrepareDesc":"Load template, project role config, file roles, and prompt roles","flowPrepareDone":"Config loaded","flowFactExtraction":"Fact Extraction","flowFactExtractionDesc":"Extract JSON facts and table structures by file processing type","flowChapterGeneration":"Chapter Generation","flowChapterGenerationDesc":"Generate chapter drafts from evidence, facts, and prompts","flowValidation":"Strict Validation","flowValidationDesc":"Check fact completeness, source traceability, and chapter evidence","flowFormatting":"Formal Formatting","flowFormattingDesc":"Generate cover, table of contents, page breaks, and formal document structure","flowDone":"Completed","flowDoneDesc":"Generation completed; ready for editing and export","flowGateFailed":"Generation completed, but export gate failed. Check validation results","projectRoleConfig":"Project Role Config","documentSpec":"Document Spec Package","documentSpecPlaceholder":"Select a document spec package","exportDocx":"Export Word","projectRoleConfigRequired":"Select a project role config","noRoleConfig":"No project role config bound","evidenceLimit":"Evidence per Chapter","requirement":"Generation Requirement","requirementPlaceholder":"Example: Generate a construction organization design draft from uploaded tender files, drawings, and BOQ sheets.","generate":"Generate","editor":"Generate / Editor","edit":"Edit","chapters":"Chapters","sources":"Sources","missingItems":"Missing Items","validation":"Validation","evidenceCount":"Evidence Count","missingCount":"Missing Facts","downloadMarkdown":"Download Markdown","exportHtml":"Export HTML","exportPdf":"Export PDF","saveDraft":"Save Draft","draftHistory":"Draft History","regenerateChapter":"Regenerate Chapter","newTemplate":"New Template","templateEditor":"Template Editor","templateName":"Template Name","templateCategory":"Template Category","templateDescription":"Template Description","outputTitle":"Output Title","chapter":"Chapter","chapterTitle":"Chapter Title","chapterPurpose":"Chapter Purpose","chapterQueries":"Search Queries","requiredFacts":"Required Facts","addChapter":"Add Chapter","builtIn":"Built-in","deleteTemplateConfirm":"Delete this template?","noDraft":"Select a template and generate a draft"},"specs":{"title":"Document Spec Packages","description":"Configure fact fields, chapter rules, and executable gate rules. Both system and custom gate types participate in validation.","newSpec":"New Spec","list":"Spec List","editor":"Spec Editor","name":"Spec Name","specDescription":"Description","wordTemplatePath":"Word Template Path","facts":"Fact Fields","chapters":"Chapter Rules","gates":"Gate Rules","factName":"Field Name","factType":"Field Type","required":"Required","sourceRoles":"Source File Roles","extractionHint":"Extraction Hint","validationHint":"Validation Hint","addFact":"Add Fact Field","chapterTitle":"Chapter Title","order":"Order","minWords":"Min Words","requiredFacts":"Required Facts","requiredFileRoles":"Required File Roles","requiredPromptRoles":"Required Prompt Roles","generationHint":"Generation Hint","addChapter":"Add Chapter Rule","gateName":"Gate Name","addGate":"Add Gate Rule","plainGuideTitle":"Plain explanation: what is a document spec package?","plainGuideDesc":"A document spec package is not a fixed template. It is a configurable production rule set: fact fields define what must be known, chapter rules define required chapters and constraints, and gate rules define checks before generation and export. Users can create custom gate types by choosing a validation subject and operator; saved custom types run just like system gate types."},"guide":{"title":"Guide: Run the Full Document Generation Flow","description":"This guide walks users through model setup, uploading their own files, prompts, role configuration, spec packages, template creation, generation, validation, and export.","fullFlow":"Full Flow","stepModel":"1. Configure Models","stepModelDesc":"Open Model Config, add providers and models, set an active model, and run health checks.","stepKnowledge":"2. Upload Knowledge Files","stepKnowledgeDesc":"Upload tender files, project descriptions, tables, drawings, specifications, and standards, then wait for indexing.","stepPrompt":"3. Create Prompts","stepPromptDesc":"Create prompts for fact extraction, chapter generation, validation, and formatting.","stepRole":"4. Configure Roles","stepRoleDesc":"Create file roles and prompt roles, bind resources, then create an ordered project role config.","stepTemplate":"5. Create Template","stepTemplateDesc":"Create a template in Workflow Templates and bind a project role config.","stepGenerate":"6. Generate","stepGenerateDesc":"Click Generate and observe the execution status card for progress.","stepReview":"7. Review","stepReviewDesc":"Review facts, sources, missing items, validation, export gate, and execution stages.","stepExport":"8. Export","stepExportDesc":"Export Markdown, HTML, or PDF. PDF export enforces the export gate.","roleDesign":"Role Design","roleDesignDesc":"Roles connect user-defined names to executable system behavior through execution or processing types.","fileRole":"File Role","fileRoleDesc":"A file role binds a knowledge file and declares its processing type.","promptRole":"Prompt Role","promptRoleDesc":"A prompt role binds a prompt and declares its execution type.","projectConfig":"Project Role Config","projectConfigDesc":"A project role config combines and orders file roles and prompt roles. Templates bind configs directly.","generationEngine":"Generation Engine","generationEngineDesc":"The engine organizes resources by roles and runs fact extraction, table parsing, generation, validation, and formatting.","prepareTitle":"How should I prepare files?","prepareContent":"Prepare project facts, rules, tables, drawings, and specifications. Make table headers clear and include drawing descriptions when possible.","rolesTitle":"How should roles be named?","rolesContent":"Use business names such as Tender Fact Source, Labor Plan Table, or Chapter Generation Prompt. System behavior depends on types, not names.","templateTitle":"How should templates be created?","templateContent":"Templates define document entry and output title. Bind a project role config instead of selecting files and prompts directly.","generateTitle":"How do I see progress?","generateContent":"The generation page shows an execution status card. The current step is highlighted and final backend stages appear after completion.","qaTitle":"How do I know whether export is allowed?","qaContent":"Check the export gate. PDF export should only proceed when there are no blocking errors and facts/sources/chapters are complete."},"roles":{"title":"Role Config","description":"Create file roles and prompt roles, then combine them into ordered project role configs for templates","newFileRole":"New File Role","newPromptRole":"New Prompt Role","newConfig":"New Project Config","fileRoles":"File Roles","promptRoles":"Prompt Roles","configs":"Project Role Configs","roleEditor":"Role Editor","configEditor":"Project Role Config Editor","roleType":"Role Type","fileRole":"File Role","promptRole":"Prompt Role","roleName":"Role Name","roleDescription":"Role Description","bindFile":"Bind Knowledge File","bindPrompt":"Bind Prompt","executionType":"Execution Type","processingType":"Processing Type","factExtraction":"Fact Extraction","chapterGeneration":"Chapter Generation","validation":"Validation","formatting":"Formatting","llmReview":"LLM Review","reference":"Reference","ruleFile":"Rule File","tableFile":"Table Data","drawingFile":"Drawing File","specificationFile":"Specification File","configName":"Config Name","configDescription":"Config Description","addRole":"Add Role","plainGuideTitle":"Plain explanation: what are file roles and prompt roles?","plainGuideDesc":"File roles label what files are used for. Rule files define requirements; project fact files contain real project info; table data means spreadsheets; drawing files mean drawing catalogs/descriptions; specification files are standards; references are only supporting materials. Prompt roles label when prompts are used. A role can bind multiple files or prompts when one purpose needs multiple resources.","executionTypeHelp":"Which stage this prompt is used in: fact extraction, chapter generation, validation, formatting, or reference.","processingTypeHelp":"What this file does in generation: rules, facts, tables, drawings, specifications, or references.","multiBindFileHelp":"Multiple files are allowed when one purpose has multiple source files.","multiBindPromptHelp":"Multiple prompts are allowed when one stage needs multiple prompt rules.","noFileRoleSelected":"No file role selected","noPromptRoleSelected":"No prompt role selected","bindPromptCount":"Bind {count} Prompts"},"common":{"save":"Save","cancel":"Cancel","confirm":"Confirm","delete":"Delete","edit":"Edit","add":"Add","search":"Search","loading":"Loading...","error":"Something went wrong","success":"Success","retry":"Retry","close":"Close","back":"Back","more":"More","noData":"No data","bytes":"bytes","kb":"KB","mb":"MB","gb":"GB","unknown":"Unknown","never":"Never"},"refs":{"title":"Template Reference Library","description":"Upload outstanding winning bids as quality benchmarks. The system parses quality profiles (parameter density, process chains, structure) and benchmarks generated documents by project type. References are used ONLY for quality benchmarking and structure guidance, never as project facts.","uploadTitle":"Click or drag files to upload","uploadHint":"PDF / Word supported. Upload multiple references of different project types to accumulate","uploading":"Uploading and parsing…","uploaded":"Reference added and profile parsed","uploadFailed":"Upload failed","operationFailed":"Operation failed","projectType":"Project type","autoClassify":"Auto-classify if empty","statusParsing":"Parsing…","statusFailed":"Parse failed","setPrimary":"Set as primary","unsetPrimary":"Unset primary","changeType":"Change to","typeChanged":"Type updated","delete":"Delete","deleteConfirm":"Delete this reference? The original file will also be removed","paramDensity":"Param density","arrowChain":"Process chain coverage","duplication":"Duplication rate","tables":"Tables","sections":"Sections","sectionSubsection":"Sections/Subsections","subsections":"Subsections","subitems":"Sub-items","words":"Words","more":"Expand","noReferences":"No references of this type yet","redLineTitle":"Guardrail","redLine":"References are stored in isolation, never indexed into the knowledge base, never used as generation facts.","profileTitle":"Type Profile","profileSamples":"samples","profileUpdated":"Updated at","profileDetail":"View Profile Details","profileDetailTitle":"Type Profile Details","profileMetrics":"Metric Ranges (min - avg - max)","profileTypicalHeadings":"Typical Chapter Structure (sample coverage)","profileCommonTables":"Common Tables","profileFrequentParams":"Frequent Parameters","profileSources":"Profile Source Files","profileNoSamples":"No samples yet. Upload reference files to accumulate the profile.","profilePrimaryBadge":"Primary","totalSamples":"Valid samples","coveredTypes":"Types covered","primaryCount":"Primary refs","uploadSection":"Upload References","autoClassified":"Auto-classified","fileLibrary":"File Library","allFiles":"All","profileSubtitle":"Cumulative type-level profile, enriched with every reference","headingPreview":"Chapter structure","avgSectionWords":"Avg words per section"}}'),eU=(0,o.createContext)(null);function eX(){let e=(0,o.useContext)(eU);if(!e)throw Error("useAppLocale must be used inside Layout");return e}function eK(e,t){let r=t.split(".").reduce((e,t)=>{if(e&&"object"==typeof e&&t in e)return e[t]},e);return"string"==typeof r?r:t}function eG(e){let{messages:t}=eX();return(0,o.useCallback)(r=>{if(!e)return eK(t,r);let n="".concat(e,".").concat(r),o=eK(t,n);return o===n?eK(t,r):o},[t,e])}let eQ={"zh-CN":eq,"en-US":eV};function eY(e){var t;let{children:r}=e,{resolvedTheme:a}=(0,s.D)(),f=(0,l.useRouter)(),[h,g]=(0,o.useState)("zh-CN"),[b,y]=(0,o.useState)(!1),v="dark"===a,$=null!=(t=eQ[h])?t:eQ["zh-CN"];(0,o.useEffect)(()=>{g(function(){if("undefined"==typeof document)return"zh-CN";let e=document.cookie.match(/NEXT_LOCALE=([^;]+)/);return(null==e?void 0:e[1])||"zh-CN"}())},[]),(0,o.useEffect)(()=>{m().configure({showSpinner:!1,minimum:.1});let e=()=>{y(!0),m().start()},t=()=>{y(!1),m().done()};return f.events.on("routeChangeStart",e),f.events.on("routeChangeComplete",t),f.events.on("routeChangeError",t),()=>{f.events.off("routeChangeStart",e),f.events.off("routeChangeComplete",t),f.events.off("routeChangeError",t)}},[f]);let x=(0,o.useCallback)(e=>{document.cookie="NEXT_LOCALE=".concat(e,";path=/;max-age=31536000;samesite=lax"),g(e)},[]),w=(0,o.useMemo)(()=>({locale:h,setLocale:x,messages:$}),[h,x,$]),C=(0,o.useMemo)(()=>({algorithm:v?O.darkAlgorithm:O.defaultAlgorithm,token:{colorPrimary:v?"#0a84ff":"#007aff",colorInfo:v?"#0a84ff":"#007aff",colorSuccess:v?"#30d158":"#34c759",colorWarning:v?"#ff9f0a":"#ff9500",colorError:v?"#ff453a":"#ff3b30",colorBgBase:v?"#1c1c1e":"#f5f5f7",colorBgContainer:v?"rgba(44,44,46,0.78)":"rgba(255,255,255,0.78)",colorBgElevated:v?"rgba(44,44,46,0.92)":"rgba(255,255,255,0.94)",colorBorder:v?"rgba(255,255,255,0.12)":"rgba(60,60,67,0.16)",colorText:v?"#f5f5f7":"#1d1d1f",colorTextSecondary:v?"#98989d":"#6e6e73",fontFamily:"var(--fontSans)",fontSize:14,borderRadius:14,borderRadiusLG:20,borderRadiusSM:10,controlHeight:36,lineWidth:1,boxShadow:v?"0 8px 24px rgba(0,0,0,0.24)":"0 8px 24px rgba(0,0,0,0.06)",boxShadowSecondary:v?"0 4px 12px rgba(0,0,0,0.2)":"0 4px 12px rgba(0,0,0,0.04)",motionDurationMid:"0.2s",motionEaseInOut:"cubic-bezier(0.25, 0.1, 0.25, 1)"},components:{Card:{borderRadiusLG:20,paddingLG:24,headerFontSize:13,headerFontSizeSM:12},Button:{borderRadius:14,borderRadiusLG:18,borderRadiusSM:10,fontWeight:600,primaryShadow:"var(--shadowButton)"},Input:{borderRadius:14,controlHeight:36,activeShadow:"0 0 0 3px rgba(0,122,255,0.12)"},Select:{borderRadius:14},Modal:{borderRadiusLG:20,titleFontSize:17,fontWeightStrong:700},Tag:{borderRadiusSM:100,defaultBg:v?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.04)"},Table:{borderRadiusLG:20,headerBg:v?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.02)",headerColor:"var(--colorTextSecondary)",headerSplitColor:"transparent",headerBorderRadius:12},Spin:{dotSize:28,dotSizeLG:40},Upload:{borderRadiusLG:20}}}),[v]),E="en-US"===h?p.A:u.A;return(0,n.jsx)(eU.Provider,{value:w,children:(0,n.jsx)(c.Ay,{theme:C,locale:E,children:(0,n.jsxs)(d.A,{children:[(0,n.jsx)(i(),{children:(0,n.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"})}),(0,n.jsx)(et,{}),(0,n.jsxs)("div",{className:"mainContent",children:[(0,n.jsx)(eW,{}),(0,n.jsx)("main",{className:"mainInner".concat(b?" pageTransitioning":""),children:r})]})]})})})}function eJ(e){let{children:t}=e;return(0,n.jsx)(s.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,disableTransitionOnChange:!0,children:(0,n.jsx)(eY,{children:t})})}},47188:(e,t,r)=>{"use strict";r.d(t,{A:()=>p});var n=r(97109),o=r(82865),a=r(26047),i=r(67189),l=r(3638),s=r(52690),c=r(74567);let d=({children:e})=>{let{getPrefixCls:t}=n.useContext(c.QO),r=t();return n.isValidElement(e)?n.createElement(i.Ay,{visible:!0,motionName:`${r}-fade`,motionAppear:!0,motionEnter:!0,motionLeave:!1,removeOnLeave:!1},({style:t,className:r})=>(0,s.Ob)(e,e=>({className:(0,l.$)(e.className,r),style:{...e.style,...t}}))):e},u=[null,null],p=({children:e})=>n.createElement(o.xR,{postTriggerProps:e=>{let{id:t,builtinPlacements:r,popup:o}=e,i=(0,a.Tn)(o)?o():o,l=function(e){if(u[0]!==e){let t={};Object.keys(e).forEach(r=>{t[r]={...e[r],dynamicInset:!1}}),u[0]=e,u[1]=t}return u[1]}(r);return{...e,getPopupContainer:null,arrow:!1,popup:n.createElement(d,{key:t},i),builtinPlacements:l}}},e)},47252:(e,t,r)=>{"use strict";r.d(t,{Y:()=>s});let n={aliceblue:"9ehhb",antiquewhite:"9sgk7",aqua:"1ekf",aquamarine:"4zsno",azure:"9eiv3",beige:"9lhp8",bisque:"9zg04",black:"0",blanchedalmond:"9zhe5",blue:"73",blueviolet:"5e31e",brown:"6g016",burlywood:"8ouiv",cadetblue:"3qba8",chartreuse:"4zshs",chocolate:"87k0u",coral:"9yvyo",cornflowerblue:"3xael",cornsilk:"9zjz0",crimson:"8l4xo",cyan:"1ekf",darkblue:"3v",darkcyan:"rkb",darkgoldenrod:"776yz",darkgray:"6mbhl",darkgreen:"jr4",darkgrey:"6mbhl",darkkhaki:"7ehkb",darkmagenta:"5f91n",darkolivegreen:"3bzfz",darkorange:"9yygw",darkorchid:"5z6x8",darkred:"5f8xs",darksalmon:"9441m",darkseagreen:"5lwgf",darkslateblue:"2th1n",darkslategray:"1ugcv",darkslategrey:"1ugcv",darkturquoise:"14up",darkviolet:"5rw7n",deeppink:"9yavn",deepskyblue:"11xb",dimgray:"442g9",dimgrey:"442g9",dodgerblue:"16xof",firebrick:"6y7tu",floralwhite:"9zkds",forestgreen:"1cisi",fuchsia:"9y70f",gainsboro:"8m8kc",ghostwhite:"9pq0v",goldenrod:"8j4f4",gold:"9zda8",gray:"50i2o",green:"pa8",greenyellow:"6senj",grey:"50i2o",honeydew:"9eiuo",hotpink:"9yrp0",indianred:"80gnw",indigo:"2xcoy",ivory:"9zldc",khaki:"9edu4",lavenderblush:"9ziet",lavender:"90c8q",lawngreen:"4vk74",lemonchiffon:"9zkct",lightblue:"6s73a",lightcoral:"9dtog",lightcyan:"8s1rz",lightgoldenrodyellow:"9sjiq",lightgray:"89jo3",lightgreen:"5nkwg",lightgrey:"89jo3",lightpink:"9z6wx",lightsalmon:"9z2ii",lightseagreen:"19xgq",lightskyblue:"5arju",lightslategray:"4nwk9",lightslategrey:"4nwk9",lightsteelblue:"6wau6",lightyellow:"9zlcw",lime:"1edc",limegreen:"1zcxe",linen:"9shk6",magenta:"9y70f",maroon:"4zsow",mediumaquamarine:"40eju",mediumblue:"5p",mediumorchid:"79qkz",mediumpurple:"5r3rv",mediumseagreen:"2d9ip",mediumslateblue:"4tcku",mediumspringgreen:"1di2",mediumturquoise:"2uabw",mediumvioletred:"7rn9h",midnightblue:"z980",mintcream:"9ljp6",mistyrose:"9zg0x",moccasin:"9zfzp",navajowhite:"9zest",navy:"3k",oldlace:"9wq92",olive:"50hz4",olivedrab:"472ub",orange:"9z3eo",orangered:"9ykg0",orchid:"8iu3a",palegoldenrod:"9bl4a",palegreen:"5yw0o",paleturquoise:"6v4ku",palevioletred:"8k8lv",papayawhip:"9zi6t",peachpuff:"9ze0p",peru:"80oqn",pink:"9z8wb",plum:"8nba5",powderblue:"6wgdi",purple:"4zssg",rebeccapurple:"3zk49",red:"9y6tc",rosybrown:"7cv4f",royalblue:"2jvtt",saddlebrown:"5fmkz",salmon:"9rvci",sandybrown:"9jn1c",seagreen:"1tdnb",seashell:"9zje6",sienna:"6973h",silver:"7ir40",skyblue:"5arjf",slateblue:"45e4t",slategray:"4e100",slategrey:"4e100",snow:"9zke2",springgreen:"1egv",steelblue:"2r1kk",tan:"87yx8",teal:"pds",thistle:"8ggk8",tomato:"9yqfb",turquoise:"2j4r4",violet:"9b10u",wheat:"9ld4j",white:"9zldr",whitesmoke:"9lhpx",yellow:"9zl6o",yellowgreen:"61fzm"},o=Math.round;function a(e,t){let r=e.replace(/^[^(]*\((.*)/,"$1").replace(/\).*/,"").match(/\d*\.?\d+%?/g)||[],n=r.map(e=>parseFloat(e));for(let e=0;e<3;e+=1)n[e]=t(n[e]||0,r[e]||"",e);return r[3]?n[3]=r[3].includes("%")?n[3]/100:n[3]:n[3]=1,n}let i=(e,t,r)=>0===r?e:e/100;function l(e,t){let r=t||255;return e>r?r:e<0?0:e}class s{isValid=!0;r=0;g=0;b=0;a=1;_h;_hsl_s;_hsv_s;_l;_v;_max;_min;_brightness;constructor(e){function t(t){return t[0]in e&&t[1]in e&&t[2]in e}if(e)if("string"==typeof e){let t=e.trim();function r(e){return t.startsWith(e)}if(/^#?[A-F\d]{3,8}$/i.test(t))this.fromHexString(t);else if(r("rgb"))this.fromRgbString(t);else if(r("hsl"))this.fromHslString(t);else if(r("hsv")||r("hsb"))this.fromHsvString(t);else{let e=n[t.toLowerCase()];e&&this.fromHexString(parseInt(e,36).toString(16).padStart(6,"0"))}}else if(e instanceof s)this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this._h=e._h,this._hsl_s=e._hsl_s,this._hsv_s=e._hsv_s,this._l=e._l,this._v=e._v;else if(t("rgb"))this.r=l(e.r),this.g=l(e.g),this.b=l(e.b),this.a="number"==typeof e.a?l(e.a,1):1;else if(t("hsl"))this.fromHsl(e);else if(t("hsv"))this.fromHsv(e);else throw Error("@ant-design/fast-color: unsupported input "+JSON.stringify(e))}setR(e){return this._sc("r",e)}setG(e){return this._sc("g",e)}setB(e){return this._sc("b",e)}setA(e){return this._sc("a",e,1)}setHue(e){let t=this.toHsv();return t.h=e,this._c(t)}getLuminance(){function e(e){let t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}let t=e(this.r);return .2126*t+.7152*e(this.g)+.0722*e(this.b)}getHue(){if(void 0===this._h){let e=this.getMax()-this.getMin();0===e?this._h=0:this._h=o(60*(this.r===this.getMax()?(this.g-this.b)/e+6*(this.g<this.b):this.g===this.getMax()?(this.b-this.r)/e+2:(this.r-this.g)/e+4))}return this._h}getSaturation(){return this.getHSVSaturation()}getHSVSaturation(){if(void 0===this._hsv_s){let e=this.getMax()-this.getMin();0===e?this._hsv_s=0:this._hsv_s=e/this.getMax()}return this._hsv_s}getHSLSaturation(){if(void 0===this._hsl_s){let e=this.getMax()-this.getMin();if(0===e)this._hsl_s=0;else{let t=this.getLightness();this._hsl_s=e/255/(1-Math.abs(2*t-1))}}return this._hsl_s}getLightness(){return void 0===this._l&&(this._l=(this.getMax()+this.getMin())/510),this._l}getValue(){return void 0===this._v&&(this._v=this.getMax()/255),this._v}getBrightness(){return void 0===this._brightness&&(this._brightness=(299*this.r+587*this.g+114*this.b)/1e3),this._brightness}darken(e=10){let t=this.getHue(),r=this.getSaturation(),n=this.getLightness()-e/100;return n<0&&(n=0),this._c({h:t,s:r,l:n,a:this.a})}lighten(e=10){let t=this.getHue(),r=this.getSaturation(),n=this.getLightness()+e/100;return n>1&&(n=1),this._c({h:t,s:r,l:n,a:this.a})}mix(e,t=50){let r=this._c(e),n=t/100,a=e=>(r[e]-this[e])*n+this[e],i={r:o(a("r")),g:o(a("g")),b:o(a("b")),a:o(100*a("a"))/100};return this._c(i)}tint(e=10){return this.mix({r:255,g:255,b:255,a:1},e)}shade(e=10){return this.mix({r:0,g:0,b:0,a:1},e)}onBackground(e){let t=this._c(e),r=this.a+t.a*(1-this.a),n=e=>o((this[e]*this.a+t[e]*t.a*(1-this.a))/r);return this._c({r:n("r"),g:n("g"),b:n("b"),a:r})}isDark(){return 128>this.getBrightness()}isLight(){return this.getBrightness()>=128}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}clone(){return this._c(this)}toHexString(){let e="#",t=(this.r||0).toString(16);e+=2===t.length?t:"0"+t;let r=(this.g||0).toString(16);e+=2===r.length?r:"0"+r;let n=(this.b||0).toString(16);if(e+=2===n.length?n:"0"+n,"number"==typeof this.a&&this.a>=0&&this.a<1){let t=o(255*this.a).toString(16);e+=2===t.length?t:"0"+t}return e}toHsl(){return{h:this.getHue(),s:this.getHSLSaturation(),l:this.getLightness(),a:this.a}}toHslString(){let e=this.getHue(),t=o(100*this.getHSLSaturation()),r=o(100*this.getLightness());return 1!==this.a?`hsla(${e},${t}%,${r}%,${this.a})`:`hsl(${e},${t}%,${r}%)`}toHsv(){return{h:this.getHue(),s:this.getHSVSaturation(),v:this.getValue(),a:this.a}}toRgb(){return{r:this.r,g:this.g,b:this.b,a:this.a}}toRgbString(){return 1!==this.a?`rgba(${this.r},${this.g},${this.b},${this.a})`:`rgb(${this.r},${this.g},${this.b})`}toString(){return this.toRgbString()}_sc(e,t,r){let n=this.clone();return n[e]=l(t,r),n}_c(e){return new this.constructor(e)}getMax(){return void 0===this._max&&(this._max=Math.max(this.r,this.g,this.b)),this._max}getMin(){return void 0===this._min&&(this._min=Math.min(this.r,this.g,this.b)),this._min}fromHexString(e){let t=e.replace("#","");function r(e,r){return parseInt(t[e]+t[r||e],16)}t.length<6?(this.r=r(0),this.g=r(1),this.b=r(2),this.a=t[3]?r(3)/255:1):(this.r=r(0,1),this.g=r(2,3),this.b=r(4,5),this.a=t[6]?r(6,7)/255:1)}fromHsl({h:e,s:t,l:r,a:n}){let a=(e%360+360)%360;if(this._h=a,this._hsl_s=t,this._l=r,this.a="number"==typeof n?n:1,t<=0){let e=o(255*r);this.r=e,this.g=e,this.b=e;return}let i=0,l=0,s=0,c=a/60,d=(1-Math.abs(2*r-1))*t,u=d*(1-Math.abs(c%2-1));c>=0&&c<1?(i=d,l=u):c>=1&&c<2?(i=u,l=d):c>=2&&c<3?(l=d,s=u):c>=3&&c<4?(l=u,s=d):c>=4&&c<5?(i=u,s=d):c>=5&&c<6&&(i=d,s=u);let p=r-d/2;this.r=o((i+p)*255),this.g=o((l+p)*255),this.b=o((s+p)*255)}fromHsv({h:e,s:t,v:r,a:n}){let a=(e%360+360)%360;this._h=a,this._hsv_s=t,this._v=r,this.a="number"==typeof n?n:1;let i=o(255*r);if(this.r=i,this.g=i,this.b=i,t<=0)return;let l=a/60,s=Math.floor(l),c=l-s,d=o(r*(1-t)*255),u=o(r*(1-t*c)*255),p=o(r*(1-t*(1-c))*255);switch(s){case 0:this.g=p,this.b=d;break;case 1:this.r=u,this.b=d;break;case 2:this.r=d,this.b=p;break;case 3:this.r=d,this.g=u;break;case 4:this.r=p,this.g=d;break;default:this.g=d,this.b=u}}fromHsvString(e){let t=a(e,i);this.fromHsv({h:t[0],s:t[1],v:t[2],a:t[3]})}fromHslString(e){let t=a(e,i);this.fromHsl({h:t[0],s:t[1],l:t[2],a:t[3]})}fromRgbString(e){let t=a(e,(e,t)=>t.includes("%")?o(e/100*255):e);this.r=t[0],this.g=t[1],this.b=t[2],this.a=t[3]}}},47503:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(97109);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},47802:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(47252),o=r(78012);function a(e,{generateColorPalettes:t,generateNeutralColorPalettes:r}){let{colorSuccess:a,colorWarning:i,colorError:l,colorInfo:s,colorPrimary:c,colorBgBase:d,colorTextBase:u}=e,p=t(c),f=t(a),m=t(i),h=t(l),g=t(s),b=r(d,u),y=t(e.colorLink||e.colorInfo),v=new n.Y(h[1]).mix(new n.Y(h[3]),50).toHexString(),$={};return o.s.forEach(r=>{let n=e[r];if(n){let e=t(n);$[`${r}Hover`]=e[5],$[`${r}Active`]=e[7]}}),{...b,colorPrimaryBg:p[1],colorPrimaryBgHover:p[2],colorPrimaryBorder:p[3],colorPrimaryBorderHover:p[4],colorPrimaryHover:p[5],colorPrimary:p[6],colorPrimaryActive:p[7],colorPrimaryTextHover:p[8],colorPrimaryText:p[9],colorPrimaryTextActive:p[10],colorSuccessBg:f[1],colorSuccessBgHover:f[2],colorSuccessBorder:f[3],colorSuccessBorderHover:f[4],colorSuccessHover:f[4],colorSuccess:f[6],colorSuccessActive:f[7],colorSuccessTextHover:f[8],colorSuccessText:f[9],colorSuccessTextActive:f[10],colorErrorBg:h[1],colorErrorBgHover:h[2],colorErrorBgFilledHover:v,colorErrorBgActive:h[3],colorErrorBorder:h[3],colorErrorBorderHover:h[4],colorErrorHover:h[5],colorError:h[6],colorErrorActive:h[7],colorErrorTextHover:h[8],colorErrorText:h[9],colorErrorTextActive:h[10],colorWarningBg:m[1],colorWarningBgHover:m[2],colorWarningBorder:m[3],colorWarningBorderHover:m[4],colorWarningHover:m[4],colorWarning:m[6],colorWarningActive:m[7],colorWarningTextHover:m[8],colorWarningText:m[9],colorWarningTextActive:m[10],colorInfoBg:g[1],colorInfoBgHover:g[2],colorInfoBorder:g[3],colorInfoBorderHover:g[4],colorInfoHover:g[4],colorInfo:g[6],colorInfoActive:g[7],colorInfoTextHover:g[8],colorInfoText:g[9],colorInfoTextActive:g[10],colorLinkHover:y[4],colorLink:y[6],colorLinkActive:y[7],...$,colorBgMask:new n.Y("#000").setA(.45).toRgbString(),colorWhite:"#fff"}}},48477:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return w},useLinkStatus:function(){return x}});let n=r(26908),o=r(65321),a=n._(r(97109)),i=r(36427),l=r(23331),s=r(41494),c=r(12116),d=r(83353),u=r(99318),p=r(83678),f=r(50603),m=r(79490),h=r(47503);r(81101);let g=new Set;function b(e,t,r,n){if((0,l.isLocalURL)(t)){if(!n.bypassPrefetchedCheck){let o=t+"%"+r+"%"+(void 0!==n.locale?n.locale:"locale"in e?e.locale:void 0);if(g.has(o))return;g.add(o)}e.prefetch(t,r,n).catch(e=>{})}}function y(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}let v=a.default.forwardRef(function(e,t){let r,n,{href:s,as:g,children:v,prefetch:$=null,passHref:x,replace:w,shallow:C,scroll:E,locale:S,onClick:k,onNavigate:A,onMouseEnter:P,onTouchStart:R,legacyBehavior:M=!1,...T}=e;r=v,M&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let O=a.default.useContext(u.RouterContext),F=!1!==$,{href:N,as:j}=a.default.useMemo(()=>{if(!O){let e=y(s);return{href:e,as:g?y(g):e}}let[e,t]=(0,i.resolveHref)(O,s,!0);return{href:e,as:g?(0,i.resolveHref)(O,g):t||e}},[O,s,g]),I=a.default.useRef(N),z=a.default.useRef(j);M&&(n=a.default.Children.only(r));let D=M?n&&"object"==typeof n&&n.ref:t,[B,L,_]=(0,p.useIntersection)({rootMargin:"200px"}),H=a.default.useCallback(e=>{(z.current!==j||I.current!==N)&&(_(),z.current=j,I.current=N),B(e)},[j,N,_,B]),W=(0,h.useMergedRef)(H,D);a.default.useEffect(()=>{O&&L&&F&&b(O,N,j,{locale:S})},[j,N,L,S,F,null==O?void 0:O.locale,O]);let q={ref:W,onClick(e){M||"function"!=typeof k||k(e),M&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),O&&(e.defaultPrevented||function(e,t,r,n,o,a,i,s,c){let{nodeName:d}=e.currentTarget;if(!("A"===d.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,l.isLocalURL)(r)){o&&(e.preventDefault(),location.replace(r));return}e.preventDefault(),(()=>{if(c){let e=!1;if(c({preventDefault:()=>{e=!0}}),e)return}let e=null==i||i;"beforePopState"in t?t[o?"replace":"push"](r,n,{shallow:a,locale:s,scroll:e}):t[o?"replace":"push"](n||r,{scroll:e})})()}}(e,O,N,j,w,C,E,S,A))},onMouseEnter(e){M||"function"!=typeof P||P(e),M&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),O&&b(O,N,j,{locale:S,priority:!0,bypassPrefetchedCheck:!0})},onTouchStart:function(e){M||"function"!=typeof R||R(e),M&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),O&&b(O,N,j,{locale:S,priority:!0,bypassPrefetchedCheck:!0})}};if((0,c.isAbsoluteUrl)(j))q.href=j;else if(!M||x||"a"===n.type&&!("href"in n.props)){let e=void 0!==S?S:null==O?void 0:O.locale;q.href=(null==O?void 0:O.isLocaleDomain)&&(0,f.getDomainLocale)(j,e,null==O?void 0:O.locales,null==O?void 0:O.domainLocales)||(0,m.addBasePath)((0,d.addLocale)(j,e,null==O?void 0:O.defaultLocale))}return M?a.default.cloneElement(n,q):(0,o.jsx)("a",{...T,...q,children:r})}),$=(0,a.createContext)({pending:!1}),x=()=>(0,a.useContext)($),w=v;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48809:(e,t,r)=>{"use strict";r.d(t,{A:()=>a,u:()=>i});var n=r(97109),o=r(26047);let a=(e,t)=>{let r={};return(0,o.Qd)(e)&&(r=e),"boolean"==typeof e&&(r={enabled:e}),void 0===r.closable&&void 0!==t&&(r.closable=t),r},i=(e,t,r,o)=>(0,n.useMemo)(()=>{let n=a(e,o),i=a(t),l={blur:!1,...i,...n,closable:n.closable??o??i.closable??!0},s=l.blur?`${r}-mask-blur`:void 0;return[!1!==l.enabled,{mask:s},!!l.closable]},[e,t,r,o])},48921:(e,t,r)=>{"use strict";let n,o,a,i;r.d(t,{Ay:()=>D,cr:()=>j});var l=r(97109),s=r(15561),c=r(71995),d=r(42644),u=r(26047),p=r(29633),f=r(99381),m=r(56557),h=r(72075);let g=e=>{let{locale:t={},children:r,_ANT_MARK__:n}=e;l.useEffect(()=>(0,m.L)(t?.Modal),[t]);let o=l.useMemo(()=>({...t,exist:!0}),[t]);return l.createElement(h.A.Provider,{value:o},r)};var b=r(79287),y=r(18625),v=r(12754),$=r(9311),x=r(47188),w=r(74567),C=r(6831),E=r(53172),S=r(67189),k=r(7709);let A=l.createContext(!0);function P(e){let t=l.useContext(A),{children:r}=e,[,n]=(0,k.Ay)(),{motion:o}=n,a=l.useRef(!1);return(a.current||(a.current=t!==o),a.current)?l.createElement(A.Provider,{value:o},l.createElement(S.Kq,{motion:o},r)):r}let R=()=>null;var M=r(7961);let T=({iconPrefixCls:e,csp:t})=>(((e,t)=>{let[r,n]=(0,k.Ay)();return(0,s.IV)({theme:r,token:n,hashId:"",path:["ant-design-icons",e],nonce:()=>t?.nonce,layer:{name:"antd"}},()=>(0,M.jz)(e))})(e,t),null),O=["getTargetContainer","getPopupContainer","renderEmpty","input","pagination","form","select","button"];function F(){return n||w.yH}function N(){return o||w.pM}let j=()=>({getPrefixCls:(e,t)=>t||(e?`${F()}-${e}`:F()),getIconPrefixCls:N,getRootPrefixCls:()=>n||F(),getTheme:()=>a,holderRender:i}),I=e=>{let{children:t,csp:r,autoInsertSpaceInButton:n,alert:o,affix:a,anchor:i,app:m,form:h,locale:S,componentSize:k,direction:A,space:M,splitter:F,virtual:N,dropdownMatchSelectWidth:j,popupMatchSelectWidth:I,popupOverflow:z,legacyLocale:D,parentContext:B,iconPrefixCls:L,theme:_,componentDisabled:H,segmented:W,statistic:q,spin:V,calendar:U,carousel:X,cascader:K,collapse:G,typography:Q,checkbox:Y,descriptions:J,divider:Z,drawer:ee,skeleton:et,steps:er,image:en,layout:eo,list:ea,mentions:ei,modal:el,progress:es,result:ec,slider:ed,breadcrumb:eu,masonry:ep,menu:ef,pagination:em,input:eh,inputPassword:eg,inputSearch:eb,textArea:ey,otp:ev,empty:e$,badge:ex,borderBeam:ew,radio:eC,rate:eE,ribbon:eS,switch:ek,transfer:eA,avatar:eP,message:eR,tag:eM,table:eT,card:eO,cardMeta:eF,tabs:eN,timeline:ej,timePicker:eI,upload:ez,notification:eD,tree:eB,colorPicker:eL,datePicker:e_,rangePicker:eH,flex:eW,wave:eq,dropdown:eV,warning:eU,tour:eX,tooltip:eK,popover:eG,popconfirm:eQ,qrcode:eY,floatButton:eJ,floatButtonGroup:eZ,variant:e0,inputNumber:e1,treeSelect:e2,watermark:e4}=e,e5=l.useMemo(()=>(0,u.Qd)(S)&&Object.prototype.hasOwnProperty.call(S,"default")&&S.default?.locale?S.default:S,[S]),e6=l.useCallback((t,r)=>{let{prefixCls:n}=e;if(r)return r;let o=n||B.getPrefixCls("");return t?`${o}-${t}`:o},[B.getPrefixCls,e.prefixCls]),e3=L||B.iconPrefixCls||w.pM,e9=r||B.csp,e7=function(e,t,r){(0,p.rJ)("ConfigProvider");let n=e||{},o=!1!==n.inherit&&t?t:{...v.sb,hashed:t?.hashed??v.sb.hashed,cssVar:t?.cssVar},a=(0,l.useId)();return(0,d.Kr)(()=>{if(!e)return t;let i={...o.components};Object.keys(e.components||{}).forEach(t=>{i[t]={...i[t],...e.components[t]}});let l=`css-var-${a.replace(/:/g,"")}`,s={prefix:r?.prefixCls,...o.cssVar,...n.cssVar,key:n.cssVar?.key||l};return{...o,...n,token:{...o.token,...n.token},components:i,cssVar:s}},[n,o],(e,t)=>e.some((e,r)=>{let n=t[r];return!(0,d.n4)(e,n,!0)}))}(_,B.theme,{prefixCls:e6("")}),e8={csp:e9,autoInsertSpaceInButton:n,alert:o,affix:a,anchor:i,app:m,locale:e5||D,direction:A,space:M,splitter:F,virtual:N,popupMatchSelectWidth:I??j,popupOverflow:z,getPrefixCls:e6,iconPrefixCls:e3,theme:e7,segmented:W,statistic:q,spin:V,calendar:U,carousel:X,cascader:K,collapse:G,typography:Q,checkbox:Y,descriptions:J,divider:Z,drawer:ee,skeleton:et,steps:er,image:en,input:eh,inputPassword:eg,inputSearch:eb,textArea:ey,otp:ev,layout:eo,list:ea,mentions:ei,modal:el,progress:es,result:ec,slider:ed,breadcrumb:eu,masonry:ep,menu:ef,pagination:em,empty:e$,badge:ex,borderBeam:ew,radio:eC,rate:eE,ribbon:eS,switch:ek,transfer:eA,avatar:eP,message:eR,tag:eM,table:eT,card:eO,cardMeta:eF,tabs:eN,timeline:ej,timePicker:eI,upload:ez,notification:eD,tree:eB,colorPicker:eL,datePicker:e_,rangePicker:eH,flex:eW,wave:eq,dropdown:eV,warning:eU,tour:eX,tooltip:eK,popover:eG,popconfirm:eQ,qrcode:eY,floatButton:eJ,floatButtonGroup:eZ,variant:e0,inputNumber:e1,treeSelect:e2,watermark:e4},te={...B};Object.keys(e8).forEach(e=>{void 0!==e8[e]&&(te[e]=e8[e])}),O.forEach(t=>{let r=e[t];r&&(te[t]=r)}),void 0!==n&&(te.button={autoInsertSpace:n,...te.button});let tt=(0,d.Kr)(()=>te,te,(e,t)=>{let r=Object.keys(e),n=Object.keys(t);return r.length!==n.length||r.some(r=>e[r]!==t[r])}),{layer:tr}=l.useContext(s.J),tn=l.useMemo(()=>({prefixCls:e3,csp:e9,layer:tr?"antd":void 0,zeroRuntime:e7?.zeroRuntime}),[e3,e9,tr,e7?.zeroRuntime]),to=l.createElement(l.Fragment,null,l.createElement(T,{iconPrefixCls:e3,csp:e9}),l.createElement(R,{dropdownMatchSelectWidth:j}),t),ta=l.useMemo(()=>(0,d.h1)(b.A.Form?.defaultValidateMessages||{},tt.locale?.Form?.defaultValidateMessages||{},tt.form?.validateMessages||{},h?.validateMessages||{}),[tt,h?.validateMessages]);Object.keys(ta).length>0&&(to=l.createElement(f.A.Provider,{value:ta},to)),e5&&(to=l.createElement(g,{locale:e5,_ANT_MARK__:"internalMark"},to)),(e3||e9)&&(to=l.createElement(c.A.Provider,{value:tn},to)),k&&(to=l.createElement(E.c,{size:k},to)),to=l.createElement(P,null,to),eK?.unique&&(to=l.createElement(x.A,null,to));let ti=l.useMemo(()=>{let{algorithm:e,token:t,components:r,cssVar:n,...o}=e7||{},a=e&&(!Array.isArray(e)||e.length>0)?(0,s.an)(e):y.A,i={};Object.entries(r||{}).forEach(([e,t])=>{let r={...t};"algorithm"in r&&(!0===r.algorithm?r.theme=a:(Array.isArray(r.algorithm)||(0,u.Tn)(r.algorithm))&&(r.theme=(0,s.an)(r.algorithm)),delete r.algorithm),i[e]=r});let l={...$.A,...t};return{...o,theme:a,token:l,components:i,override:{override:l,...i},cssVar:n}},[e7]);return _&&(to=l.createElement(v.vG.Provider,{value:ti},to)),tt.warning&&(to=l.createElement(p._n.Provider,{value:tt.warning},to)),void 0!==H&&(to=l.createElement(C.X,{disabled:H},to)),l.createElement(w.QO.Provider,{value:tt},to)},z=e=>{let t=l.useContext(w.QO),r=l.useContext(h.A);return l.createElement(I,{parentContext:t,legacyLocale:r,...e})};z.ConfigContext=w.QO,z.SizeContext=E.A,z.config=e=>{let{prefixCls:t,iconPrefixCls:r,theme:l,holderRender:s}=e;void 0!==t&&(n=t),void 0!==r&&(o=r),"holderRender"in e&&(i=s),l&&(a=l)},z.useConfig=function(){return{componentDisabled:(0,l.useContext)(C.A),componentSize:(0,l.useContext)(E.A)}},Object.defineProperty(z,"SizeContext",{get:()=>E.A});let D=z},49127:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let n=e=>+setTimeout(e,16),o=e=>clearTimeout(e);"undefined"!=typeof window&&"requestAnimationFrame"in window&&(n=e=>window.requestAnimationFrame(e),o=e=>window.cancelAnimationFrame(e));let a=0,i=new Map,l=(e,t=1)=>{let r=a+=1;return!function t(o){if(0===o)i.delete(r),e();else{let e=n(()=>{t(o-1)});i.set(r,e)}}(t),r};l.cancel=e=>{let t=i.get(e);return i.delete(e),o(t)};let s=l},49345:(e,t,r)=>{"use strict";r.d(t,{aB:()=>g,nF:()=>a});var n=r(15561),o=r(5688);let a=new n.Mo("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),i=new n.Mo("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),l=new n.Mo("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new n.Mo("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),c=new n.Mo("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),d=new n.Mo("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),u=new n.Mo("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),p=new n.Mo("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),f=new n.Mo("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),m=new n.Mo("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),h={zoom:{inKeyframes:a,outKeyframes:i},"zoom-big":{inKeyframes:l,outKeyframes:s},"zoom-big-fast":{inKeyframes:l,outKeyframes:s},"zoom-left":{inKeyframes:u,outKeyframes:p},"zoom-right":{inKeyframes:f,outKeyframes:m},"zoom-up":{inKeyframes:c,outKeyframes:d},"zoom-down":{inKeyframes:new n.Mo("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),outKeyframes:new n.Mo("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}})}},g=(e,t)=>{let{antCls:r}=e,n=`${r}-${t}`,{inKeyframes:a,outKeyframes:i}=h[t];return[(0,o.b)(n,a,i,"zoom-big-fast"===t?e.motionDurationFast:e.motionDurationMid),{[`
|
|
107
|
+
`,boxShadowTabsOverflowLeft:`inset 10px 0 8px -8px ${d(.08)}`,boxShadowTabsOverflowRight:`inset -10px 0 8px -8px ${d(.08)}`,boxShadowTabsOverflowTop:`inset 0 10px 8px -8px ${d(.08)}`,boxShadowTabsOverflowBottom:`inset 0 -10px 8px -8px ${d(.08)}`,...i}}},44539:(e,t,r)=>{"use strict";function n(e){return(e+8)/e}function o(e){let t=Array.from({length:10}).map((t,r)=>{let n=e*Math.E**((r-1)/5);return 2*Math.floor((r>1?Math.floor(n):Math.ceil(n))/2)});return t[1]=e,t.map(e=>({size:e,lineHeight:n(e)}))}r.d(t,{A:()=>o,k:()=>n})},44650:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=r(55289),o=r(61757);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},45042:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(97109),o=r(53314),a=r(88483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}let l=n.forwardRef((e,t)=>n.createElement(a.A,i({},e,{ref:t,icon:o.A})))},45384:(e,t,r)=>{"use strict";var n=r(3396).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=n(r(25325)).default},46254:(e,t,r)=>{"use strict";r.d(t,{cM:()=>s,bK:()=>f,UA:()=>C,uy:()=>c});var n=r(47252);let o=[{index:7,amount:15},{index:6,amount:25},{index:5,amount:30},{index:5,amount:45},{index:5,amount:65},{index:5,amount:85},{index:4,amount:90},{index:3,amount:95},{index:2,amount:97},{index:1,amount:98}];function a(e,t,r){let n;return(n=Math.round(e.h)>=60&&240>=Math.round(e.h)?r?Math.round(e.h)-2*t:Math.round(e.h)+2*t:r?Math.round(e.h)+2*t:Math.round(e.h)-2*t)<0?n+=360:n>=360&&(n-=360),n}function i(e,t,r){let n;return 0===e.h&&0===e.s?e.s:((n=r?e.s-.16*t:4===t?e.s+.16:e.s+.05*t)>1&&(n=1),r&&5===t&&n>.1&&(n=.1),n<.06&&(n=.06),Math.round(100*n)/100)}function l(e,t,r){return Math.round(100*Math.max(0,Math.min(1,r?e.v+.05*t:e.v-.15*t)))/100}function s(e,t={}){let r=[],c=new n.Y(e),d=c.toHsv();for(let e=5;e>0;e-=1){let t=new n.Y({h:a(d,e,!0),s:i(d,e,!0),v:l(d,e,!0)});r.push(t)}r.push(c);for(let e=1;e<=4;e+=1){let t=new n.Y({h:a(d,e),s:i(d,e),v:l(d,e)});r.push(t)}return"dark"===t.theme?o.map(({index:e,amount:o})=>new n.Y(t.backgroundColor||"#141414").mix(r[e],o).toHexString()):r.map(e=>e.toHexString())}let c={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},d=["#fff1f0","#ffccc7","#ffa39e","#ff7875","#ff4d4f","#f5222d","#cf1322","#a8071a","#820014","#5c0011"];d.primary=d[5];let u=["#fff2e8","#ffd8bf","#ffbb96","#ff9c6e","#ff7a45","#fa541c","#d4380d","#ad2102","#871400","#610b00"];u.primary=u[5];let p=["#fff7e6","#ffe7ba","#ffd591","#ffc069","#ffa940","#fa8c16","#d46b08","#ad4e00","#873800","#612500"];p.primary=p[5];let f=["#fffbe6","#fff1b8","#ffe58f","#ffd666","#ffc53d","#faad14","#d48806","#ad6800","#874d00","#613400"];f.primary=f[5];let m=["#feffe6","#ffffb8","#fffb8f","#fff566","#ffec3d","#fadb14","#d4b106","#ad8b00","#876800","#614700"];m.primary=m[5];let h=["#fcffe6","#f4ffb8","#eaff8f","#d3f261","#bae637","#a0d911","#7cb305","#5b8c00","#3f6600","#254000"];h.primary=h[5];let g=["#f6ffed","#d9f7be","#b7eb8f","#95de64","#73d13d","#52c41a","#389e0d","#237804","#135200","#092b00"];g.primary=g[5];let b=["#e6fffb","#b5f5ec","#87e8de","#5cdbd3","#36cfc9","#13c2c2","#08979c","#006d75","#00474f","#002329"];b.primary=b[5];let y=["#e6f4ff","#bae0ff","#91caff","#69b1ff","#4096ff","#1677ff","#0958d9","#003eb3","#002c8c","#001d66"];y.primary=y[5];let v=["#f0f5ff","#d6e4ff","#adc6ff","#85a5ff","#597ef7","#2f54eb","#1d39c4","#10239e","#061178","#030852"];v.primary=v[5];let $=["#f9f0ff","#efdbff","#d3adf7","#b37feb","#9254de","#722ed1","#531dab","#391085","#22075e","#120338"];$.primary=$[5];let x=["#fff0f6","#ffd6e7","#ffadd2","#ff85c0","#f759ab","#eb2f96","#c41d7f","#9e1068","#780650","#520339"];x.primary=x[5];let w=["#a6a6a6","#999999","#8c8c8c","#808080","#737373","#666666","#404040","#1a1a1a","#000000","#000000"];w.primary=w[5];let C={red:d,volcano:u,orange:p,gold:f,yellow:m,lime:h,green:g,cyan:b,blue:y,geekblue:v,purple:$,magenta:x,grey:w},E=["#2a1215","#431418","#58181c","#791a1f","#a61d24","#d32029","#e84749","#f37370","#f89f9a","#fac8c3"];E.primary=E[5];let S=["#2b1611","#441d12","#592716","#7c3118","#aa3e19","#d84a1b","#e87040","#f3956a","#f8b692","#fad4bc"];S.primary=S[5];let k=["#2b1d11","#442a11","#593815","#7c4a15","#aa6215","#d87a16","#e89a3c","#f3b765","#f8cf8d","#fae3b7"];k.primary=k[5];let A=["#2b2111","#443111","#594214","#7c5914","#aa7714","#d89614","#e8b339","#f3cc62","#f8df8b","#faedb5"];A.primary=A[5];let P=["#2b2611","#443b11","#595014","#7c6e14","#aa9514","#d8bd14","#e8d639","#f3ea62","#f8f48b","#fafab5"];P.primary=P[5];let R=["#1f2611","#2e3c10","#3e4f13","#536d13","#6f9412","#8bbb11","#a9d134","#c9e75d","#e4f88b","#f0fab5"];R.primary=R[5];let M=["#162312","#1d3712","#274916","#306317","#3c8618","#49aa19","#6abe39","#8fd460","#b2e58b","#d5f2bb"];M.primary=M[5];let T=["#112123","#113536","#144848","#146262","#138585","#13a8a8","#33bcb7","#58d1c9","#84e2d8","#b2f1e8"];T.primary=T[5];let O=["#111a2c","#112545","#15325b","#15417e","#1554ad","#1668dc","#3c89e8","#65a9f3","#8dc5f8","#b7dcfa"];O.primary=O[5];let F=["#131629","#161d40","#1c2755","#203175","#263ea0","#2b4acb","#5273e0","#7f9ef3","#a8c1f8","#d2e0fa"];F.primary=F[5];let N=["#1a1325","#24163a","#301c4d","#3e2069","#51258f","#642ab5","#854eca","#ab7ae0","#cda8f0","#ebd7fa"];N.primary=N[5];let j=["#291321","#40162f","#551c3b","#75204f","#a02669","#cb2b83","#e0529c","#f37fb7","#f8a8cc","#fad2e3"];j.primary=j[5];let I=["#151515","#1f1f1f","#2d2d2d","#393939","#494949","#5a5a5a","#6a6a6a","#7b7b7b","#888888","#969696"];I.primary=I[5]},46430:()=>{},47085:(e,t,r)=>{"use strict";r.d(t,{PE:()=>eJ,x_:()=>eX,Vr:()=>eG});var n=r(65321),o=r(97109),a=r(3454),i=r.n(a),l=r(86109),s=r(49759),c=r(48921),d=r(17807),u=r(27855),p=r(30945),f=r(80789),m=r.n(f),h=r(15561),g=r(18625),b=r(9311),y=r(44444),v=r(7709),$=r(12754),x=r(39261),w=r(94696),C=r(10740),E=r(46254),S=r(78012),k=r(47802),A=r(47252);let P=(e,t)=>new A.Y(e).setA(t).toRgbString(),R=(e,t)=>new A.Y(e).lighten(t).toHexString(),M=e=>{let t=(0,E.cM)(e,{theme:"dark"});return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[6],6:t[5],7:t[4],8:t[6],9:t[5],10:t[4]}},T=(e,t,r)=>{let n=e||"#000",o=t||"#fff";return{colorBgBase:n,colorTextBase:o,colorShadow:r||"rgba(255, 255, 255, 0.2)",colorText:P(o,.85),colorTextSecondary:P(o,.65),colorTextTertiary:P(o,.45),colorTextQuaternary:P(o,.25),colorFill:P(o,.18),colorFillSecondary:P(o,.12),colorFillTertiary:P(o,.08),colorFillQuaternary:P(o,.04),colorBgSolid:P(o,.95),colorBgSolidHover:P(o,1),colorBgSolidActive:P(o,.9),colorBgElevated:R(n,12),colorBgContainer:R(n,8),colorBgLayout:R(n,0),colorBgSpotlight:R(n,26),colorBgBlur:P(o,.04),colorBorder:R(n,26),colorBorderDisabled:R(n,26),colorBorderSecondary:R(n,19)}},O={defaultSeed:$.sb.token,useToken:function(){let[e,t,r,n]=(0,v.Ay)();return{theme:e,token:t,hashId:r,cssVar:n}},defaultAlgorithm:x.A,darkAlgorithm:(e,t)=>{let r=Object.keys(b.r).map(t=>{let r=(0,E.cM)(e[t],{theme:"dark"});return Array.from({length:10},()=>1).reduce((e,n,o)=>(e[`${t}-${o+1}`]=r[o],e[`${t}${o+1}`]=r[o],e),{})}).reduce((e,t)=>e={...e,...t},{}),n=t??(0,x.A)(e),o=(0,k.A)(e,{generateColorPalettes:M,generateNeutralColorPalettes:T}),a=S.s.reduce((t,r)=>{let n=e[r];if(n){let e=M(n);t[`${r}Hover`]=e[7],t[`${r}Active`]=e[5]}return t},{});return{...n,...r,...o,...a,colorPrimaryBg:o.colorPrimaryBorder,colorPrimaryBgHover:o.colorPrimaryBorderHover}},compactAlgorithm:(e,t)=>{let r=t??(0,x.A)(e),n=r.fontSizeSM,o=r.controlHeight-4;return{...r,...function(e){let{sizeUnit:t,sizeStep:r}=e,n=r-2;return{sizeXXL:t*(n+10),sizeXL:t*(n+6),sizeLG:t*(n+2),sizeMD:t*(n+2),sizeMS:t*(n+1),size:t*n,sizeSM:t*n,sizeXS:t*(n-1),sizeXXS:t*(n-1)}}(t??e),...(0,C.A)(n),controlHeight:o,...(0,w.A)({...r,controlHeight:o})}},getDesignToken:e=>{let t=e?.algorithm?(0,h.an)(e.algorithm):g.A,r={...b.A,...e?.token};return(0,h.lO)(r,{override:e?.token},t,y.A)},defaultConfig:$.sb,_internalContext:$.vG};var F=r(34986),N=r(43220),j=r.n(N),I=r(1278);let z=(0,I.A)("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var D=r(87824);let B=(0,I.A)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),L=(0,I.A)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),_=(0,I.A)("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]),H=(0,I.A)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),W=(0,I.A)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),q=(0,I.A)("Files",[["path",{d:"M20 7h-3a2 2 0 0 1-2-2V2",key:"x099mo"}],["path",{d:"M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z",key:"18t6ie"}],["path",{d:"M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8",key:"1nja0z"}]]),V=(0,I.A)("LibraryBig",[["rect",{width:"8",height:"18",x:"3",y:"3",rx:"1",key:"oynpb5"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z",key:"1qboyk"}]]),U=(0,I.A)("Bug",[["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}],["path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6",key:"xs1cw7"}],["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4",key:"k3fwyw"}]]),X=(0,I.A)("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);var K=r(38300),G=r(39219),Q=r(22931);let Y=(0,I.A)("PanelLeftOpen",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),J=(0,I.A)("PanelLeftClose",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var Z=r(14932);let ee=[{href:"/overview",icon:z,labelKey:"nav.overview"},{icon:D.A,labelKey:"nav.knowledge",children:[{href:"/knowledge/manage",icon:B,labelKey:"nav.knowledgeManage"},{href:"/knowledge/files",icon:L,labelKey:"nav.fileManagement"}]},{href:"/models",icon:_,labelKey:"nav.models"},{href:"/prompt",icon:H,labelKey:"nav.promptManagement"},{href:"/document-roles",icon:W,labelKey:"nav.documentRoles"},{href:"/documents",icon:q,labelKey:"nav.documents"},{href:"/template-references",icon:V,labelKey:"nav.templateReferences"},{href:"/asset-library",icon:B,labelKey:"nav.assetLibrary"},{href:"/system/logs",icon:U,labelKey:"nav.systemLogs"},{href:"/guide",icon:X,labelKey:"nav.guide"},{href:"/settings",icon:W,labelKey:"nav.settings"}];function et(){let e=(0,F.usePathname)(),t=eG(),r=(0,o.useMemo)(()=>{let t={};for(let n of ee){var r;(null==(r=n.children)?void 0:r.some(t=>e===t.href||e.startsWith(t.href+"/")))&&(t[n.labelKey]=!0)}return t},[e]),[a,i]=(0,o.useState)({}),[l,s]=(0,o.useState)(!1);return(0,o.useEffect)(()=>(document.documentElement.classList.toggle("sidebarCollapsed",l),()=>document.documentElement.classList.remove("sidebarCollapsed")),[l]),(0,n.jsxs)("aside",{className:"sidebar".concat(l?" sidebarCollapsedSelf":""),children:[(0,n.jsx)(j(),{href:"/overview",prefetch:!1,children:(0,n.jsxs)("div",{className:"sidebarLogo",children:[(0,n.jsx)("div",{className:"w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0",children:(0,n.jsx)(K.A,{className:"text-white dark:text-black",size:20})}),(0,n.jsx)("div",{className:"sidebarLogoTitle",children:(0,n.jsx)("span",{className:"logoGradient",children:"Customize Agent"})})]})}),(0,n.jsx)("nav",{className:"sidebarNav mt-2",children:ee.map(o=>{if(o.children){var c,d;let u,p=null!=(d=null!=(c=a[o.labelKey])?c:r[o.labelKey])&&d,f=null==(u=o.children)?void 0:u.some(t=>e===t.href||e.startsWith(t.href+"/"));return(0,n.jsxs)("div",{children:[(0,n.jsx)(Z.A,{title:l?t(o.labelKey):"",placement:"right",children:(0,n.jsxs)("div",{className:"sidebarItem sidebarParent".concat(f&&l?" sidebarItemActive":""),onClick:()=>{if(l)s(!1),i(e=>({...e,[o.labelKey]:!0}));else{var e;e=o.labelKey,i(t=>({...t,[e]:!t[e]}))}},children:[(0,n.jsx)(o.icon,{size:18}),(0,n.jsx)("span",{className:"sidebarLabel",children:t(o.labelKey)}),(0,n.jsx)("span",{className:"sidebarChevron",children:p?(0,n.jsx)(G.A,{size:14}):(0,n.jsx)(Q.A,{size:14})})]})}),p&&!l&&(0,n.jsx)("div",{className:"sidebarSubmenu animateFadeIn",children:o.children.map(r=>{let o=e===r.href||e.startsWith(r.href+"/");return(0,n.jsx)(j(),{href:r.href,prefetch:!1,children:(0,n.jsxs)("div",{className:"sidebarItem sidebarSubItem".concat(o?" sidebarItemActive":""),children:[(0,n.jsx)(r.icon,{size:16}),(0,n.jsx)("span",{className:"sidebarLabel",children:t(r.labelKey)})]})},r.href)})})]},o.labelKey)}let u=e===o.href||e.startsWith(o.href+"/");return(0,n.jsx)(Z.A,{title:l?t(o.labelKey):"",placement:"right",children:(0,n.jsx)(j(),{href:o.href,prefetch:!1,children:(0,n.jsxs)("div",{className:"sidebarItem".concat(u?" sidebarItemActive":""),children:[(0,n.jsx)(o.icon,{size:18}),(0,n.jsx)("span",{className:"sidebarLabel",children:t(o.labelKey)})]})})},o.href)})}),(0,n.jsx)("div",{className:"sidebarCollapseWrapper",children:(0,n.jsx)("button",{className:"sidebarCollapseBtn",onClick:()=>s(e=>!e),"aria-label":l?"展开侧边栏":"收起侧边栏",children:l?(0,n.jsx)(Y,{size:16}):(0,n.jsx)(J,{size:16})})})]})}var er=r(56733),en=r(73340),eo=r(64629),ea=r(84742),ei=r(58740),el=r(38762),es=r(35292),ec=r(11702),ed=r(99605),eu=r(67189),ep=r(3638),ef=r(95347),em=r(92162),eh=r(26047),eg=r(52690),eb=r(74567);let ey=e=>{let t,{prefixCls:r,value:n,current:a,offset:i=0}=e;return i&&(t={position:"absolute",top:`${i}00%`,left:0}),o.createElement("span",{style:t,className:(0,ep.$)(`${r}-only-unit`,{current:a})},n)},ev=e=>{let t,r,{prefixCls:n,count:a,value:i}=e,l=Number(i),s=Math.abs(a),[c,d]=o.useState(l),[u,p]=o.useState(s),f=()=>{d(l),p(s)};if(o.useEffect(()=>{let e=setTimeout(f,1e3);return()=>clearTimeout(e)},[l]),c===l||Number.isNaN(l)||Number.isNaN(c))t=[o.createElement(ey,{...e,key:l,current:!0})],r={transition:"none"};else{t=[];let n=l+10,a=[];for(let e=l;e<=n;e+=1)a.push(e);let i=u<s?1:-1,d=a.findIndex(e=>e%10===c);t=(i<0?a.slice(0,d+1):a.slice(d)).map((t,r)=>o.createElement(ey,{...e,key:t,value:t%10,offset:i<0?r-d:r,current:r===d})),r={transform:`translateY(${-function(e,t,r){let n=e,o=0;for(;(n+10)%10!==t;)n+=r,o+=r;return o}(c,l,i)}00%)`}}return o.createElement("span",{className:`${n}-only`,style:r,onTransitionEnd:f},t)},e$=o.forwardRef((e,t)=>{let{prefixCls:r,count:n,className:a,motionClassName:i,style:l,title:s,show:c,component:d="sup",children:u,...p}=e,{getPrefixCls:f}=o.useContext(eb.QO),m=f("scroll-number",r),h={...p,"data-show":c,style:l,className:(0,ep.$)(m,a,i),title:s},g=n;if(n&&Number(n)%1==0){let e=String(n).split("");g=o.createElement("bdi",null,e.map((t,r)=>o.createElement(ev,{prefixCls:m,count:Number(n),value:t,key:e.length-r})))}return(l?.borderColor&&(h.style={...l,boxShadow:`0 0 0 1px ${l.borderColor} inset`}),u)?(0,eg.Ob)(u,e=>({className:(0,ep.$)(`${m}-custom-component`,e?.className,i)})):o.createElement(d,{...h,ref:t},g)});var ex=r(7961),ew=r(16924),eC=r(28403),eE=r(10540);let eS=new h.Mo("antStatusProcessing",{"0%":{transform:"scale(0.8)",opacity:.5},"100%":{transform:"scale(2.4)",opacity:0}}),ek=new h.Mo("antZoomBadgeIn",{"0%":{transform:"scale(0) translate(50%, -50%)",opacity:0},"100%":{transform:"scale(1) translate(50%, -50%)"}}),eA=new h.Mo("antZoomBadgeOut",{"0%":{transform:"scale(1) translate(50%, -50%)"},"100%":{transform:"scale(0) translate(50%, -50%)",opacity:0}}),eP=new h.Mo("antNoWrapperZoomBadgeIn",{"0%":{transform:"scale(0)",opacity:0},"100%":{transform:"scale(1)"}}),eR=new h.Mo("antNoWrapperZoomBadgeOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0)",opacity:0}}),eM=new h.Mo("antBadgeLoadingCircle",{"0%":{transformOrigin:"50%"},"100%":{transform:"translate(50%, -50%) rotate(360deg)",transformOrigin:"50%"}}),eT=e=>{let{fontHeight:t,lineWidth:r,marginXS:n,colorBorderBg:o}=e,a=e.colorTextLightSolid,i=e.colorError,l=e.colorErrorHover;return(0,eC.oX)(e,{badgeFontHeight:t,badgeShadowSize:r,badgeTextColor:a,badgeColor:i,badgeColorHover:l,badgeShadowColor:o,badgeProcessingDuration:"1.2s",badgeRibbonOffset:n,badgeRibbonCornerTransform:"scaleY(0.75)",badgeRibbonCornerFilter:"brightness(75%)"})},eO=e=>{let{fontSize:t,lineHeight:r,fontSizeSM:n,lineWidth:o,paddingXS:a}=e;return{indicatorZIndex:"auto",indicatorHeight:Math.round(t*r)-2*o,indicatorHeightSM:t,dotSize:n/2,textFontSize:n,textFontSizeSM:n,textFontWeight:"normal",statusSize:n/2,paddingInline:a}},eF=(0,eE.OF)("Badge",e=>(e=>{let{componentCls:t,iconCls:r,antCls:n,badgeShadowSize:o,textFontSize:a,textFontSizeSM:i,statusSize:l,dotSize:s,textFontWeight:c,indicatorHeight:d,indicatorHeightSM:u,marginXS:p,calc:f}=e,m=`${n}-scroll-number`,g=(0,ew.A)(e,(e,{darkColor:r})=>({[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r},"a:hover &":{background:r}}}));return{[t]:{...(0,ex.dF)(e),position:"relative",display:"inline-block",width:"fit-content",lineHeight:1,[`${t}-count`]:{display:"inline-flex",justifyContent:"center",zIndex:e.indicatorZIndex,minWidth:d,height:d,color:e.badgeTextColor,fontWeight:c,fontSize:a,lineHeight:(0,h.zA)(d),whiteSpace:"nowrap",textAlign:"center",background:e.badgeColor,borderRadius:f(d).div(2).equal(),boxShadow:`0 0 0 ${(0,h.zA)(o)} ${e.badgeShadowColor}`,transition:`background-color ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:u,height:u,fontSize:i,lineHeight:(0,h.zA)(u),borderRadius:f(u).div(2).equal()},[`${t}-multiple-words`]:{paddingInline:e.paddingInline,bdi:{unicodeBidi:"plaintext"}},[`${t}-dot`]:{zIndex:e.indicatorZIndex,width:s,minWidth:s,height:s,background:e.badgeColor,borderRadius:"100%",boxShadow:`0 0 0 ${(0,h.zA)(o)} ${e.badgeShadowColor}`},[`${t}-count, ${t}-dot, ${m}-custom-component`]:{position:"absolute",top:0,insetInlineEnd:0,transform:"translate(50%, -50%)",transformOrigin:"100% 0%",[`&${r}-spin`]:{animationName:eM,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&${t}-status`]:{lineHeight:"inherit",verticalAlign:"baseline",[`${t}-status-dot`]:{position:"relative",top:-1,display:"inline-block",width:l,height:l,verticalAlign:"middle",borderRadius:"50%"},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:"visible",color:e.colorInfoTextHover,backgroundColor:e.colorInfo,borderColor:"currentcolor","&::after":{position:"absolute",top:0,insetInlineStart:0,width:"100%",height:"100%",borderWidth:o,borderStyle:"solid",borderColor:"inherit",borderRadius:"50%",animationName:eS,animationDuration:e.badgeProcessingDuration,animationIterationCount:"infinite",animationTimingFunction:"ease-in-out",content:'""'}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:p,color:e.colorText,fontSize:e.fontSize}},...g,[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:ek,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`${t}-zoom-leave`]:{animationName:eA,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:"both"},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:eP,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:eR,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:"middle"},[`${m}-custom-component, ${t}-count`]:{transform:"none"},[`${m}-custom-component, ${m}`]:{position:"relative",top:"auto",display:"block",transformOrigin:"50% 50%"}},[m]:{overflow:"hidden",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack}`,[`${m}-only`]:{position:"relative",display:"inline-block",height:d,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden",[`> p${m}-only-unit`]:{height:d,margin:0,WebkitTransformStyle:"preserve-3d",WebkitBackfaceVisibility:"hidden"}},[`${m}-symbol`]:{verticalAlign:"top"}},"&-rtl":{direction:"rtl",[`${t}-count, ${t}-dot, ${m}-custom-component`]:{transform:"translate(-50%, -50%)"}}}}})(eT(e)),eO),eN=o.forwardRef((e,t)=>{let{prefixCls:r,scrollNumberPrefixCls:n,children:a,status:i,text:l,color:s,count:c=null,overflowCount:d=99,dot:u=!1,size:p="medium",title:f,offset:m,style:h,className:g,rootClassName:b,classNames:y,styles:v,showZero:$=!1,...x}=e,{getPrefixCls:w,direction:C,className:E,style:S,classNames:k,styles:A}=(0,eb.TP)("badge"),P=w("badge",r),[R,M]=eF(P),T={...e,overflowCount:d,size:p,dot:u,showZero:$},[O,F]=(0,em.AV)([k,y],[A,v],{props:T}),N=c>d?`${d}+`:c,j="0"===N||0===N||"0"===l||0===l,I=null===c||j&&!$,z=((0,eh.R)(i)||(0,eh.R)(s))&&I,D=(0,eh.R)(i)||!j,B=u&&!j,L=B?"":N,_=(0,o.useMemo)(()=>(!(0,eh.AZ)(L)&&!(0,eh.AZ)(l)||j&&!$)&&!B,[L,j,$,B,l]),H=(0,o.useRef)(c);_||(H.current=c);let W=H.current,q=(0,o.useRef)(L);_||(q.current=L);let V=q.current,U=(0,o.useRef)(B);_||(U.current=B);let X=(0,o.useMemo)(()=>{if(!m)return{...S,...h};let e=Number.parseInt(m[0],10);return{...{marginTop:m[1],insetInlineEnd:-e},...S,...h}},[m,h,S]),K=(0,eh.Kg)(W)||(0,eh.Et)(W)?W:void 0,G=null===f||!1===f?void 0:f??K,Q=!_&&(0===l?$:!!l&&!0!==l),Y=Q?o.createElement("span",{className:`${P}-status-text`},l):null,J=(0,eh.Qd)(W)?(0,eg.Ob)(W,e=>({style:{...X,...e.style}})):void 0,Z=(0,ef.nP)(s,!1),ee=(0,ep.$)(O.indicator,{[`${P}-status-dot`]:z,[`${P}-status-${i}`]:!!i,[`${P}-color-${s}`]:Z}),et={};s&&!Z&&(et.color=s,et.background=s);let er=(0,ep.$)(P,{[`${P}-status`]:z,[`${P}-not-a-wrapper`]:!a,[`${P}-rtl`]:"rtl"===C},g,b,E,O.root,R,M);if(!a&&z&&(l||D||!I)){let e=X.color;return o.createElement("span",{ref:t,...x,className:er,style:{...F.root,...X}},o.createElement("span",{className:ee,style:{...F.indicator,...et}}),Q&&o.createElement("span",{style:{color:e},className:`${P}-status-text`},l))}return o.createElement("span",{ref:t,...x,className:er,style:F.root},a,o.createElement(eu.Ay,{visible:!_,motionName:`${P}-zoom`,motionAppear:!1,motionDeadline:1e3},({className:e})=>{let t=w("scroll-number",n),r=U.current,a=(0,ep.$)(O.indicator,{[`${P}-dot`]:r,[`${P}-count`]:!r,[`${P}-count-sm`]:"small"===p,[`${P}-multiple-words`]:!r&&V&&V.toString().length>1,[`${P}-status-${i}`]:!!i,[`${P}-color-${s}`]:Z}),l={...F.indicator,...X};return s&&!Z&&((l=l||{}).background=s),o.createElement(e$,{prefixCls:t,show:!_,motionClassName:e,className:a,count:V,title:G,style:l,key:"scrollNumber"},J)}),Y)}),ej=(0,eE.OF)(["Badge","Ribbon"],e=>(e=>{let{antCls:t,badgeFontHeight:r,marginXS:n,badgeRibbonOffset:o,calc:a}=e,i=`${t}-ribbon`,l=`${t}-ribbon-wrapper`,s=(0,ew.A)(e,(e,{darkColor:t})=>({[`&${i}-color-${e}`]:{background:t,color:t}}));return{[l]:{position:"relative"},[i]:{...(0,ex.dF)(e),position:"absolute",top:n,padding:`0 ${(0,h.zA)(e.paddingXS)}`,color:e.colorPrimary,lineHeight:(0,h.zA)(r),whiteSpace:"nowrap",backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${i}-content`]:{color:e.badgeTextColor},[`${i}-corner`]:{position:"absolute",top:"100%",width:o,height:o,color:"currentcolor",border:`${(0,h.zA)(a(o).div(2).equal())} solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:"top",filter:e.badgeRibbonCornerFilter},...s,[`&${i}-placement-end`]:{insetInlineEnd:a(o).mul(-1).equal(),borderEndEndRadius:0,[`${i}-corner`]:{insetInlineEnd:0,borderInlineEndColor:"transparent",borderBlockEndColor:"transparent"}},[`&${i}-placement-start`]:{insetInlineStart:a(o).mul(-1).equal(),borderEndStartRadius:0,[`${i}-corner`]:{insetInlineStart:0,borderBlockEndColor:"transparent",borderInlineStartColor:"transparent"}},"&-rtl":{direction:"rtl"}}}})(eT(e)),eO);eN.Ribbon=e=>{let{className:t,prefixCls:r,style:n,color:a,children:i,text:l,placement:s="end",rootClassName:c,styles:d,classNames:u}=e,{getPrefixCls:p,direction:f,className:m,style:h,classNames:g,styles:b}=(0,eb.TP)("ribbon"),y=p("ribbon",r),v=`${y}-wrapper`,[$,x]=ej(y,v),w={...e,placement:s},[C,E]=(0,em.AV)([g,u],[b,d],{props:w}),S=(0,ef.nP)(a,!1),k=(0,ep.$)(y,`${y}-placement-${s}`,{[`${y}-rtl`]:"rtl"===f,[`${y}-color-${a}`]:S},t,m,C.indicator),A={},P={};return a&&!S&&(A.background=a,P.color=a),o.createElement("div",{className:(0,ep.$)(v,c,$,x,C.root),style:E.root},i,o.createElement("div",{className:(0,ep.$)(k,$),style:{...A,...E.indicator,...h,...n}},o.createElement("span",{className:(0,ep.$)(`${y}-content`,C.content),style:E.content},l),o.createElement("div",{className:`${y}-corner`,style:P})))};var eI=r(85114),ez=r(34052),eD=r(84253),eB=r(6578);function eL(e){let{label:t,value:r}=e;return(0,n.jsxs)("div",{className:"flex gap-3 text-xs text-slate-500",children:[(0,n.jsx)("span",{className:"w-16 shrink-0",children:t}),(0,n.jsx)("span",{className:"min-w-0 break-words",children:r})]})}function e_(e){var t,r,o,a;let{job:i,mounted:l}=e,s=Math.max(0,Math.min(100,Math.round(i.percent||0))),c="error"===i.status?"exception":"success"===i.status?"success":"active",d=(null==(t=i.details)?void 0:t.slice(0,40))||[],u=l?new Date(i.updatedAt).toLocaleString():String(i.updatedAt);return(0,n.jsx)("div",{className:"border-b border-slate-100 px-5 py-4",children:(0,n.jsxs)("div",{className:"flex items-start gap-3 text-left",children:[(0,n.jsx)("span",{className:"mt-1 inline-flex text-base",children:"processing"===(r=i.status)?(0,n.jsx)(eo.A,{spin:!0}):"success"===r?(0,n.jsx)(ea.A,{}):"warning"===r?(0,n.jsx)(ei.A,{}):(0,n.jsx)(el.A,{})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-3",children:[(0,n.jsx)(es.A.Text,{strong:!0,className:"min-w-0 flex-1 leading-6",ellipsis:{tooltip:i.title},children:i.title}),(0,n.jsx)(ec.A,{color:"processing"===(o=i.status)?"processing":"success"===o?"success":"warning"===o?"warning":"error",className:"m-0 shrink-0",children:i.status})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,n.jsx)(es.A.Text,{type:"error"===i.status?"danger":void 0,className:"block whitespace-pre-wrap break-words leading-6",children:i.error||i.message}),(0,n.jsx)(ed.A,{percent:s,status:c}),(0,n.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,n.jsx)(eL,{label:"类型",value:"document"===(a=i.type)?"文档生成":"upload"===a?"文件上传":"reindex"===a?"重新解析":"delete"===a?"删除":a}),(0,n.jsx)(eL,{label:"阶段",value:i.stage}),i.chunkCount?(0,n.jsx)(eL,{label:"切片数",value:i.chunkCount}):null,i.filePath?(0,n.jsx)(eL,{label:"文件",value:i.filePath}):null,(0,n.jsx)(eL,{label:"更新时间",value:u})]}),d.length>0?(0,n.jsxs)("div",{className:"rounded border border-slate-100 bg-slate-50 p-2",children:[(0,n.jsx)(es.A.Text,{type:"secondary",className:"block text-xs",children:"诊断详情"}),(0,n.jsx)("ul",{className:"m-0 mt-1 max-h-52 overflow-auto pl-4 text-xs leading-5 text-slate-500",children:d.map((e,t)=>(0,n.jsx)("li",{className:"break-words",children:e},"".concat(i.id,"-").concat(t)))})]}):null]})]})]})})}function eH(){let[e,t]=(0,o.useState)(!1),[r,a]=(0,o.useState)([]),[i,l]=(0,o.useState)(!1),s=(0,o.useRef)(0),c=(0,o.useRef)(null),d=(0,o.useRef)([]),u=async()=>{let e=await (0,eB.zA)({limit:50});s.current=0,d.current=e.jobs||[],a(e.jobs||[])};(0,o.useEffect)(()=>{l(!0);let e=!1,t=e=>{null!=c.current&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>{r()},e)},r=async()=>{try{await u();let r=d.current.some(e=>"processing"===e.status);e||t(r?2e3:3e4)}catch(n){s.current+=1;let r=Math.min(3e4,2e3*2**Math.min(4,s.current));e||t(r)}};return r(),()=>{e=!0,null!=c.current&&window.clearTimeout(c.current)}},[]);let p=(0,o.useMemo)(()=>r.filter(e=>"processing"===e.status),[r]),f=p.length,m=p[0];return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eN,{count:f,size:"small",children:(0,n.jsx)(eI.Ay,{className:"topbarBtn",onClick:()=>t(!0),icon:f?(0,n.jsx)(eo.A,{spin:!0}):(0,n.jsx)(ei.A,{}),children:"后台任务"})}),m&&!e&&f>0?(0,n.jsxs)("span",{style:{maxWidth:260,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--colorTextSecondary)"},children:[m.title," \xb7 ",m.percent,"%"]}):null,(0,n.jsx)(ez.A,{title:"后台任务",placement:"right",size:"large",open:e,onClose:()=>t(!1),extra:(0,n.jsx)(eI.Ay,{size:"small",onClick:()=>void u(),children:"刷新"}),styles:{body:{padding:0}},children:0===r.length?(0,n.jsx)("div",{className:"flex h-full items-start justify-center pt-16",children:(0,n.jsx)(eD.A,{description:"暂无后台任务"})}):(0,n.jsx)("div",{className:"text-left",children:r.map(e=>(0,n.jsx)(e_,{job:e,mounted:i},e.id))})})]})}function eW(){let{resolvedTheme:e,setTheme:t}=(0,s.D)(),{locale:r,setLocale:a}=eX(),i=eG("settings"),[l,c]=(0,o.useState)(!1),d=l&&"dark"===e;return(0,o.useEffect)(()=>{c(!0)},[]),(0,n.jsxs)("header",{className:"topbar",children:[(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)(eH,{}),(0,n.jsxs)("button",{onClick:()=>t(d?"light":"dark"),className:"topbarBtn",children:[d?(0,n.jsx)(er.A,{size:14}):(0,n.jsx)(K.A,{size:14}),(0,n.jsx)("span",{children:i(d?"light":"dark")})]}),(0,n.jsxs)("button",{onClick:()=>{a("zh-CN"===r?"en-US":"zh-CN")},className:"topbarBtn",children:[(0,n.jsx)(en.A,{size:14}),(0,n.jsx)("span",{children:"zh-CN"===(l?r:"zh-CN")?"English":"中文"})]})]})}let eq=JSON.parse('{"app":{"title":"Customize Agent","subtitle":"管理控制台"},"nav":{"overview":"总览","knowledge":"知识库","knowledgeManage":"知识库管理","fileManagement":"文件管理","knowledgeSearch":"知识库搜索","documents":"工作流模版库","assetLibrary":"生成资源","documentRoles":"角色配置","documentSpecs":"文档规范包","guide":"指引","models":"模型配置","settings":"设置","promptManagement":"提示词管理","systemLogs":"系统日志","templateReferences":"模板参考"},"overview":{"title":"系统总览","description":"查看 Customize Agent 运行状态与关键指标","status":"服务状态","statusRunning":"运行中","statusError":"异常","knowledgeBase":"知识库","modelConfig":"模型配置","filesCount":"文件总数","chunksCount":"分块总数","storageSize":"存储空间","providersCount":"已配置模型","quickActions":"快捷操作","goToKnowledge":"管理知识库","goToModels":"配置模型","goToSettings":"系统设置","cores":"核","memory":"内存","tokensUsed":"累计 Tokens","tasksTotal":"总任务数","successRate":"成功率","topModel":"调用最多模型","taskTypes":"任务类型","calls":"次调用","systemResources":"系统资源","hardwareUsage":"硬件使用率","cpuUsage":"CPU 使用率","memoryUsage":"内存使用率","activityContext":"活动上下文","recentTaskTypes":"最近任务类型","noDataAvailable":"暂无数据","updated":"已更新","noLogs":"暂无日志","uptime":"运行时间","fileRoles":"文件角色","promptRoles":"提示词角色","templateCount":"模板数量","semanticModel":"语义模型","external":"外部","local":"本地","notConfigured":"未配置","modelProviders":"模型供应商","auditLogs":"审计日志"},"knowledge":{"title":"知识库管理","description":"管理本地文件和知识库索引","manageTitle":"知识库管理","manageDesc":"查看知识库统计、分类和功能状态","stats":"统计概览","files":"文件管理","settings":"知识库设置","totalFiles":"文件总数","totalChunks":"分块总数","totalSize":"存储大小","lastIndexed":"上次索引","categories":"文件分类","fileCount":"文件数量","search":"搜索文件","searchPlaceholder":"输入文件名或内容关键词...","filterCategory":"筛选分类","allCategories":"全部类型","upload":"上传文件","uploadHint":"点击或拖拽上传 (PDF, Word, Excel, 图片, 代码等)","uploading":"上传中...","reindex":"重新索引","reindexing":"正在重新索引...","delete":"删除","deleteConfirm":"确定要删除该文件吗?此操作不可恢复。","fileList":"文件列表","fileName":"文件名","fileSize":"大小","fileCategory":"分类","fileDate":"修改日期","totalRootFolders":"总根文件夹数","totalFilesStats":"总文件数","successfullyParsed":"解析成功","parsingErrors":"解析失败","chunksCount":"切片数","parsingStatus":"解析状态","source":"来源","fileSource":"文件","showingMatchingFiles":"显示 {count} 个匹配文件","deleteSelected":"删除选中","deleteAll":"删除全部","uploadFiles":"上传文件","uploadFolder":"上传文件夹","reindexAll":"重新解析全部","new":"新建","manageRawFiles":"管理原始文件、文档和代码源","noFiles":"暂无文件,请上传文件开始使用","loadError":"加载文件列表失败","emptySearch":"未找到匹配的文件","ignoreRules":"忽略规则","ignoreHint":"每行一个 glob 模式,匹配的文件将被跳过","saveIgnore":"保存规则","duplicates":"重复文件","noDuplicates":"未发现重复文件","duplicatesFound":"发现 {count} 组重复文件","features":"功能状态","featureName":"功能","featureDesc":"说明","featureValue":"实现","featureVectorStoreDesc":"向量数据库,存储文档向量索引","vectorStore":"向量存储","embedding":"Embedding","averageSize":"平均大小","builtinExtractors":"内置提取器","featureEmbeddingDesc":"文本嵌入模型,将文本转换为向量","featureDedup":"去重引擎","featureDedupDesc":"检测并移除重复/相似文档","featureChunker":"分块器","featureChunkerDesc":"将文档拆分为可检索的语义块","globalSearch":"全局搜索","projectSearch":"项目搜索","autoIndex":"自动索引","enabled":"已启用","disabled":"已禁用","parentChunks":"父级切片","childChunks":"子级切片","parentChunkId":"父级 ID","chunkIndex":"切片序号","chunkType":"类型","sectionOrRange":"章节/范围","chunkContent":"内容","parentChunkHint":"父级切片是同一 parentId 下子级切片的上下文合集;当一个父级只包含一个子级时,两处内容相同是正常现象。","fileDetailLoadFailed":"文件详情加载失败","openFileRequested":"已请求打开文件","openDirectoryRequested":"已请求打开目录","table":"表格","sheet":"工作表","header":"表头","rows":"行数","columns":"列数","formulaCount":"公式数","mergeCount":"合并单元格","columnName":"列名","rowRange":"行范围","tableGridPreview":"表格网格预览","drawing":"图纸","layer":"图层","entityType":"实体类型","blockSymbol":"块/符号","productPart":"产品/零件","material":"材料","entityName":"实体名称","layerTogglePreview":"图层开关 / 图纸预览","type":"类型","name":"名称","dataPath":"数据路径","path":"路径","value":"值","pageNumber":"页码","ocrText":"OCR 文本","openExpand":"展开","index":"序号","tokens":"Token","section":"章节","backToFileList":"返回文件列表","fileDetailTitle":"文件详情","fileDetailDesc":"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。","copySourcePath":"复制原文件路径","copyDirectory":"复制所在目录","originalFile":"原文件","directory":"所在目录","detailFilter":"详情筛选","detailFilterPlaceholder":"筛选 rowRange、图层、实体、data path、section、chunk 内容","fileReindexed":"文件索引已重建","copied":"已复制","rowPrefix":"行","ocrPdf":"OCR/PDF","ocrRecommended":"OCR 建议","ocrReason":"OCR 原因","ocrProvider":"OCR 引擎","ocrLanguages":"OCR 语言","ocrTextLength":"OCR 文本长度","pdfPageCount":"PDF 总页数","pdfTextPages":"PDF 文本页数","pdfOcrAugmented":"PDF 已 OCR 增强","pdfOcrPages":"PDF OCR 页码","pdfFailedPages":"PDF 失败页","pdfPageOcrSupported":"PDF 页面 OCR 支持","pdfOcrPageCount":"PDF OCR 页数","pdfOcrPageLimit":"PDF OCR 页数上限","pdfRenderer":"PDF 渲染器","imagePreprocessor":"图像预处理","selectFile":"请选择文件","reOcr":"重新 OCR","reindexFile":"重建该文件索引","basicInfo":"基础信息","status":"状态","extractionMode":"解析模式","contentCoverage":"覆盖范围","textLength":"正文长度","structuredInfo":"结构化信息","chunkCount":"切片数","parentMatches":"父级命中","childMatches":"子级命中","filterTerm":"筛选词","searchTitle":"知识库搜索","searchDesc":"查看混合检索、父级回填、分块来源和评分明细;文档工作台会使用同一套检索链路按章节自动召回证据。","goToDocuments":"进入文档工作台","autoSearchFirst":"自动检索为主,人工确认为辅","autoSearchFirstDesc":"文档工作台会自动按章节检索证据;只有当必须指定官方资料、图纸或表格时,才需要复制文件路径作为高级优先证据。","searchContentPlaceholder":"输入要搜索的知识库内容","searchAction":"搜索","searchFailed":"搜索失败","recallWeightTuning":"召回权重调节","debugPanel":"检索调试面板","originalQuery":"原始查询","reranker":"重排器","rewrittenQueries":"查询改写","recallCounts":"召回数量","recallWeights":"召回权重","searchResults":"搜索结果","noSearchResults":"暂无结果","resultIndex":"序号","copyAsPriorityEvidence":"复制为高级优先证据","copyPriorityEvidenceSuccess":"已复制文件路径;仅在需要人工指定证据时粘贴到章节的高级优先证据中","expand":"展开","weights":{"keyword":"关键词权重","vector":"向量权重","rewrite":"改写权重","hybridBonus":"混合加成"},"recallSources":{"keyword":"关键词检索","vector":"向量检索","rewrite":"查询改写","hybrid":"混合检索","rerank":"重排"},"scopes":{"project":"当前项目","global":"全局"},"scoreDetails":{"keywordScore":"关键词分","bm25Score":"BM25 分","vectorScore":"向量分","rerankBoost":"重排加成","hybridScore":"混合分"}},"models":{"title":"模型配置","description":"管理 LLM 模型与层级分配","modelList":"Model 列表","addModel":"添加模型","editModel":"编辑模型","providerName":"Provider 名称","modelName":"模型名称","apiKey":"API Key","baseUrl":"Base URL","protocol":"请求协议","testConnection":"测试连接","testing":"测试中...","connected":"已连接","connectionFailed":"连接失败","noProviders":"暂无模型,请添加一个","modelTiers":"模型层级分配","tierReader":"Reader(只读)","tierReaderDesc":"处理低风险、只读和成本敏感任务,例如读取文件、检索知识库、搜索文本、整理上下文。建议选择速度快、价格低、长上下文能力稳定的模型。","tierReasoning":"Reasoning(推理)","tierReasoningDesc":"处理需要深入分析、规划、代码理解和多步骤推理的任务。建议选择推理能力强、稳定性高的模型,必要时可使用更高阶模型。","tierAction":"Action(操作)","tierActionDesc":"处理会产生副作用的任务,例如写文件、修改代码、执行命令、调用外部工具。建议选择可靠、遵循指令能力强且经过验证的模型。","activeModel":"当前模型","deleteProvider":"删除","deleteProviderConfirm":"确定要删除此模型及其所有配置吗?","modelNamePlaceholder":"例如: gpt-4o / deepseek-chat","selectModelPlaceholder":"暂不配置","apiKeyEditHint":"已配置的 Key 会以掩码回显,聚焦后可输入新 Key;掩码不可复制,留空或保持掩码则不修改。","apiKeyEditPlaceholder":"输入新的 API Key,留空保持不变","embeddingConfig":"Embedding 配置","embeddingProvider":"Embedding Provider","embeddingProviderHash":"本地语义模型","embeddingProviderOpenAI":"OpenAI 兼容 Embedding","embeddingHint":"Embedding 用于知识库向量检索。修改 Embedding 模型或维度后,建议到知识库页面重新索引。","model":"模型","dimensions":"维度","dimensionsPlaceholder":"例如 1024","none":"无","active":"已启用","localRecommended":"本地(推荐)","externalAdvanced":"外部(高级)","status":"状态","localHash":"本地语义模型","openAICompatible":"OpenAI 兼容","saveEmbedding":"保存 Embedding 配置","testEmbedding":"测试 Embedding","embeddingApiKeyHint":"留空或保持掩码表示不修改密钥","optional":"可选","save":"保存","cancel":"取消","webEnhancement":"联网增强","webEnhancementDesc":"默认关闭。开启后,系统会受控检索公开规范、政策和通用技术资料,用于增强措施准确性;联网资料不会覆盖本地项目事实。","webEnhancementEnabled":"已开启联网增强","webEnhancementDisabled":"未开启联网增强","maxQueriesPerChapter":"每章最大查询数","maxResultsPerQuery":"每次最大结果数","directEndpoint":"直连端点","directEndpointDesc":"Base URL 是完整接口地址","capabilities":"多模态能力","anthropic":"Anthropic","google":"Google","ollama":"Ollama","openRouter":"OpenRouter","imageGeneration":"图片生成","imageUnderstanding":"图片理解","fileUnderstanding":"文件理解","audioCapability":"音频能力","videoCapability":"视频能力","localEmbedding":"本地 Embedding"},"prompt":{"title":"提示词管理","description":"管理各项目的 CUSTOMIZE.md 系统提示词文件","filePath":"文件路径","lastModified":"最后修改","hasFile":"已配置","noFile":"未配置","noProjects":"暂无项目,请先初始化 Customize Agent 项目","promptName":"提示词名称","customPrompt":"我的提示词","currentProject":"当前项目","otherProjects":"其他项目","allPrompts":"全部提示词","promptStatus":"提示词状态","selected":"已选中","unselected":"未选中","hasFileStatus":"有文件","missingFileStatus":"无文件","sortByName":"名称 A-Z","sortByMtime":"最近修改优先","sortBySource":"来源优先","sortBySelected":"已选中优先","groupNav":"分组导航","detailPreview":"详情预览","noMatchDesc":"没有找到匹配的提示词,请尝试更换关键词或清空筛选条件","noPromptInGroup":"当前分组没有提示词","searchPrompt":"搜索名称、内容、路径...","import":"导入","exportFiltered":"导出筛选","createPrompt":"创建提示词","exportSelected":"导出选中","batchSelect":"批量选中","cancelSelect":"取消选中","clearSelect":"清空选择","aiPromptAssistant":"AI 提示词助手","clearHistory":"清空历史","generating":"生成中","canConverse":"可对话优化","mentionRecallHint":"输入 @ 召回知识库文件,再描述你的优化目标","apply":"应用","aiAnalyzing":"AI 正在分析并生成内容...","recallKbFiles":"召回知识库文件","recallLimitHint":"支持文件名与知识库内容检索,最多召回 3 个文件","inputAtKeyword":"输入 @关键词","loadingKbFiles":"正在加载知识库文件...","noRecallableKbFiles":"暂无可召回的知识库文件","searchingKbContent":"正在检索知识库内容...","noMatchingKbFiles":"没有匹配的知识库文件,请换个关键词","continueSearchingKb":"正在继续检索内容匹配...","unclassified":"未分类","unknownFormat":"未知格式","contentMatch":"内容匹配","diskFile":"磁盘文件","fileMatch":"文件匹配","mentionRecallPlaceholder":"输入 @ 召回知识库文件,再描述优化目标...","send":"发送"},"assets":{"description":"管理模板运行生成的文档、图片和附件。生成结果仅保存在生成资源中,不进入知识库。","total":"共 {count} 个资源","deleteSelected":"删除已选 {count}","deleteAll":"删除全部","empty":"暂无生成资源","resource":"资源","path":"路径","source":"来源","usedDocuments":"使用文档","updatedAt":"更新时间","actions":"操作","copyPath":"复制路径","openFile":"打开文件","openDirectory":"打开目录","copiedPath":"已复制路径","operationFailed":"操作失败","deleteAllConfirm":"删除全部资源?","deleteSelectedConfirm":"删除已选 {count} 个资源?","deleteIrreversible":"此操作不可撤销。","deleted":"已删除 {count} 个资源","batchDeleteFailed":"批量删除失败","sourceKnowledgeBase":"知识库","sourceGenerated":"AI 生成","sourceUploaded":"上传","sourceExternalUrl":"外部 URL"},"logs":{"monitorSystem":"监控系统异常、API 错误和运行时问题","searchLogs":"搜索日志...","refresh":"刷新","clear":"清空","clearConfirm":"确认清空所有错误日志?","logStorageInfo":"日志存储在本地","maxLoaded":"最多加载 500 条。","noLogsFound":"没有找到日志","loadFailed":"加载日志失败","time":"时间","level":"级别","source":"来源","message":"消息","requestId":"请求 ID","function":"函数","requestContext":"请求上下文","metadata":"元数据","stackTrace":"堆栈跟踪"},"settings":{"title":"系统设置","description":"管理系统界面选项和状态概览","language":"界面语言","languageDesc":"选择系统显示的语言","theme":"外观主题","themeDesc":"调整界面的亮色和暗色主题","light":"浅色","dark":"深色","system":"跟随系统","serverStatus":"服务状态","serverStatusDesc":"查看资源使用和运行健康度","status":"状态","healthy":"健康","unknown":"未知","uptime":"运行时间","days":"天","hours":"小时","minutes":"分","cpu":"处理器","cores":"核","memory":"内存使用","embeddingConfig":"向量配置","embeddingConfigDesc":"查看知识库的向量检索设定","provider":"供应商","model":"模型","apiKey":"密钥配置","configured":"已配置","none":"未配置","dimensions":"向量维度","localData":"本地数据","localDataDesc":"所有数据仅存储在您的本地设备上","directory":"存储目录","knowledgeBase":"知识库格式","localVectors":"本地向量","tasks":"总任务","tokens":"累计 Tokens"},"documents":{"title":"工作流模版库","description":"基于模板库和本地知识库生成、编辑、校验业务文档","templateLibrary":"模板库","workflow":"模板工作流","template":"模板","selected":"已选择","boundPrompts":"绑定提示词","boundFiles":"绑定知识库文件","boundPromptsRequired":"请选择提示词","boundFilesRequired":"请选择知识库文件","promptRole":"提示词角色","fileRole":"文件角色","manageRoles":"管理角色","roleEditor":"角色编辑器","roleType":"角色类型","roleName":"角色名称","roleDescription":"角色说明","addPromptBinding":"添加提示词绑定","addFileBinding":"添加文件绑定","structuredFacts":"结构化事实","exportGate":"导出门禁","executionStages":"执行阶段","executionStatus":"执行状态","flowPrepare":"准备配置","flowPrepareDesc":"读取模板、项目角色配置、文件角色和提示词角色","flowPrepareDone":"配置读取完成","flowFactExtraction":"事实抽取","flowFactExtractionDesc":"按文件处理类型抽取 JSON 事实和表格结构","flowChapterGeneration":"章节生成","flowChapterGenerationDesc":"基于证据、事实和提示词生成章节草稿","flowValidation":"严格校验","flowValidationDesc":"检查事实完整性、来源追踪和章节证据","flowFormatting":"正式排版","flowFormattingDesc":"生成封面、目录、分页和正式文档结构","flowDone":"生成完成","flowDoneDesc":"流程完成,可进入编辑和导出","flowGateFailed":"生成完成,但导出门禁未通过,请检查校验结果","projectRoleConfig":"项目角色配置","documentSpec":"文档规范包","documentSpecPlaceholder":"请选择文档规范包","exportDocx":"导出 Word","projectRoleConfigRequired":"请选择项目角色配置","noRoleConfig":"未绑定项目角色配置","evidenceLimit":"每章证据数","requirement":"生成要求","requirementPlaceholder":"例如:根据上传的招标文件、图纸和清单,生成一份施工组织设计草稿。","generate":"开始生成","editor":"生成 / 编辑器","edit":"编辑","chapters":"章节","sources":"资料来源","missingItems":"缺失项","validation":"校验","evidenceCount":"证据数量","missingCount":"缺失事实","downloadMarkdown":"下载 Markdown","exportHtml":"导出 HTML","exportPdf":"导出 PDF","saveDraft":"保存草稿","draftHistory":"草稿历史","regenerateChapter":"重新生成本章","newTemplate":"新建模板","templateEditor":"模板编辑器","templateName":"模板名称","templateCategory":"模板分类","templateDescription":"模板说明","outputTitle":"输出标题","chapter":"章节","chapterTitle":"章节标题","chapterPurpose":"章节用途","chapterQueries":"检索 Query","requiredFacts":"必需事实","addChapter":"添加章节","builtIn":"内置","deleteTemplateConfirm":"确定删除该模板吗?","noDraft":"请选择模板并生成草稿"},"specs":{"title":"文档规范包","description":"配置事实字段、章节要求和可执行门禁规则。系统门禁和自定义门禁都会参与生成校验。","newSpec":"新建规范包","list":"规范包列表","editor":"规范包编辑器","name":"规范包名称","specDescription":"规范包说明","wordTemplatePath":"Word 模板路径","facts":"事实字段","chapters":"章节规则","gates":"门禁规则","factName":"字段名称","factType":"字段类型","required":"必填/必需","sourceRoles":"来源文件角色","extractionHint":"抽取说明","validationHint":"校验说明","addFact":"添加事实字段","chapterTitle":"章节标题","order":"顺序","minWords":"最低字数","requiredFacts":"必需事实","requiredFileRoles":"必需文件角色","requiredPromptRoles":"必需提示词角色","generationHint":"生成说明","addChapter":"添加章节规则","gateName":"门禁名称","addGate":"添加门禁规则","plainGuideTitle":"大白话说明:文档规范包是干什么的?","plainGuideDesc":"文档规范包不是固定模板,而是一组可配置的生产规则:事实字段=这份文档必须知道哪些信息;章节规则=必须有哪些章节、最低写多少、需要哪些事实;门禁规则=生成和导出前必须检查什么。用户可以创建自定义门禁类型,并为它选择校验对象和校验方式;保存后会和系统门禁类型一样执行。不同公司、不同项目可以复制一份规范包再微调。"},"guide":{"title":"学习说明:如何跑通文档生成全流程","description":"本页面用于指导用户从模型配置、上传我的资料、提示词、角色配置、规范包、模板创建、生成校验到导出的完整流程。建议第一次使用时按顺序完成每一步。","fullFlow":"全流程步骤","stepModel":"1. 配置模型","stepModelDesc":"进入模型配置页面,添加可用的大模型供应商和模型,并设置当前启用模型。LLM JSON 事实抽取会优先使用已启用模型;如果模型不可用,系统会回退到本地确定性抽取。","stepKnowledge":"2. 上传知识库文件","stepKnowledgeDesc":"进入知识库页面上传招标文件、工程说明、表格数据、图纸说明、规范文件等资料。上传后等待索引完成,确保文件能在知识库文件列表中看到。","stepPrompt":"3. 创建提示词","stepPromptDesc":"进入提示词页面创建事实抽取、章节生成、校验、格式化等提示词。提示词应明确输出要求、禁止编造、引用来源和格式规范。","stepRole":"4. 配置角色和项目角色配置","stepRoleDesc":"进入角色配置页面,创建文件角色并绑定知识库文件,创建提示词角色并绑定提示词,再创建项目角色配置,对文件角色和提示词角色排序。","stepTemplate":"5. 创建模板","stepTemplateDesc":"进入工作流模版库页面,新建模板,填写名称、分类、输出标题,并绑定一个项目角色配置。模板不直接绑定文件和提示词,只绑定项目角色配置。","stepGenerate":"6. 执行生成","stepGenerateDesc":"点击生成后,执行状态 Card 会展示准备配置、事实抽取、章节生成、严格校验、正式排版和完成状态,方便用户感知当前进度。","stepReview":"7. 审查结果","stepReviewDesc":"生成后检查编辑器、章节、结构化事实、来源、缺失项、严格校验、导出门禁和执行阶段。校验错误需要先处理再导出正式 PDF。","stepExport":"8. 导出文件","stepExportDesc":"可以导出 Markdown、HTML、PDF。PDF 会启用导出门禁,门禁未通过时系统会阻止导出,避免未经校验的文档流出。","roleDesign":"角色设计说明","roleDesignDesc":"角色用于把用户自定义名称和系统可执行能力连接起来。用户可以完全自定义角色名称,但必须选择执行类型或处理类型,让系统知道如何使用它。","fileRole":"文件角色","fileRoleDesc":"文件角色绑定知识库文件,并选择处理类型,例如规则文件、项目事实文件、表格数据、图纸文件、规范文件或参考资料。","promptRole":"提示词角色","promptRoleDesc":"提示词角色绑定提示词,并选择执行类型,例如事实抽取、章节生成、校验、格式化或参考。","projectConfig":"项目角色配置","projectConfigDesc":"项目角色配置把多个文件角色和提示词角色组合起来,并定义执行顺序。模板只需要绑定项目角色配置。","generationEngine":"生成引擎说明","generationEngineDesc":"生成引擎会按角色配置组织资料和提示词,执行事实抽取、表格解析、章节生成、严格校验和正式排版。","prepareTitle":"准备资料时要注意什么?","prepareContent":"建议至少准备项目事实文件、规则文件和生成提示词。表格类资料应尽量使用清晰表头,图纸资料建议配套图纸目录或说明文件。","rolesTitle":"角色应该怎么命名?","rolesContent":"角色名称建议使用业务语义,例如“招标文件事实源”“劳动力计划表”“施工组织设计章节生成提示词”。系统不依赖名称判断能力,而是依赖处理类型和执行类型。","templateTitle":"模板应该怎么创建?","templateContent":"模板用于定义输出文档类型和标题,绑定项目角色配置即可。不同项目可以复用同一模板,但应创建不同的项目角色配置来绑定不同资料。","generateTitle":"生成过程中怎么看进度?","generateContent":"生成页会显示执行状态 Card。当前步骤会高亮,成功后变为完成;如果失败会显示错误。生成完成后,下方执行阶段会展示后端真实阶段结果。","qaTitle":"怎样判断能否正式导出?","qaContent":"重点查看导出门禁。只有无阻断级错误、基础事实齐全、事实具备来源、章节有证据且没有资料未提供章节时,才建议导出 PDF。"},"roles":{"title":"角色配置","description":"创建文件角色、提示词角色,并组合成可排序的项目角色配置供模板绑定使用","newFileRole":"新建文件角色","newPromptRole":"新建提示词角色","newConfig":"新建项目配置","fileRoles":"文件角色","promptRoles":"提示词角色","configs":"项目角色配置","roleEditor":"角色编辑器","configEditor":"项目角色配置编辑器","roleType":"角色类型","fileRole":"文件角色","promptRole":"提示词角色","roleName":"角色名称","roleDescription":"角色说明","bindFile":"绑定知识库文件","bindPrompt":"绑定提示词","executionType":"执行类型","processingType":"处理类型","factExtraction":"事实抽取","chapterGeneration":"章节生成","validation":"校验","formatting":"格式化","llmReview":"LLM审阅","reference":"参考","ruleFile":"规则文件","tableFile":"表格数据","drawingFile":"图纸文件","specificationFile":"规范文件","configName":"配置名称","configDescription":"配置说明","addRole":"添加角色","plainGuideTitle":"大白话说明:文件角色和提示词角色到底是什么?","plainGuideDesc":"文件角色就是给资料贴用途标签:规则文件=告诉系统必须遵守什么;项目事实文件=告诉系统项目真实信息;表格数据=清单、计划、数据表;图纸文件=图纸目录和设计说明;规范文件=国家/行业/企业标准;参考资料=可参考但不是强事实。提示词角色就是给提示词贴执行标签:事实抽取=先把资料变成事实;章节生成=写正文;校验=找问题;格式化=整理成正式文档。一个角色可以绑定多个文件或多个提示词,适合一个用途对应多份资料的情况。","executionTypeHelp":"大白话:这条提示词在哪个阶段用。事实抽取负责找资料里的真信息;章节生成负责写正文;校验负责挑错;格式化负责整理版式;参考只作为辅助说明。","processingTypeHelp":"大白话:这个文件在生成里扮演什么角色。规则文件是要求和评分规则;项目事实文件是真实项目资料;表格数据是 Excel/CSV/清单;图纸文件是图纸目录和设计说明;规范文件是标准规范;参考资料只做辅助参考。","multiBindFileHelp":"可以多选。比如“项目事实文件”可以同时绑定招标文件、合同摘要、项目概况。少量明确资料建议单绑;同一用途多份资料建议多绑。","multiBindPromptHelp":"可以多选。比如“章节生成”可以同时绑定通用写作要求、公司风格要求、甲方特殊要求。系统会按项目角色配置中的角色顺序使用。","noFileRoleSelected":"暂未选择文件角色","noPromptRoleSelected":"暂未选择提示词角色","bindPromptCount":"绑定 {count} 个提示词"},"common":{"save":"保存","cancel":"取消","confirm":"确认","delete":"删除","edit":"编辑","add":"添加","search":"搜索","loading":"加载中...","error":"出错了","success":"操作成功","retry":"重试","close":"关闭","back":"返回","more":"更多","noData":"暂无数据","bytes":"字节","kb":"KB","mb":"MB","gb":"GB","unknown":"未知","never":"从未"},"refs":{"title":"模板参考库","description":"上传优秀入围施组文件作为质量对标基准。系统自动解析质量画像(参数密度、工序链、结构等),生成文档后按工程类型对标。参考文件仅用于质量对标与结构参考,绝不作为项目事实材料参与生成。","uploadTitle":"点击或拖拽上传参考文件","uploadHint":"支持 PDF / Word 文档,可上传多份不同类型的入围文件累积沉淀","uploading":"正在上传并解析…","uploaded":"参考文件已入库并完成画像解析","uploadFailed":"上传失败","operationFailed":"操作失败","projectType":"工程类型","autoClassify":"不选则自动分类","statusParsing":"解析中…","statusFailed":"解析失败","changeType":"改为","typeChanged":"类型已更新","delete":"删除","deleteConfirm":"删除该参考文件?原文将一并移除","paramDensity":"参数密度","arrowChain":"工序链覆盖率","duplication":"段落重复率","tables":"表格数","sections":"章节数","sectionSubsection":"章节/小节","subsections":"小节数","subitems":"子目数","words":"字数","more":"展开","noReferences":"暂无该类型的参考文件","redLineTitle":"红线说明","redLine":"参考文件独立存储,永不进入知识库检索、永不作为生成事实材料。","profileTitle":"类型画像","profileSamples":"份样本","profileUpdated":"更新于","profileDetail":"查看画像详情","profileDetailTitle":"类型画像详情","profileMetrics":"指标区间(最小 - 均值 - 最大)","profileTypicalHeadings":"典型章节结构(样本覆盖率)","profileCommonTables":"常见表格","profileFrequentParams":"高频工艺参数","profileSources":"画像来源文件","profileNoSamples":"该类型暂无样本,上传参考文件后自动沉淀画像","totalSamples":"有效样本","coveredTypes":"覆盖类型","uploadSection":"上传参考文件","autoClassified":"自动分类","fileLibrary":"文件库","allFiles":"全部","profileSubtitle":"类型级累积画像,随参考文件持续沉淀","headingPreview":"章节结构","avgSectionWords":"平均每章字数"}}'),eV=JSON.parse('{"app":{"title":"Customize Agent","subtitle":"Admin Console"},"nav":{"overview":"Overview","knowledge":"Knowledge Base","knowledgeManage":"KB Management","fileManagement":"File Management","knowledgeSearch":"KB Search","documents":"Workflow Templates","assetLibrary":"Generated Assets","documentRoles":"Role Config","documentSpecs":"Document Specs","guide":"Guide","models":"Model Config","settings":"Settings","promptManagement":"Prompt Management","systemLogs":"System Logs","templateReferences":"Template References"},"overview":{"title":"System Overview","description":"Monitor Customize Agent status and key metrics","status":"Service Status","statusRunning":"Running","statusError":"Error","knowledgeBase":"Knowledge Base","modelConfig":"Model Config","filesCount":"Total Files","chunksCount":"Total Chunks","storageSize":"Storage Size","providersCount":"Models","quickActions":"Quick Actions","goToKnowledge":"Manage Knowledge Base","goToModels":"Configure Models","goToSettings":"System Settings","cores":"cores","memory":"Memory","tokensUsed":"Total Tokens","tasksTotal":"Total Tasks","successRate":"Success Rate","topModel":"Most Used Model","taskTypes":"Task Types","calls":"calls","systemResources":"System Resources","hardwareUsage":"Hardware usage","cpuUsage":"CPU usage","memoryUsage":"Memory usage","activityContext":"Activity Context","recentTaskTypes":"Recent task types","noDataAvailable":"No data available","updated":"Updated","noLogs":"No logs","uptime":"Uptime","fileRoles":"File Roles","promptRoles":"Prompt Roles","templateCount":"Templates","semanticModel":"Semantic Model","external":"External","local":"Local","notConfigured":"Not Configured","modelProviders":"Model Providers","auditLogs":"Audit Logs"},"knowledge":{"title":"Knowledge Base","description":"Manage local files and knowledge base index","manageTitle":"KB Management","manageDesc":"View knowledge base statistics, categories, and features","stats":"Statistics","files":"File Management","settings":"KB Settings","totalFiles":"Total Files","totalChunks":"Total Chunks","totalSize":"Total Size","lastIndexed":"Last Indexed","categories":"File Categories","fileCount":"File Count","search":"Search Files","searchPlaceholder":"Search by filename or content...","filterCategory":"Filter Category","allCategories":"All Types","upload":"Upload File","uploadHint":"Click or drag to upload (PDF, Word, Excel, images, code, etc.)","uploading":"Uploading...","reindex":"Reindex","reindexing":"Reindexing...","delete":"Delete","deleteConfirm":"Are you sure you want to delete this file? This action cannot be undone.","fileList":"File List","fileName":"File Name","fileSize":"Size","fileCategory":"Category","fileDate":"Modified","totalRootFolders":"Total Root Folders","totalFilesStats":"Total Files","successfullyParsed":"Successfully Parsed","parsingErrors":"Parsing Errors","chunksCount":"Chunks","parsingStatus":"Status","source":"Source","fileSource":"File","showingMatchingFiles":"Showing {count} matching files","deleteSelected":"Delete Selected","deleteAll":"Delete All","uploadFiles":"Upload Files","uploadFolder":"Upload Folder","reindexAll":"Reindex All","new":"New","manageRawFiles":"Manage raw files, documents, and code sources","noFiles":"No files yet. Upload files to get started.","loadError":"Failed to load file list","emptySearch":"No matching files found","ignoreRules":"Ignore Rules","ignoreHint":"One glob pattern per line. Matching files will be skipped.","saveIgnore":"Save Rules","duplicates":"Duplicate Files","noDuplicates":"No duplicate files found","duplicatesFound":"Found {count} duplicate groups","features":"Feature Status","featureName":"Feature","featureDesc":"Description","featureValue":"Implementation","featureVectorStoreDesc":"Vector database for storing document embeddings","vectorStore":"Vector Store","embedding":"Embedding","averageSize":"Average Size","builtinExtractors":"Built-in Extractors","featureEmbeddingDesc":"Text embedding model for converting text to vectors","featureDedup":"Dedup Engine","featureDedupDesc":"Detects and removes duplicate/similar documents","featureChunker":"Chunker","featureChunkerDesc":"Splits documents into retrievable semantic chunks","globalSearch":"Global Search","projectSearch":"Project Search","autoIndex":"Auto Index","enabled":"Enabled","disabled":"Disabled","parentChunks":"Parent Chunks","childChunks":"Child Chunks","parentChunkId":"Parent ID","chunkIndex":"Chunk Index","chunkType":"Type","sectionOrRange":"Section / Range","chunkContent":"Content","parentChunkHint":"A parent chunk is the context bundle of child chunks with the same parentId. If a parent contains only one child, identical content in both tables is expected.","fileDetailLoadFailed":"Failed to load file details","openFileRequested":"Open file requested","openDirectoryRequested":"Open directory requested","table":"Table","sheet":"Sheet","header":"Header","rows":"Rows","columns":"Columns","formulaCount":"Formulas","mergeCount":"Merged Cells","columnName":"Column Name","tableGridPreview":"Table Grid Preview","drawing":"Drawing","layer":"Layer","entityType":"Entity Type","blockSymbol":"Block/Symbol","productPart":"Product/Part","material":"Material","entityName":"Entity Name","layerTogglePreview":"Layer Toggle / Drawing Preview","type":"Type","name":"Name","dataPath":"Data Path","path":"Path","value":"Value","pageNumber":"Page","ocrText":"OCR Text","openExpand":"Expand","index":"Index","tokens":"Tokens","section":"Section","backToFileList":"Back to File List","fileDetailTitle":"File Details","fileDetailDesc":"View parsing results, drawing/table/data structured fields, parent chunks, and child chunks.","copySourcePath":"Copy Source Path","copyDirectory":"Copy Directory","originalFile":"Original File","directory":"Directory","detailFilter":"Detail Filter","detailFilterPlaceholder":"Filter rowRange, layers, entities, data paths, sections, and chunk content","fileReindexed":"File index rebuilt","copied":"Copied","rowPrefix":"Row","ocrPdf":"OCR/PDF","ocrRecommended":"OCR Recommended","ocrReason":"OCR Reason","ocrProvider":"OCR Engine","ocrLanguages":"OCR Languages","ocrTextLength":"OCR Text Length","pdfPageCount":"PDF Pages","pdfTextPages":"PDF Text Pages","pdfOcrAugmented":"PDF OCR Augmented","pdfOcrPages":"PDF OCR Pages","pdfFailedPages":"PDF Failed Pages","pdfPageOcrSupported":"PDF Page OCR Supported","pdfOcrPageCount":"PDF OCR Page Count","pdfOcrPageLimit":"PDF OCR Page Limit","pdfRenderer":"PDF Renderer","imagePreprocessor":"Image Preprocessor","selectFile":"Please select a file","reOcr":"Re-run OCR","reindexFile":"Rebuild File Index","basicInfo":"Basic Info","status":"Status","extractionMode":"Extraction Mode","contentCoverage":"Content Coverage","textLength":"Text Length","structuredInfo":"Structured Info","chunkCount":"Chunks","parentMatches":"Parent Matches","childMatches":"Child Matches","filterTerm":"Filter","searchTitle":"Knowledge Base Search","searchDesc":"Inspect hybrid retrieval, parent backfill, chunk sources, and score details. The document workspace uses the same retrieval pipeline to automatically recall chapter evidence.","goToDocuments":"Open Document Workspace","autoSearchFirst":"Automatic retrieval first, manual confirmation second","autoSearchFirstDesc":"The document workspace automatically retrieves evidence by chapter. Copy file paths as advanced priority evidence only when official documents, drawings, or tables must be specified.","searchContentPlaceholder":"Enter knowledge base content to search","searchAction":"Search","searchFailed":"Search failed","recallWeightTuning":"Recall Weight Tuning","debugPanel":"Retrieval Debug Panel","originalQuery":"Original Query","reranker":"Reranker","rewrittenQueries":"Query Rewrites","recallCounts":"Recall Counts","recallWeights":"Recall Weights","searchResults":"Search Results","noSearchResults":"No results","resultIndex":"No.","rowRange":"Rows","copyAsPriorityEvidence":"Copy as Priority Evidence","copyPriorityEvidenceSuccess":"File path copied. Paste it into advanced priority evidence only when manual evidence selection is required.","expand":"Expand","weights":{"keyword":"Keyword Weight","vector":"Vector Weight","rewrite":"Rewrite Weight","hybridBonus":"Hybrid Bonus"},"recallSources":{"keyword":"Keyword Retrieval","vector":"Vector Retrieval","rewrite":"Query Rewrite","hybrid":"Hybrid Retrieval","rerank":"Rerank"},"scopes":{"project":"Current Project","global":"Global"},"scoreDetails":{"keywordScore":"Keyword Score","bm25Score":"BM25 Score","vectorScore":"Vector Score","rerankBoost":"Rerank Boost","hybridScore":"Hybrid Score"}},"models":{"title":"Model Configuration","description":"Manage LLM models and tier assignments","modelList":"Model List","addModel":"Add Model","editModel":"Edit Model","providerName":"Provider Name","modelName":"Model Name","apiKey":"API Key","baseUrl":"Base URL","protocol":"Protocol","testConnection":"Test Connection","testing":"Testing...","connected":"Connected","connectionFailed":"Connection Failed","noProviders":"No models yet. Add one to get started.","modelTiers":"Model Tier Assignment","tierReader":"Reader (Read-only)","tierReaderDesc":"Handles low-risk, read-only, and cost-sensitive work such as reading files, searching the knowledge base, text search, and context organization. Prefer fast, inexpensive models with stable long-context support.","tierReasoning":"Reasoning (Analysis)","tierReasoningDesc":"Handles deeper analysis, planning, code understanding, and multi-step reasoning. Prefer models with stronger reasoning quality and reliability.","tierAction":"Action (Write/Execute)","tierActionDesc":"Handles side-effect operations such as writing files, changing code, running commands, and calling external tools. Prefer reliable models with strong instruction-following and verified behavior.","activeModel":"Active Model","deleteProvider":"Delete","deleteProviderConfirm":"Are you sure you want to delete this model and all its configs?","modelNamePlaceholder":"e.g. gpt-4o / deepseek-chat","selectModelPlaceholder":"No model selected","apiKeyEditHint":"Configured keys are shown as a masked value. Focus the field to enter a new key; the mask cannot be copied. Leave empty or keep the mask to avoid changes.","apiKeyEditPlaceholder":"Enter a new API key, or leave empty to keep current","embeddingConfig":"Embedding Configuration","embeddingProvider":"Embedding Provider","embeddingProviderHash":"Local Semantic Embedding","embeddingProviderOpenAI":"OpenAI-compatible Embedding","embeddingHint":"Embedding is used for knowledge base vector retrieval. After changing the embedding model or dimensions, reindex the knowledge base.","model":"Model","dimensions":"Dimensions","dimensionsPlaceholder":"e.g. 1024","none":"None","active":"Active","localRecommended":"Local (Recommended)","externalAdvanced":"External (Advanced)","status":"Status","localHash":"Local Semantic Embedding","openAICompatible":"OpenAI-compatible","saveEmbedding":"Save Embedding Config","testEmbedding":"Test Embedding","embeddingApiKeyHint":"Leave empty or keep the masked value to avoid changing the key","optional":"Optional","save":"Save","cancel":"Cancel","webEnhancement":"Web Enhancement","webEnhancementDesc":"Disabled by default. When enabled, the system will search public standards, policies, and general technical data to improve the accuracy of measures. Web data will not override local project facts.","webEnhancementEnabled":"Web Enhancement Enabled","webEnhancementDisabled":"Web Enhancement Disabled","maxQueriesPerChapter":"Max Queries Per Chapter","maxResultsPerQuery":"Max Results Per Query","directEndpoint":"Direct Endpoint","directEndpointDesc":"Base URL is the complete endpoint address","capabilities":"Capabilities","anthropic":"Anthropic","google":"Google","ollama":"Ollama","openRouter":"OpenRouter","imageGeneration":"Image Generation","imageUnderstanding":"Image Understanding","fileUnderstanding":"File Understanding","audioCapability":"Audio","videoCapability":"Video","localEmbedding":"Local Embedding"},"prompt":{"title":"Prompt Management","description":"Manage CUSTOMIZE.md system prompt files per project","filePath":"File Path","lastModified":"Last Modified","hasFile":"Configured","noFile":"Not Configured","noProjects":"No projects found. Initialize a Customize Agent project first.","promptName":"Prompt Name","customPrompt":"My Prompts","currentProject":"Current Project","otherProjects":"Other Projects","allPrompts":"All Prompts","promptStatus":"Prompt Status","selected":"Selected","unselected":"Unselected","hasFileStatus":"Has File","missingFileStatus":"Missing File","sortByName":"Name A-Z","sortByMtime":"Recently Modified","sortBySource":"Source","sortBySelected":"Selected First","groupNav":"Group Navigation","detailPreview":"Detail Preview","noMatchDesc":"No matching prompts found. Please try different keywords or clear filters.","noPromptInGroup":"No prompts in current group","searchPrompt":"Search name, content, path...","import":"Import","exportFiltered":"Export Filtered","createPrompt":"Create Prompt","exportSelected":"Export Selected","batchSelect":"Batch Select","cancelSelect":"Cancel Select","clearSelect":"Clear Selection","aiPromptAssistant":"AI Prompt Assistant","clearHistory":"Clear History","generating":"Generating","canConverse":"Conversational Optimization","mentionRecallHint":"Type @ to recall knowledge files, then describe your optimization goal","apply":"Apply","aiAnalyzing":"AI is analyzing and generating content...","recallKbFiles":"Recall Knowledge Files","recallLimitHint":"Supports file name and content search, recalls up to 3 files","inputAtKeyword":"Type @keyword","loadingKbFiles":"Loading knowledge files...","noRecallableKbFiles":"No knowledge files available to recall","searchingKbContent":"Searching knowledge content...","noMatchingKbFiles":"No matching knowledge files, try another keyword","continueSearchingKb":"Continuing to search for content matches...","unclassified":"Unclassified","unknownFormat":"Unknown Format","contentMatch":"Content Match","diskFile":"Disk File","fileMatch":"File Match","mentionRecallPlaceholder":"Type @ to recall knowledge files, then describe goal...","send":"Send"},"assets":{"description":"Manage documents, images, and attachments generated by template runs. Generated results are stored only in generated assets and are not added to the knowledge base.","total":"{count} assets","deleteSelected":"Delete Selected {count}","deleteAll":"Delete All","empty":"No generated assets","resource":"Resource","path":"Path","source":"Source","usedDocuments":"Used Documents","updatedAt":"Updated At","actions":"Actions","copyPath":"Copy Path","openFile":"Open File","openDirectory":"Open Directory","copiedPath":"Path copied","operationFailed":"Operation failed","deleteAllConfirm":"Delete all assets?","deleteSelectedConfirm":"Delete {count} selected assets?","deleteIrreversible":"This action cannot be undone.","deleted":"Deleted {count} assets","batchDeleteFailed":"Batch delete failed","sourceKnowledgeBase":"Knowledge Base","sourceGenerated":"AI Generated","sourceUploaded":"Uploaded","sourceExternalUrl":"External URL"},"logs":{"monitorSystem":"Monitor system exceptions, API errors, and runtime issues","searchLogs":"Search logs...","refresh":"Refresh","clear":"Clear","clearConfirm":"Are you sure you want to clear all error logs?","logStorageInfo":"Logs are stored locally in","maxLoaded":"Max 500 entries loaded.","noLogsFound":"No logs found","loadFailed":"Failed to load logs","time":"Time","level":"Level","source":"Source","message":"Message","requestId":"Req ID","function":"Function","requestContext":"Request Context","metadata":"Metadata","stackTrace":"Stack Trace"},"settings":{"title":"System Settings","description":"Manage interface preferences and view system overview","language":"Interface Language","languageDesc":"Select the language for the system interface","theme":"Appearance Theme","themeDesc":"Adjust light and dark themes","light":"Light","dark":"Dark","system":"System","serverStatus":"Server Status","serverStatusDesc":"Resource usage and health","status":"Status","healthy":"Healthy","unknown":"Unknown","uptime":"Uptime","days":"days","hours":"hours","minutes":"mins","cpu":"CPU","cores":"Cores","memory":"Memory Usage","embeddingConfig":"Embedding Config","embeddingConfigDesc":"Vector DB configurations","provider":"Provider","model":"Model","apiKey":"API Key","configured":"Configured","none":"None","dimensions":"Dimensions","localData":"Local Data & Storage","localDataDesc":"All data is stored locally on your machine","directory":"Directory","knowledgeBase":"Knowledge Base","localVectors":"Local Vectors","tasks":"Total Tasks","tokens":"Total Tokens"},"documents":{"title":"Workflow Templates","description":"Generate, edit, and validate business documents from templates and the local knowledge base","templateLibrary":"Template Library","workflow":"Template Workflow","template":"Template","selected":"Selected","boundPrompts":"Bound Prompts","boundFiles":"Bound Knowledge Files","boundPromptsRequired":"Select prompts","boundFilesRequired":"Select knowledge files","promptRole":"Prompt Role","fileRole":"File Role","manageRoles":"Manage Roles","roleEditor":"Role Editor","roleType":"Role Type","roleName":"Role Name","roleDescription":"Role Description","addPromptBinding":"Add Prompt Binding","addFileBinding":"Add File Binding","structuredFacts":"Structured Facts","exportGate":"Export Gate","executionStages":"Execution Stages","executionStatus":"Execution Status","flowPrepare":"Prepare Config","flowPrepareDesc":"Load template, project role config, file roles, and prompt roles","flowPrepareDone":"Config loaded","flowFactExtraction":"Fact Extraction","flowFactExtractionDesc":"Extract JSON facts and table structures by file processing type","flowChapterGeneration":"Chapter Generation","flowChapterGenerationDesc":"Generate chapter drafts from evidence, facts, and prompts","flowValidation":"Strict Validation","flowValidationDesc":"Check fact completeness, source traceability, and chapter evidence","flowFormatting":"Formal Formatting","flowFormattingDesc":"Generate cover, table of contents, page breaks, and formal document structure","flowDone":"Completed","flowDoneDesc":"Generation completed; ready for editing and export","flowGateFailed":"Generation completed, but export gate failed. Check validation results","projectRoleConfig":"Project Role Config","documentSpec":"Document Spec Package","documentSpecPlaceholder":"Select a document spec package","exportDocx":"Export Word","projectRoleConfigRequired":"Select a project role config","noRoleConfig":"No project role config bound","evidenceLimit":"Evidence per Chapter","requirement":"Generation Requirement","requirementPlaceholder":"Example: Generate a construction organization design draft from uploaded tender files, drawings, and BOQ sheets.","generate":"Generate","editor":"Generate / Editor","edit":"Edit","chapters":"Chapters","sources":"Sources","missingItems":"Missing Items","validation":"Validation","evidenceCount":"Evidence Count","missingCount":"Missing Facts","downloadMarkdown":"Download Markdown","exportHtml":"Export HTML","exportPdf":"Export PDF","saveDraft":"Save Draft","draftHistory":"Draft History","regenerateChapter":"Regenerate Chapter","newTemplate":"New Template","templateEditor":"Template Editor","templateName":"Template Name","templateCategory":"Template Category","templateDescription":"Template Description","outputTitle":"Output Title","chapter":"Chapter","chapterTitle":"Chapter Title","chapterPurpose":"Chapter Purpose","chapterQueries":"Search Queries","requiredFacts":"Required Facts","addChapter":"Add Chapter","builtIn":"Built-in","deleteTemplateConfirm":"Delete this template?","noDraft":"Select a template and generate a draft"},"specs":{"title":"Document Spec Packages","description":"Configure fact fields, chapter rules, and executable gate rules. Both system and custom gate types participate in validation.","newSpec":"New Spec","list":"Spec List","editor":"Spec Editor","name":"Spec Name","specDescription":"Description","wordTemplatePath":"Word Template Path","facts":"Fact Fields","chapters":"Chapter Rules","gates":"Gate Rules","factName":"Field Name","factType":"Field Type","required":"Required","sourceRoles":"Source File Roles","extractionHint":"Extraction Hint","validationHint":"Validation Hint","addFact":"Add Fact Field","chapterTitle":"Chapter Title","order":"Order","minWords":"Min Words","requiredFacts":"Required Facts","requiredFileRoles":"Required File Roles","requiredPromptRoles":"Required Prompt Roles","generationHint":"Generation Hint","addChapter":"Add Chapter Rule","gateName":"Gate Name","addGate":"Add Gate Rule","plainGuideTitle":"Plain explanation: what is a document spec package?","plainGuideDesc":"A document spec package is not a fixed template. It is a configurable production rule set: fact fields define what must be known, chapter rules define required chapters and constraints, and gate rules define checks before generation and export. Users can create custom gate types by choosing a validation subject and operator; saved custom types run just like system gate types."},"guide":{"title":"Guide: Run the Full Document Generation Flow","description":"This guide walks users through model setup, uploading their own files, prompts, role configuration, spec packages, template creation, generation, validation, and export.","fullFlow":"Full Flow","stepModel":"1. Configure Models","stepModelDesc":"Open Model Config, add providers and models, set an active model, and run health checks.","stepKnowledge":"2. Upload Knowledge Files","stepKnowledgeDesc":"Upload tender files, project descriptions, tables, drawings, specifications, and standards, then wait for indexing.","stepPrompt":"3. Create Prompts","stepPromptDesc":"Create prompts for fact extraction, chapter generation, validation, and formatting.","stepRole":"4. Configure Roles","stepRoleDesc":"Create file roles and prompt roles, bind resources, then create an ordered project role config.","stepTemplate":"5. Create Template","stepTemplateDesc":"Create a template in Workflow Templates and bind a project role config.","stepGenerate":"6. Generate","stepGenerateDesc":"Click Generate and observe the execution status card for progress.","stepReview":"7. Review","stepReviewDesc":"Review facts, sources, missing items, validation, export gate, and execution stages.","stepExport":"8. Export","stepExportDesc":"Export Markdown, HTML, or PDF. PDF export enforces the export gate.","roleDesign":"Role Design","roleDesignDesc":"Roles connect user-defined names to executable system behavior through execution or processing types.","fileRole":"File Role","fileRoleDesc":"A file role binds a knowledge file and declares its processing type.","promptRole":"Prompt Role","promptRoleDesc":"A prompt role binds a prompt and declares its execution type.","projectConfig":"Project Role Config","projectConfigDesc":"A project role config combines and orders file roles and prompt roles. Templates bind configs directly.","generationEngine":"Generation Engine","generationEngineDesc":"The engine organizes resources by roles and runs fact extraction, table parsing, generation, validation, and formatting.","prepareTitle":"How should I prepare files?","prepareContent":"Prepare project facts, rules, tables, drawings, and specifications. Make table headers clear and include drawing descriptions when possible.","rolesTitle":"How should roles be named?","rolesContent":"Use business names such as Tender Fact Source, Labor Plan Table, or Chapter Generation Prompt. System behavior depends on types, not names.","templateTitle":"How should templates be created?","templateContent":"Templates define document entry and output title. Bind a project role config instead of selecting files and prompts directly.","generateTitle":"How do I see progress?","generateContent":"The generation page shows an execution status card. The current step is highlighted and final backend stages appear after completion.","qaTitle":"How do I know whether export is allowed?","qaContent":"Check the export gate. PDF export should only proceed when there are no blocking errors and facts/sources/chapters are complete."},"roles":{"title":"Role Config","description":"Create file roles and prompt roles, then combine them into ordered project role configs for templates","newFileRole":"New File Role","newPromptRole":"New Prompt Role","newConfig":"New Project Config","fileRoles":"File Roles","promptRoles":"Prompt Roles","configs":"Project Role Configs","roleEditor":"Role Editor","configEditor":"Project Role Config Editor","roleType":"Role Type","fileRole":"File Role","promptRole":"Prompt Role","roleName":"Role Name","roleDescription":"Role Description","bindFile":"Bind Knowledge File","bindPrompt":"Bind Prompt","executionType":"Execution Type","processingType":"Processing Type","factExtraction":"Fact Extraction","chapterGeneration":"Chapter Generation","validation":"Validation","formatting":"Formatting","llmReview":"LLM Review","reference":"Reference","ruleFile":"Rule File","tableFile":"Table Data","drawingFile":"Drawing File","specificationFile":"Specification File","configName":"Config Name","configDescription":"Config Description","addRole":"Add Role","plainGuideTitle":"Plain explanation: what are file roles and prompt roles?","plainGuideDesc":"File roles label what files are used for. Rule files define requirements; project fact files contain real project info; table data means spreadsheets; drawing files mean drawing catalogs/descriptions; specification files are standards; references are only supporting materials. Prompt roles label when prompts are used. A role can bind multiple files or prompts when one purpose needs multiple resources.","executionTypeHelp":"Which stage this prompt is used in: fact extraction, chapter generation, validation, formatting, or reference.","processingTypeHelp":"What this file does in generation: rules, facts, tables, drawings, specifications, or references.","multiBindFileHelp":"Multiple files are allowed when one purpose has multiple source files.","multiBindPromptHelp":"Multiple prompts are allowed when one stage needs multiple prompt rules.","noFileRoleSelected":"No file role selected","noPromptRoleSelected":"No prompt role selected","bindPromptCount":"Bind {count} Prompts"},"common":{"save":"Save","cancel":"Cancel","confirm":"Confirm","delete":"Delete","edit":"Edit","add":"Add","search":"Search","loading":"Loading...","error":"Something went wrong","success":"Success","retry":"Retry","close":"Close","back":"Back","more":"More","noData":"No data","bytes":"bytes","kb":"KB","mb":"MB","gb":"GB","unknown":"Unknown","never":"Never"},"refs":{"title":"Template Reference Library","description":"Upload outstanding winning bids as quality benchmarks. The system parses quality profiles (parameter density, process chains, structure) and benchmarks generated documents by project type. References are used ONLY for quality benchmarking and structure guidance, never as project facts.","uploadTitle":"Click or drag files to upload","uploadHint":"PDF / Word supported. Upload multiple references of different project types to accumulate","uploading":"Uploading and parsing…","uploaded":"Reference added and profile parsed","uploadFailed":"Upload failed","operationFailed":"Operation failed","projectType":"Project type","autoClassify":"Auto-classify if empty","statusParsing":"Parsing…","statusFailed":"Parse failed","changeType":"Change to","typeChanged":"Type updated","delete":"Delete","deleteConfirm":"Delete this reference? The original file will also be removed","paramDensity":"Param density","arrowChain":"Process chain coverage","duplication":"Duplication rate","tables":"Tables","sections":"Sections","sectionSubsection":"Sections/Subsections","subsections":"Subsections","subitems":"Sub-items","words":"Words","more":"Expand","noReferences":"No references of this type yet","redLineTitle":"Guardrail","redLine":"References are stored in isolation, never indexed into the knowledge base, never used as generation facts.","profileTitle":"Type Profile","profileSamples":"samples","profileUpdated":"Updated at","profileDetail":"View Profile Details","profileDetailTitle":"Type Profile Details","profileMetrics":"Metric Ranges (min - avg - max)","profileTypicalHeadings":"Typical Chapter Structure (sample coverage)","profileCommonTables":"Common Tables","profileFrequentParams":"Frequent Parameters","profileSources":"Profile Source Files","profileNoSamples":"No samples yet. Upload reference files to accumulate the profile.","totalSamples":"Valid samples","coveredTypes":"Types covered","uploadSection":"Upload References","autoClassified":"Auto-classified","fileLibrary":"File Library","allFiles":"All","profileSubtitle":"Cumulative type-level profile, enriched with every reference","headingPreview":"Chapter structure","avgSectionWords":"Avg words per section"}}'),eU=(0,o.createContext)(null);function eX(){let e=(0,o.useContext)(eU);if(!e)throw Error("useAppLocale must be used inside Layout");return e}function eK(e,t){let r=t.split(".").reduce((e,t)=>{if(e&&"object"==typeof e&&t in e)return e[t]},e);return"string"==typeof r?r:t}function eG(e){let{messages:t}=eX();return(0,o.useCallback)(r=>{if(!e)return eK(t,r);let n="".concat(e,".").concat(r),o=eK(t,n);return o===n?eK(t,r):o},[t,e])}let eQ={"zh-CN":eq,"en-US":eV};function eY(e){var t;let{children:r}=e,{resolvedTheme:a}=(0,s.D)(),f=(0,l.useRouter)(),[h,g]=(0,o.useState)("zh-CN"),[b,y]=(0,o.useState)(!1),v="dark"===a,$=null!=(t=eQ[h])?t:eQ["zh-CN"];(0,o.useEffect)(()=>{g(function(){if("undefined"==typeof document)return"zh-CN";let e=document.cookie.match(/NEXT_LOCALE=([^;]+)/);return(null==e?void 0:e[1])||"zh-CN"}())},[]),(0,o.useEffect)(()=>{m().configure({showSpinner:!1,minimum:.1});let e=()=>{y(!0),m().start()},t=()=>{y(!1),m().done()};return f.events.on("routeChangeStart",e),f.events.on("routeChangeComplete",t),f.events.on("routeChangeError",t),()=>{f.events.off("routeChangeStart",e),f.events.off("routeChangeComplete",t),f.events.off("routeChangeError",t)}},[f]);let x=(0,o.useCallback)(e=>{document.cookie="NEXT_LOCALE=".concat(e,";path=/;max-age=31536000;samesite=lax"),g(e)},[]),w=(0,o.useMemo)(()=>({locale:h,setLocale:x,messages:$}),[h,x,$]),C=(0,o.useMemo)(()=>({algorithm:v?O.darkAlgorithm:O.defaultAlgorithm,token:{colorPrimary:v?"#0a84ff":"#007aff",colorInfo:v?"#0a84ff":"#007aff",colorSuccess:v?"#30d158":"#34c759",colorWarning:v?"#ff9f0a":"#ff9500",colorError:v?"#ff453a":"#ff3b30",colorBgBase:v?"#1c1c1e":"#f5f5f7",colorBgContainer:v?"rgba(44,44,46,0.78)":"rgba(255,255,255,0.78)",colorBgElevated:v?"rgba(44,44,46,0.92)":"rgba(255,255,255,0.94)",colorBorder:v?"rgba(255,255,255,0.12)":"rgba(60,60,67,0.16)",colorText:v?"#f5f5f7":"#1d1d1f",colorTextSecondary:v?"#98989d":"#6e6e73",fontFamily:"var(--fontSans)",fontSize:14,borderRadius:14,borderRadiusLG:20,borderRadiusSM:10,controlHeight:36,lineWidth:1,boxShadow:v?"0 8px 24px rgba(0,0,0,0.24)":"0 8px 24px rgba(0,0,0,0.06)",boxShadowSecondary:v?"0 4px 12px rgba(0,0,0,0.2)":"0 4px 12px rgba(0,0,0,0.04)",motionDurationMid:"0.2s",motionEaseInOut:"cubic-bezier(0.25, 0.1, 0.25, 1)"},components:{Card:{borderRadiusLG:20,paddingLG:24,headerFontSize:13,headerFontSizeSM:12},Button:{borderRadius:14,borderRadiusLG:18,borderRadiusSM:10,fontWeight:600,primaryShadow:"var(--shadowButton)"},Input:{borderRadius:14,controlHeight:36,activeShadow:"0 0 0 3px rgba(0,122,255,0.12)"},Select:{borderRadius:14},Modal:{borderRadiusLG:20,titleFontSize:17,fontWeightStrong:700},Tag:{borderRadiusSM:100,defaultBg:v?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.04)"},Table:{borderRadiusLG:20,headerBg:v?"rgba(255,255,255,0.04)":"rgba(0,0,0,0.02)",headerColor:"var(--colorTextSecondary)",headerSplitColor:"transparent",headerBorderRadius:12},Spin:{dotSize:28,dotSizeLG:40},Upload:{borderRadiusLG:20}}}),[v]),E="en-US"===h?p.A:u.A;return(0,n.jsx)(eU.Provider,{value:w,children:(0,n.jsx)(c.Ay,{theme:C,locale:E,children:(0,n.jsxs)(d.A,{children:[(0,n.jsx)(i(),{children:(0,n.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1, viewport-fit=cover"})}),(0,n.jsx)(et,{}),(0,n.jsxs)("div",{className:"mainContent",children:[(0,n.jsx)(eW,{}),(0,n.jsx)("main",{className:"mainInner".concat(b?" pageTransitioning":""),children:r})]})]})})})}function eJ(e){let{children:t}=e;return(0,n.jsx)(s.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,disableTransitionOnChange:!0,children:(0,n.jsx)(eY,{children:t})})}},47188:(e,t,r)=>{"use strict";r.d(t,{A:()=>p});var n=r(97109),o=r(82865),a=r(26047),i=r(67189),l=r(3638),s=r(52690),c=r(74567);let d=({children:e})=>{let{getPrefixCls:t}=n.useContext(c.QO),r=t();return n.isValidElement(e)?n.createElement(i.Ay,{visible:!0,motionName:`${r}-fade`,motionAppear:!0,motionEnter:!0,motionLeave:!1,removeOnLeave:!1},({style:t,className:r})=>(0,s.Ob)(e,e=>({className:(0,l.$)(e.className,r),style:{...e.style,...t}}))):e},u=[null,null],p=({children:e})=>n.createElement(o.xR,{postTriggerProps:e=>{let{id:t,builtinPlacements:r,popup:o}=e,i=(0,a.Tn)(o)?o():o,l=function(e){if(u[0]!==e){let t={};Object.keys(e).forEach(r=>{t[r]={...e[r],dynamicInset:!1}}),u[0]=e,u[1]=t}return u[1]}(r);return{...e,getPopupContainer:null,arrow:!1,popup:n.createElement(d,{key:t},i),builtinPlacements:l}}},e)},47252:(e,t,r)=>{"use strict";r.d(t,{Y:()=>s});let n={aliceblue:"9ehhb",antiquewhite:"9sgk7",aqua:"1ekf",aquamarine:"4zsno",azure:"9eiv3",beige:"9lhp8",bisque:"9zg04",black:"0",blanchedalmond:"9zhe5",blue:"73",blueviolet:"5e31e",brown:"6g016",burlywood:"8ouiv",cadetblue:"3qba8",chartreuse:"4zshs",chocolate:"87k0u",coral:"9yvyo",cornflowerblue:"3xael",cornsilk:"9zjz0",crimson:"8l4xo",cyan:"1ekf",darkblue:"3v",darkcyan:"rkb",darkgoldenrod:"776yz",darkgray:"6mbhl",darkgreen:"jr4",darkgrey:"6mbhl",darkkhaki:"7ehkb",darkmagenta:"5f91n",darkolivegreen:"3bzfz",darkorange:"9yygw",darkorchid:"5z6x8",darkred:"5f8xs",darksalmon:"9441m",darkseagreen:"5lwgf",darkslateblue:"2th1n",darkslategray:"1ugcv",darkslategrey:"1ugcv",darkturquoise:"14up",darkviolet:"5rw7n",deeppink:"9yavn",deepskyblue:"11xb",dimgray:"442g9",dimgrey:"442g9",dodgerblue:"16xof",firebrick:"6y7tu",floralwhite:"9zkds",forestgreen:"1cisi",fuchsia:"9y70f",gainsboro:"8m8kc",ghostwhite:"9pq0v",goldenrod:"8j4f4",gold:"9zda8",gray:"50i2o",green:"pa8",greenyellow:"6senj",grey:"50i2o",honeydew:"9eiuo",hotpink:"9yrp0",indianred:"80gnw",indigo:"2xcoy",ivory:"9zldc",khaki:"9edu4",lavenderblush:"9ziet",lavender:"90c8q",lawngreen:"4vk74",lemonchiffon:"9zkct",lightblue:"6s73a",lightcoral:"9dtog",lightcyan:"8s1rz",lightgoldenrodyellow:"9sjiq",lightgray:"89jo3",lightgreen:"5nkwg",lightgrey:"89jo3",lightpink:"9z6wx",lightsalmon:"9z2ii",lightseagreen:"19xgq",lightskyblue:"5arju",lightslategray:"4nwk9",lightslategrey:"4nwk9",lightsteelblue:"6wau6",lightyellow:"9zlcw",lime:"1edc",limegreen:"1zcxe",linen:"9shk6",magenta:"9y70f",maroon:"4zsow",mediumaquamarine:"40eju",mediumblue:"5p",mediumorchid:"79qkz",mediumpurple:"5r3rv",mediumseagreen:"2d9ip",mediumslateblue:"4tcku",mediumspringgreen:"1di2",mediumturquoise:"2uabw",mediumvioletred:"7rn9h",midnightblue:"z980",mintcream:"9ljp6",mistyrose:"9zg0x",moccasin:"9zfzp",navajowhite:"9zest",navy:"3k",oldlace:"9wq92",olive:"50hz4",olivedrab:"472ub",orange:"9z3eo",orangered:"9ykg0",orchid:"8iu3a",palegoldenrod:"9bl4a",palegreen:"5yw0o",paleturquoise:"6v4ku",palevioletred:"8k8lv",papayawhip:"9zi6t",peachpuff:"9ze0p",peru:"80oqn",pink:"9z8wb",plum:"8nba5",powderblue:"6wgdi",purple:"4zssg",rebeccapurple:"3zk49",red:"9y6tc",rosybrown:"7cv4f",royalblue:"2jvtt",saddlebrown:"5fmkz",salmon:"9rvci",sandybrown:"9jn1c",seagreen:"1tdnb",seashell:"9zje6",sienna:"6973h",silver:"7ir40",skyblue:"5arjf",slateblue:"45e4t",slategray:"4e100",slategrey:"4e100",snow:"9zke2",springgreen:"1egv",steelblue:"2r1kk",tan:"87yx8",teal:"pds",thistle:"8ggk8",tomato:"9yqfb",turquoise:"2j4r4",violet:"9b10u",wheat:"9ld4j",white:"9zldr",whitesmoke:"9lhpx",yellow:"9zl6o",yellowgreen:"61fzm"},o=Math.round;function a(e,t){let r=e.replace(/^[^(]*\((.*)/,"$1").replace(/\).*/,"").match(/\d*\.?\d+%?/g)||[],n=r.map(e=>parseFloat(e));for(let e=0;e<3;e+=1)n[e]=t(n[e]||0,r[e]||"",e);return r[3]?n[3]=r[3].includes("%")?n[3]/100:n[3]:n[3]=1,n}let i=(e,t,r)=>0===r?e:e/100;function l(e,t){let r=t||255;return e>r?r:e<0?0:e}class s{isValid=!0;r=0;g=0;b=0;a=1;_h;_hsl_s;_hsv_s;_l;_v;_max;_min;_brightness;constructor(e){function t(t){return t[0]in e&&t[1]in e&&t[2]in e}if(e)if("string"==typeof e){let t=e.trim();function r(e){return t.startsWith(e)}if(/^#?[A-F\d]{3,8}$/i.test(t))this.fromHexString(t);else if(r("rgb"))this.fromRgbString(t);else if(r("hsl"))this.fromHslString(t);else if(r("hsv")||r("hsb"))this.fromHsvString(t);else{let e=n[t.toLowerCase()];e&&this.fromHexString(parseInt(e,36).toString(16).padStart(6,"0"))}}else if(e instanceof s)this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this._h=e._h,this._hsl_s=e._hsl_s,this._hsv_s=e._hsv_s,this._l=e._l,this._v=e._v;else if(t("rgb"))this.r=l(e.r),this.g=l(e.g),this.b=l(e.b),this.a="number"==typeof e.a?l(e.a,1):1;else if(t("hsl"))this.fromHsl(e);else if(t("hsv"))this.fromHsv(e);else throw Error("@ant-design/fast-color: unsupported input "+JSON.stringify(e))}setR(e){return this._sc("r",e)}setG(e){return this._sc("g",e)}setB(e){return this._sc("b",e)}setA(e){return this._sc("a",e,1)}setHue(e){let t=this.toHsv();return t.h=e,this._c(t)}getLuminance(){function e(e){let t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}let t=e(this.r);return .2126*t+.7152*e(this.g)+.0722*e(this.b)}getHue(){if(void 0===this._h){let e=this.getMax()-this.getMin();0===e?this._h=0:this._h=o(60*(this.r===this.getMax()?(this.g-this.b)/e+6*(this.g<this.b):this.g===this.getMax()?(this.b-this.r)/e+2:(this.r-this.g)/e+4))}return this._h}getSaturation(){return this.getHSVSaturation()}getHSVSaturation(){if(void 0===this._hsv_s){let e=this.getMax()-this.getMin();0===e?this._hsv_s=0:this._hsv_s=e/this.getMax()}return this._hsv_s}getHSLSaturation(){if(void 0===this._hsl_s){let e=this.getMax()-this.getMin();if(0===e)this._hsl_s=0;else{let t=this.getLightness();this._hsl_s=e/255/(1-Math.abs(2*t-1))}}return this._hsl_s}getLightness(){return void 0===this._l&&(this._l=(this.getMax()+this.getMin())/510),this._l}getValue(){return void 0===this._v&&(this._v=this.getMax()/255),this._v}getBrightness(){return void 0===this._brightness&&(this._brightness=(299*this.r+587*this.g+114*this.b)/1e3),this._brightness}darken(e=10){let t=this.getHue(),r=this.getSaturation(),n=this.getLightness()-e/100;return n<0&&(n=0),this._c({h:t,s:r,l:n,a:this.a})}lighten(e=10){let t=this.getHue(),r=this.getSaturation(),n=this.getLightness()+e/100;return n>1&&(n=1),this._c({h:t,s:r,l:n,a:this.a})}mix(e,t=50){let r=this._c(e),n=t/100,a=e=>(r[e]-this[e])*n+this[e],i={r:o(a("r")),g:o(a("g")),b:o(a("b")),a:o(100*a("a"))/100};return this._c(i)}tint(e=10){return this.mix({r:255,g:255,b:255,a:1},e)}shade(e=10){return this.mix({r:0,g:0,b:0,a:1},e)}onBackground(e){let t=this._c(e),r=this.a+t.a*(1-this.a),n=e=>o((this[e]*this.a+t[e]*t.a*(1-this.a))/r);return this._c({r:n("r"),g:n("g"),b:n("b"),a:r})}isDark(){return 128>this.getBrightness()}isLight(){return this.getBrightness()>=128}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}clone(){return this._c(this)}toHexString(){let e="#",t=(this.r||0).toString(16);e+=2===t.length?t:"0"+t;let r=(this.g||0).toString(16);e+=2===r.length?r:"0"+r;let n=(this.b||0).toString(16);if(e+=2===n.length?n:"0"+n,"number"==typeof this.a&&this.a>=0&&this.a<1){let t=o(255*this.a).toString(16);e+=2===t.length?t:"0"+t}return e}toHsl(){return{h:this.getHue(),s:this.getHSLSaturation(),l:this.getLightness(),a:this.a}}toHslString(){let e=this.getHue(),t=o(100*this.getHSLSaturation()),r=o(100*this.getLightness());return 1!==this.a?`hsla(${e},${t}%,${r}%,${this.a})`:`hsl(${e},${t}%,${r}%)`}toHsv(){return{h:this.getHue(),s:this.getHSVSaturation(),v:this.getValue(),a:this.a}}toRgb(){return{r:this.r,g:this.g,b:this.b,a:this.a}}toRgbString(){return 1!==this.a?`rgba(${this.r},${this.g},${this.b},${this.a})`:`rgb(${this.r},${this.g},${this.b})`}toString(){return this.toRgbString()}_sc(e,t,r){let n=this.clone();return n[e]=l(t,r),n}_c(e){return new this.constructor(e)}getMax(){return void 0===this._max&&(this._max=Math.max(this.r,this.g,this.b)),this._max}getMin(){return void 0===this._min&&(this._min=Math.min(this.r,this.g,this.b)),this._min}fromHexString(e){let t=e.replace("#","");function r(e,r){return parseInt(t[e]+t[r||e],16)}t.length<6?(this.r=r(0),this.g=r(1),this.b=r(2),this.a=t[3]?r(3)/255:1):(this.r=r(0,1),this.g=r(2,3),this.b=r(4,5),this.a=t[6]?r(6,7)/255:1)}fromHsl({h:e,s:t,l:r,a:n}){let a=(e%360+360)%360;if(this._h=a,this._hsl_s=t,this._l=r,this.a="number"==typeof n?n:1,t<=0){let e=o(255*r);this.r=e,this.g=e,this.b=e;return}let i=0,l=0,s=0,c=a/60,d=(1-Math.abs(2*r-1))*t,u=d*(1-Math.abs(c%2-1));c>=0&&c<1?(i=d,l=u):c>=1&&c<2?(i=u,l=d):c>=2&&c<3?(l=d,s=u):c>=3&&c<4?(l=u,s=d):c>=4&&c<5?(i=u,s=d):c>=5&&c<6&&(i=d,s=u);let p=r-d/2;this.r=o((i+p)*255),this.g=o((l+p)*255),this.b=o((s+p)*255)}fromHsv({h:e,s:t,v:r,a:n}){let a=(e%360+360)%360;this._h=a,this._hsv_s=t,this._v=r,this.a="number"==typeof n?n:1;let i=o(255*r);if(this.r=i,this.g=i,this.b=i,t<=0)return;let l=a/60,s=Math.floor(l),c=l-s,d=o(r*(1-t)*255),u=o(r*(1-t*c)*255),p=o(r*(1-t*(1-c))*255);switch(s){case 0:this.g=p,this.b=d;break;case 1:this.r=u,this.b=d;break;case 2:this.r=d,this.b=p;break;case 3:this.r=d,this.g=u;break;case 4:this.r=p,this.g=d;break;default:this.g=d,this.b=u}}fromHsvString(e){let t=a(e,i);this.fromHsv({h:t[0],s:t[1],v:t[2],a:t[3]})}fromHslString(e){let t=a(e,i);this.fromHsl({h:t[0],s:t[1],l:t[2],a:t[3]})}fromRgbString(e){let t=a(e,(e,t)=>t.includes("%")?o(e/100*255):e);this.r=t[0],this.g=t[1],this.b=t[2],this.a=t[3]}}},47503:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(97109);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},47802:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(47252),o=r(78012);function a(e,{generateColorPalettes:t,generateNeutralColorPalettes:r}){let{colorSuccess:a,colorWarning:i,colorError:l,colorInfo:s,colorPrimary:c,colorBgBase:d,colorTextBase:u}=e,p=t(c),f=t(a),m=t(i),h=t(l),g=t(s),b=r(d,u),y=t(e.colorLink||e.colorInfo),v=new n.Y(h[1]).mix(new n.Y(h[3]),50).toHexString(),$={};return o.s.forEach(r=>{let n=e[r];if(n){let e=t(n);$[`${r}Hover`]=e[5],$[`${r}Active`]=e[7]}}),{...b,colorPrimaryBg:p[1],colorPrimaryBgHover:p[2],colorPrimaryBorder:p[3],colorPrimaryBorderHover:p[4],colorPrimaryHover:p[5],colorPrimary:p[6],colorPrimaryActive:p[7],colorPrimaryTextHover:p[8],colorPrimaryText:p[9],colorPrimaryTextActive:p[10],colorSuccessBg:f[1],colorSuccessBgHover:f[2],colorSuccessBorder:f[3],colorSuccessBorderHover:f[4],colorSuccessHover:f[4],colorSuccess:f[6],colorSuccessActive:f[7],colorSuccessTextHover:f[8],colorSuccessText:f[9],colorSuccessTextActive:f[10],colorErrorBg:h[1],colorErrorBgHover:h[2],colorErrorBgFilledHover:v,colorErrorBgActive:h[3],colorErrorBorder:h[3],colorErrorBorderHover:h[4],colorErrorHover:h[5],colorError:h[6],colorErrorActive:h[7],colorErrorTextHover:h[8],colorErrorText:h[9],colorErrorTextActive:h[10],colorWarningBg:m[1],colorWarningBgHover:m[2],colorWarningBorder:m[3],colorWarningBorderHover:m[4],colorWarningHover:m[4],colorWarning:m[6],colorWarningActive:m[7],colorWarningTextHover:m[8],colorWarningText:m[9],colorWarningTextActive:m[10],colorInfoBg:g[1],colorInfoBgHover:g[2],colorInfoBorder:g[3],colorInfoBorderHover:g[4],colorInfoHover:g[4],colorInfo:g[6],colorInfoActive:g[7],colorInfoTextHover:g[8],colorInfoText:g[9],colorInfoTextActive:g[10],colorLinkHover:y[4],colorLink:y[6],colorLinkActive:y[7],...$,colorBgMask:new n.Y("#000").setA(.45).toRgbString(),colorWhite:"#fff"}}},48477:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return w},useLinkStatus:function(){return x}});let n=r(26908),o=r(65321),a=n._(r(97109)),i=r(36427),l=r(23331),s=r(41494),c=r(12116),d=r(83353),u=r(99318),p=r(83678),f=r(50603),m=r(79490),h=r(47503);r(81101);let g=new Set;function b(e,t,r,n){if((0,l.isLocalURL)(t)){if(!n.bypassPrefetchedCheck){let o=t+"%"+r+"%"+(void 0!==n.locale?n.locale:"locale"in e?e.locale:void 0);if(g.has(o))return;g.add(o)}e.prefetch(t,r,n).catch(e=>{})}}function y(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}let v=a.default.forwardRef(function(e,t){let r,n,{href:s,as:g,children:v,prefetch:$=null,passHref:x,replace:w,shallow:C,scroll:E,locale:S,onClick:k,onNavigate:A,onMouseEnter:P,onTouchStart:R,legacyBehavior:M=!1,...T}=e;r=v,M&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let O=a.default.useContext(u.RouterContext),F=!1!==$,{href:N,as:j}=a.default.useMemo(()=>{if(!O){let e=y(s);return{href:e,as:g?y(g):e}}let[e,t]=(0,i.resolveHref)(O,s,!0);return{href:e,as:g?(0,i.resolveHref)(O,g):t||e}},[O,s,g]),I=a.default.useRef(N),z=a.default.useRef(j);M&&(n=a.default.Children.only(r));let D=M?n&&"object"==typeof n&&n.ref:t,[B,L,_]=(0,p.useIntersection)({rootMargin:"200px"}),H=a.default.useCallback(e=>{(z.current!==j||I.current!==N)&&(_(),z.current=j,I.current=N),B(e)},[j,N,_,B]),W=(0,h.useMergedRef)(H,D);a.default.useEffect(()=>{O&&L&&F&&b(O,N,j,{locale:S})},[j,N,L,S,F,null==O?void 0:O.locale,O]);let q={ref:W,onClick(e){M||"function"!=typeof k||k(e),M&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),O&&(e.defaultPrevented||function(e,t,r,n,o,a,i,s,c){let{nodeName:d}=e.currentTarget;if(!("A"===d.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,l.isLocalURL)(r)){o&&(e.preventDefault(),location.replace(r));return}e.preventDefault(),(()=>{if(c){let e=!1;if(c({preventDefault:()=>{e=!0}}),e)return}let e=null==i||i;"beforePopState"in t?t[o?"replace":"push"](r,n,{shallow:a,locale:s,scroll:e}):t[o?"replace":"push"](n||r,{scroll:e})})()}}(e,O,N,j,w,C,E,S,A))},onMouseEnter(e){M||"function"!=typeof P||P(e),M&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),O&&b(O,N,j,{locale:S,priority:!0,bypassPrefetchedCheck:!0})},onTouchStart:function(e){M||"function"!=typeof R||R(e),M&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),O&&b(O,N,j,{locale:S,priority:!0,bypassPrefetchedCheck:!0})}};if((0,c.isAbsoluteUrl)(j))q.href=j;else if(!M||x||"a"===n.type&&!("href"in n.props)){let e=void 0!==S?S:null==O?void 0:O.locale;q.href=(null==O?void 0:O.isLocaleDomain)&&(0,f.getDomainLocale)(j,e,null==O?void 0:O.locales,null==O?void 0:O.domainLocales)||(0,m.addBasePath)((0,d.addLocale)(j,e,null==O?void 0:O.defaultLocale))}return M?a.default.cloneElement(n,q):(0,o.jsx)("a",{...T,...q,children:r})}),$=(0,a.createContext)({pending:!1}),x=()=>(0,a.useContext)($),w=v;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48809:(e,t,r)=>{"use strict";r.d(t,{A:()=>a,u:()=>i});var n=r(97109),o=r(26047);let a=(e,t)=>{let r={};return(0,o.Qd)(e)&&(r=e),"boolean"==typeof e&&(r={enabled:e}),void 0===r.closable&&void 0!==t&&(r.closable=t),r},i=(e,t,r,o)=>(0,n.useMemo)(()=>{let n=a(e,o),i=a(t),l={blur:!1,...i,...n,closable:n.closable??o??i.closable??!0},s=l.blur?`${r}-mask-blur`:void 0;return[!1!==l.enabled,{mask:s},!!l.closable]},[e,t,r,o])},48921:(e,t,r)=>{"use strict";let n,o,a,i;r.d(t,{Ay:()=>D,cr:()=>j});var l=r(97109),s=r(15561),c=r(71995),d=r(42644),u=r(26047),p=r(29633),f=r(99381),m=r(56557),h=r(72075);let g=e=>{let{locale:t={},children:r,_ANT_MARK__:n}=e;l.useEffect(()=>(0,m.L)(t?.Modal),[t]);let o=l.useMemo(()=>({...t,exist:!0}),[t]);return l.createElement(h.A.Provider,{value:o},r)};var b=r(79287),y=r(18625),v=r(12754),$=r(9311),x=r(47188),w=r(74567),C=r(6831),E=r(53172),S=r(67189),k=r(7709);let A=l.createContext(!0);function P(e){let t=l.useContext(A),{children:r}=e,[,n]=(0,k.Ay)(),{motion:o}=n,a=l.useRef(!1);return(a.current||(a.current=t!==o),a.current)?l.createElement(A.Provider,{value:o},l.createElement(S.Kq,{motion:o},r)):r}let R=()=>null;var M=r(7961);let T=({iconPrefixCls:e,csp:t})=>(((e,t)=>{let[r,n]=(0,k.Ay)();return(0,s.IV)({theme:r,token:n,hashId:"",path:["ant-design-icons",e],nonce:()=>t?.nonce,layer:{name:"antd"}},()=>(0,M.jz)(e))})(e,t),null),O=["getTargetContainer","getPopupContainer","renderEmpty","input","pagination","form","select","button"];function F(){return n||w.yH}function N(){return o||w.pM}let j=()=>({getPrefixCls:(e,t)=>t||(e?`${F()}-${e}`:F()),getIconPrefixCls:N,getRootPrefixCls:()=>n||F(),getTheme:()=>a,holderRender:i}),I=e=>{let{children:t,csp:r,autoInsertSpaceInButton:n,alert:o,affix:a,anchor:i,app:m,form:h,locale:S,componentSize:k,direction:A,space:M,splitter:F,virtual:N,dropdownMatchSelectWidth:j,popupMatchSelectWidth:I,popupOverflow:z,legacyLocale:D,parentContext:B,iconPrefixCls:L,theme:_,componentDisabled:H,segmented:W,statistic:q,spin:V,calendar:U,carousel:X,cascader:K,collapse:G,typography:Q,checkbox:Y,descriptions:J,divider:Z,drawer:ee,skeleton:et,steps:er,image:en,layout:eo,list:ea,mentions:ei,modal:el,progress:es,result:ec,slider:ed,breadcrumb:eu,masonry:ep,menu:ef,pagination:em,input:eh,inputPassword:eg,inputSearch:eb,textArea:ey,otp:ev,empty:e$,badge:ex,borderBeam:ew,radio:eC,rate:eE,ribbon:eS,switch:ek,transfer:eA,avatar:eP,message:eR,tag:eM,table:eT,card:eO,cardMeta:eF,tabs:eN,timeline:ej,timePicker:eI,upload:ez,notification:eD,tree:eB,colorPicker:eL,datePicker:e_,rangePicker:eH,flex:eW,wave:eq,dropdown:eV,warning:eU,tour:eX,tooltip:eK,popover:eG,popconfirm:eQ,qrcode:eY,floatButton:eJ,floatButtonGroup:eZ,variant:e0,inputNumber:e1,treeSelect:e2,watermark:e4}=e,e5=l.useMemo(()=>(0,u.Qd)(S)&&Object.prototype.hasOwnProperty.call(S,"default")&&S.default?.locale?S.default:S,[S]),e6=l.useCallback((t,r)=>{let{prefixCls:n}=e;if(r)return r;let o=n||B.getPrefixCls("");return t?`${o}-${t}`:o},[B.getPrefixCls,e.prefixCls]),e3=L||B.iconPrefixCls||w.pM,e9=r||B.csp,e7=function(e,t,r){(0,p.rJ)("ConfigProvider");let n=e||{},o=!1!==n.inherit&&t?t:{...v.sb,hashed:t?.hashed??v.sb.hashed,cssVar:t?.cssVar},a=(0,l.useId)();return(0,d.Kr)(()=>{if(!e)return t;let i={...o.components};Object.keys(e.components||{}).forEach(t=>{i[t]={...i[t],...e.components[t]}});let l=`css-var-${a.replace(/:/g,"")}`,s={prefix:r?.prefixCls,...o.cssVar,...n.cssVar,key:n.cssVar?.key||l};return{...o,...n,token:{...o.token,...n.token},components:i,cssVar:s}},[n,o],(e,t)=>e.some((e,r)=>{let n=t[r];return!(0,d.n4)(e,n,!0)}))}(_,B.theme,{prefixCls:e6("")}),e8={csp:e9,autoInsertSpaceInButton:n,alert:o,affix:a,anchor:i,app:m,locale:e5||D,direction:A,space:M,splitter:F,virtual:N,popupMatchSelectWidth:I??j,popupOverflow:z,getPrefixCls:e6,iconPrefixCls:e3,theme:e7,segmented:W,statistic:q,spin:V,calendar:U,carousel:X,cascader:K,collapse:G,typography:Q,checkbox:Y,descriptions:J,divider:Z,drawer:ee,skeleton:et,steps:er,image:en,input:eh,inputPassword:eg,inputSearch:eb,textArea:ey,otp:ev,layout:eo,list:ea,mentions:ei,modal:el,progress:es,result:ec,slider:ed,breadcrumb:eu,masonry:ep,menu:ef,pagination:em,empty:e$,badge:ex,borderBeam:ew,radio:eC,rate:eE,ribbon:eS,switch:ek,transfer:eA,avatar:eP,message:eR,tag:eM,table:eT,card:eO,cardMeta:eF,tabs:eN,timeline:ej,timePicker:eI,upload:ez,notification:eD,tree:eB,colorPicker:eL,datePicker:e_,rangePicker:eH,flex:eW,wave:eq,dropdown:eV,warning:eU,tour:eX,tooltip:eK,popover:eG,popconfirm:eQ,qrcode:eY,floatButton:eJ,floatButtonGroup:eZ,variant:e0,inputNumber:e1,treeSelect:e2,watermark:e4},te={...B};Object.keys(e8).forEach(e=>{void 0!==e8[e]&&(te[e]=e8[e])}),O.forEach(t=>{let r=e[t];r&&(te[t]=r)}),void 0!==n&&(te.button={autoInsertSpace:n,...te.button});let tt=(0,d.Kr)(()=>te,te,(e,t)=>{let r=Object.keys(e),n=Object.keys(t);return r.length!==n.length||r.some(r=>e[r]!==t[r])}),{layer:tr}=l.useContext(s.J),tn=l.useMemo(()=>({prefixCls:e3,csp:e9,layer:tr?"antd":void 0,zeroRuntime:e7?.zeroRuntime}),[e3,e9,tr,e7?.zeroRuntime]),to=l.createElement(l.Fragment,null,l.createElement(T,{iconPrefixCls:e3,csp:e9}),l.createElement(R,{dropdownMatchSelectWidth:j}),t),ta=l.useMemo(()=>(0,d.h1)(b.A.Form?.defaultValidateMessages||{},tt.locale?.Form?.defaultValidateMessages||{},tt.form?.validateMessages||{},h?.validateMessages||{}),[tt,h?.validateMessages]);Object.keys(ta).length>0&&(to=l.createElement(f.A.Provider,{value:ta},to)),e5&&(to=l.createElement(g,{locale:e5,_ANT_MARK__:"internalMark"},to)),(e3||e9)&&(to=l.createElement(c.A.Provider,{value:tn},to)),k&&(to=l.createElement(E.c,{size:k},to)),to=l.createElement(P,null,to),eK?.unique&&(to=l.createElement(x.A,null,to));let ti=l.useMemo(()=>{let{algorithm:e,token:t,components:r,cssVar:n,...o}=e7||{},a=e&&(!Array.isArray(e)||e.length>0)?(0,s.an)(e):y.A,i={};Object.entries(r||{}).forEach(([e,t])=>{let r={...t};"algorithm"in r&&(!0===r.algorithm?r.theme=a:(Array.isArray(r.algorithm)||(0,u.Tn)(r.algorithm))&&(r.theme=(0,s.an)(r.algorithm)),delete r.algorithm),i[e]=r});let l={...$.A,...t};return{...o,theme:a,token:l,components:i,override:{override:l,...i},cssVar:n}},[e7]);return _&&(to=l.createElement(v.vG.Provider,{value:ti},to)),tt.warning&&(to=l.createElement(p._n.Provider,{value:tt.warning},to)),void 0!==H&&(to=l.createElement(C.X,{disabled:H},to)),l.createElement(w.QO.Provider,{value:tt},to)},z=e=>{let t=l.useContext(w.QO),r=l.useContext(h.A);return l.createElement(I,{parentContext:t,legacyLocale:r,...e})};z.ConfigContext=w.QO,z.SizeContext=E.A,z.config=e=>{let{prefixCls:t,iconPrefixCls:r,theme:l,holderRender:s}=e;void 0!==t&&(n=t),void 0!==r&&(o=r),"holderRender"in e&&(i=s),l&&(a=l)},z.useConfig=function(){return{componentDisabled:(0,l.useContext)(C.A),componentSize:(0,l.useContext)(E.A)}},Object.defineProperty(z,"SizeContext",{get:()=>E.A});let D=z},49127:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let n=e=>+setTimeout(e,16),o=e=>clearTimeout(e);"undefined"!=typeof window&&"requestAnimationFrame"in window&&(n=e=>window.requestAnimationFrame(e),o=e=>window.cancelAnimationFrame(e));let a=0,i=new Map,l=(e,t=1)=>{let r=a+=1;return!function t(o){if(0===o)i.delete(r),e();else{let e=n(()=>{t(o-1)});i.set(r,e)}}(t),r};l.cancel=e=>{let t=i.get(e);return i.delete(e),o(t)};let s=l},49345:(e,t,r)=>{"use strict";r.d(t,{aB:()=>g,nF:()=>a});var n=r(15561),o=r(5688);let a=new n.Mo("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),i=new n.Mo("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),l=new n.Mo("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new n.Mo("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),c=new n.Mo("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),d=new n.Mo("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),u=new n.Mo("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),p=new n.Mo("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),f=new n.Mo("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),m=new n.Mo("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),h={zoom:{inKeyframes:a,outKeyframes:i},"zoom-big":{inKeyframes:l,outKeyframes:s},"zoom-big-fast":{inKeyframes:l,outKeyframes:s},"zoom-left":{inKeyframes:u,outKeyframes:p},"zoom-right":{inKeyframes:f,outKeyframes:m},"zoom-up":{inKeyframes:c,outKeyframes:d},"zoom-down":{inKeyframes:new n.Mo("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),outKeyframes:new n.Mo("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}})}},g=(e,t)=>{let{antCls:r}=e,n=`${r}-${t}`,{inKeyframes:a,outKeyframes:i}=h[t];return[(0,o.b)(n,a,i,"zoom-big-fast"===t?e.motionDurationFast:e.motionDurationMid),{[`
|
|
108
108
|
${n}-enter,
|
|
109
109
|
${n}-appear
|
|
110
110
|
`]:{transform:"scale(0)",opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]}},49517:(e,t,r)=>{"use strict";r.d(t,{k:()=>A,A:()=>R});var n=r(97109),o=r(59188),a=r(4216),i=r(97137),l=r(62188),s=r(3638),c=r(48809),d=r(36319),u=r(26047),p=r(84649),f=r(48921),m=r(74567),h=r(69925),g=r(7709),b=r(43177),y=r(78410);let v=()=>{let{autoFocusButton:e,cancelButtonProps:t,cancelTextLocale:r,isSilent:o,mergedOkCancel:a,rootPrefixCls:i,close:l,onCancel:s,onConfirm:c,onClose:d}=(0,n.useContext)(y.V);return a?n.createElement(b.A,{isSilent:o,actionFn:s,close:(...e)=>{l?.(...e),c?.(!1),d?.()},autoFocus:"cancel"===e,buttonProps:t,prefixCls:`${i}-btn`},r):null},$=()=>{let{autoFocusButton:e,close:t,isSilent:r,okButtonProps:o,rootPrefixCls:a,okTextLocale:i,okType:l,onConfirm:s,onOk:c,onClose:d}=(0,n.useContext)(y.V);return n.createElement(b.A,{isSilent:r,type:l||"primary",actionFn:c,close:(...e)=>{t?.(...e),s?.(!0),d?.()},autoFocus:"ok"===e,buttonProps:o,prefixCls:`${a}-btn`},i)};var x=r(5669),w=r(15561),C=r(19527),E=r(7961);let S=(0,r(10540).bf)(["Modal","confirm"],e=>(e=>{let{componentCls:t,titleFontSize:r,titleLineHeight:n,modalConfirmIconSize:o,fontSize:a,lineHeight:i,modalTitleHeight:l,fontHeight:s,confirmBodyPadding:c}=e,d=`${t}-confirm`;return{[d]:{"&-rtl":{direction:"rtl"},[`${e.antCls}-modal-header`]:{display:"none"},[`${d}-body-wrapper`]:{...(0,E.t6)()},[`&${t} ${t}-body`]:{padding:c},[`${d}-body`]:{display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${e.iconCls}`]:{flex:"none",fontSize:o,marginInlineEnd:e.confirmIconMarginInlineEnd,marginTop:e.calc(e.calc(s).sub(o).equal()).div(2).equal()},[`&-has-title > ${e.iconCls}`]:{marginTop:e.calc(e.calc(l).sub(o).equal()).div(2).equal()}},[`${d}-paragraph`]:{display:"flex",flexDirection:"column",flex:"auto",rowGap:e.marginXS,maxWidth:`calc(100% - ${(0,w.zA)(e.marginSM)})`},[`${d}-body-no-icon ${d}-paragraph`]:{maxWidth:"100%"},[`${e.iconCls} + ${d}-paragraph`]:{maxWidth:`calc(100% - ${(0,w.zA)(e.calc(e.modalConfirmIconSize).add(e.marginSM).equal())})`},[`${d}-title`]:{color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:r,lineHeight:n},[`${d}-container`]:{color:e.colorText,fontSize:a,lineHeight:i},[`${d}-btns`]:{textAlign:"end",marginTop:e.confirmBtnsMarginTop,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${d}-error ${d}-body > ${e.iconCls}`]:{color:e.colorError},[`${d}-warning ${d}-body > ${e.iconCls},
|