@customize-agent/server 2.2.2 → 3.0.0
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 +68 -65
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/204.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/config/healthCheck.js +1 -1
- package/.next/server/pages/api/config/healthCheck.js.nft.json +1 -1
- package/.next/server/pages/api/config/models.js +1 -1
- package/.next/server/pages/api/config/models.js.nft.json +1 -1
- package/.next/server/pages/api/config/providers/[provider].js +1 -1
- package/.next/server/pages/api/config/providers/[provider].js.nft.json +1 -1
- package/.next/server/pages/api/config/providers.js +1 -1
- package/.next/server/pages/api/config/providers.js.nft.json +1 -1
- package/.next/server/pages/api/health.js +1 -1
- package/.next/server/pages/api/kb/categories.js +1 -1
- package/.next/server/pages/api/kb/categories.js.nft.json +1 -1
- package/.next/server/pages/api/kb/duplicates.js +1 -1
- package/.next/server/pages/api/kb/duplicates.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/detail.js +1 -1
- package/.next/server/pages/api/kb/files/detail.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/open.js +1 -1
- package/.next/server/pages/api/kb/files/open.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +1 -1
- package/.next/server/pages/api/kb/files/preview-pdf-page.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/reindex.js +1 -1
- package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files.js +2 -2
- package/.next/server/pages/api/kb/files.js.nft.json +1 -1
- package/.next/server/pages/api/kb/ignore.js +1 -1
- package/.next/server/pages/api/kb/ignore.js.nft.json +1 -1
- package/.next/server/pages/api/kb/operations.js +2 -2
- package/.next/server/pages/api/kb/operations.js.nft.json +1 -1
- package/.next/server/pages/api/kb/reindex.js +1 -1
- package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/search.js +1 -1
- package/.next/server/pages/api/kb/search.js.nft.json +1 -1
- package/.next/server/pages/api/kb/stats.js +1 -1
- package/.next/server/pages/api/kb/stats.js.nft.json +1 -1
- package/.next/server/pages/api/kb/tags.js +1 -1
- package/.next/server/pages/api/kb/tags.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload.js +2 -2
- package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
- package/.next/server/pages/api/prompt.js +1 -1
- package/.next/server/pages/api/prompt.js.nft.json +1 -1
- package/.next/server/pages/api/system/stats.js +1 -1
- package/.next/server/pages/api/system/stats.js.nft.json +1 -1
- package/.next/server/pages/context/long-term.html +1 -1
- package/.next/server/pages/context/short-term.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/search.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-manifest.json +7 -7
- package/.next/server/webpack-api-runtime.js +1 -1
- package/.next/static/HIdBlqc4OSurll-8LjOWl/_buildManifest.js +1 -0
- package/.next/static/chunks/167-0be293a3c58a8577.js +1 -0
- package/.next/static/chunks/38-e3671099d80db91b.js +1 -0
- package/.next/static/chunks/446-3bb2f94b52176cb1.js +4 -0
- package/.next/static/chunks/519-709ba3df6e549125.js +6 -0
- package/.next/static/chunks/584-ce8dbed7354f3644.js +87 -0
- package/.next/static/chunks/{227-eb562f29334fcb34.js → 700-8a90f86277a335de.js} +1 -1
- package/.next/static/chunks/740-b61ebb053ec9426a.js +16 -0
- package/.next/static/chunks/796-db4afcb27cb903b9.js +25 -0
- package/.next/static/chunks/860-55753e4c8eba4bb3.js +1 -0
- package/.next/static/chunks/992-8a06ec9aa4b1e3b3.js +1 -0
- package/.next/static/chunks/pages/{_app-52fa1fa291b60bee.js → _app-cf14b47b90a9eb58.js} +1 -1
- package/.next/static/chunks/pages/context/long-term-b431347893a69969.js +1 -0
- package/.next/static/chunks/pages/context/short-term-f0c420388a050e28.js +1 -0
- package/.next/static/chunks/pages/knowledge/file-detail-328ce1d9c6ce907e.js +1 -0
- package/.next/static/chunks/pages/knowledge/files-7ce51dd9b261aea2.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-813a1635240f38df.js +1 -0
- package/.next/static/chunks/pages/knowledge/search-9da46d3cee5b7517.js +1 -0
- package/.next/static/chunks/pages/{models-4fbcb0182c8a9476.js → models-2146abd3aa3da947.js} +1 -1
- package/.next/static/chunks/pages/overview-da401b76cd3ec331.js +1 -0
- package/.next/static/chunks/pages/prompt-048fe74855c6514b.js +1 -0
- package/.next/static/chunks/pages/settings-4f97b4ec26c324fc.js +1 -0
- package/.next/static/css/578f3811be75310d.css +1 -0
- package/.next/static/css/cbbe2355765ea112.css +1 -0
- package/.next/static/css/d28c22ed67198de0.css +1 -0
- package/.next/static/css/d7ad5d9b207a29f0.css +1 -0
- package/README.md +174 -0
- package/package.json +13 -12
- package/postcss.config.mjs +6 -0
- package/.next/package.json +0 -1
- package/.next/static/S_LOfpGR5urlDf2yqKrSe/_buildManifest.js +0 -1
- package/.next/static/chunks/425-feceb6e39a2b417d.js +0 -25
- package/.next/static/chunks/455-d2aca155a3032ee0.js +0 -6
- package/.next/static/chunks/492-5245cad2f8d60d8d.js +0 -1
- package/.next/static/chunks/544-fba84f8cd64c79ed.js +0 -1
- package/.next/static/chunks/584-3a8c7b39c2a3037a.js +0 -90
- package/.next/static/chunks/740-450a37b8ca6fe1c6.js +0 -16
- package/.next/static/chunks/891-fde3ad128ccf30dc.js +0 -1
- package/.next/static/chunks/958-0f3a960f8ebe421b.js +0 -1
- package/.next/static/chunks/992-6e67409e97fe9b6b.js +0 -1
- package/.next/static/chunks/pages/context/long-term-8c5fe7c5cb8f3d6d.js +0 -1
- package/.next/static/chunks/pages/context/short-term-4b1ba522c259bc7b.js +0 -1
- package/.next/static/chunks/pages/knowledge/file-detail-37573640ecdd5c11.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-a3104d6d309aefdd.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-36d4824b96f8150f.js +0 -1
- package/.next/static/chunks/pages/knowledge/search-33f4f2a3dc318802.js +0 -1
- package/.next/static/chunks/pages/overview-d588ba8cc32f615c.js +0 -1
- package/.next/static/chunks/pages/prompt-490524ba05078205.js +0 -1
- package/.next/static/chunks/pages/settings-e6a894618727eec3.js +0 -1
- package/.next/static/css/031cf1db0e9affb3.css +0 -1
- package/.next/static/css/5237c5e3358f3282.css +0 -1
- package/.next/static/css/82b6ddff0ef364fe.css +0 -1
- package/.next/static/css/9d4b5a2db56e7aa7.css +0 -1
- /package/.next/static/{S_LOfpGR5urlDf2yqKrSe → HIdBlqc4OSurll-8LjOWl}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[414],{423:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>C});var a=n(5321),o=n(7109),i=n(4986),l=n(9018),r=n(7807),c=n(3442),s=n(5114),d=n(8787),u=n(4849),p=n(6911),h=n(8584),f=n(1702),g=n(9606),y=n(486),m=n(2192),w=n(6768),k=n(6619),v=n(933),x=n(8740),S=n(6578),b=n(5551);let j=["document","spreadsheet","image","cad","code","data","web","diagram","archive","other"];function C(){var e,t,n;let C=(0,l.Vr)(),{locale:A}=(0,l.x_)(),N=(0,i.useRouter)(),{stats:T,loading:O,reload:E}=function(){let[e,t]=(0,o.useState)(null),[n,a]=(0,o.useState)(!0),i=(0,o.useCallback)(async()=>{a(!0);try{t(await (0,S.hc)())}catch(e){}finally{a(!1)}},[]);return(0,o.useEffect)(()=>{i()},[i]),{stats:e,loading:n,reload:i}}(),P=function(){let[e,t]=(0,o.useState)(null);return(0,o.useEffect)(()=>{(0,S.VW)().then(t).catch(()=>{})},[]),e}(),{reindexing:R,reindex:D}=function(){let[e,t]=(0,o.useState)(!1);return{reindexing:e,reindex:(0,o.useCallback)(async()=>{t(!0);try{return await (0,S.H1)(),!0}catch(e){return!1}finally{t(!1)}},[])}}(),[z,U]=(0,o.useState)("document"),[J,I]=(0,o.useState)({count:0,totalSize:0}),{message:_}=r.A.useApp(),B=(0,o.useCallback)(async e=>{try{let t=await (0,S.HT)({category:e,limit:1e4}),n=0;if(Array.isArray(t.files))for(let e of t.files)n+=e.fileSize||0;I({count:t.total||0,totalSize:n})}catch(e){I({count:0,totalSize:0})}},[]);(0,o.useEffect)(()=>{B(z)},[z,B]);let L=async()=>{await D()?await Promise.all([E(),B(z)]):_.error(C("common.error"))};return(0,a.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,a.jsxs)("div",{className:"pageHero",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"pageTitle",children:C("knowledge.manageTitle")}),(0,a.jsx)("p",{className:"pageDesc",children:C("knowledge.manageDesc")})]}),(0,a.jsxs)(c.A,{className:"pageActions",children:[(0,a.jsx)(s.Ay,{icon:(0,a.jsx)(g.A,{}),onClick:()=>N.push("/knowledge/files"),children:C("knowledge.files")}),(0,a.jsx)(s.Ay,{icon:(0,a.jsx)(y.A,{}),onClick:()=>N.push("/knowledge/search"),children:C("knowledge.search")}),(0,a.jsx)(s.Ay,{type:"primary",icon:(0,a.jsx)(m.A,{}),loading:R,onClick:()=>{L()},children:C("knowledge.reindex")})]})]}),(0,a.jsx)("div",{className:"kpiGrid",children:[{icon:(0,a.jsx)(w.A,{}),label:C("knowledge.totalFiles"),value:null!=(e=null==T?void 0:T.fileCount)?e:0},{icon:(0,a.jsx)(k.A,{}),label:C("knowledge.totalChunks"),value:null!=(t=null==T?void 0:T.chunkCount)?t:0},{icon:(0,a.jsx)(v.A,{}),label:C("knowledge.totalSize"),value:(0,b.z3)(null!=(n=null==T?void 0:T.totalSizeBytes)?n:0)},{icon:(0,a.jsx)(x.A,{}),label:C("knowledge.lastIndexed"),value:(null==T?void 0:T.lastIndexedAt)?(0,b.fw)(T.lastIndexedAt,A):C("common.never")}].map((e,t)=>(0,a.jsx)(d.A,{className:"kpiCard",size:"small",loading:O&&!T,children:(0,a.jsx)(u.A,{title:e.label,value:e.value,prefix:e.icon})},t))}),(0,a.jsxs)(d.A,{title:C("knowledge.categories"),size:"small",children:[(0,a.jsx)(p.A,{value:z,onChange:e=>U(String(e)),options:j.map(e=>({label:(0,b.Jm)(e,A),value:e})),className:"mb-4"}),(0,a.jsxs)("div",{className:"twoColumnGrid",children:[(0,a.jsx)(d.A,{className:"kpiCard",size:"small",children:(0,a.jsx)(u.A,{title:C("knowledge.fileCount"),value:J.count,prefix:(0,a.jsx)(w.A,{})})}),(0,a.jsx)(d.A,{className:"kpiCard",size:"small",children:(0,a.jsx)(u.A,{title:C("knowledge.totalSize"),value:(0,b.z3)(J.totalSize),prefix:(0,a.jsx)(v.A,{})})})]})]}),P&&(0,a.jsx)(d.A,{title:C("knowledge.features"),size:"small",children:(0,a.jsx)(h.A,{dataSource:[{key:"vectorStore",label:"Vector Store",desc:C("knowledge.featureVectorStoreDesc"),value:P.vectorStore},{key:"embedding",label:"Embedding",desc:C("knowledge.featureEmbeddingDesc"),value:P.embeddingProvider},{key:"dedup",label:C("knowledge.featureDedup"),desc:C("knowledge.featureDedupDesc"),value:P.dedupEngine},{key:"chunker",label:C("knowledge.featureChunker"),desc:C("knowledge.featureChunkerDesc"),value:P.chunker}],columns:[{title:C("knowledge.featureName"),dataIndex:"label",key:"label",width:120},{title:C("knowledge.featureDesc"),dataIndex:"desc",key:"desc"},{title:C("knowledge.featureValue"),dataIndex:"value",key:"value",render:e=>(0,a.jsx)(f.A,{color:"blue",children:e})}],pagination:!1,size:"small"})})]})}},4178:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/manage",function(){return n(423)}])},5551:(e,t,n)=>{"use strict";function a(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),n=e/Math.pow(1024,t);return"".concat(n.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let n=Math.floor(Math.floor((Date.now()-e)/1e3)/60),a=Math.floor(n/60),o=Math.floor(a/24);return o>30?new Date(e).toLocaleDateString(t):"en-US"===t?o>0?"".concat(o,"d ago"):a>0?"".concat(a,"h ago"):n>0?"".concat(n,"m ago"):"Just now":o>0?"".concat(o," 天前"):a>0?"".concat(a," 小时前"):n>0?"".concat(n," 分钟前"):"刚刚"}n.d(t,{Jm:()=>r,fw:()=>o,z3:()=>a});let i={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},l={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function r(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===n?l:i)[e])?t:e}},6578:(e,t,n)=>{"use strict";async function a(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function o(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return a("/api/kb/stats".concat(t))}async function i(e){var t,n;let o=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&o.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&o.set("category",e.category),(null==e?void 0:e.page)&&o.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&o.set("limit",String(null!=(n=e.limit)?n:50)),a("/api/kb/files?".concat(o))}async function l(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),a("/api/kb/files/detail?".concat(n))}async function r(e,t){return a("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function c(e,t,n){return a("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function s(e,t,n){let o=await new Promise((t,n)=>{let a=new FileReader;a.onload=()=>{let e=a.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},a.onerror=n,a.readAsDataURL(e)});return a("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:e.name,fileData:o,projectRoot:t,uploadId:n})})}async function d(e){return a("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function u(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),a("/api/kb/operations?".concat(t))}async function p(e,t){return a("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function h(e){return a("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function f(){return a("/api/kb/features")}async function g(e,t){var n,o,i,l,r;let c=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&c.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&c.set("category",t.category),(null==t?void 0:t.limit)&&c.set("limit",String(null!=(r=t.limit)?r:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&c.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(o=t.weights)?void 0:o.vector)!=null&&c.set("vectorWeight",String(t.weights.vector)),(null==t||null==(i=t.weights)?void 0:i.rewrite)!=null&&c.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(l=t.weights)?void 0:l.hybridBonus)!=null&&c.set("hybridBonus",String(t.weights.hybridBonus)),a("/api/kb/search?".concat(c))}async function y(){return a("/api/config/providers")}async function m(e,t){return a("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function w(e){return a("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function k(){return a("/api/config/models")}async function v(e){return a("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function x(e){return a("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function S(){return a("/api/system/stats")}async function b(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return a("/api/context".concat(n))}async function j(e){return a("/api/context?type=".concat(e,"&stats=1"))}async function C(e){return a("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function A(e){return a("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function N(e){return a("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function T(e,t){return a("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function O(e){return a("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Bh:()=>O,E:()=>A,FC:()=>S,H1:()=>h,HC:()=>r,HT:()=>i,PH:()=>C,QT:()=>d,Qx:()=>u,VW:()=>f,W2:()=>g,Z3:()=>y,_m:()=>m,aP:()=>v,bZ:()=>x,h1:()=>w,hc:()=>o,hn:()=>b,p:()=>j,pF:()=>s,tn:()=>c,xC:()=>l,xq:()=>p,xw:()=>N,zo:()=>T,zr:()=>k})}},e=>{e.O(0,[260,167,796,740,700,446,584,38,636,593,792],()=>e(e.s=4178)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[207],{4184:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>v});var s=n(5321),r=n(3220),a=n.n(r),i=n(7109),l=n(8399),o=n(8787),c=n(3442),u=n(7576),d=n(5114),p=n(4992),h=n(6506),y=n(1702),m=n(2700),j=n(4253),x=n(486),_=n(6578),f=n(4569),g=n.n(f);let{Paragraph:b}=l.A;function w(e){return"number"==typeof e?e.toFixed(2):"-"}function v(){var e,t,n;let[r,l]=(0,i.useState)(""),[f,v]=(0,i.useState)(!1),[S,k]=(0,i.useState)([]),[C,A]=(0,i.useState)(),[R,N]=(0,i.useState)(),[T,P]=(0,i.useState)({keyword:1,vector:.9,rewrite:.72,hybridBonus:.35}),O=async()=>{let e=r.trim();if(e){v(!0);try{let t=await (0,_.W2)(e,{limit:10,weights:T});k(t.results),A(t.queryTimeMs),N(t.debug)}finally{v(!1)}}};return(0,s.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,s.jsx)("div",{className:"pageHero",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"pageTitle",children:"知识库搜索"}),(0,s.jsx)("p",{className:"pageDesc",children:"查看 hybrid 检索、parent 回填、分块来源和评分明细。"})]})}),(0,s.jsx)(o.A,{size:"small",children:(0,s.jsxs)(c.A.Compact,{className:"w-full",children:[(0,s.jsx)(u.A,{size:"large",value:r,onChange:e=>l(e.target.value),onPressEnter:()=>{O()},placeholder:"输入要搜索的知识库内容"}),(0,s.jsx)(d.Ay,{size:"large",type:"primary",icon:(0,s.jsx)(x.A,{}),loading:f,onClick:()=>{O()},children:"搜索"})]})}),(0,s.jsx)(o.A,{size:"small",title:"召回权重调节",children:(0,s.jsxs)(c.A,{wrap:!0,children:[(0,s.jsxs)("span",{children:["Keyword ",(0,s.jsx)(p.A,{min:0,max:5,step:.1,value:T.keyword,onChange:e=>P(t=>({...t,keyword:Number(null!=e?e:1)}))})]}),(0,s.jsxs)("span",{children:["Vector ",(0,s.jsx)(p.A,{min:0,max:5,step:.1,value:T.vector,onChange:e=>P(t=>({...t,vector:Number(null!=e?e:.9)}))})]}),(0,s.jsxs)("span",{children:["Rewrite ",(0,s.jsx)(p.A,{min:0,max:5,step:.1,value:T.rewrite,onChange:e=>P(t=>({...t,rewrite:Number(null!=e?e:.72)}))})]}),(0,s.jsxs)("span",{children:["Hybrid Bonus ",(0,s.jsx)(p.A,{min:0,max:2,step:.05,value:T.hybridBonus,onChange:e=>P(t=>({...t,hybridBonus:Number(null!=e?e:.35)}))})]})]})}),R&&(0,s.jsx)(o.A,{size:"small",title:"检索调试面板",children:(0,s.jsxs)(h.A,{size:"small",column:2,bordered:!0,children:[(0,s.jsx)(h.A.Item,{label:"原始查询",children:R.originalQuery}),(0,s.jsx)(h.A.Item,{label:"Reranker",children:R.reranker}),(0,s.jsx)(h.A.Item,{label:"查询改写",span:2,children:(0,s.jsx)(c.A,{wrap:!0,children:null==(e=R.rewrittenQueries)?void 0:e.map(e=>(0,s.jsx)(y.A,{children:e},e))})}),(0,s.jsx)(h.A.Item,{label:"召回数量",span:2,children:(0,s.jsx)(c.A,{wrap:!0,children:Object.entries(null!=(t=R.recallCounts)?t:{}).map(e=>{let[t,n]=e;return(0,s.jsxs)(y.A,{children:[t,": ",n]},t)})})}),(0,s.jsx)(h.A.Item,{label:"召回权重",span:2,children:(0,s.jsx)(c.A,{wrap:!0,children:Object.entries(null!=(n=R.weights)?n:{}).map(e=>{let[t,n]=e;return(0,s.jsxs)(y.A,{children:[t,": ",n]},t)})})})]})}),(0,s.jsx)(o.A,{size:"small",title:"搜索结果",extra:"number"==typeof C?"".concat(C," ms"):void 0,children:f?(0,s.jsx)(m.A,{}):0===S.length?(0,s.jsx)(j.A,{description:"暂无结果"}):(0,s.jsx)("div",{className:g().searchResultList,children:S.map(e=>{var t,n,i,l,o,u;return(0,s.jsxs)("div",{className:g().searchResultItem,children:[(0,s.jsxs)("div",{className:g().searchResultHeader,children:[(0,s.jsxs)(c.A,{size:8,wrap:!0,children:[(0,s.jsx)(y.A,{color:"hybrid"===e.source?"purple":"vector"===e.source?"blue":"green",children:null!=(u=e.source)?u:"keyword"}),(0,s.jsx)(y.A,{children:e.scope}),e.chunkKind&&(0,s.jsx)(y.A,{color:"geekblue",children:e.chunkKind}),e.rowRange&&(0,s.jsxs)(y.A,{color:"gold",children:["行 ",e.rowRange]}),e.sectionTitle&&(0,s.jsx)(y.A,{color:"cyan",children:e.sectionTitle})]}),(0,s.jsx)("strong",{children:w(e.score)})]}),(0,s.jsxs)("div",{className:g().statusPath,children:[(0,s.jsx)(a(),{href:"/knowledge/file-detail?relativePath=".concat(encodeURIComponent(e.filePath)),children:e.filePath}),"number"==typeof e.chunkIndex?" #".concat(e.chunkIndex):""]}),(0,s.jsx)(b,{ellipsis:{rows:6,expandable:!0,symbol:"展开"},className:g().searchContent,children:function(e,t){let n=[t.trim(),...t.split(/[\s,,。;;::、]+/u)].filter(Boolean).sort((e,t)=>t.length-e.length);if(0===n.length)return e;let r=RegExp("(".concat(n.map(e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")).join("|"),")"),"giu");return e.split(r).map((e,t)=>n.some(t=>t.toLowerCase()===e.toLowerCase())?(0,s.jsx)("mark",{children:e},t):e)}(e.content,r)}),e.facets&&Object.keys(e.facets).length>0&&(0,s.jsx)("div",{className:g().statusMeta,children:Object.entries(e.facets).slice(0,8).map(e=>{let[t,n]=e;return(0,s.jsxs)("span",{children:[t," ",(0,s.jsx)("b",{children:Array.isArray(n)?n.join(", "):String(n)})]},t)})}),(0,s.jsxs)("div",{className:g().statusMeta,children:[(0,s.jsxs)("span",{children:["keyword ",(0,s.jsx)("b",{children:w(null==(t=e.scoreDetails)?void 0:t.keywordScore)})]}),(0,s.jsxs)("span",{children:["bm25 ",(0,s.jsx)("b",{children:w(null==(n=e.scoreDetails)?void 0:n.bm25Score)})]}),(0,s.jsxs)("span",{children:["vector ",(0,s.jsx)("b",{children:w(null==(i=e.scoreDetails)?void 0:i.vectorScore)})]}),(0,s.jsxs)("span",{children:["rerank ",(0,s.jsx)("b",{children:w(null==(l=e.scoreDetails)?void 0:l.rerankBoost)})]}),(0,s.jsxs)("span",{children:["hybrid ",(0,s.jsx)("b",{children:w(null==(o=e.scoreDetails)?void 0:o.hybridScore)})]})]})]},e.id)})})})]})}},4569:e=>{e.exports={featureLabel:"style_featureLabel__XFSTX",featureValue:"style_featureValue__I_wMP",filterInput:"style_filterInput__4_Elu",filterSelect:"style_filterSelect__vUBJ9",statusCardWrap:"style_statusCardWrap__DrPY1",statusCard:"style_statusCard__H7Mee",statusExtra:"style_statusExtra__YklEh",statusEmpty:"style_statusEmpty__8LWzH",statusSummary:"style_statusSummary__7KavF",statusSummaryActive:"style_statusSummaryActive__GpgjO",statusList:"style_statusList__FpNgC",statusItem:"style_statusItem__uzO80",statusHeader:"style_statusHeader__o9q_b",statusMain:"style_statusMain__tl2rq",statusDesc:"style_statusDesc__XiWFa",statusMetaRow:"style_statusMetaRow__6V4k_",statusPath:"style_statusPath__Udxvv",statusMeta:"style_statusMeta__XukHt",searchResultList:"style_searchResultList__cVKZg",searchResultItem:"style_searchResultItem__boj6D",searchResultHeader:"style_searchResultHeader__meVdJ",searchContent:"style_searchContent__XbUVk",pdfPreviewStrip:"style_pdfPreviewStrip__94_eG",drawingPreview:"style_drawingPreview__lkk_L"}},6578:(e,t,n)=>{"use strict";async function s(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function r(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return s("/api/kb/stats".concat(t))}async function a(e){var t,n;let r=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&r.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&r.set("category",e.category),(null==e?void 0:e.page)&&r.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&r.set("limit",String(null!=(n=e.limit)?n:50)),s("/api/kb/files?".concat(r))}async function i(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),s("/api/kb/files/detail?".concat(n))}async function l(e,t){return s("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function o(e,t,n){return s("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function c(e,t,n){let r=await new Promise((t,n)=>{let s=new FileReader;s.onload=()=>{let e=s.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},s.onerror=n,s.readAsDataURL(e)});return s("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:e.name,fileData:r,projectRoot:t,uploadId:n})})}async function u(e){return s("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function d(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),s("/api/kb/operations?".concat(t))}async function p(e,t){return s("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function h(e){return s("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function y(){return s("/api/kb/features")}async function m(e,t){var n,r,a,i,l;let o=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&o.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&o.set("category",t.category),(null==t?void 0:t.limit)&&o.set("limit",String(null!=(l=t.limit)?l:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&o.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(r=t.weights)?void 0:r.vector)!=null&&o.set("vectorWeight",String(t.weights.vector)),(null==t||null==(a=t.weights)?void 0:a.rewrite)!=null&&o.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(i=t.weights)?void 0:i.hybridBonus)!=null&&o.set("hybridBonus",String(t.weights.hybridBonus)),s("/api/kb/search?".concat(o))}async function j(){return s("/api/config/providers")}async function x(e,t){return s("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function _(e){return s("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function f(){return s("/api/config/models")}async function g(e){return s("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e){return s("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function w(){return s("/api/system/stats")}async function v(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return s("/api/context".concat(n))}async function S(e){return s("/api/context?type=".concat(e,"&stats=1"))}async function k(e){return s("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function C(e){return s("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function A(e){return s("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function R(e,t){return s("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function N(e){return s("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Bh:()=>N,E:()=>C,FC:()=>w,H1:()=>h,HC:()=>l,HT:()=>a,PH:()=>k,QT:()=>u,Qx:()=>d,VW:()=>y,W2:()=>m,Z3:()=>j,_m:()=>x,aP:()=>g,bZ:()=>b,h1:()=>_,hc:()=>r,hn:()=>v,p:()=>S,pF:()=>c,tn:()=>o,xC:()=>i,xq:()=>p,xw:()=>A,zo:()=>R,zr:()=>f})},9208:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/search",function(){return n(4184)}])}},e=>{e.O(0,[260,167,796,576,700,840,992,636,593,792],()=>e(e.s=9208)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46],{69:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L255.8 713.6l-62.3-62.3a8.19 8.19 0 00-11.4 0l-39.8 39.8a8.19 8.19 0 000 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.19 8.19 0 00-11.4 0l-39.8 39.8a8.19 8.19 0 000 11.4l110.3 111.2c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.1 304.1 0 00608 720c167.9 0 304-136.1 304-304S775.9 112 608 112m161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2"}}]},name:"key",theme:"outlined"}},289:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"}},2256:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});let n=a(5341).A},2323:e=>{e.exports={cardMeta:"style_cardMeta__6KOa3",cardName:"style_cardName__WcLAf",cardAction:"style_cardAction__XUfPD",tierDesc:"style_tierDesc__wOd6p",modelTags:"style_modelTags__nmMVj"}},3114:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(7109),c=a(5450),o=a(8483);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let s=n.forwardRef((e,t)=>n.createElement(o.A,l({},e,{ref:t,icon:c.A})))},3214:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"}},4190:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(7109),c=a(3214),o=a(8483);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let s=n.forwardRef((e,t)=>n.createElement(o.A,l({},e,{ref:t,icon:c.A})))},5450:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"}},5527:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>U});var n=a(5321),c=a(7109),o=a(9018),l=a(7807),s=a(5114),r=a(8787),i=a(2256),d=a(8770),m=a(3442),u=a(6171),p=a(7271),h=a(1702),y=a(5258),f=a(3455),v=a(7576),g=a(4746),j=a(9071),x=a(9188),b=a(4216),A=a(3114),w=a(9650),O=a(8209),S=a(69),C=a(8483);function N(){return(N=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let P=c.forwardRef((e,t)=>c.createElement(C.A,N({},e,{ref:t,icon:S.A})));var z=a(289);function k(){return(k=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let T=c.forwardRef((e,t)=>c.createElement(C.A,k({},e,{ref:t,icon:z.A})));var R=a(6578),_=a(2323),M=a.n(_);let L=[{label:"OpenAI 兼容",value:"openai"},{label:"Anthropic",value:"anthropic"},{label:"Google",value:"google"},{label:"Ollama",value:"ollama"},{label:"OpenRouter",value:"openrouter"}],E=[{key:"reader",labelKey:"models.tierReader",descKey:"models.tierReaderDesc"},{key:"reasoning",labelKey:"models.tierReasoning",descKey:"models.tierReasoningDesc"},{key:"action",labelKey:"models.tierAction",descKey:"models.tierActionDesc"}];function U(){let e=(0,o.Vr)(),{message:t}=l.A.useApp(),[a,S]=(0,c.useState)(!0),[C,N]=(0,c.useState)([]),[z,k]=(0,c.useState)(null),[_,U]=(0,c.useState)(!1),[H,I]=(0,c.useState)(""),[D,K]=(0,c.useState)(""),[J,B]=(0,c.useState)(""),[V,F]=(0,c.useState)("openai"),[W,Z]=(0,c.useState)(!1),[X,q]=(0,c.useState)(!1),[Q,G]=(0,c.useState)(""),[Y,$]=(0,c.useState)(""),[ee,et]=(0,c.useState)(""),[ea,en]=(0,c.useState)(""),[ec,eo]=(0,c.useState)("openai"),[el,es]=(0,c.useState)(!1),[er,ei]=(0,c.useState)(null),[ed,em]=(0,c.useState)({}),eu=async()=>{S(!0);try{let[e,t]=await Promise.all([(0,R.Z3)().catch(()=>[]),(0,R.zr)().catch(()=>null)]);N(e),k(t)}catch(a){t.error(e("common.error"))}finally{S(!1)}};(0,c.useEffect)(()=>{eu()},[]);let ep=async()=>{if(H.trim()){Z(!0);try{await (0,R._m)(H.trim(),{apiKey:D||void 0,baseUrl:J||void 0,protocol:V}),U(!1),I(""),K(""),B(""),F("openai"),await eu(),t.success(e("common.success"))}catch(a){t.error(e("common.error"))}finally{Z(!1)}}},eh=async a=>{try{await (0,R.h1)(a),await eu(),t.success(e("common.success"))}catch(a){t.error(e("common.error"))}},ey=async e=>{G(e.name),$(e.name),et("");try{let t=await (0,R.Bh)(e.name);et(t.apiKey?"••••••••":""),en(t.baseUrl||""),eo(t.protocol||t.detectedProtocol||"openai")}catch(t){en(e.baseUrl||""),eo(e.protocol||e.detectedProtocol||"openai")}q(!0)},ef=async()=>{if(Y.trim()){es(!0);try{Y.trim()!==Q&&await (0,R.h1)(Q);let a=ee.includes("•")?void 0:ee||void 0;await (0,R._m)(Y.trim(),{apiKey:a,baseUrl:ea||void 0,protocol:ec}),q(!1),G(""),$(""),et(""),en(""),eo("openai"),await eu(),t.success(e("common.success"))}catch(a){t.error(e("common.error"))}finally{es(!1)}}},ev=async a=>{ei(a);try{let n=await (0,R.bZ)(a);em(e=>({...e,[a]:n.success})),t[n.success?"success":"error"](n.success?e("models.connected"):e("models.connectionFailed"))}catch(e){em(e=>({...e,[a]:!1}))}finally{ei(null)}},eg=async(a,n)=>{if(!z)return;let c={...z},o=c[a];if(!n){o.active="",k(c);try{await (0,R.aP)(c)}catch(a){t.error(e("common.error"))}return}let l=n.indexOf(":"),s=l>=0?n.slice(0,l):n,r=l>=0?n.slice(l+1):n;o.active=r,o.list.some(e=>e.name===r&&e.provider===s)||o.list.push({name:r,provider:s}),k(c);try{await (0,R.aP)(c)}catch(a){t.error(e("common.error"))}};return(0,n.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"pageTitle",children:e("models.title")}),(0,n.jsx)("p",{className:"pageDesc",children:e("models.description")})]}),(0,n.jsx)(s.Ay,{type:"primary",icon:(0,n.jsx)(g.A,{}),onClick:()=>U(!0),children:e("models.addModel")})]}),(0,n.jsx)(r.A,{title:e("models.modelList"),size:"small",loading:a,children:0===C.length?(0,n.jsx)("span",{className:M().cardMeta,children:e("models.noProviders")}):(0,n.jsx)(i.A,{gutter:[12,12],children:C.map(t=>(0,n.jsx)(d.A,{xs:24,sm:12,lg:8,children:(0,n.jsxs)(r.A,{size:"small",children:[(0,n.jsxs)("div",{className:M().cardAction,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:M().cardName,children:t.name}),(0,n.jsxs)("div",{className:M().cardMeta,children:[(0,n.jsx)(j.A,{})," ",t.protocol||t.detectedProtocol||"openai"]})]}),(0,n.jsxs)(m.A,{children:[(0,n.jsx)(s.Ay,{size:"small",type:"text",loading:er===t.name,onClick:()=>{ev(t.name)},icon:!0===ed[t.name]?(0,n.jsx)(x.A,{className:"text-[var(--colorOk)]"}):!1===ed[t.name]?(0,n.jsx)(b.A,{className:"text-[var(--colorDanger)]"}):(0,n.jsx)(A.A,{})}),(0,n.jsx)(s.Ay,{size:"small",type:"text",icon:(0,n.jsx)(w.A,{}),onClick:()=>{ey(t)}}),(0,n.jsx)(u.A,{title:e("models.deleteProviderConfirm"),onConfirm:()=>{eh(t.name)},children:(0,n.jsx)(s.Ay,{size:"small",type:"text",danger:!0,icon:(0,n.jsx)(O.A,{})})})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,n.jsxs)("span",{className:"".concat(M().cardMeta," text-xs"),children:[(0,n.jsx)(P,{})," ",t.hasApiKey?"••••••••":"—"]}),t.baseUrl&&(0,n.jsxs)("span",{className:"".concat(M().cardMeta," text-xs truncate block"),children:[(0,n.jsx)(T,{})," ",t.baseUrl]})]})]})},t.name))})}),z&&(0,n.jsx)(r.A,{title:e("models.modelTiers"),size:"small",children:(0,n.jsx)(i.A,{gutter:[12,12],children:E.map(a=>{var c;let{key:o,labelKey:l,descKey:s}=a,i=z[o],m=i.list.map(e=>({label:"".concat(e.provider," / ").concat(e.name),value:"".concat(e.provider,":").concat(e.name)})),u=C.filter(e=>!i.list.some(t=>t.provider===e.name)).map(e=>({label:"".concat(e.name," / ").concat(e.name),value:"".concat(e.name,":").concat(e.name)}));return(0,n.jsx)(d.A,{xs:24,lg:8,children:(0,n.jsxs)(r.A,{size:"small",title:e(l),children:[(0,n.jsx)("span",{className:M().tierDesc,children:e(s)}),(0,n.jsx)(p.A,{value:i.active?"".concat((null==(c=i.list.find(e=>e.name===i.active))?void 0:c.provider)||"",":").concat(i.active):void 0,onChange:e=>{eg(o,e)},allowClear:!0,placeholder:e("models.selectModelPlaceholder"),className:"w-full",options:[...m,...u]}),i.list.length>0&&(0,n.jsx)("div",{className:M().modelTags,children:i.list.map(a=>(0,n.jsxs)(h.A,{color:a.name===i.active?"blue":void 0,closable:!0,onClose:()=>{var n,c;let l={...z},s=l[o];s.list=s.list.filter(e=>e.name!==a.name||e.provider!==a.provider),s.active===a.name&&(s.active=null!=(c=null==(n=s.list[0])?void 0:n.name)?c:""),k(l),(0,R.aP)(l).catch(()=>t.error(e("common.error")))},children:[a.provider,"/",a.name]},"".concat(a.provider,":").concat(a.name)))})]})},o)})})}),(0,n.jsx)(y.A,{title:e("models.addModel"),open:_,onCancel:()=>{U(!1),I(""),K(""),B(""),F("openai")},onOk:()=>{ep()},confirmLoading:W,children:(0,n.jsxs)(f.A,{layout:"vertical",size:"middle",children:[(0,n.jsx)(f.A.Item,{label:e("models.modelName"),children:(0,n.jsx)(v.A,{value:H,onChange:e=>I(e.target.value),placeholder:e("models.modelNamePlaceholder")})}),(0,n.jsx)(f.A.Item,{label:e("models.apiKey"),children:(0,n.jsx)(v.A.Password,{value:D,onChange:e=>K(e.target.value),placeholder:"sk-..."})}),(0,n.jsx)(f.A.Item,{label:e("models.baseUrl"),children:(0,n.jsx)(v.A,{value:J,onChange:e=>B(e.target.value),placeholder:"https://api.openai.com/v1"})}),(0,n.jsx)(f.A.Item,{label:e("models.protocol"),children:(0,n.jsx)(p.A,{value:V,onChange:F,options:L})})]})}),(0,n.jsx)(y.A,{title:e("models.editModel"),open:X,onCancel:()=>{q(!1),G(""),$(""),et(""),en(""),eo("openai")},onOk:()=>{ef()},confirmLoading:el,children:(0,n.jsxs)(f.A,{layout:"vertical",size:"middle",children:[(0,n.jsx)(f.A.Item,{label:e("models.modelName"),children:(0,n.jsx)(v.A,{value:Y,onChange:e=>$(e.target.value),placeholder:e("models.modelNamePlaceholder")})}),(0,n.jsx)(f.A.Item,{label:e("models.apiKey"),help:e("models.apiKeyEditHint"),children:(0,n.jsx)(v.A.Password,{value:ee,onFocus:()=>{ee.includes("•")&&et("")},onCopy:e=>e.preventDefault(),onChange:e=>et(e.target.value),placeholder:e("models.apiKeyEditPlaceholder")})}),(0,n.jsx)(f.A.Item,{label:e("models.baseUrl"),children:(0,n.jsx)(v.A,{value:ea,onChange:e=>en(e.target.value),placeholder:"https://api.openai.com/v1"})}),(0,n.jsx)(f.A.Item,{label:e("models.protocol"),children:(0,n.jsx)(p.A,{value:ec,onChange:eo,options:L})})]})})]})}},6578:(e,t,a)=>{"use strict";async function n(e,t){let a=await fetch(e,t);if(!a.ok){let e=await a.text(),t=e||"HTTP ".concat(a.status);try{let a=JSON.parse(e);t=a.error||a.message||t}catch(e){}throw Error(t)}return a.json()}async function c(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return n("/api/kb/stats".concat(t))}async function o(e){var t,a;let c=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&c.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&c.set("category",e.category),(null==e?void 0:e.page)&&c.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&c.set("limit",String(null!=(a=e.limit)?a:50)),n("/api/kb/files?".concat(c))}async function l(e,t){let a=new URLSearchParams({relativePath:e});return t&&a.set("projectRoot",t),n("/api/kb/files/detail?".concat(a))}async function s(e,t){return n("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function r(e,t,a){return n("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:a})})}async function i(e,t,a){let c=await new Promise((t,a)=>{let n=new FileReader;n.onload=()=>{let e=n.result,a=e.indexOf(",");t(a>=0?e.slice(a+1):e)},n.onerror=a,n.readAsDataURL(e)});return n("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:e.name,fileData:c,projectRoot:t,uploadId:a})})}async function d(e){return n("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function m(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),n("/api/kb/operations?".concat(t))}async function u(e,t){return n("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function p(e){return n("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function h(){return n("/api/kb/features")}async function y(e,t){var a,c,o,l,s;let r=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&r.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&r.set("category",t.category),(null==t?void 0:t.limit)&&r.set("limit",String(null!=(s=t.limit)?s:20)),(null==t||null==(a=t.weights)?void 0:a.keyword)!=null&&r.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(c=t.weights)?void 0:c.vector)!=null&&r.set("vectorWeight",String(t.weights.vector)),(null==t||null==(o=t.weights)?void 0:o.rewrite)!=null&&r.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(l=t.weights)?void 0:l.hybridBonus)!=null&&r.set("hybridBonus",String(t.weights.hybridBonus)),n("/api/kb/search?".concat(r))}async function f(){return n("/api/config/providers")}async function v(e,t){return n("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function g(e){return n("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function j(){return n("/api/config/models")}async function x(e){return n("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e){return n("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function A(){return n("/api/system/stats")}async function w(e,t){let a=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return n("/api/context".concat(a))}async function O(e){return n("/api/context?type=".concat(e,"&stats=1"))}async function S(e){return n("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function C(e){return n("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function N(e){return n("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function P(e,t){return n("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function z(e){return n("/api/config/providers/".concat(encodeURIComponent(e)))}a.d(t,{Bh:()=>z,E:()=>C,FC:()=>A,H1:()=>p,HC:()=>s,HT:()=>o,PH:()=>S,QT:()=>d,Qx:()=>m,VW:()=>h,W2:()=>y,Z3:()=>f,_m:()=>v,aP:()=>x,bZ:()=>b,h1:()=>g,hc:()=>c,hn:()=>w,p:()=>O,pF:()=>i,tn:()=>r,xC:()=>l,xq:()=>u,xw:()=>N,zo:()=>P,zr:()=>j})},7305:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/models",function(){return a(5527)}])},8770:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});let n=a(1916).A},8847:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z"}}]},name:"thunderbolt",theme:"outlined"}},9071:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(7109),c=a(8847),o=a(8483);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let s=n.forwardRef((e,t)=>n.createElement(o.A,l({},e,{ref:t,icon:c.A})))}},e=>{e.O(0,[260,544,425,576,740,492,455,636,593,792],()=>e(e.s=7305)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46],{69:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L255.8 713.6l-62.3-62.3a8.19 8.19 0 00-11.4 0l-39.8 39.8a8.19 8.19 0 000 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.19 8.19 0 00-11.4 0l-39.8 39.8a8.19 8.19 0 000 11.4l110.3 111.2c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.1 304.1 0 00608 720c167.9 0 304-136.1 304-304S775.9 112 608 112m161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2"}}]},name:"key",theme:"outlined"}},289:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"}},2256:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});let n=a(5341).A},2323:e=>{e.exports={cardMeta:"style_cardMeta__6KOa3",cardName:"style_cardName__WcLAf",cardAction:"style_cardAction__XUfPD",tierDesc:"style_tierDesc__wOd6p",modelTags:"style_modelTags__nmMVj"}},3114:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(7109),o=a(5450),c=a(8483);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let s=n.forwardRef((e,t)=>n.createElement(c.A,l({},e,{ref:t,icon:o.A})))},5450:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"}},5527:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>U});var n=a(5321),o=a(7109),c=a(9018),l=a(7807),s=a(5114),r=a(8787),i=a(2256),d=a(8770),m=a(3442),p=a(6171),u=a(7271),h=a(1702),y=a(5258),f=a(3455),v=a(7576),g=a(4746),j=a(9071),x=a(9188),b=a(4216),A=a(3114),w=a(9650),S=a(8209),O=a(69),C=a(8483);function N(){return(N=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let P=o.forwardRef((e,t)=>o.createElement(C.A,N({},e,{ref:t,icon:O.A})));var z=a(289);function T(){return(T=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let k=o.forwardRef((e,t)=>o.createElement(C.A,T({},e,{ref:t,icon:z.A})));var R=a(6578),_=a(2323),M=a.n(_);let L=[{label:"OpenAI 兼容",value:"openai"},{label:"Anthropic",value:"anthropic"},{label:"Google",value:"google"},{label:"Ollama",value:"ollama"},{label:"OpenRouter",value:"openrouter"}],E=[{key:"reader",labelKey:"models.tierReader",descKey:"models.tierReaderDesc"},{key:"reasoning",labelKey:"models.tierReasoning",descKey:"models.tierReasoningDesc"},{key:"action",labelKey:"models.tierAction",descKey:"models.tierActionDesc"}];function U(){let e=(0,c.Vr)(),{message:t}=l.A.useApp(),[a,O]=(0,o.useState)(!0),[C,N]=(0,o.useState)([]),[z,T]=(0,o.useState)(null),[_,U]=(0,o.useState)(!1),[H,I]=(0,o.useState)(""),[D,K]=(0,o.useState)(""),[J,B]=(0,o.useState)(""),[V,F]=(0,o.useState)("openai"),[W,Z]=(0,o.useState)(!1),[X,q]=(0,o.useState)(!1),[Q,G]=(0,o.useState)(""),[Y,$]=(0,o.useState)(""),[ee,et]=(0,o.useState)(""),[ea,en]=(0,o.useState)(""),[eo,ec]=(0,o.useState)("openai"),[el,es]=(0,o.useState)(!1),[er,ei]=(0,o.useState)(null),[ed,em]=(0,o.useState)({}),ep=async()=>{O(!0);try{let[e,t]=await Promise.all([(0,R.Z3)().catch(()=>[]),(0,R.zr)().catch(()=>null)]);N(e),T(t)}catch(a){t.error(e("common.error"))}finally{O(!1)}};(0,o.useEffect)(()=>{ep()},[]);let eu=async()=>{if(H.trim()){Z(!0);try{await (0,R._m)(H.trim(),{apiKey:D||void 0,baseUrl:J||void 0,protocol:V}),U(!1),I(""),K(""),B(""),F("openai"),await ep(),t.success(e("common.success"))}catch(a){t.error(e("common.error"))}finally{Z(!1)}}},eh=async a=>{try{await (0,R.h1)(a),await ep(),t.success(e("common.success"))}catch(a){t.error(e("common.error"))}},ey=async e=>{G(e.name),$(e.name),et("");try{let t=await (0,R.Bh)(e.name);et(t.apiKey?"••••••••":""),en(t.baseUrl||""),ec(t.protocol||t.detectedProtocol||"openai")}catch(t){en(e.baseUrl||""),ec(e.protocol||e.detectedProtocol||"openai")}q(!0)},ef=async()=>{if(Y.trim()){es(!0);try{Y.trim()!==Q&&await (0,R.h1)(Q);let a=ee.includes("•")?void 0:ee||void 0;await (0,R._m)(Y.trim(),{apiKey:a,baseUrl:ea||void 0,protocol:eo}),q(!1),G(""),$(""),et(""),en(""),ec("openai"),await ep(),t.success(e("common.success"))}catch(a){t.error(e("common.error"))}finally{es(!1)}}},ev=async a=>{ei(a);try{let n=await (0,R.bZ)(a);em(e=>({...e,[a]:n.success})),t[n.success?"success":"error"](n.success?e("models.connected"):e("models.connectionFailed"))}catch(e){em(e=>({...e,[a]:!1}))}finally{ei(null)}},eg=async(a,n)=>{if(!z)return;let o={...z},c=o[a];if(!n){c.active="",T(o);try{await (0,R.aP)(o)}catch(a){t.error(e("common.error"))}return}let l=n.indexOf(":"),s=l>=0?n.slice(0,l):n,r=l>=0?n.slice(l+1):n;c.active=r,c.list.some(e=>e.name===r&&e.provider===s)||c.list.push({name:r,provider:s}),T(o);try{await (0,R.aP)(o)}catch(a){t.error(e("common.error"))}};return(0,n.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,n.jsxs)("div",{className:"pageHero",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"pageTitle",children:e("models.title")}),(0,n.jsx)("p",{className:"pageDesc",children:e("models.description")})]}),(0,n.jsx)("div",{className:"pageActions",children:(0,n.jsx)(s.Ay,{type:"primary",icon:(0,n.jsx)(g.A,{}),onClick:()=>U(!0),children:e("models.addModel")})})]}),(0,n.jsx)(r.A,{title:e("models.modelList"),size:"small",loading:a,children:0===C.length?(0,n.jsx)("span",{className:M().cardMeta,children:e("models.noProviders")}):(0,n.jsx)(i.A,{gutter:[12,12],children:C.map(t=>(0,n.jsx)(d.A,{xs:24,sm:12,lg:8,children:(0,n.jsxs)(r.A,{size:"small",children:[(0,n.jsxs)("div",{className:M().cardAction,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:M().cardName,children:t.name}),(0,n.jsxs)("div",{className:M().cardMeta,children:[(0,n.jsx)(j.A,{})," ",t.protocol||t.detectedProtocol||"openai"]})]}),(0,n.jsxs)(m.A,{children:[(0,n.jsx)(s.Ay,{size:"small",type:"text",loading:er===t.name,onClick:()=>{ev(t.name)},icon:!0===ed[t.name]?(0,n.jsx)(x.A,{className:"text-[var(--colorOk)]"}):!1===ed[t.name]?(0,n.jsx)(b.A,{className:"text-[var(--colorDanger)]"}):(0,n.jsx)(A.A,{})}),(0,n.jsx)(s.Ay,{size:"small",type:"text",icon:(0,n.jsx)(w.A,{}),onClick:()=>{ey(t)}}),(0,n.jsx)(p.A,{title:e("models.deleteProviderConfirm"),onConfirm:()=>{eh(t.name)},children:(0,n.jsx)(s.Ay,{size:"small",type:"text",danger:!0,icon:(0,n.jsx)(S.A,{})})})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,n.jsxs)("span",{className:"".concat(M().cardMeta," text-xs"),children:[(0,n.jsx)(P,{})," ",t.hasApiKey?"••••••••":"—"]}),t.baseUrl&&(0,n.jsxs)("span",{className:"".concat(M().cardMeta," text-xs truncate block"),children:[(0,n.jsx)(k,{})," ",t.baseUrl]})]})]})},t.name))})}),z&&(0,n.jsx)(r.A,{title:e("models.modelTiers"),size:"small",children:(0,n.jsx)(i.A,{gutter:[12,12],children:E.map(a=>{var o;let{key:c,labelKey:l,descKey:s}=a,i=z[c],m=i.list.map(e=>({label:"".concat(e.provider," / ").concat(e.name),value:"".concat(e.provider,":").concat(e.name)})),p=C.filter(e=>!i.list.some(t=>t.provider===e.name)).map(e=>({label:"".concat(e.name," / ").concat(e.name),value:"".concat(e.name,":").concat(e.name)}));return(0,n.jsx)(d.A,{xs:24,lg:8,children:(0,n.jsxs)(r.A,{size:"small",title:e(l),children:[(0,n.jsx)("span",{className:M().tierDesc,children:e(s)}),(0,n.jsx)(u.A,{value:i.active?"".concat((null==(o=i.list.find(e=>e.name===i.active))?void 0:o.provider)||"",":").concat(i.active):void 0,onChange:e=>{eg(c,e)},allowClear:!0,placeholder:e("models.selectModelPlaceholder"),className:"w-full",options:[...m,...p]}),i.list.length>0&&(0,n.jsx)("div",{className:M().modelTags,children:i.list.map(a=>(0,n.jsxs)(h.A,{color:a.name===i.active?"blue":void 0,closable:!0,onClose:()=>{var n,o;let l={...z},s=l[c];s.list=s.list.filter(e=>e.name!==a.name||e.provider!==a.provider),s.active===a.name&&(s.active=null!=(o=null==(n=s.list[0])?void 0:n.name)?o:""),T(l),(0,R.aP)(l).catch(()=>t.error(e("common.error")))},children:[a.provider,"/",a.name]},"".concat(a.provider,":").concat(a.name)))})]})},c)})})}),(0,n.jsx)(y.A,{title:e("models.addModel"),open:_,onCancel:()=>{U(!1),I(""),K(""),B(""),F("openai")},onOk:()=>{eu()},confirmLoading:W,children:(0,n.jsxs)(f.A,{layout:"vertical",size:"middle",children:[(0,n.jsx)(f.A.Item,{label:e("models.modelName"),children:(0,n.jsx)(v.A,{value:H,onChange:e=>I(e.target.value),placeholder:e("models.modelNamePlaceholder")})}),(0,n.jsx)(f.A.Item,{label:e("models.apiKey"),children:(0,n.jsx)(v.A.Password,{value:D,onChange:e=>K(e.target.value),placeholder:"sk-..."})}),(0,n.jsx)(f.A.Item,{label:e("models.baseUrl"),children:(0,n.jsx)(v.A,{value:J,onChange:e=>B(e.target.value),placeholder:"https://api.openai.com/v1"})}),(0,n.jsx)(f.A.Item,{label:e("models.protocol"),children:(0,n.jsx)(u.A,{value:V,onChange:F,options:L})})]})}),(0,n.jsx)(y.A,{title:e("models.editModel"),open:X,onCancel:()=>{q(!1),G(""),$(""),et(""),en(""),ec("openai")},onOk:()=>{ef()},confirmLoading:el,children:(0,n.jsxs)(f.A,{layout:"vertical",size:"middle",children:[(0,n.jsx)(f.A.Item,{label:e("models.modelName"),children:(0,n.jsx)(v.A,{value:Y,onChange:e=>$(e.target.value),placeholder:e("models.modelNamePlaceholder")})}),(0,n.jsx)(f.A.Item,{label:e("models.apiKey"),help:e("models.apiKeyEditHint"),children:(0,n.jsx)(v.A.Password,{value:ee,onFocus:()=>{ee.includes("•")&&et("")},onCopy:e=>e.preventDefault(),onChange:e=>et(e.target.value),placeholder:e("models.apiKeyEditPlaceholder")})}),(0,n.jsx)(f.A.Item,{label:e("models.baseUrl"),children:(0,n.jsx)(v.A,{value:ea,onChange:e=>en(e.target.value),placeholder:"https://api.openai.com/v1"})}),(0,n.jsx)(f.A.Item,{label:e("models.protocol"),children:(0,n.jsx)(u.A,{value:eo,onChange:ec,options:L})})]})})]})}},6578:(e,t,a)=>{"use strict";async function n(e,t){let a=await fetch(e,t);if(!a.ok){let e=await a.text(),t=e||"HTTP ".concat(a.status);try{let a=JSON.parse(e);t=a.error||a.message||t}catch(e){}throw Error(t)}return a.json()}async function o(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return n("/api/kb/stats".concat(t))}async function c(e){var t,a;let o=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&o.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&o.set("category",e.category),(null==e?void 0:e.page)&&o.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&o.set("limit",String(null!=(a=e.limit)?a:50)),n("/api/kb/files?".concat(o))}async function l(e,t){let a=new URLSearchParams({relativePath:e});return t&&a.set("projectRoot",t),n("/api/kb/files/detail?".concat(a))}async function s(e,t){return n("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function r(e,t,a){return n("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:a})})}async function i(e,t,a){let o=await new Promise((t,a)=>{let n=new FileReader;n.onload=()=>{let e=n.result,a=e.indexOf(",");t(a>=0?e.slice(a+1):e)},n.onerror=a,n.readAsDataURL(e)});return n("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:e.name,fileData:o,projectRoot:t,uploadId:a})})}async function d(e){return n("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function m(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),n("/api/kb/operations?".concat(t))}async function p(e,t){return n("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function u(e){return n("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function h(){return n("/api/kb/features")}async function y(e,t){var a,o,c,l,s;let r=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&r.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&r.set("category",t.category),(null==t?void 0:t.limit)&&r.set("limit",String(null!=(s=t.limit)?s:20)),(null==t||null==(a=t.weights)?void 0:a.keyword)!=null&&r.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(o=t.weights)?void 0:o.vector)!=null&&r.set("vectorWeight",String(t.weights.vector)),(null==t||null==(c=t.weights)?void 0:c.rewrite)!=null&&r.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(l=t.weights)?void 0:l.hybridBonus)!=null&&r.set("hybridBonus",String(t.weights.hybridBonus)),n("/api/kb/search?".concat(r))}async function f(){return n("/api/config/providers")}async function v(e,t){return n("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function g(e){return n("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function j(){return n("/api/config/models")}async function x(e){return n("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e){return n("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function A(){return n("/api/system/stats")}async function w(e,t){let a=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return n("/api/context".concat(a))}async function S(e){return n("/api/context?type=".concat(e,"&stats=1"))}async function O(e){return n("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function C(e){return n("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function N(e){return n("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function P(e,t){return n("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function z(e){return n("/api/config/providers/".concat(encodeURIComponent(e)))}a.d(t,{Bh:()=>z,E:()=>C,FC:()=>A,H1:()=>u,HC:()=>s,HT:()=>c,PH:()=>O,QT:()=>d,Qx:()=>m,VW:()=>h,W2:()=>y,Z3:()=>f,_m:()=>v,aP:()=>x,bZ:()=>b,h1:()=>g,hc:()=>o,hn:()=>w,p:()=>S,pF:()=>i,tn:()=>r,xC:()=>l,xq:()=>p,xw:()=>N,zo:()=>P,zr:()=>j})},7305:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/models",function(){return a(5527)}])},8770:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});let n=a(1916).A},8847:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z"}}]},name:"thunderbolt",theme:"outlined"}},9071:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(7109),o=a(8847),c=a(8483);function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}let s=n.forwardRef((e,t)=>n.createElement(c.A,l({},e,{ref:t,icon:o.A})))}},e=>{e.O(0,[260,167,796,740,576,519,636,593,792],()=>e(e.s=7305)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[449],{3139:(e,n,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/overview",function(){return t(7795)}])},6578:(e,n,t)=>{"use strict";async function s(e,n){let t=await fetch(e,n);if(!t.ok){let e=await t.text(),n=e||"HTTP ".concat(t.status);try{let t=JSON.parse(e);n=t.error||t.message||n}catch(e){}throw Error(n)}return t.json()}async function i(e){let n=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return s("/api/kb/stats".concat(n))}async function o(e){var n,t;let i=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&i.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&i.set("category",e.category),(null==e?void 0:e.page)&&i.set("page",String(null!=(n=e.page)?n:1)),(null==e?void 0:e.limit)&&i.set("limit",String(null!=(t=e.limit)?t:50)),s("/api/kb/files?".concat(i))}async function r(e,n){let t=new URLSearchParams({relativePath:e});return n&&t.set("projectRoot",n),s("/api/kb/files/detail?".concat(t))}async function a(e,n){return s("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:n})})}async function l(e,n,t){return s("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:n,projectRoot:t})})}async function c(e,n,t){let i=await new Promise((n,t)=>{let s=new FileReader;s.onload=()=>{let e=s.result,t=e.indexOf(",");n(t>=0?e.slice(t+1):e)},s.onerror=t,s.readAsDataURL(e)});return s("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:e.name,fileData:i,projectRoot:n,uploadId:t})})}async function d(e){return s("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function u(e){let n=new URLSearchParams({limit:"50"});return e&&n.set("projectRoot",e),s("/api/kb/operations?".concat(n))}async function p(e,n){return s("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:n})})}async function h(e){return s("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function m(){return s("/api/kb/features")}async function y(e,n){var t,i,o,r,a;let l=new URLSearchParams({q:e});return(null==n?void 0:n.projectRoot)&&l.set("projectRoot",n.projectRoot),(null==n?void 0:n.category)&&l.set("category",n.category),(null==n?void 0:n.limit)&&l.set("limit",String(null!=(a=n.limit)?a:20)),(null==n||null==(t=n.weights)?void 0:t.keyword)!=null&&l.set("keywordWeight",String(n.weights.keyword)),(null==n||null==(i=n.weights)?void 0:i.vector)!=null&&l.set("vectorWeight",String(n.weights.vector)),(null==n||null==(o=n.weights)?void 0:o.rewrite)!=null&&l.set("rewriteWeight",String(n.weights.rewrite)),(null==n||null==(r=n.weights)?void 0:r.hybridBonus)!=null&&l.set("hybridBonus",String(n.weights.hybridBonus)),s("/api/kb/search?".concat(l))}async function v(){return s("/api/config/providers")}async function x(e,n){return s("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...n})})}async function g(e){return s("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function j(){return s("/api/config/models")}async function f(e){return s("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function w(e){return s("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function k(){return s("/api/system/stats")}async function A(e,n){let t=n?"?type=".concat(e,"&search=").concat(encodeURIComponent(n)):"?type=".concat(e);return s("/api/context".concat(t))}async function N(e){return s("/api/context?type=".concat(e,"&stats=1"))}async function T(e){return s("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function C(e){return s("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function b(e){return s("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function S(e,n){return s("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...n})})}async function P(e){return s("/api/config/providers/".concat(encodeURIComponent(e)))}t.d(n,{Bh:()=>P,E:()=>C,FC:()=>k,H1:()=>h,HC:()=>a,HT:()=>o,PH:()=>T,QT:()=>d,Qx:()=>u,VW:()=>m,W2:()=>y,Z3:()=>v,_m:()=>x,aP:()=>f,bZ:()=>w,h1:()=>g,hc:()=>i,hn:()=>A,p:()=>N,pF:()=>c,tn:()=>l,xC:()=>r,xq:()=>p,xw:()=>b,zo:()=>S,zr:()=>j})},7795:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>T});var s=t(5321),i=t(7109),o=t(9018),r=t(2700),a=t(5114),l=t(2256),c=t(8770),d=t(8787),u=t(9605),p=t(4849),h=t(3442),m=t(1702),y=t(6109),v=t(2192),x=t(520),g=t(933),j=t(3114),f=t(9071),w=t(6631),k=t(4742),A=t(6381),N=t(6578);function T(){var e,n,t,T,C,b,S,P,O,R,E,U;let z=(0,o.Vr)(),_=(0,y.useRouter)(),[I,J]=(0,i.useState)(null),[M,D]=(0,i.useState)(!0),[B,F]=(0,i.useState)(0),L=(0,i.useCallback)(async()=>{D(!0);try{let[e,n]=await Promise.all([(0,N.FC)(),(0,N.Z3)().catch(()=>[])]);J(e),F(Array.isArray(n)?n.length:0)}catch(e){}finally{D(!1)}},[]);if((0,i.useEffect)(()=>{L();let e=setInterval(()=>{L()},1e4);return()=>clearInterval(e)},[L]),M&&!I)return(0,s.jsx)("div",{className:"flex justify-center py-16",children:(0,s.jsx)(r.A,{size:"large"})});let W=(null!=(n=null==I?void 0:I.cpu.usagePercent)?n:0)>80?"var(--colorDanger)":(null!=(t=null==I?void 0:I.cpu.usagePercent)?t:0)>50?"var(--colorWarning)":"var(--colorOk)",H=(null!=(T=null==I?void 0:I.memory.usagePercent)?T:0)>80?"var(--colorDanger)":(null!=(C=null==I?void 0:I.memory.usagePercent)?C:0)>50?"var(--colorWarning)":"var(--colorOk)",q=(null==I?void 0:I.tasks.total)?Math.round(I.tasks.success/I.tasks.total*100):0,Z=null==I||null==(e=I.models)?void 0:e[0];return(0,s.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,s.jsxs)("div",{className:"pageHero",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"pageTitle",children:z("overview.title")}),(0,s.jsx)("p",{className:"pageDesc",children:z("overview.description")})]}),(0,s.jsx)("div",{className:"pageActions",children:(0,s.jsx)(a.Ay,{icon:(0,s.jsx)(v.A,{spin:M}),loading:M,onClick:()=>{L()},children:z("common.retry")})})]}),(0,s.jsxs)(l.A,{gutter:[18,18],children:[(0,s.jsx)(c.A,{xs:24,sm:12,children:(0,s.jsx)(d.A,{className:"metricPanel",size:"small",title:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(x.A,{})," CPU"]}),children:(0,s.jsxs)("div",{className:"centerMetric",children:[(0,s.jsx)(u.A,{type:"circle",percent:null!=(b=null==I?void 0:I.cpu.usagePercent)?b:0,size:120,strokeColor:W,format:e=>"".concat(null==e?void 0:e.toFixed(1),"%")}),(0,s.jsxs)("div",{className:"subtleText",children:[null!=(S=null==I?void 0:I.cpu.cores)?S:0," ",z("overview.cores")]})]})})}),(0,s.jsx)(c.A,{xs:24,sm:12,children:(0,s.jsx)(d.A,{className:"metricPanel",size:"small",title:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(g.A,{})," ",z("overview.memory")]}),children:(0,s.jsxs)("div",{className:"centerMetric",children:[(0,s.jsx)(u.A,{type:"circle",percent:null!=(P=null==I?void 0:I.memory.usagePercent)?P:0,size:120,strokeColor:H,format:e=>"".concat(e,"%")}),(0,s.jsxs)("div",{className:"subtleText",children:[null!=(O=null==I?void 0:I.memory.processMB)?O:0," MB / ",null!=(R=null==I?void 0:I.memory.totalMB)?R:0," MB"]})]})})})]}),(0,s.jsxs)("div",{className:"kpiGrid",children:[(0,s.jsx)(d.A,{className:"kpiCard",size:"small",children:(0,s.jsx)(p.A,{title:z("overview.providersCount"),value:B,prefix:(0,s.jsx)(j.A,{})})}),(0,s.jsx)(d.A,{className:"kpiCard",size:"small",children:(0,s.jsx)(p.A,{title:z("overview.tokensUsed"),value:null!=(E=null==I?void 0:I.tokens.total)?E:0,prefix:(0,s.jsx)(f.A,{})})}),(0,s.jsx)(d.A,{className:"kpiCard",size:"small",children:(0,s.jsx)(p.A,{title:z("overview.tasksTotal"),value:null!=(U=null==I?void 0:I.tasks.total)?U:0,prefix:(0,s.jsx)(w.A,{})})}),(0,s.jsx)(d.A,{className:"kpiCard",size:"small",children:(0,s.jsx)(p.A,{title:z("overview.successRate"),value:q,suffix:"%",prefix:q>80?(0,s.jsx)(k.A,{className:"okIcon"}):(0,s.jsx)(A.A,{className:"dangerIcon"})})})]}),(0,s.jsxs)(l.A,{gutter:[18,18],children:[(0,s.jsx)(c.A,{xs:24,sm:12,children:(0,s.jsx)(d.A,{size:"small",title:z("overview.topModel"),children:Z?(0,s.jsxs)("div",{className:"insightRow",children:[(0,s.jsx)("div",{className:"insightIcon",children:(0,s.jsx)(j.A,{})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"insightTitle",children:Z.model}),(0,s.jsxs)("div",{className:"insightMeta",children:["@",Z.provider," — ",Z.count," ",z("overview.calls")]})]})]}):(0,s.jsx)("span",{className:"subtleText",children:z("common.noData")})})}),(0,s.jsx)(c.A,{xs:24,sm:12,children:(0,s.jsx)(d.A,{size:"small",title:z("overview.taskTypes"),children:(null==I?void 0:I.tasks.types)&&Object.keys(I.tasks.types).length>0?(0,s.jsx)(h.A,{wrap:!0,children:Object.entries(I.tasks.types).map(e=>{let[n,t]=e;return(0,s.jsxs)(m.A,{children:[n.slice(0,30),": ",t]},n)})}):(0,s.jsx)("span",{className:"subtleText",children:z("common.noData")})})})]}),(0,s.jsx)(d.A,{title:z("overview.quickActions"),size:"small",children:(0,s.jsxs)(h.A,{wrap:!0,children:[(0,s.jsx)(a.Ay,{onClick:()=>{_.push("/knowledge/manage")},children:z("overview.goToKnowledge")}),(0,s.jsx)(a.Ay,{onClick:()=>{_.push("/models")},children:z("overview.goToModels")}),(0,s.jsx)(a.Ay,{onClick:()=>{_.push("/settings")},children:z("overview.goToSettings")}),(0,s.jsx)(a.Ay,{onClick:()=>{_.push("/prompt")},children:z("nav.promptManagement")}),(0,s.jsx)(a.Ay,{onClick:()=>{_.push("/context/long-term")},children:z("nav.contextEngineering")})]})})]})}}},e=>{e.O(0,[260,167,700,15,860,636,593,792],()=>e(e.s=3139)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26],{697:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>k});var a=r(5321),c=r(7109),s=r(9018),o=r(7807),n=r(5114),i=r(8787),l=r(4253),p=r(6985),d=r(6171),m=r(1702),h=r(5258),u=r(7576),j=r(3455),f=r(7271),x=r(4746),v=r(7715),y=r(8483);function g(){return(g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let A=c.forwardRef((e,t)=>c.createElement(y.A,g({},e,{ref:t,icon:v.A})));var w=r(6631),b=r(9650),N=r(8209),C=r(9606),P=r(8740);async function O(){let e=await fetch("/api/prompt");if(!e.ok)throw Error("Failed");return e.json()}async function T(e,t){let r=await fetch("/api/prompt",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePath:e,content:t})});if(!r.ok)throw Error("Failed");return r.json()}async function z(e,t){if(!(await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"select",selectedIds:e,prompts:t})})).ok)throw Error("Failed")}async function S(e,t,r){if(!(await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"create",name:e,content:t,projectRoot:r})})).ok)throw Error("Failed")}function k(){let e=(0,s.Vr)(),{message:t}=o.A.useApp(),[r,v]=(0,c.useState)(!0),[y,g]=(0,c.useState)([]),[k,E]=(0,c.useState)(""),[I,M]=(0,c.useState)([]),[_,F]=(0,c.useState)(!1),[H,R]=(0,c.useState)(null),[V,L]=(0,c.useState)(""),[B,D]=(0,c.useState)(!1),[J,X]=(0,c.useState)(!1),[q,G]=(0,c.useState)(""),[U,K]=(0,c.useState)(""),[Q,W]=(0,c.useState)(),[Y,Z]=(0,c.useState)(!1),$=async()=>{v(!0);try{let e=await O();g(e.projects),M(e.selectedIds),E(e.currentProjectRoot)}catch(r){t.error(e("common.error"))}finally{v(!1)}};(0,c.useEffect)(()=>{$()},[]);let ee=(0,c.useMemo)(()=>y.filter(e=>"project"===e.type).map(e=>({label:"".concat(e.projectName," — ").concat(e.projectRoot),value:e.projectRoot})),[y]),et=async()=>{if(H){D(!0);try{await T(H.customizePath,V),t.success(e("common.success")),F(!1),await $()}catch(r){t.error(e("common.error"))}finally{D(!1)}}},er=async(r,a)=>{let c=a?[...I,r]:I.filter(e=>e!==r);M(c);try{await z(c,y)}catch(r){t.error(e("common.error"))}},ea=async()=>{if(q.trim()){Z(!0);try{await S(q.trim(),U,Q),X(!1),G(""),K(""),W(void 0),t.success(e("common.success")),await $()}catch(r){t.error(e("common.error"))}finally{Z(!1)}}},ec=async r=>{try{if(!(await fetch("/api/prompt",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:r.projectId,filePath:r.customizePath,type:r.type})})).ok)throw Error("Failed");t.success(e("common.success")),await $()}catch(r){t.error(e("common.error"))}};return(0,a.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,a.jsxs)("div",{className:"pageHero",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"pageTitle",children:e("nav.promptManagement")}),(0,a.jsx)("p",{className:"pageDesc",children:e("prompt.description")})]}),(0,a.jsx)("div",{className:"pageActions",children:(0,a.jsx)(n.Ay,{type:"primary",icon:(0,a.jsx)(x.A,{}),onClick:()=>X(!0),children:e("prompt.createCustom")})})]}),(0,a.jsx)(i.A,{size:"small",title:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(A,{})," ",e("prompt.currentDirectory")]}),children:(0,a.jsx)("div",{className:"mutedPath",children:k||"—"})}),0!==y.length||r?null:(0,a.jsx)(l.A,{}),(0,a.jsx)("div",{className:"surfaceGrid",children:r?Array.from({length:3}).map((e,t)=>(0,a.jsx)(i.A,{loading:!0,size:"small"},t)):y.map(t=>(0,a.jsx)(i.A,{size:"small",title:(0,a.jsxs)("span",{className:"cardTitleInline",children:[(0,a.jsx)(w.A,{})," ",(0,a.jsx)("span",{className:"cardTitleText",children:t.projectName})]}),extra:(0,a.jsxs)("span",{className:"actionInline",children:[(0,a.jsx)(p.A,{checked:I.includes(t.projectId),onChange:e=>{er(t.projectId,e.target.checked)}}),(0,a.jsx)(n.Ay,{size:"small",type:"text",icon:(0,a.jsx)(b.A,{}),onClick:()=>{R(t),L(t.content||""),F(!0)}}),(0,a.jsx)(d.A,{title:e("prompt.deleteConfirm"),onConfirm:()=>{ec(t)},children:(0,a.jsx)(n.Ay,{size:"small",type:"text",danger:!0,icon:(0,a.jsx)(N.A,{})})})]}),children:(0,a.jsxs)("div",{className:"promptCardBody",children:[(0,a.jsxs)("div",{className:"subtleText breakText",children:[(0,a.jsx)(C.A,{})," ","custom"===t.type?t.customizePath:t.projectRoot]}),t.boundProjectRoot&&(0,a.jsxs)("div",{className:"subtleText breakText",children:[e("prompt.boundProject"),": ",t.boundProjectRoot]}),(0,a.jsxs)("div",{className:"subtleText",children:[(0,a.jsx)(P.A,{})," ",t.mtime?new Date(t.mtime).toLocaleString():e("common.never")]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(m.A,{color:"custom"===t.type?"purple":"blue",children:"custom"===t.type?e("prompt.customPrompt"):e("prompt.projectPrompt")}),t.hasFile?(0,a.jsx)(m.A,{color:"green",children:e("prompt.hasFile")}):(0,a.jsx)(m.A,{color:"default",children:e("prompt.noFile")}),I.includes(t.projectId)&&(0,a.jsx)(m.A,{color:"processing",children:e("prompt.selected")})]}),t.content&&(0,a.jsxs)("div",{className:"codePreview",children:[t.content.slice(0,200),t.content.length>200?"...":""]})]})},t.projectId))}),0===y.length&&(0,a.jsx)(i.A,{size:"small",children:(0,a.jsx)("span",{className:"subtleText",children:e("prompt.noProjects")})}),(0,a.jsxs)(h.A,{title:"".concat(e("common.edit")," — ").concat((null==H?void 0:H.projectName)||""),open:_,width:800,onCancel:()=>F(!1),onOk:()=>{et()},confirmLoading:B,children:[(0,a.jsx)("div",{className:"modalMeta",children:null==H?void 0:H.customizePath}),(0,a.jsx)(u.A.TextArea,{className:"monoEditor",value:V,onChange:e=>L(e.target.value),rows:25})]}),(0,a.jsx)(h.A,{title:e("prompt.createCustom"),open:J,width:800,onCancel:()=>X(!1),onOk:()=>{ea()},confirmLoading:Y,children:(0,a.jsxs)(j.A,{layout:"vertical",children:[(0,a.jsx)(j.A.Item,{label:e("prompt.customName"),required:!0,children:(0,a.jsx)(u.A,{value:q,onChange:e=>G(e.target.value)})}),(0,a.jsx)(j.A.Item,{label:e("prompt.bindProject"),children:(0,a.jsx)(f.A,{allowClear:!0,value:Q,onChange:W,options:ee})}),(0,a.jsx)(j.A.Item,{label:e("prompt.content"),children:(0,a.jsx)(u.A.TextArea,{value:U,onChange:e=>K(e.target.value),rows:18})})]})})]})}},2887:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"}},4084:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"}},6631:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});var a=r(7109),c=r(2887),s=r(8483);function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let n=a.forwardRef((e,t)=>a.createElement(s.A,o({},e,{ref:t,icon:c.A})))},7549:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/prompt",function(){return r(697)}])},7715:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M952 474H829.8C812.5 327.6 696.4 211.5 550 194.2V72c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v122.2C327.6 211.5 211.5 327.6 194.2 474H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h122.2C211.5 696.4 327.6 812.5 474 829.8V952c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V829.8C696.4 812.5 812.5 696.4 829.8 550H952c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM512 756c-134.8 0-244-109.2-244-244s109.2-244 244-244 244 109.2 244 244-109.2 244-244 244z"}},{tag:"path",attrs:{d:"M512 392c-32.1 0-62.1 12.4-84.8 35.2-22.7 22.7-35.2 52.7-35.2 84.8s12.5 62.1 35.2 84.8C449.9 619.4 480 632 512 632s62.1-12.5 84.8-35.2C619.4 574.1 632 544 632 512s-12.5-62.1-35.2-84.8A118.57 118.57 0 00512 392z"}}]},name:"aim",theme:"outlined"}},8740:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});var a=r(7109),c=r(4084),s=r(8483);function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let n=a.forwardRef((e,t)=>a.createElement(s.A,o({},e,{ref:t,icon:c.A})))}},e=>{e.O(0,[260,167,796,740,576,446,519,636,593,792],()=>e(e.s=7549)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[199],{2290:e=>{e.exports={langIcon:"style_langIcon__TP4OY",sectionTitle:"style_sectionTitle__kFQM6",sectionDesc:"style_sectionDesc__opDGs",metaText:"style_metaText__1_eoU",metaValue:"style_metaValue__uxkOj"}},4521:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>p});var c=t(5321),l=t(9018),i=t(9759),a=t(8787),n=t(1702),x=t(3340),d=t(1278);let r=(0,d.A)("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var m=t(6733),o=t(8300);let h=(0,d.A)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var j=t(2290),N=t.n(j);function p(){let e=(0,l.Vr)("settings"),{theme:s,resolvedTheme:t,setTheme:d}=(0,i.D)(),{locale:j,setLocale:p}=(0,l.x_)(),v=e=>{p(e)},_="system"===s?"system":t,g=e=>"applePill".concat(e?" applePillActive":"");return(0,c.jsxs)("div",{className:"space-y-5 max-w-2xl animateFadeIn",children:[(0,c.jsx)("div",{className:"pageHero",children:(0,c.jsxs)("div",{children:[(0,c.jsx)("h1",{className:"pageTitle",children:e("title")}),(0,c.jsx)("p",{className:"pageDesc",children:e("description")})]})}),(0,c.jsx)(a.A,{title:(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)("div",{className:"statItemIcon ".concat(N().langIcon),children:(0,c.jsx)(x.A,{size:16})}),(0,c.jsxs)("div",{children:[(0,c.jsx)("div",{className:"text-sm font-semibold ".concat(N().sectionTitle),children:e("language")}),(0,c.jsx)("div",{className:"text-xs ".concat(N().sectionDesc),children:e("languageDesc")})]})]}),children:(0,c.jsxs)("div",{className:"flex gap-2",children:[(0,c.jsx)("button",{className:g("zh-CN"===j),onClick:()=>v("zh-CN"),children:"中文"}),(0,c.jsx)("button",{className:g("en-US"===j),onClick:()=>v("en-US"),children:"English"})]})}),(0,c.jsx)(a.A,{title:(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)("div",{className:"statItemIcon",children:(0,c.jsx)(r,{size:16})}),(0,c.jsxs)("div",{children:[(0,c.jsx)("div",{className:"text-sm font-semibold ".concat(N().sectionTitle),children:e("theme")}),(0,c.jsx)("div",{className:"text-xs ".concat(N().sectionDesc),children:e("themeDesc")})]})]}),children:(0,c.jsxs)("div",{className:"flex gap-2",children:[(0,c.jsxs)("button",{className:g("light"===_),onClick:()=>d("light"),children:[(0,c.jsx)(m.A,{size:14}),e("light")]}),(0,c.jsxs)("button",{className:g("dark"===_),onClick:()=>d("dark"),children:[(0,c.jsx)(o.A,{size:14}),e("dark")]}),(0,c.jsxs)("button",{className:g("system"===_),onClick:()=>d("system"),children:[(0,c.jsx)(r,{size:14}),e("system")]})]})}),(0,c.jsx)(a.A,{title:(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)("div",{className:"statItemIcon",children:(0,c.jsx)(h,{size:16})}),(0,c.jsx)("span",{className:"text-sm font-semibold ".concat(N().sectionTitle),children:e("about")})]}),children:(0,c.jsxs)("div",{className:"space-y-2 text-sm",children:[(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)("span",{className:N().metaText,children:e("version")}),(0,c.jsx)(n.A,{color:"blue",children:"v0.1.0"})]}),(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)("span",{className:N().metaText,children:e("port")}),(0,c.jsx)("span",{className:N().metaValue,children:"17321"})]})]})})]})}},8451:(e,s,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/settings",function(){return t(4521)}])}},e=>{e.O(0,[260,636,593,792],()=>e(e.s=8451)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--colorBg:#f5f5f7;--colorBgElevated:#ffffff;--colorBgSecondary:rgba(255,255,255,0.68);--colorBgContainer:rgba(255,255,255,0.78);--colorFillAlter:rgba(242,242,247,0.76);--colorText:#1d1d1f;--colorTextSecondary:#6e6e73;--colorTextTertiary:#a1a1a6;--colorBrand:#0071e3;--colorBrandHover:#0077ed;--colorBrand2:#5856d6;--colorAccent:#30b0c7;--colorDanger:#ff3b30;--colorOk:#34c759;--colorWarn:#ff9500;--colorWarning:var(--colorWarn);--colorPrimary:var(--colorBrand);--glassBg:rgba(255,255,255,0.74);--glassBlur:saturate(180%) blur(28px);--borderColor:rgba(0,0,0,0.07);--borderColorStrong:rgba(0,0,0,0.13);--colorBorderSecondary:var(--borderColor);--shadowSoft:0 8px 24px rgba(0,0,0,0.045);--shadowCard:0 14px 36px rgba(0,0,0,0.075);--shadowButton:0 10px 24px rgba(0,113,227,0.22);--shadowFocus:0 0 0 4px rgba(0,113,227,0.14);--radiusSm:10px;--radiusMd:14px;--radiusLg:22px;--radiusXl:28px;--radiusPill:999px;--sidebarWidth:248px;--fontSans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",sans-serif}.dark{--colorBg:#000000;--colorBgElevated:#1c1c1e;--colorBgSecondary:rgba(28,28,30,0.72);--colorBgContainer:rgba(28,28,30,0.78);--colorFillAlter:rgba(44,44,46,0.64);--colorText:#f5f5f7;--colorTextSecondary:#98989d;--colorTextTertiary:#6e6e73;--colorBrand:#0a84ff;--colorBrandHover:#409cff;--colorBrand2:#5e5ce6;--colorAccent:#64d2ff;--colorDanger:#ff453a;--colorOk:#30d158;--colorWarn:#ff9f0a;--colorWarning:var(--colorWarn);--colorPrimary:var(--colorBrand);--glassBg:rgba(28,28,30,0.72);--borderColor:rgba(255,255,255,0.1);--borderColorStrong:rgba(255,255,255,0.18);--colorBorderSecondary:var(--borderColor);--shadowSoft:0 10px 28px rgba(0,0,0,0.3);--shadowCard:0 18px 48px rgba(0,0,0,0.44);--shadowButton:0 10px 24px rgba(10,132,255,0.26);--shadowFocus:0 0 0 4px rgba(10,132,255,0.18)}*,:after,:before{box-sizing:border-box}html{font-family:var(--fontSans);background:var(--colorBg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.appShellPlaceholder{min-height:100vh;background:var(--colorBg)}body{margin:0;min-height:100vh;font-family:var(--fontSans);color:var(--colorText);background:radial-gradient(circle at 16% -8%,rgba(0,113,227,.1),transparent 26rem),radial-gradient(circle at 86% 2%,rgba(88,86,214,.07),transparent 28rem),linear-gradient(180deg,#fbfbfd 0,var(--colorBg) 78%)}.dark body{background:radial-gradient(circle at 16% -8%,rgba(10,132,255,.16),transparent 26rem),radial-gradient(circle at 86% 2%,rgba(94,92,230,.1),transparent 28rem),linear-gradient(180deg,#101014 0,var(--colorBg) 78%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.ant-btn:focus-visible,.ant-input:focus-visible,.ant-select-focused .ant-select-selector,[role=button]:focus-visible,a:focus-visible,button:focus-visible{outline:none!important;box-shadow:var(--shadowFocus)!important}::selection{color:#ffffff;background:var(--colorBrand)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.18);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.28)}.dark ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2)}.dark ::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animateFadeIn{animation:fadeIn .34s cubic-bezier(.16,1,.3,1)}.flex{display:flex}.inline-block{display:inline-block}.block{display:block}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:2px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.space-y-2>*+*{margin-top:8px}.space-y-5>*+*{margin-top:20px}.space-y-6>*+*{margin-top:22px}.mt-2{margin-top:8px}.mb-4{margin-bottom:16px}.py-16{padding-top:64px;padding-bottom:64px}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-2xl{max-width:672px}.max-w-\[400px\]{max-width:400px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.cursor-pointer{cursor:pointer}.text-xs{font-size:12px;line-height:1.4}.text-sm{font-size:14px;line-height:1.45}.font-semibold{font-weight:650}.text-\[var\(--colorOk\)\]{color:var(--colorOk)}.text-\[var\(--colorDanger\)\]{color:var(--colorDanger)}@media (max-width:1024px){:root{--sidebarWidth:210px}}@media (max-width:860px){:root{--sidebarWidth:76px}.sidebarLogo{padding:16px;justify-content:center}.sidebarFooter,.sidebarItem span:not(.sidebarChevron),.sidebarLogoSub,.sidebarLogoTitle{display:none}.sidebarItem{justify-content:center;padding:11px}.sidebarSubmenu{padding-left:0}.sidebarSubItem{padding-left:11px}.mainInner{padding:20px}.topbar{padding:10px 16px;margin:10px 12px 0}}@media (max-width:640px){.sidebar{left:6px;top:6px;bottom:6px}.mainContent{margin-left:76px}.mainInner{padding:12px}.topbar{margin:8px 8px 0;padding:8px 12px;border-radius:18px}}.sidebar{position:fixed;left:14px;top:14px;bottom:14px;width:calc(var(--sidebarWidth) - 20px);display:flex;flex-direction:column;z-index:20;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62));border:1px solid rgba(0,0,0,.065);border-radius:24px;backdrop-filter:var(--glassBlur);-webkit-backdrop-filter:var(--glassBlur);box-shadow:0 18px 44px rgba(0,0,0,.06),inset 0 1px 0 rgba(255,255,255,.72);overflow:hidden;transition:width .24s cubic-bezier(.16,1,.3,1),transform .24s cubic-bezier(.16,1,.3,1)}.dark .sidebar{box-shadow:var(--shadowCard),inset 0 1px 0 rgba(246,241,232,.08)}.sidebarCollapsedSelf{width:66px}.sidebarLogo{display:flex;align-items:center;min-height:58px;padding:16px;border-bottom:1px solid rgba(0,0,0,.055)}.sidebarLogoTitle{font-size:16px;font-weight:720;letter-spacing:-.04em;line-height:1.1}.logoGradient{color:var(--colorText);background:none;-webkit-text-fill-color:currentColor}.sidebarLogoSub{margin-top:6px;font-size:11px;line-height:1.35;letter-spacing:.08em;text-transform:uppercase;color:var(--colorTextTertiary)}.sidebarCollapseBtn{margin:12px 12px 4px;height:36px;border-radius:var(--radiusMd);border:1px solid var(--borderColor);background:var(--colorBgContainer);color:var(--colorTextSecondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.sidebarCollapseBtn:hover{color:var(--colorText);border-color:var(--borderColorStrong);background:var(--colorBgElevated);box-shadow:0 10px 22px rgba(45,38,28,.08);transform:translateY(-1px)}.sidebarCollapsedSelf .sidebarLogo{justify-content:center;padding:16px 8px}.sidebarCollapsedSelf .sidebarChevron,.sidebarCollapsedSelf .sidebarFooter,.sidebarCollapsedSelf .sidebarItem span:not(.sidebarChevron),.sidebarCollapsedSelf .sidebarLogoSub,.sidebarCollapsedSelf .sidebarLogoTitle{display:none}.sidebarCollapsedSelf .sidebarItem{justify-content:center;padding:12px}.sidebarCollapsedSelf .sidebarCollapseBtn{margin:10px}.sidebarNav{flex:1;padding:12px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:3px}.sidebarItem{position:relative;display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:13px;font-size:13px;font-weight:560;color:var(--colorTextSecondary);transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;cursor:pointer}.sidebarItem svg{flex:0 0 auto;stroke-width:2}.sidebarItem:hover{background:rgba(39,84,138,.07);color:var(--colorText);transform:translateX(2px)}.dark .sidebarItem:hover{background:rgba(154,182,216,.1)}.sidebarItemActive,.sidebarItemActive:hover{background:rgba(0,113,227,.11);color:var(--colorBrand);box-shadow:inset 0 0 0 1px rgba(0,113,227,.08);transform:none}.dark .sidebarItemActive,.dark .sidebarItemActive:hover{background:rgba(10,132,255,.16);color:var(--colorBrandHover);box-shadow:inset 0 0 0 1px rgba(10,132,255,.16)}.sidebarFooter{padding:16px 20px;border-top:1px solid var(--borderColor);font-size:11px;color:var(--colorTextSecondary)}.sidebarParent{justify-content:flex-start}.sidebarChevron{margin-left:auto;display:flex;align-items:center;opacity:.5}.sidebarSubmenu{padding-left:16px;display:flex;flex-direction:column;gap:4px;animation:slideDown .2s ease}.sidebarSubItem{padding-left:16px;font-size:13px}.topbar{position:sticky;top:14px;z-index:10;display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:14px 22px 0;padding:7px 8px;background:rgba(255,255,255,.66);border:1px solid rgba(0,0,0,.06);border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.045),inset 0 1px 0 rgba(255,255,255,.62);backdrop-filter:var(--glassBlur);-webkit-backdrop-filter:var(--glassBlur)}.dark .topbar{box-shadow:var(--shadowSoft),inset 0 1px 0 rgba(246,241,232,.08)}.topbarBtn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 11px;border-radius:12px;border:1px solid var(--borderColor);background:rgba(255,255,255,.58);color:var(--colorTextSecondary);font-size:12px;font-weight:620;cursor:pointer;transition:transform .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;outline:none}.topbarBtn:hover{border-color:var(--borderColorStrong);background:rgba(255,255,255,.86);color:var(--colorText);transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.055)}.mainContent{margin-left:var(--sidebarWidth);flex:1;display:flex;flex-direction:column;min-height:100vh;transition:margin-left .24s cubic-bezier(.16,1,.3,1)}.sidebarCollapsed .mainContent{margin-left:92px}.mainInner{flex:1;padding:clamp(24px,2.6vw,44px) clamp(18px,2.8vw,48px) 52px;width:100%;max-width:1360px;overflow-x:hidden}.pageHeaderRow,.pageHero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:2px}.actionBar,.pageActions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.metricGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.twoColumnGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.surfaceGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-items:stretch}.subtleText{line-height:1.6}.codePreview,.subtleText{color:var(--colorTextSecondary);font-size:12px}.codePreview{margin-top:auto;padding:12px;border:1px solid var(--borderColor);border-radius:14px;background:var(--colorFillAlter);font-family:SF Mono,Monaco,Consolas,monospace;line-height:1.65;max-height:112px;overflow:hidden;white-space:pre-wrap}.actionInline{gap:4px}.actionInline,.cardTitleInline{display:inline-flex;align-items:center}.cardTitleInline{gap:7px;min-width:0}.cardTitleText{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.centerMetric{display:grid;place-items:center;gap:12px;min-height:174px;text-align:center}.modalMeta,.mutedPath{color:var(--colorTextSecondary);word-break:break-all;font-size:12px;line-height:1.65}.modalMeta{margin-bottom:12px}.monoEditor textarea,textarea.monoEditor{font-family:SF Mono,Monaco,Consolas,monospace!important;font-size:13px!important;line-height:1.65!important}.promptCardBody{display:flex;flex-direction:column;gap:10px;min-height:184px;height:100%}.breakText{word-break:break-all}.tableHint{margin-bottom:10px}.searchControl{width:260px}.fileToolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;border:1px solid rgba(0,0,0,.06);border-radius:16px;background:rgba(255,255,255,.56);backdrop-filter:var(--glassBlur);-webkit-backdrop-filter:var(--glassBlur)}.dark .fileToolbar{background:rgba(28,28,30,.58)}.accentIcon{font-size:24px;color:var(--colorAccent)}.okIcon{color:var(--colorOk)}.dangerIcon{color:var(--colorDanger)}.kpiGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpiCard .ant-card-body{padding:20px!important}.metricPanel{min-height:220px}.insightRow{display:flex;align-items:center;gap:12px;min-height:86px}.insightIcon{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:16px;background:rgba(0,113,227,.08);color:var(--colorBrand)}.dark .insightIcon{background:rgba(10,132,255,.14)}.insightTitle{color:var(--colorText);font-weight:680;letter-spacing:-.018em}.insightMeta{margin-top:3px;font-size:12px;line-height:1.55}.applePill,.insightMeta{color:var(--colorTextSecondary)}.applePill{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:var(--radiusPill);font-size:13px;font-weight:700;border:1px solid var(--borderColor);cursor:pointer;transition:transform .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;background:var(--colorBgContainer)}.applePill:hover{border-color:var(--borderColorStrong);background:var(--colorBgElevated);color:var(--colorText);transform:translateY(-1px)}.applePillActive,.applePillActive:hover,.dark .applePillActive,.dark .applePillActive:hover{background:var(--colorText);color:var(--colorBgElevated);border-color:transparent;box-shadow:0 12px 26px rgba(23,23,23,.12)}.dark .applePillActive,.dark .applePillActive:hover{color:var(--colorBg)}.statItem{gap:12px;padding:4px}.statItem,.statItemIcon{display:flex;align-items:center}.statItemIcon{width:38px;height:38px;border-radius:13px;flex-shrink:0;justify-content:center;background:rgba(39,84,138,.08);color:var(--colorBrand);box-shadow:inset 0 0 0 1px rgba(39,84,138,.08)}.dark .statItemIcon{background:rgba(154,182,216,.1);box-shadow:inset 0 0 0 1px rgba(154,182,216,.08)}.statItemValue{font-size:23px;font-weight:720;line-height:1.05;letter-spacing:-.035em;color:var(--colorText)}.statItemLabel{font-size:12px;color:var(--colorTextSecondary);margin-top:2px}.pageTitle{font-size:clamp(28px,2.5vw,38px);font-weight:760;letter-spacing:-.055em;color:var(--colorText);margin:0}.pageDesc{max-width:780px;margin-top:9px;font-size:14px;line-height:1.75;color:var(--colorTextSecondary)}.ant-card{background:linear-gradient(180deg,rgba(255,255,255,.84),var(--colorBgSecondary))!important;border:1px solid var(--borderColor)!important;border-radius:20px!important;box-shadow:var(--shadowSoft),inset 0 1px 0 rgba(255,255,255,.48)!important;backdrop-filter:var(--glassBlur);-webkit-backdrop-filter:var(--glassBlur);overflow:hidden;transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s ease,border-color .16s ease,background .16s ease}.dark .ant-card{box-shadow:var(--shadowSoft),inset 0 1px 0 rgba(246,241,232,.07)!important}.ant-card:hover{border-color:var(--borderColorStrong)!important;box-shadow:var(--shadowCard),inset 0 1px 0 rgba(255,255,255,.58)!important;transform:translateY(-1px)}.dark .ant-card:hover{box-shadow:var(--shadowCard),inset 0 1px 0 rgba(246,241,232,.09)!important}.ant-card .ant-card-head{min-height:46px!important;padding-inline:16px!important;border-bottom-color:rgba(0,0,0,.052)!important;font-weight:660!important}.dark .ant-card .ant-card-head{border-bottom-color:rgba(255,255,255,.09)!important}.ant-card .ant-card-head-title{letter-spacing:-.018em}.ant-card .ant-card-body{padding:16px!important;line-height:1.55}.ant-drawer-content,.ant-modal-content{border:1px solid var(--borderColor)!important;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-radius:var(--radiusLg)!important;box-shadow:var(--shadowCard)!important}.ant-table-wrapper .ant-table{border-radius:18px;overflow:hidden;background:transparent!important}.ant-table-thead>tr>th{padding-block:10px!important;font-size:11px!important;font-weight:680!important;text-transform:uppercase;letter-spacing:.052em}.ant-table-cell{padding-block:11px!important;font-size:13px}.ant-table-tbody>tr>td{transition:background .16s ease!important}.ant-table-tbody>tr:hover>td{background:rgba(39,84,138,.045)!important}.dark .ant-table-tbody>tr:hover>td{background:rgba(154,182,216,.06)!important}.ant-btn{font-weight:700!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease!important}.ant-btn:hover:not(:disabled){transform:translateY(-1px)}.ant-btn:active:not(:disabled){transform:translateY(0) scale(.99)}.ant-btn-primary{background:linear-gradient(180deg,var(--colorBrandHover),var(--colorBrand))!important;border-color:transparent!important;box-shadow:var(--shadowButton)!important}.ant-btn-primary,.dark .ant-btn-primary{color:#ffffff!important}.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-picker,.ant-select-selector{border-color:var(--borderColor)!important;background:rgba(255,255,255,.82)!important;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease!important}.dark .ant-input,.dark .ant-input-affix-wrapper,.dark .ant-input-number,.dark .ant-picker,.dark .ant-select-selector{background:rgba(44,44,46,.72)!important}.ant-input-affix-wrapper:hover,.ant-input-number:hover,.ant-input:hover,.ant-picker:hover,.ant-select-selector:hover{border-color:var(--borderColorStrong)!important}.ant-segmented{background:var(--colorFillAlter)!important;padding:4px!important}.ant-segmented-item-selected{background:var(--colorBgElevated)!important;box-shadow:var(--shadowSoft)!important}.ant-progress-circle .ant-progress-text{font-weight:780;color:var(--colorText)!important}.ant-statistic-title{color:var(--colorTextSecondary)!important;font-size:12px!important;font-weight:650!important}.ant-statistic-content{color:var(--colorText)!important;font-weight:780!important;letter-spacing:-.035em}.ant-spin-dot-item{background-color:var(--colorBrand)!important}.ant-tag{margin-inline-end:4px!important;border-radius:var(--radiusPill)!important;font-size:11px!important;font-weight:620!important;line-height:19px!important;padding-inline:7px!important;border-color:var(--borderColor)!important}.ant-alert,.ant-message-notice-content,.ant-notification-notice{border-radius:var(--radiusMd)!important;box-shadow:var(--shadowSoft)!important}@media (max-width:960px){.pageHeaderRow,.pageHero{flex-direction:column;align-items:stretch}.actionBar,.pageActions{justify-content:flex-start}.kpiGrid,.metricGrid,.twoColumnGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.kpiGrid,.metricGrid,.surfaceGrid,.twoColumnGrid{grid-template-columns:1fr}.pageTitle{font-size:28px}.surfaceGrid{gap:14px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.style_langIcon__TP4OY{background:color-mix(in srgb,var(--colorBrand2) 13%,transparent);color:var(--colorBrand2)}.style_sectionTitle__kFQM6{color:var(--colorText);font-weight:750;letter-spacing:-.02em}.style_metaText__1_eoU,.style_sectionDesc__opDGs{color:var(--colorTextSecondary)}.style_metaValue__uxkOj{font-weight:700;color:var(--colorText)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.style_featureLabel__XFSTX{color:var(--colorTextSecondary)}.style_featureValue__I_wMP{color:var(--colorText);font-weight:680}.style_filterInput__4_Elu{width:260px}.style_filterSelect__vUBJ9{width:140px}.style_statusCardWrap__DrPY1{display:flex;justify-content:flex-start}.style_statusCard__H7Mee{width:min(100%,560px);overflow:hidden}.style_statusCard__H7Mee .ant-card-head{min-height:36px!important;padding-inline:12px!important}.style_statusCard__H7Mee .ant-card-body{padding:8px!important}.style_statusExtra__YklEh{color:var(--colorTextTertiary);font-size:10px;font-weight:500}.style_statusEmpty__8LWzH{color:var(--colorTextSecondary);padding:6px 2px;font-size:11px;line-height:1.45}.style_statusSummary__7KavF{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:5px}.style_statusSummary__7KavF button{display:flex;align-items:baseline;justify-content:center;gap:3px;min-width:0;height:24px;border:1px solid rgba(0,0,0,.055);border-radius:8px;background:hsla(0,0%,100%,.46);color:var(--colorTextSecondary);font-size:10px;white-space:nowrap;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.style_statusSummaryActive__GpgjO,.style_statusSummary__7KavF button:hover{border-color:rgba(0,113,227,.18)!important;background:rgba(0,113,227,.08)!important;color:var(--colorBrand)!important}.style_statusSummary__7KavF b{color:currentColor;font-size:12px;font-weight:660}.style_statusList__FpNgC{display:grid;gap:5px}.style_statusItem__uzO80{position:relative;border:1px solid rgba(0,0,0,.045);border-radius:9px;padding:5px 7px 5px 9px;background:hsla(0,0%,100%,.46);box-shadow:none;transition:transform .16s cubic-bezier(.16,1,.3,1),border-color .16s ease,background .16s ease}.style_statusItem__uzO80:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2px;border-radius:999px;background:var(--colorPrimary)}.style_statusItem__uzO80:hover{border-color:rgba(0,113,227,.16);background:hsla(0,0%,100%,.78);transform:translateY(-1px)}.dark .style_statusItem__uzO80,.dark .style_statusSummary__7KavF button{border-color:hsla(0,0%,100%,.08);background:rgba(44,44,46,.52)}.dark .style_statusItem__uzO80:hover{border-color:rgba(10,132,255,.24);background:rgba(44,44,46,.72)}.style_statusHeader__o9q_b{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}.style_statusMain__tl2rq{display:flex;align-items:center;gap:5px;min-width:0}.style_statusHeader__o9q_b strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:640;letter-spacing:-.006em}.style_statusDesc__XiWFa{margin-top:2px;color:var(--colorTextSecondary);font-size:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.style_statusMetaRow__6V4k_{display:flex;align-items:center;gap:5px;min-width:0;margin-top:2px}.style_statusPath__Udxvv{min-width:0;flex:1;color:var(--colorTextTertiary);font-size:9px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.style_statusMeta__XukHt{display:flex;flex:0 0 auto;gap:3px;color:var(--colorTextSecondary);font-size:9px;white-space:nowrap}.style_statusMeta__XukHt span{display:inline-flex;align-items:center;gap:2px;border-radius:999px;color:var(--colorTextSecondary)}.style_statusMeta__XukHt b{color:var(--colorText);font-weight:650}.style_searchResultList__cVKZg{display:grid;gap:10px}.style_searchResultItem__boj6D{border:1px solid var(--colorBorderSecondary);border-radius:16px;padding:14px;background:linear-gradient(180deg,rgba(255,255,255,.78),var(--colorFillAlter));box-shadow:var(--shadowSoft);transition:transform .16s cubic-bezier(.16,1,.3,1),border-color .16s ease,box-shadow .16s ease}.dark .style_searchResultItem__boj6D{background:linear-gradient(180deg,rgba(44,44,46,.72),var(--colorFillAlter))}.style_searchResultItem__boj6D:hover{border-color:var(--borderColorStrong);box-shadow:var(--shadowCard);transform:translateY(-1px)}.style_searchResultHeader__meVdJ{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.style_searchContent__XbUVk{margin:12px 0!important;white-space:pre-wrap;line-height:1.72}.style_pdfPreviewStrip__94_eG{display:flex;gap:14px;overflow-x:auto;padding:10px 0}.style_pdfPreviewStrip__94_eG img{width:220px;max-height:320px;object-fit:contain;border:1px solid var(--colorBorderSecondary);border-radius:14px;background:#fff;box-shadow:var(--shadowSoft)}.style_drawingPreview__lkk_L{min-height:132px;margin-top:14px;padding:18px;border:1px dashed rgba(0,113,227,.28);border-radius:18px;background:linear-gradient(135deg,rgba(0,113,227,.08),rgba(48,176,199,.07))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.style_cardMeta__6KOa3{color:var(--colorTextSecondary);font-size:12px;line-height:1.6}.style_cardName__WcLAf{font-weight:680;color:var(--colorText);text-transform:capitalize;letter-spacing:-.026em;font-size:16px;line-height:1.2}.style_cardAction__XUfPD{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.style_tierDesc__wOd6p{color:var(--colorTextSecondary);font-size:12px;line-height:1.7;display:block;min-height:42px;margin-bottom:14px}.style_modelTags__nmMVj{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
|
package/README.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# @customize-agent/server
|
|
2
|
+
|
|
3
|
+
Customize Agent Web 管理控制台,基于 Next.js。该包随 CLI 一起安装,CLI 启动时会自动启动它并等待 `/api/health` 就绪。
|
|
4
|
+
|
|
5
|
+
## 定位
|
|
6
|
+
|
|
7
|
+
`@customize-agent/server` 负责提供:
|
|
8
|
+
|
|
9
|
+
- 知识库文件上传、搜索、管理和统计页面
|
|
10
|
+
- Provider 与模型配置页面
|
|
11
|
+
- Prompt 管理页面
|
|
12
|
+
- 短期/长期上下文管理页面
|
|
13
|
+
- 系统统计与健康检查 API
|
|
14
|
+
|
|
15
|
+
CLI 主包 `customize-agent` 通过 npm 依赖安装本包,并使用 `next start` 启动已构建的 `.next` 产物。
|
|
16
|
+
|
|
17
|
+
## 开发命令
|
|
18
|
+
|
|
19
|
+
在仓库根目录运行:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pnpm --filter @customize-agent/server dev
|
|
23
|
+
pnpm --filter @customize-agent/server build
|
|
24
|
+
pnpm --filter @customize-agent/server start
|
|
25
|
+
pnpm --filter @customize-agent/server lint
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
默认端口:`17321`。
|
|
29
|
+
|
|
30
|
+
## CLI 自动启动机制
|
|
31
|
+
|
|
32
|
+
CLI 启动时会:
|
|
33
|
+
|
|
34
|
+
1. 通过 `require.resolve('@customize-agent/server/package.json')` 定位本包。
|
|
35
|
+
2. 通过 server 包路径解析 `next/dist/bin/next`。
|
|
36
|
+
3. 执行 `node <next-bin> start -p <port> -H 127.0.0.1`。
|
|
37
|
+
4. 轮询 `GET /api/health`,成功后输出 Web 控制台地址。
|
|
38
|
+
5. 若端口被占用且未显式指定端口,会自动尝试后续端口。
|
|
39
|
+
|
|
40
|
+
## 页面路由
|
|
41
|
+
|
|
42
|
+
| 页面 | 路径 |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| 首页 | `/` |
|
|
45
|
+
| 概览 | `/overview` |
|
|
46
|
+
| 知识库总览 | `/knowledge` |
|
|
47
|
+
| 文件列表 | `/knowledge/files` |
|
|
48
|
+
| 文件详情 | `/knowledge/file-detail` |
|
|
49
|
+
| 知识库管理 | `/knowledge/manage` |
|
|
50
|
+
| 知识库搜索 | `/knowledge/search` |
|
|
51
|
+
| 模型配置 | `/models` |
|
|
52
|
+
| Prompt 管理 | `/prompt` |
|
|
53
|
+
| 设置 | `/settings` |
|
|
54
|
+
| 短期上下文 | `/context/short-term` |
|
|
55
|
+
| 长期上下文 | `/context/long-term` |
|
|
56
|
+
|
|
57
|
+
## API 路由
|
|
58
|
+
|
|
59
|
+
| API | 说明 |
|
|
60
|
+
| --- | --- |
|
|
61
|
+
| `GET /api/health` | 健康检查,返回 uptime、buildId、pid |
|
|
62
|
+
| `GET /api/kb/stats` | 知识库统计 |
|
|
63
|
+
| `GET /api/kb/files` | 文件列表 |
|
|
64
|
+
| `DELETE /api/kb/files` | 删除知识库文件 |
|
|
65
|
+
| `GET /api/kb/files/detail` | 文件详情、chunks、标签、关系 |
|
|
66
|
+
| `POST /api/kb/files/reindex` | 单文件重建索引 |
|
|
67
|
+
| `POST /api/kb/files/open` | 打开文件或目录 |
|
|
68
|
+
| `GET /api/kb/files/preview-pdf-page` | PDF 页面预览 |
|
|
69
|
+
| `POST /api/kb/upload` | 上传文件并入库 |
|
|
70
|
+
| `GET /api/kb/upload/progress` | 查询上传进度 |
|
|
71
|
+
| `GET /api/kb/search` | 知识库搜索 |
|
|
72
|
+
| `POST /api/kb/reindex` | 全量重建索引 |
|
|
73
|
+
| `GET /api/kb/categories` | 分类统计 |
|
|
74
|
+
| `GET /api/kb/tags` | 标签列表 |
|
|
75
|
+
| `GET /api/kb/ignore` | 忽略规则列表 |
|
|
76
|
+
| `POST /api/kb/ignore` | 追加忽略规则 |
|
|
77
|
+
| `GET /api/kb/duplicates` | 重复/关系数据 |
|
|
78
|
+
| `GET /api/kb/features` | 知识库能力信息 |
|
|
79
|
+
| `GET /api/kb/operations` | 知识库操作记录 |
|
|
80
|
+
| `GET /api/config/providers` | Provider 列表 |
|
|
81
|
+
| `POST /api/config/providers` | 保存 Provider |
|
|
82
|
+
| `GET /api/config/providers/:provider` | Provider 详情 |
|
|
83
|
+
| `DELETE /api/config/providers/:provider` | 删除 Provider |
|
|
84
|
+
| `GET /api/config/models` | 模型配置 |
|
|
85
|
+
| `PUT /api/config/models` | 保存模型配置 |
|
|
86
|
+
| `POST /api/config/healthCheck` | Provider 连通性检查 |
|
|
87
|
+
| `GET /api/context` | 上下文列表或统计 |
|
|
88
|
+
| `POST /api/context` | 压缩/清理上下文 |
|
|
89
|
+
| `PUT /api/context` | 更新上下文 |
|
|
90
|
+
| `DELETE /api/context` | 删除上下文 |
|
|
91
|
+
| `GET /api/system/stats` | 系统统计 |
|
|
92
|
+
| `GET/POST /api/prompt` | Prompt 管理 |
|
|
93
|
+
|
|
94
|
+
## 环境变量
|
|
95
|
+
|
|
96
|
+
| 变量 | 说明 |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| `CUSTOMIZE_PROJECT_ROOT` | 当前控制台管理的用户项目根目录 |
|
|
99
|
+
| `INIT_CWD` | 未显式设置项目根时的候选目录 |
|
|
100
|
+
| `CUSTOMIZE_AGENT_HOME` | 用户级数据目录,默认 `~/.customize-agent` |
|
|
101
|
+
| `CUSTOMIZE_DASHBOARD_PORT` | CLI 启动控制台时使用的端口 |
|
|
102
|
+
| `CUSTOMIZE_DASHBOARD_START_TIMEOUT_MS` | CLI 等待控制台启动的超时时间 |
|
|
103
|
+
| `CUSTOMIZE_DASHBOARD_BUILD_ID` | 覆盖 `/api/health` 返回的 buildId |
|
|
104
|
+
| `CUSTOMIZE_AGENT_DISABLE_OCR` | 禁用 OCR |
|
|
105
|
+
| `KB_PDF_OCR_PAGE_LIMIT` | PDF OCR 页数限制 |
|
|
106
|
+
| `KB_RETRIEVAL_*` | 检索权重、召回、rerank 相关配置 |
|
|
107
|
+
| `CUSTOMIZE_AGENT_{PROVIDER}_API_KEY` | Provider API Key |
|
|
108
|
+
|
|
109
|
+
## 数据与项目根解析
|
|
110
|
+
|
|
111
|
+
Web API 需要知道当前用户项目根目录。解析优先级:
|
|
112
|
+
|
|
113
|
+
1. 请求参数中的 `projectRoot`。
|
|
114
|
+
2. `CUSTOMIZE_PROJECT_ROOT`。
|
|
115
|
+
3. `INIT_CWD`。
|
|
116
|
+
4. `~/.customize-agent/projects/registry.db` 中最近打开的项目。
|
|
117
|
+
|
|
118
|
+
内部目录如 `~/.customize-agent`、`apps/server`、`apps/cli` 会被过滤,避免 Web 控制台错误管理自身包目录。
|
|
119
|
+
|
|
120
|
+
## 发布注意事项
|
|
121
|
+
|
|
122
|
+
本包发布到 npm 时需要包含生产启动所需的 Next.js 构建产物:
|
|
123
|
+
|
|
124
|
+
- `.next/BUILD_ID`
|
|
125
|
+
- `.next/server`
|
|
126
|
+
- `.next/static`
|
|
127
|
+
- `.next/required-server-files.json`
|
|
128
|
+
- Next manifest 文件
|
|
129
|
+
- `next.config.ts`
|
|
130
|
+
- `postcss.config.mjs`
|
|
131
|
+
- `package.json`
|
|
132
|
+
|
|
133
|
+
构建脚本会删除 `.next/cache`,避免发布缓存文件。
|
|
134
|
+
|
|
135
|
+
发布或打包前建议执行:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
pnpm --filter @customize-agent/server build
|
|
139
|
+
npm pack --dry-run
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## 常见问题
|
|
143
|
+
|
|
144
|
+
### Web 控制台未启动
|
|
145
|
+
|
|
146
|
+
查看 CLI 输出中的 dashboard log 路径。常见原因包括端口占用、依赖未安装完整、Next 构建产物缺失。
|
|
147
|
+
|
|
148
|
+
可以显式指定端口:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
CUSTOMIZE_DASHBOARD_PORT=17322 customize
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Windows PowerShell:
|
|
155
|
+
|
|
156
|
+
```powershell
|
|
157
|
+
$env:CUSTOMIZE_DASHBOARD_PORT="17322"; customize
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### API 返回找不到项目
|
|
161
|
+
|
|
162
|
+
显式传入或设置项目根:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
CUSTOMIZE_PROJECT_ROOT=/path/to/project customize
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### OCR 导致启动或上传较慢
|
|
169
|
+
|
|
170
|
+
CI 或无 OCR 需求场景可以禁用:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
CUSTOMIZE_AGENT_DISABLE_OCR=1 customize
|
|
174
|
+
```
|
package/package.json
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@customize-agent/server",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Customize Agent Web 管理控制台",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./package.json": "./package.json"
|
|
8
8
|
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"dev": "next dev -p 17321",
|
|
11
|
-
"build": "next build && node -e \"require('fs').rmSync('.next/cache', { recursive: true, force: true })\"",
|
|
12
|
-
"start": "next start -p 17321",
|
|
13
|
-
"lint": "eslint src/"
|
|
14
|
-
},
|
|
15
9
|
"files": [
|
|
16
10
|
".next/BUILD_ID",
|
|
17
11
|
".next/app-build-manifest.json",
|
|
@@ -26,6 +20,7 @@
|
|
|
26
20
|
".next/react-loadable-manifest.json",
|
|
27
21
|
"public",
|
|
28
22
|
"next.config.ts",
|
|
23
|
+
"postcss.config.mjs",
|
|
29
24
|
"package.json"
|
|
30
25
|
],
|
|
31
26
|
"publishConfig": {
|
|
@@ -34,9 +29,6 @@
|
|
|
34
29
|
"dependencies": {
|
|
35
30
|
"@ant-design/icons": "^6.3.2",
|
|
36
31
|
"@napi-rs/canvas": "^0.1.82",
|
|
37
|
-
"@customize-agent/knowledge": "^2.2.1",
|
|
38
|
-
"@customize-agent/llm": "^2.2.0",
|
|
39
|
-
"@customize-agent/runtime": "^2.2.0",
|
|
40
32
|
"antd": "^6.5.0",
|
|
41
33
|
"better-sqlite3": "^12.10.0",
|
|
42
34
|
"jszip": "^3.10.1",
|
|
@@ -49,7 +41,10 @@
|
|
|
49
41
|
"react": "^19.0.0",
|
|
50
42
|
"react-dom": "^19.0.0",
|
|
51
43
|
"tesseract.js": "^7.0.0",
|
|
52
|
-
"xlsx": "^0.18.5"
|
|
44
|
+
"xlsx": "^0.18.5",
|
|
45
|
+
"@customize-agent/knowledge": "^3.0.0",
|
|
46
|
+
"@customize-agent/llm": "^3.0.0",
|
|
47
|
+
"@customize-agent/runtime": "^3.0.0"
|
|
53
48
|
},
|
|
54
49
|
"devDependencies": {
|
|
55
50
|
"@tailwindcss/postcss": "^4.3.2",
|
|
@@ -61,5 +56,11 @@
|
|
|
61
56
|
"sass": "^1.101.0",
|
|
62
57
|
"tailwindcss": "^4.3.2",
|
|
63
58
|
"typescript": "^6.0.3"
|
|
59
|
+
},
|
|
60
|
+
"scripts": {
|
|
61
|
+
"dev": "next dev -p 17321",
|
|
62
|
+
"build": "next build && node -e \"require('fs').rmSync('.next/cache', { recursive: true, force: true })\"",
|
|
63
|
+
"start": "next start -p 17321",
|
|
64
|
+
"lint": "eslint src/"
|
|
64
65
|
}
|
|
65
|
-
}
|
|
66
|
+
}
|
package/.next/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type": "commonjs"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(e,s,t,c,a,n,d,i,r,k,o,f,u,b,l,g,h){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:u,bitArray:[]},__routerFilterDynamic:{numItems:i,errorRate:1e-4,numBits:i,numHashes:u,bitArray:[]},"/":["static/chunks/pages/index-505bd438c95ec0e8.js"],"/_error":["static/chunks/pages/_error-18decb9cd478883d.js"],"/context/long-term":[e,s,t,c,a,n,d,r,k,b,"static/chunks/pages/context/long-term-8c5fe7c5cb8f3d6d.js"],"/context/short-term":[e,s,t,c,a,n,d,r,k,b,"static/chunks/pages/context/short-term-4b1ba522c259bc7b.js"],"/knowledge":["static/chunks/pages/knowledge-b3ef77e79801287c.js"],"/knowledge/file-detail":[e,s,t,c,a,n,d,l,"static/chunks/517-c6a8c0e680dafa46.js",o,"static/chunks/pages/knowledge/file-detail-37573640ecdd5c11.js"],"/knowledge/files":[e,s,t,c,a,n,d,g,"static/chunks/252-a9d7774c3009dcda.js",o,"static/chunks/pages/knowledge/files-a3104d6d309aefdd.js"],"/knowledge/manage":[e,s,t,a,n,d,h,"static/chunks/891-fde3ad128ccf30dc.js","static/chunks/pages/knowledge/manage-36d4824b96f8150f.js"],"/knowledge/search":[e,s,t,c,a,l,"static/chunks/992-6e67409e97fe9b6b.js",o,"static/chunks/pages/knowledge/search-33f4f2a3dc318802.js"],"/models":[e,s,t,c,n,r,k,"static/css/031cf1db0e9affb3.css","static/chunks/pages/models-4fbcb0182c8a9476.js"],"/overview":[e,s,a,g,h,"static/chunks/pages/overview-d588ba8cc32f615c.js"],"/prompt":[e,s,t,c,r,"static/chunks/pages/prompt-490524ba05078205.js"],"/settings":[e,"static/css/82b6ddff0ef364fe.css","static/chunks/pages/settings-e6a894618727eec3.js"],sortedPages:["/","/_app","/_error","/context/long-term","/context/short-term","/knowledge","/knowledge/file-detail","/knowledge/files","/knowledge/manage","/knowledge/search","/models","/overview","/prompt","/settings"]}}("static/chunks/260-03f19eaee776f7fa.js","static/chunks/544-fba84f8cd64c79ed.js","static/chunks/425-feceb6e39a2b417d.js","static/chunks/576-642eb5cede35ba19.js","static/chunks/227-eb562f29334fcb34.js","static/chunks/740-450a37b8ca6fe1c6.js","static/chunks/584-3a8c7b39c2a3037a.js",0,"static/chunks/492-5245cad2f8d60d8d.js","static/chunks/455-d2aca155a3032ee0.js","static/css/9d4b5a2db56e7aa7.css",1e-4,NaN,"static/chunks/257-c71f52e4adae1e38.js","static/chunks/840-717f0706d50fcb82.js","static/chunks/15-fed70feebb38d5ae.js","static/chunks/958-0f3a960f8ebe421b.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|