@customize-agent/server 4.0.68 → 4.0.70
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 +8 -10
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/chunks/5247.js +125 -0
- package/.next/server/chunks/7899.js +1 -0
- package/.next/server/chunks/8203.js +5 -0
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/assets/generated/preview.js +1 -1
- package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
- package/.next/server/pages/api/assets/generated.js +1 -1
- package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
- package/.next/server/pages/api/config/embedding/healthCheck.js +1 -1
- package/.next/server/pages/api/config/embedding.js +1 -1
- package/.next/server/pages/api/config/healthCheck.js +2 -2
- package/.next/server/pages/api/config/models.js +1 -1
- package/.next/server/pages/api/config/providers/[provider].js +1 -1
- package/.next/server/pages/api/config/providers.js +2 -2
- package/.next/server/pages/api/context.js +5 -19
- package/.next/server/pages/api/context.js.nft.json +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/drafts.js +1 -1
- package/.next/server/pages/api/documents/export.js +3 -3
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate.js +2 -2
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id].js +1 -1
- package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated.js +1 -1
- package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
- package/.next/server/pages/api/documents/refine.js +2 -2
- package/.next/server/pages/api/documents/roles.js +1 -1
- package/.next/server/pages/api/documents/roles.js.nft.json +1 -1
- package/.next/server/pages/api/documents/templates.js +1 -1
- package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
- package/.next/server/pages/api/jobs/[id].js +3 -3
- package/.next/server/pages/api/jobs.js +3 -3
- package/.next/server/pages/api/kb/categories.js +2 -2
- package/.next/server/pages/api/kb/duplicates.js +2 -2
- package/.next/server/pages/api/kb/features.js +1 -1
- package/.next/server/pages/api/kb/files/detail.js +2 -2
- package/.next/server/pages/api/kb/files/open.js +2 -2
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +2 -2
- 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/search.js +3 -3
- package/.next/server/pages/api/kb/files.js +4 -4
- package/.next/server/pages/api/kb/ignore.js +2 -2
- package/.next/server/pages/api/kb/operations.js +3 -3
- 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 +2 -2
- package/.next/server/pages/api/kb/stats.js +2 -2
- package/.next/server/pages/api/kb/tags.js +2 -2
- package/.next/server/pages/api/kb/upload/progress.js +2 -2
- package/.next/server/pages/api/kb/upload.js +1 -1
- package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
- package/.next/server/pages/api/prompt/chat.js +2 -2
- package/.next/server/pages/api/system/logs.js +2 -2
- package/.next/server/pages/asset-library.html +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/document-roles.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge/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/system/logs.html +1 -1
- package/.next/server/pages-manifest.json +28 -28
- package/.next/static/0NId-lDXjlrJ2oZ70HQzh/_buildManifest.js +1 -0
- package/.next/static/chunks/63-dd8eeb8edd766bae.js +4 -0
- package/.next/static/chunks/642-708b928fbafc6c20.js +8 -0
- package/.next/static/chunks/pages/{_app-d1257da7895866ad.js → _app-dd841161c7d0b39e.js} +1 -1
- package/.next/static/chunks/pages/asset-library-91bd2baa09727e0a.js +1 -0
- package/.next/static/chunks/pages/documents-84fe27cb0fbbb040.js +1 -0
- package/.next/static/chunks/pages/{guide-295174493709ecbb.js → guide-61bea94f27710467.js} +1 -1
- package/package.json +3 -3
- package/.next/server/chunks/432.js +0 -5
- package/.next/server/chunks/6697.js +0 -119
- package/.next/static/chunks/20-86ac6910225cce4e.js +0 -8
- package/.next/static/chunks/499-d6bcc76195b28550.js +0 -4
- package/.next/static/chunks/940-7cb66111eee2f9fb.js +0 -1
- package/.next/static/chunks/pages/asset-library-1dc916735fd12e11.js +0 -1
- package/.next/static/chunks/pages/documents-141b9ab2dba47ae7.js +0 -1
- package/.next/static/ubuSYahPe0ZJo6zT6KdSg/_buildManifest.js +0 -1
- /package/.next/static/{ubuSYahPe0ZJo6zT6KdSg → 0NId-lDXjlrJ2oZ70HQzh}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9928,a.ids=[9928],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9928,a.ids=[9928],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},40930:(a,b,c)=>{c.r(b),c.d(b,{config:()=>n,default:()=>m,handler:()=>p});var d={};c.r(d),c.d(d,{default:()=>j});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(44533);async function j(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let c=a.query.projectRoot||(0,i.aY)();if(!c)return b.status(200).json([]);let d=(await (0,i.Qh)().getProject(c)).listTags();b.status(200).json([...new Set(d.map(a=>a.tag))])}catch(a){console.error("[api] kb/tags",a),b.status(500).json({error:"Internal server error"})}}var k=c(68970),l=c(50296);let m=(0,h.M)(d,"default"),n=(0,h.M)(d,"config"),o=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/tags",pathname:"/api/kb/tags",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function p(a,b,c){let d=await o.prepare(a,b,{srcPage:"/api/kb/tags"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,k.getTracer)(),e=d.getActiveScopeSpan(),j=o.instrumentationOnRequestError.bind(o),m=async e=>o.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:o.isDev,page:"/api/kb/tags",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(l.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:k.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(o.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},44533:(a,b,c)=>{c.d(b,{Qh:()=>l,VS:()=>p,Yy:()=>o,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){return g.join(h.homedir(),".customize-agent")}function l(){return j||(j=new d.MultiProjectManager(k())),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))&&(b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&i.existsSync(a)&&!m(a))return g.resolve(a);let b=function(){let a=g.join(k(),"projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!m(process.env.INIT_CWD)?process.env.INIT_CWD:g.resolve(process.cwd(),"../..")}function o(a,b={}){let c=new Map;for(let b of function(a){let b=g.join(h.homedir(),".customize-agent","projects",(0,d.computeProjectId)(g.resolve(a)),"kb.db");if(!i.existsSync(b))return[];let c=new d.IndexStateStore(b);try{return c.listRecords().map(a=>({...a,matchedBy:"metadata"}))}finally{c.close()}}(a))c.set(b.relativePath,b);for(let b of function(a){let b=g.join(a,"knowledgeBase");if(!i.existsSync(b))return[];let c=[],d=a=>{for(let e of i.readdirSync(a,{withFileTypes:!0})){let f=g.join(a,e.name);if(e.isDirectory()){d(f);continue}if(e.name.endsWith(".source.txt"))continue;let h=i.statSync(f),j=g.relative(b,f).split(g.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:g.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:h.size,mtime:h.mtimeMs,chunkCount:0,collectionName:"",indexedAt:0,lastVerifiedAt:0,status:"disk",matchedBy:"disk"})}};return d(b),c}(a)){let a=c.get(b.relativePath);c.set(b.relativePath,a?{...a,fileSize:b.fileSize,mtime:b.mtime,matchedBy:"metadata"}:b)}return Array.from(c.values()).filter(a=>!b.category||a.category===b.category).sort((a,b)=>b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN"))}async function p(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=o(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
|
|
2
2
|
${a.category}
|
|
3
3
|
${a.format}
|
|
4
|
-
${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await l().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},
|
|
4
|
+
${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await l().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=40930));module.exports=c})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9438,a.ids=[9438],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9438,a.ids=[9438],a.modules={19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},44533:(a,b,c)=>{c.d(b,{Qh:()=>l,VS:()=>p,Yy:()=>o,aY:()=>n});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021);let j=null;function k(){return g.join(h.homedir(),".customize-agent")}function l(){return j||(j=new d.MultiProjectManager(k())),j}function m(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))&&(b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function n(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&i.existsSync(a)&&!m(a))return g.resolve(a);let b=function(){let a=g.join(k(),"projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!m(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!m(process.env.INIT_CWD)?process.env.INIT_CWD:g.resolve(process.cwd(),"../..")}function o(a,b={}){let c=new Map;for(let b of function(a){let b=g.join(h.homedir(),".customize-agent","projects",(0,d.computeProjectId)(g.resolve(a)),"kb.db");if(!i.existsSync(b))return[];let c=new d.IndexStateStore(b);try{return c.listRecords().map(a=>({...a,matchedBy:"metadata"}))}finally{c.close()}}(a))c.set(b.relativePath,b);for(let b of function(a){let b=g.join(a,"knowledgeBase");if(!i.existsSync(b))return[];let c=[],d=a=>{for(let e of i.readdirSync(a,{withFileTypes:!0})){let f=g.join(a,e.name);if(e.isDirectory()){d(f);continue}if(e.name.endsWith(".source.txt"))continue;let h=i.statSync(f),j=g.relative(b,f).split(g.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:g.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:h.size,mtime:h.mtimeMs,chunkCount:0,collectionName:"",indexedAt:0,lastVerifiedAt:0,status:"disk",matchedBy:"disk"})}};return d(b),c}(a)){let a=c.get(b.relativePath);c.set(b.relativePath,a?{...a,fileSize:b.fileSize,mtime:b.mtime,matchedBy:"metadata"}:b)}return Array.from(c.values()).filter(a=>!b.category||a.category===b.category).sort((a,b)=>b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN"))}async function p(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=o(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
|
|
2
2
|
${a.category}
|
|
3
3
|
${a.format}
|
|
4
|
-
${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await l().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},
|
|
4
|
+
${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await l().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active"},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}},61653:(a,b,c)=>{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>q});var d={};c.r(d),c.d(d,{default:()=>k});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(71770),j=c(44533);async function k(a,b){if("GET"!==a.method)return b.status(405).json({error:"Method not allowed"});try{let d=String(a.query.id??"");if(!d)return b.status(400).json({error:"id is required"});let e=String(a.query.projectRoot||(0,j.aY)());try{let a=(await (0,j.Qh)().getProject(e)).listIndexJobsByPrefix(d);if(a.length>0){var c;let e=a.find(a=>"ERROR"===a.status),f=a.filter(a=>"SUCCESS"===a.status).length,g=a.find(a=>!["SUCCESS","ERROR"].includes(a.status))??e??a.at(-1),h=Math.round(a.reduce((a,b)=>a+b.percent,0)/a.length);return b.status(200).json({id:d,stage:e?"error":f===a.length?"done":(c=g.status,"PARSING"===c?"parsing":"CHUNKING"===c?"chunking":"INDEXING"===c?"vectorizing":"SUCCESS"===c?"done":"ERROR"===c?"error":"uploading"),percent:e||f===a.length?100:h,message:e?.errorMessage||g.message,jobs:a,updatedAt:g.updatedAt})}}catch{}b.status(200).json((0,i.Q)(d)??{id:d,stage:"uploading",percent:0,message:"等待上传开始",updatedAt:Date.now()})}catch(a){console.error("[api] kb/upload/progress",a),b.status(500).json({error:"Internal server error"})}}var l=c(68970),m=c(50296);let n=(0,h.M)(d,"default"),o=(0,h.M)(d,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/upload/progress",pathname:"/api/kb/upload/progress",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function q(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/kb/upload/progress"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,l.getTracer)(),e=d.getActiveScopeSpan(),j=p.instrumentationOnRequestError.bind(p),k=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/kb/upload/progress",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(m.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:l.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}},71770:(a,b,c)=>{c.d(b,{M:()=>e,Q:()=>f});let d=new Map;function e(a,b){a&&d.set(a,{id:a,...b,updatedAt:Date.now()})}function f(a){let b=d.get(a);if(b)return Date.now()-b.updatedAt>18e5?void d.delete(a):b}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705],()=>b(b.s=61653));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=9452,a.ids=[9452],a.modules={15151:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{config:()=>p,default:()=>o});var e=c(67313),f=c(
|
|
1
|
+
"use strict";(()=>{var a={};a.id=9452,a.ids=[9452],a.modules={15151:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{config:()=>p,default:()=>o});var e=c(67313),f=c(44533),g=c(71770),h=c(37095),i=c(48203),j=a([e]);e=(j.then?(await j)():j)[0];let p={api:{bodyParser:!1,responseLimit:!1}};function k(a){return Array.isArray(a)?a[0]:a}function l(a){return"1"===a||"true"===a}function m(a,b){let c=Number.parseInt(a??"",10);return Number.isFinite(c)?c:b}let q=/(^|\/)\.DS_Store$|(^|\/)Thumbs\.db$|(^|\/)__MACOSX\/|\.bak$/iu;function n(a){return a.originalFilename||a.newFilename||"uploaded-file"}async function o(a,b){var c;if("POST"!==a.method)return b.status(405).json({error:"Method not allowed"});let d=(c=a.query.uploadId,(Array.isArray(c)?c[0]:c)||`upload-${Date.now()}`),j=(0,f.aY)(),o="文件夹上传";try{j&&((0,h.Qf)(j,{id:d,type:"upload",title:`上传 ${o}`,stage:"uploading",status:"processing",percent:1,message:"正在接收上传请求",fileName:o}),(0,g.M)(d,{stage:"uploading",percent:1,message:"正在接收上传请求",fileName:o}));let c=await function(a){let b=Number(process.env.CUSTOMIZE_KB_UPLOAD_MAX_BYTES||0x100000000),c=(0,e.default)({multiples:!0,maxFileSize:b,maxTotalFileSize:b,keepExtensions:!0,allowEmptyFiles:!0});return new Promise((b,d)=>{c.parse(a,(a,c,e)=>{var f;if(a)return void d(a);let g=Object.values(e).flat().filter(Boolean),h=m(k(c.batchIndex),0),i=Math.max(1,m(k(c.totalBatches),1));b({fields:{uploadId:k(c.uploadId),projectRoot:k(c.projectRoot),relativePaths:(f=c.relativePaths)?Array.isArray(f)?f:[f]:[],batchIndex:h,totalBatches:i,startIndex:l(k(c.startIndex))||0===h,uploadComplete:l(k(c.uploadComplete))||h>=i-1,fileOffset:Math.max(0,m(k(c.fileOffset),500*h))},files:g})})})}(a);if(d=c.fields.uploadId||d,!(j=c.fields.projectRoot||j))return b.status(400).json({error:"Project root is required"});if(0===c.files.length)return b.status(400).json({error:"files required"});if(c.fields.relativePaths.length!==c.files.length)return b.status(400).json({error:"relativePaths count mismatch"});let p=c.files.map((a,b)=>({file:a,relativePath:c.fields.relativePaths[b]})).filter(a=>(a.file.size||0)>0&&!q.test(a.relativePath||n(a.file))),r=c.files.length-p.length;o=1===p.length?n(p[0].file):`${p.length} 个文件`;let s=await (0,f.Qh)().getProject(j);if(0===p.length){c.fields.uploadComplete&&await s.stageUploadedFilePaths([],d,c.fields.fileOffset,!0);let a=`第 ${c.fields.batchIndex+1}/${c.fields.totalBatches} 批仅包含空文件、系统文件或备份文件,已跳过`;return(0,g.M)(d,{stage:c.fields.uploadComplete?"done":"uploading",percent:c.fields.uploadComplete?100:Math.min(4,Math.max(1,Math.round((c.fields.batchIndex+1)/c.fields.totalBatches*4))),message:a,fileName:o}),(0,h.Qf)(j,{id:d,type:"upload",title:`上传 ${o}`,stage:c.fields.uploadComplete?"done":"uploading",status:"warning",percent:c.fields.uploadComplete?100:Math.min(4,Math.max(1,Math.round((c.fields.batchIndex+1)/c.fields.totalBatches*4))),message:a,fileName:o}),b.status(202).json({success:!0,accepted:!0,operationId:d,jobs:[],skippedEmptyCount:r,batchIndex:c.fields.batchIndex,totalBatches:c.fields.totalBatches,indexingStarted:!1})}let t=p.map(a=>({fileName:n(a.file),sourcePath:a.file.filepath,targetRelativePath:a.relativePath})),u=await s.stageUploadedFilePaths(t,d,c.fields.fileOffset,c.fields.uploadComplete),v=u[0]?.relativePath,w=c.fields.startIndex?5:Math.min(4,Math.max(1,Math.round((c.fields.batchIndex+1)/c.fields.totalBatches*4))),x=c.fields.startIndex?`文件已落盘,后台索引任务已排队${r?`,已跳过 ${r} 个空文件、系统文件或备份文件`:""}`:`文件已落盘:第 ${c.fields.batchIndex+1}/${c.fields.totalBatches} 批${r?`,已跳过 ${r} 个空文件、系统文件或备份文件`:""}`;return(0,g.M)(d,{stage:"uploading",percent:w,message:x,fileName:o}),(0,h.Qf)(j,{id:d,type:"upload",title:`上传 ${o}`,stage:"uploading",status:"processing",percent:w,message:x,fileName:o,filePath:v}),c.fields.startIndex&&(0,i.DA)({id:`${d}-worker`,projectRoot:j,vectorMode:"sync",uploadOperationId:d,uploadTitle:o}),b.status(202).json({success:!0,accepted:!0,operationId:d,relativePath:1===p.length?v:void 0,jobs:u,skippedEmptyCount:r,batchIndex:c.fields.batchIndex,totalBatches:c.fields.totalBatches,indexingStarted:c.fields.startIndex})}catch(c){let a=c instanceof Error?c.message:"上传或索引失败";if((0,g.M)(d,{stage:"error",percent:100,message:a,fileName:o}),j){try{let b=await (0,f.Qh)().getProject(j);await b.stageUploadedFilePaths([],d,0,!0),b.failPendingIndexJobs(a)}catch(a){console.error("[api] kb/upload cleanup",a)}(0,h.Qf)(j,{id:d,type:"upload",title:`上传 ${o}`,stage:"error",status:"error",percent:100,message:a,fileName:o,error:a})}console.error("[api] kb/upload",c),b.status(500).json({error:a})}}d()}catch(a){d(a)}})},19898:a=>{a.exports=require("@customize-agent/knowledge")},21820:a=>{a.exports=require("os")},29021:a=>{a.exports=require("fs")},33873:a=>{a.exports=require("path")},67313:a=>{a.exports=import("formidable")},71770:(a,b,c)=>{c.d(b,{M:()=>e,Q:()=>f});let d=new Map;function e(a,b){a&&d.set(a,{id:a,...b,updatedAt:Date.now()})}function f(a){let b=d.get(a);if(b)return Date.now()-b.updatedAt>18e5?void d.delete(a):b}},75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},79646:a=>{a.exports=require("child_process")},87550:a=>{a.exports=require("better-sqlite3")},99249:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{config:()=>o,default:()=>n,handler:()=>m});var e=c(11400),f=c(50029),g=c(71086),h=c(38513),i=c(15151),j=c(68970),k=c(50296),l=a([i]);i=(l.then?(await l)():l)[0];let n=(0,h.M)(i,"default"),o=(0,h.M)(i,"config"),p=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/kb/upload",pathname:"/api/kb/upload",bundlePath:"",filename:""},userland:i,distDir:".next",relativeProjectDir:""});async function m(a,b,c){let d=await p.prepare(a,b,{srcPage:"/api/kb/upload"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,j.getTracer)(),e=d.getActiveScopeSpan(),l=p.instrumentationOnRequestError.bind(p),m=async e=>p.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:p.isDev,page:"/api/kb/upload",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>l(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==k.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await m(e):await d.withPropagatedContext(a.headers,()=>d.trace(k.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:j.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},m))}catch(a){if(p.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}d()}catch(a){d(a)}})}};var b=require("../../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[9705,8203],()=>b(b.s=99249));module.exports=c})();
|