@customize-agent/server 4.0.69 → 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.
Files changed (102) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/1936.js +3 -3
  5. package/.next/server/chunks/5247.js +125 -0
  6. package/.next/server/chunks/7899.js +1 -0
  7. package/.next/server/chunks/8203.js +5 -0
  8. package/.next/server/chunks/9301.js +3 -3
  9. package/.next/server/pages/404.html +1 -1
  10. package/.next/server/pages/500.html +1 -1
  11. package/.next/server/pages/_error.js +1 -1
  12. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  13. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  14. package/.next/server/pages/api/assets/generated.js +1 -1
  15. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  16. package/.next/server/pages/api/config/embedding/healthCheck.js +1 -1
  17. package/.next/server/pages/api/config/embedding/healthCheck.js.nft.json +1 -1
  18. package/.next/server/pages/api/config/embedding.js +1 -1
  19. package/.next/server/pages/api/config/healthCheck.js +2 -2
  20. package/.next/server/pages/api/config/models.js +1 -1
  21. package/.next/server/pages/api/config/providers/[provider].js +1 -1
  22. package/.next/server/pages/api/config/providers.js +2 -2
  23. package/.next/server/pages/api/context.js +5 -5
  24. package/.next/server/pages/api/context.js.nft.json +1 -1
  25. package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
  26. package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
  27. package/.next/server/pages/api/documents/drafts.js +1 -1
  28. package/.next/server/pages/api/documents/export.js +3 -3
  29. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  30. package/.next/server/pages/api/documents/generate.js +2 -2
  31. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  32. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  33. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  34. package/.next/server/pages/api/documents/generated.js +1 -1
  35. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  36. package/.next/server/pages/api/documents/refine.js +2 -2
  37. package/.next/server/pages/api/documents/roles.js +1 -1
  38. package/.next/server/pages/api/documents/roles.js.nft.json +1 -1
  39. package/.next/server/pages/api/documents/templates.js +1 -1
  40. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  41. package/.next/server/pages/api/jobs/[id].js +3 -3
  42. package/.next/server/pages/api/jobs/[id].js.nft.json +1 -1
  43. package/.next/server/pages/api/jobs.js +3 -3
  44. package/.next/server/pages/api/jobs.js.nft.json +1 -1
  45. package/.next/server/pages/api/kb/categories.js +2 -2
  46. package/.next/server/pages/api/kb/categories.js.nft.json +1 -1
  47. package/.next/server/pages/api/kb/duplicates.js +2 -2
  48. package/.next/server/pages/api/kb/duplicates.js.nft.json +1 -1
  49. package/.next/server/pages/api/kb/features.js +1 -1
  50. package/.next/server/pages/api/kb/files/detail.js +2 -2
  51. package/.next/server/pages/api/kb/files/detail.js.nft.json +1 -1
  52. package/.next/server/pages/api/kb/files/open.js +2 -2
  53. package/.next/server/pages/api/kb/files/open.js.nft.json +1 -1
  54. package/.next/server/pages/api/kb/files/preview-pdf-page.js +2 -2
  55. package/.next/server/pages/api/kb/files/preview-pdf-page.js.nft.json +1 -1
  56. package/.next/server/pages/api/kb/files/reindex.js +1 -1
  57. package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
  58. package/.next/server/pages/api/kb/files/search.js +3 -3
  59. package/.next/server/pages/api/kb/files/search.js.nft.json +1 -1
  60. package/.next/server/pages/api/kb/files.js +4 -4
  61. package/.next/server/pages/api/kb/files.js.nft.json +1 -1
  62. package/.next/server/pages/api/kb/ignore.js +2 -2
  63. package/.next/server/pages/api/kb/ignore.js.nft.json +1 -1
  64. package/.next/server/pages/api/kb/operations.js +3 -3
  65. package/.next/server/pages/api/kb/operations.js.nft.json +1 -1
  66. package/.next/server/pages/api/kb/reindex.js +1 -1
  67. package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
  68. package/.next/server/pages/api/kb/search.js +2 -2
  69. package/.next/server/pages/api/kb/search.js.nft.json +1 -1
  70. package/.next/server/pages/api/kb/stats.js +2 -2
  71. package/.next/server/pages/api/kb/stats.js.nft.json +1 -1
  72. package/.next/server/pages/api/kb/tags.js +2 -2
  73. package/.next/server/pages/api/kb/tags.js.nft.json +1 -1
  74. package/.next/server/pages/api/kb/upload/progress.js +2 -2
  75. package/.next/server/pages/api/kb/upload/progress.js.nft.json +1 -1
  76. package/.next/server/pages/api/kb/upload.js +1 -1
  77. package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
  78. package/.next/server/pages/api/prompt/chat.js +2 -2
  79. package/.next/server/pages/api/system/logs.js +2 -2
  80. package/.next/server/pages/asset-library.html +1 -1
  81. package/.next/server/pages/context/long-term.html +1 -1
  82. package/.next/server/pages/context/short-term.html +1 -1
  83. package/.next/server/pages/document-roles.html +1 -1
  84. package/.next/server/pages/documents.html +1 -1
  85. package/.next/server/pages/guide.html +1 -1
  86. package/.next/server/pages/index.html +1 -1
  87. package/.next/server/pages/knowledge/file-detail.html +1 -1
  88. package/.next/server/pages/knowledge/files.html +1 -1
  89. package/.next/server/pages/knowledge/manage.html +1 -1
  90. package/.next/server/pages/knowledge/search.html +1 -1
  91. package/.next/server/pages/knowledge.html +1 -1
  92. package/.next/server/pages/models.html +1 -1
  93. package/.next/server/pages/overview.html +1 -1
  94. package/.next/server/pages/prompt.html +1 -1
  95. package/.next/server/pages/settings.html +1 -1
  96. package/.next/server/pages/system/logs.html +1 -1
  97. package/.next/server/pages-manifest.json +24 -24
  98. package/package.json +3 -3
  99. package/.next/server/chunks/432.js +0 -5
  100. package/.next/server/chunks/6697.js +0 -123
  101. /package/.next/static/{G68XtEOLp5i0eWArclO6w → 0NId-lDXjlrJ2oZ70HQzh}/_buildManifest.js +0 -0
  102. /package/.next/static/{G68XtEOLp5i0eWArclO6w → 0NId-lDXjlrJ2oZ70HQzh}/_ssgManifest.js +0 -0
@@ -1,65 +1,65 @@
1
1
  {
2
- "/_error": "pages/_error.js",
3
2
  "/_app": "pages/_app.js",
3
+ "/_error": "pages/_error.js",
4
4
  "/api/assets/generated/preview": "pages/api/assets/generated/preview.js",
5
5
  "/api/assets/generated": "pages/api/assets/generated.js",
6
6
  "/api/config/embedding/healthCheck": "pages/api/config/embedding/healthCheck.js",
7
7
  "/api/config/models": "pages/api/config/models.js",
8
8
  "/api/context": "pages/api/context.js",
9
9
  "/api/documents/drafts": "pages/api/documents/drafts.js",
10
+ "/api/documents/chapter/regenerate": "pages/api/documents/chapter/regenerate.js",
10
11
  "/api/documents/generate": "pages/api/documents/generate.js",
11
12
  "/api/documents/generated": "pages/api/documents/generated.js",
12
13
  "/api/documents/roles": "pages/api/documents/roles.js",
13
- "/api/health": "pages/api/health.js",
14
- "/api/documents/chapter/regenerate": "pages/api/documents/chapter/regenerate.js",
15
14
  "/api/documents/templates": "pages/api/documents/templates.js",
16
- "/api/kb/categories": "pages/api/kb/categories.js",
15
+ "/api/health": "pages/api/health.js",
17
16
  "/api/jobs/[id]": "pages/api/jobs/[id].js",
17
+ "/api/kb/categories": "pages/api/kb/categories.js",
18
18
  "/api/jobs": "pages/api/jobs.js",
19
19
  "/api/kb/duplicates": "pages/api/kb/duplicates.js",
20
- "/api/kb/features": "pages/api/kb/features.js",
21
- "/api/kb/files/detail": "pages/api/kb/files/detail.js",
22
20
  "/api/kb/files": "pages/api/kb/files.js",
21
+ "/api/kb/features": "pages/api/kb/features.js",
23
22
  "/api/kb/files/open": "pages/api/kb/files/open.js",
23
+ "/api/kb/files/detail": "pages/api/kb/files/detail.js",
24
24
  "/api/kb/files/reindex": "pages/api/kb/files/reindex.js",
25
25
  "/api/kb/files/search": "pages/api/kb/files/search.js",
26
26
  "/api/kb/ignore": "pages/api/kb/ignore.js",
27
- "/api/kb/reindex": "pages/api/kb/reindex.js",
28
27
  "/api/kb/operations": "pages/api/kb/operations.js",
28
+ "/api/kb/reindex": "pages/api/kb/reindex.js",
29
29
  "/api/kb/search": "pages/api/kb/search.js",
30
+ "/api/kb/stats": "pages/api/kb/stats.js",
30
31
  "/api/kb/tags": "pages/api/kb/tags.js",
31
32
  "/api/kb/upload/progress": "pages/api/kb/upload/progress.js",
32
- "/api/kb/stats": "pages/api/kb/stats.js",
33
- "/asset-library": "pages/asset-library.html",
34
- "/api/system/stats": "pages/api/system/stats.js",
35
- "/api/system/logs": "pages/api/system/logs.js",
36
33
  "/api/prompt": "pages/api/prompt.js",
34
+ "/api/system/logs": "pages/api/system/logs.js",
35
+ "/api/system/stats": "pages/api/system/stats.js",
36
+ "/asset-library": "pages/asset-library.html",
37
37
  "/context/long-term": "pages/context/long-term.html",
38
- "/guide": "pages/guide.html",
39
38
  "/context/short-term": "pages/context/short-term.html",
40
- "/": "pages/index.html",
41
39
  "/document-roles": "pages/document-roles.html",
42
- "/knowledge/files": "pages/knowledge/files.html",
43
- "/knowledge/manage": "pages/knowledge/manage.html",
44
40
  "/documents": "pages/documents.html",
45
- "/knowledge": "pages/knowledge.html",
41
+ "/guide": "pages/guide.html",
42
+ "/": "pages/index.html",
46
43
  "/knowledge/file-detail": "pages/knowledge/file-detail.html",
44
+ "/knowledge/files": "pages/knowledge/files.html",
45
+ "/knowledge": "pages/knowledge.html",
46
+ "/knowledge/manage": "pages/knowledge/manage.html",
47
47
  "/knowledge/search": "pages/knowledge/search.html",
48
- "/prompt": "pages/prompt.html",
49
- "/overview": "pages/overview.html",
50
48
  "/models": "pages/models.html",
49
+ "/overview": "pages/overview.html",
50
+ "/prompt": "pages/prompt.html",
51
+ "/settings": "pages/settings.html",
51
52
  "/system/logs": "pages/system/logs.html",
52
- "/api/config/healthCheck": "pages/api/config/healthCheck.js",
53
53
  "/api/config/providers/[provider]": "pages/api/config/providers/[provider].js",
54
- "/api/config/providers": "pages/api/config/providers.js",
54
+ "/api/config/healthCheck": "pages/api/config/healthCheck.js",
55
55
  "/api/config/embedding": "pages/api/config/embedding.js",
56
56
  "/api/documents/generated/[id]": "pages/api/documents/generated/[id].js",
57
- "/settings": "pages/settings.html",
58
- "/_document": "pages/_document.js",
57
+ "/api/config/providers": "pages/api/config/providers.js",
59
58
  "/api/kb/files/preview-pdf-page": "pages/api/kb/files/preview-pdf-page.js",
60
- "/api/prompt/chat": "pages/api/prompt/chat.js",
61
59
  "/api/kb/upload": "pages/api/kb/upload.js",
62
- "/api/documents/export": "pages/api/documents/export.js",
63
60
  "/api/documents/refine": "pages/api/documents/refine.js",
61
+ "/api/prompt/chat": "pages/api/prompt/chat.js",
62
+ "/_document": "pages/_document.js",
63
+ "/api/documents/export": "pages/api/documents/export.js",
64
64
  "/404": "pages/404.html"
65
65
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@customize-agent/server",
3
- "version": "4.0.69",
3
+ "version": "4.0.70",
4
4
  "description": "Customize Agent Web 管理控制台",
5
5
  "exports": {
6
6
  "./package.json": "./package.json"
@@ -50,9 +50,9 @@
50
50
  "tesseract.js": "^7.0.0",
51
51
  "typescript": "^6.0.3",
52
52
  "xlsx": "^0.18.5",
53
- "@customize-agent/runtime": "^3.0.9",
53
+ "@customize-agent/llm": "^3.0.9",
54
54
  "@customize-agent/knowledge": "^4.0.28",
55
- "@customize-agent/llm": "^3.0.9"
55
+ "@customize-agent/runtime": "^3.0.9"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@tailwindcss/postcss": "^4.3.2",
@@ -1,5 +0,0 @@
1
- "use strict";exports.id=432,exports.ids=[432],exports.modules={6708:(a,b,c)=>{c.d(b,{CU:()=>q,H7:()=>p,JB:()=>m,Qf:()=>k,kW:()=>n,oy:()=>l,sn:()=>o});var d=c(29021),e=c(21820),f=c(33873),g=c(19898);function h(a){return f.join(e.homedir(),".customize-agent","projects",(0,g.computeProjectId)(a),"kb-operations.jsonl")}function i(a){let b=h(a);return d.existsSync(b)?d.readFileSync(b,"utf8").split("\n").filter(Boolean).flatMap(a=>{try{return[JSON.parse(a)]}catch{return[]}}):[]}function j(a,b){let c=h(a);d.mkdirSync(f.dirname(c),{recursive:!0}),d.writeFileSync(c,`${b.slice(-200).map(a=>JSON.stringify(a)).join("\n")}
2
- `,"utf8")}function k(a,b){let c=Date.now(),d=i(a),e=d.findIndex(a=>a.id===b.id),f=e>=0?d[e]:void 0,g={id:b.id,type:b.type,title:b.title,stage:b.stage??f?.stage??"uploading",status:b.status??f?.status??"processing",message:b.message??f?.message??"",percent:b.percent??f?.percent??0,fileName:b.fileName??f?.fileName,filePath:b.filePath??f?.filePath,chunkCount:b.chunkCount??f?.chunkCount,textLength:b.textLength??f?.textLength,extractionMode:b.extractionMode??f?.extractionMode,error:b.error??f?.error,createdAt:f?.createdAt??c,updatedAt:c};return e>=0?d[e]=g:d.push(g),j(a,d),g}function l(a,b=50){return i(a).sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,b)}function m(a,b){return i(a).find(a=>a.id===b)}function n(a,b){return i(a).filter(a=>!b||a.type===b).sort((a,b)=>b.updatedAt-a.updatedAt)[0]}function o(a){return i(a).filter(a=>"processing"===a.status).sort((a,b)=>b.updatedAt-a.updatedAt)}function p(a){let b=i(a),c=h(a);return d.existsSync(c)&&d.unlinkSync(c),b.length}function q(a,b){let c=i(a),d=c.filter(a=>a.id!==b);return d.length!==c.length&&(j(a,d),!0)}},23328:(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}
3
- ${a.category}
4
- ${a.format}
5
- ${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}}},70432:(a,b,c)=>{c.d(b,{DA:()=>l,ls:()=>m});var d=c(79646),e=c(33873),f=c.n(e),g=c(23328),h=c(6708);let i=new Map;function j(a){return String(a).split(/\r?\n/u).map(a=>a.trim()).filter(a=>a&&!/^Image too small to scale!!/u.test(a)&&"Line cannot be recognized!!"!==a).join("\n")}async function k(a,b,c,d){let e;try{e=await (0,g.Qh)().getProject(a.projectRoot);let f=e=>{var f;return(0,h.Qf)(a.projectRoot,{id:b,type:c,title:d,stage:(f=e.stage,"parsing"===f||"chunking"===f||"vectorizing"===f||"done"===f||"error"===f?f:"indexing"===f?"chunking":"scanning"===f?"uploading":"vectorizing"),status:"error"===e.stage?"error":"processing",percent:e.percent,message:e.message,filePath:e.filePath||a.relativePath,chunkCount:e.chunkCount,error:e.vectorStatus?.error})},i=a.relativePath?await e.reindexFile(a.relativePath,{vectorMode:a.vectorMode,onProgress:f}):a.forceReindexAll?await e.forceReindexAll({vectorMode:a.vectorMode,onProgress:f}):await e.consumePendingIndexJobs({vectorMode:a.vectorMode,onProgress:f,waitForUploadId:a.uploadOperationId}),j=0;for(;!a.relativePath&&(e.countPendingIndexJobs()>0||a.uploadOperationId&&e.uploadSessionIsOpen(a.uploadOperationId)&&j<120);){if(0===e.countPendingIndexJobs()){j+=1,await new Promise(a=>setTimeout(a,1e3));continue}j=0;let b=await e.consumePendingIndexJobs({vectorMode:a.vectorMode,onProgress:f,waitForUploadId:a.uploadOperationId});i={newFiles:[...i.newFiles,...b.newFiles],modifiedFiles:[...i.modifiedFiles,...b.modifiedFiles],deletedFiles:[...i.deletedFiles,...b.deletedFiles],unchangedCount:i.unchangedCount+b.unchangedCount,mtimeOnlyCount:i.mtimeOnlyCount+b.mtimeOnlyCount,skippedFiles:[...i.skippedFiles,...b.skippedFiles],hasChanges:i.hasChanges||b.hasChanges,diffTimeMs:i.diffTimeMs+b.diffTimeMs}}let k=e.getVectorStatus();if("error"===k.status){let f=k.error||"HNSWLib 向量入库失败";return(0,h.Qf)(a.projectRoot,{id:b,type:c,title:d,stage:"error",status:"error",percent:100,message:f,error:f}),{success:!1,error:f,stats:{...e.getStats(),vectorStatus:k}}}return(0,h.Qf)(a.projectRoot,{id:b,type:c,title:d,stage:"done",status:"success",percent:100,message:a.relativePath?"单文件重新解析完成":"知识库后台索引完成",filePath:a.relativePath,fileName:a.relativePath?.split("/").pop()}),{success:!0,stats:{...e.getStats(),vectorStatus:k}}}catch(g){let f=g instanceof Error?g.stack||g.message:String(g);return e?.failPendingIndexJobs?.(f),(0,h.Qf)(a.projectRoot,{id:b,type:c,title:d,stage:"error",status:"error",percent:100,message:f,error:f}),{success:!1,error:f}}}function l(a){!function(a){let b=i.get(a.projectRoot);if(b)return b.promise;let c=a.uploadOperationId??a.id,e=a.uploadOperationId?"upload":"reindex",g=a.uploadOperationId?`上传 ${a.uploadTitle??"文件"}`:a.relativePath?`重新解析 ${a.relativePath}`:"知识库后台索引";(0,h.Qf)(a.projectRoot,{id:c,type:e,title:g,stage:"uploading",status:"processing",percent:5,message:"索引任务已进入后台队列",filePath:a.relativePath,fileName:a.relativePath?.split("/").pop()});let l=("1"===process.env.CUSTOMIZE_AGENT_DISABLE_KB_CHILD_PROCESS?k(a,c,e,g):function(a,b,c,e){let g=f().resolve(process.cwd(),"scripts/kb-index-worker.cjs");return new Promise(f=>{let i=(0,d.fork)(g,[JSON.stringify({...a,operationId:b})],{cwd:process.cwd(),stdio:["ignore","pipe","pipe","ipc"],env:process.env});i.stdout?.on("data",d=>{let f=j(d);f&&(0,h.Qf)(a.projectRoot,{id:b,type:c,title:e,stage:"parsing",status:"processing",percent:5,message:`后台索引输出:${f.slice(-1e3)}`})}),i.stderr?.on("data",d=>{let f=j(d);f&&(0,h.Qf)(a.projectRoot,{id:b,type:c,title:e,stage:"parsing",status:"processing",percent:5,message:`后台索引错误输出:${f.slice(-1e3)}`})}),i.on("error",d=>{let g=d instanceof Error?d.message:String(d);(0,h.Qf)(a.projectRoot,{id:b,type:c,title:e,stage:"error",status:"error",percent:100,message:g,error:g}),f({success:!1,error:g})}),i.on("exit",d=>{if(0===d)f({success:!0});else{let g=`知识库后台进程退出,退出码 ${d??"unknown"}`;(0,h.Qf)(a.projectRoot,{id:b,type:c,title:e,stage:"error",status:"error",percent:100,message:g,error:g}),f({success:!1,error:g})}})})}(a,c,e,g)).finally(()=>i.delete(a.projectRoot));i.set(a.projectRoot,{operationId:c,promise:l,startedAt:Date.now()})}(a)}function m(a){let b=i.get(a);return b?{operationId:b.operationId,startedAt:b.startedAt}:void 0}}};