@customize-agent/server 4.0.69 → 4.0.71

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 (106) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/chunks/1936.js +3 -3
  5. package/.next/server/chunks/5247.js +142 -0
  6. package/.next/server/chunks/7899.js +1 -0
  7. package/.next/server/chunks/8203.js +5 -0
  8. package/.next/server/chunks/8661.js +1 -0
  9. package/.next/server/chunks/9301.js +3 -3
  10. package/.next/server/middleware-build-manifest.js +1 -1
  11. package/.next/server/pages/404.html +1 -1
  12. package/.next/server/pages/500.html +1 -1
  13. package/.next/server/pages/_error.js +1 -1
  14. package/.next/server/pages/api/assets/generated/preview.js +1 -1
  15. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  16. package/.next/server/pages/api/assets/generated.js +1 -1
  17. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  18. package/.next/server/pages/api/config/embedding/healthCheck.js +1 -1
  19. package/.next/server/pages/api/config/embedding/healthCheck.js.nft.json +1 -1
  20. package/.next/server/pages/api/config/embedding.js +1 -1
  21. package/.next/server/pages/api/config/healthCheck.js +2 -2
  22. package/.next/server/pages/api/config/models.js +1 -1
  23. package/.next/server/pages/api/config/providers/[provider].js +1 -1
  24. package/.next/server/pages/api/config/providers.js +2 -2
  25. package/.next/server/pages/api/context.js +5 -5
  26. package/.next/server/pages/api/context.js.nft.json +1 -1
  27. package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
  28. package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
  29. package/.next/server/pages/api/documents/drafts.js +1 -1
  30. package/.next/server/pages/api/documents/export.js +3 -3
  31. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  32. package/.next/server/pages/api/documents/generate.js +2 -2
  33. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  34. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  35. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  36. package/.next/server/pages/api/documents/generated.js +1 -1
  37. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  38. package/.next/server/pages/api/documents/refine.js +2 -2
  39. package/.next/server/pages/api/documents/roles.js +1 -1
  40. package/.next/server/pages/api/documents/roles.js.nft.json +1 -1
  41. package/.next/server/pages/api/documents/templates.js +1 -1
  42. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  43. package/.next/server/pages/api/jobs/[id].js +3 -3
  44. package/.next/server/pages/api/jobs/[id].js.nft.json +1 -1
  45. package/.next/server/pages/api/jobs.js +3 -3
  46. package/.next/server/pages/api/jobs.js.nft.json +1 -1
  47. package/.next/server/pages/api/kb/categories.js +2 -2
  48. package/.next/server/pages/api/kb/categories.js.nft.json +1 -1
  49. package/.next/server/pages/api/kb/duplicates.js +2 -2
  50. package/.next/server/pages/api/kb/duplicates.js.nft.json +1 -1
  51. package/.next/server/pages/api/kb/features.js +1 -1
  52. package/.next/server/pages/api/kb/files/detail.js +2 -2
  53. package/.next/server/pages/api/kb/files/detail.js.nft.json +1 -1
  54. package/.next/server/pages/api/kb/files/open.js +2 -2
  55. package/.next/server/pages/api/kb/files/open.js.nft.json +1 -1
  56. package/.next/server/pages/api/kb/files/preview-pdf-page.js +2 -2
  57. package/.next/server/pages/api/kb/files/preview-pdf-page.js.nft.json +1 -1
  58. package/.next/server/pages/api/kb/files/reindex.js +1 -1
  59. package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
  60. package/.next/server/pages/api/kb/files/search.js +3 -3
  61. package/.next/server/pages/api/kb/files/search.js.nft.json +1 -1
  62. package/.next/server/pages/api/kb/files.js +4 -4
  63. package/.next/server/pages/api/kb/files.js.nft.json +1 -1
  64. package/.next/server/pages/api/kb/ignore.js +2 -2
  65. package/.next/server/pages/api/kb/ignore.js.nft.json +1 -1
  66. package/.next/server/pages/api/kb/operations.js +3 -3
  67. package/.next/server/pages/api/kb/operations.js.nft.json +1 -1
  68. package/.next/server/pages/api/kb/reindex.js +1 -1
  69. package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
  70. package/.next/server/pages/api/kb/search.js +2 -2
  71. package/.next/server/pages/api/kb/search.js.nft.json +1 -1
  72. package/.next/server/pages/api/kb/stats.js +2 -2
  73. package/.next/server/pages/api/kb/stats.js.nft.json +1 -1
  74. package/.next/server/pages/api/kb/tags.js +2 -2
  75. package/.next/server/pages/api/kb/tags.js.nft.json +1 -1
  76. package/.next/server/pages/api/kb/upload/progress.js +2 -2
  77. package/.next/server/pages/api/kb/upload/progress.js.nft.json +1 -1
  78. package/.next/server/pages/api/kb/upload.js +1 -1
  79. package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
  80. package/.next/server/pages/api/prompt/chat.js +2 -2
  81. package/.next/server/pages/api/system/logs.js +2 -2
  82. package/.next/server/pages/asset-library.html +1 -1
  83. package/.next/server/pages/context/long-term.html +1 -1
  84. package/.next/server/pages/context/short-term.html +1 -1
  85. package/.next/server/pages/document-roles.html +1 -1
  86. package/.next/server/pages/documents.html +1 -1
  87. package/.next/server/pages/guide.html +1 -1
  88. package/.next/server/pages/index.html +1 -1
  89. package/.next/server/pages/knowledge/file-detail.html +1 -1
  90. package/.next/server/pages/knowledge/files.html +1 -1
  91. package/.next/server/pages/knowledge/manage.html +1 -1
  92. package/.next/server/pages/knowledge/search.html +1 -1
  93. package/.next/server/pages/knowledge.html +1 -1
  94. package/.next/server/pages/models.html +1 -1
  95. package/.next/server/pages/overview.html +1 -1
  96. package/.next/server/pages/prompt.html +1 -1
  97. package/.next/server/pages/settings.html +1 -1
  98. package/.next/server/pages/system/logs.html +1 -1
  99. package/.next/server/pages-manifest.json +22 -22
  100. package/.next/static/{G68XtEOLp5i0eWArclO6w → G2viAcdgjbPEipVUbf4jw}/_buildManifest.js +1 -1
  101. package/.next/static/chunks/pages/documents-9209f54ac7717b41.js +1 -0
  102. package/package.json +2 -2
  103. package/.next/server/chunks/432.js +0 -5
  104. package/.next/server/chunks/6697.js +0 -123
  105. package/.next/static/chunks/pages/documents-84fe27cb0fbbb040.js +0 -1
  106. /package/.next/static/{G68XtEOLp5i0eWArclO6w → G2viAcdgjbPEipVUbf4jw}/_ssgManifest.js +0 -0
@@ -1,21 +1,21 @@
1
1
  {
2
- "/_error": "pages/_error.js",
3
2
  "/_app": "pages/_app.js",
4
- "/api/assets/generated/preview": "pages/api/assets/generated/preview.js",
3
+ "/_error": "pages/_error.js",
5
4
  "/api/assets/generated": "pages/api/assets/generated.js",
5
+ "/api/assets/generated/preview": "pages/api/assets/generated/preview.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
+ "/api/documents/chapter/regenerate": "pages/api/documents/chapter/regenerate.js",
9
10
  "/api/documents/drafts": "pages/api/documents/drafts.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",
18
17
  "/api/jobs": "pages/api/jobs.js",
18
+ "/api/kb/categories": "pages/api/kb/categories.js",
19
19
  "/api/kb/duplicates": "pages/api/kb/duplicates.js",
20
20
  "/api/kb/features": "pages/api/kb/features.js",
21
21
  "/api/kb/files/detail": "pages/api/kb/files/detail.js",
@@ -24,42 +24,42 @@
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",
41
+ "/": "pages/index.html",
42
+ "/guide": "pages/guide.html",
45
43
  "/knowledge": "pages/knowledge.html",
46
44
  "/knowledge/file-detail": "pages/knowledge/file-detail.html",
45
+ "/knowledge/files": "pages/knowledge/files.html",
46
+ "/knowledge/manage": "pages/knowledge/manage.html",
47
+ "/models": "pages/models.html",
47
48
  "/knowledge/search": "pages/knowledge/search.html",
48
- "/prompt": "pages/prompt.html",
49
49
  "/overview": "pages/overview.html",
50
- "/models": "pages/models.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
+ "/api/config/providers": "pages/api/config/providers.js",
56
57
  "/api/documents/generated/[id]": "pages/api/documents/generated/[id].js",
57
- "/settings": "pages/settings.html",
58
- "/_document": "pages/_document.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
- "/api/kb/upload": "pages/api/kb/upload.js",
62
59
  "/api/documents/export": "pages/api/documents/export.js",
60
+ "/api/kb/upload": "pages/api/kb/upload.js",
61
+ "/api/prompt/chat": "pages/api/prompt/chat.js",
62
+ "/_document": "pages/_document.js",
63
63
  "/api/documents/refine": "pages/api/documents/refine.js",
64
64
  "/404": "pages/404.html"
65
65
  }
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST=function(s,e,t,c,a,n,d,i,r,u,o,f,k,g,h,l,b,j,m){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:g,bitArray:[]},__routerFilterDynamic:{numItems:u,errorRate:1e-4,numBits:u,numHashes:g,bitArray:[]},"/":[s,e,h,l,"static/chunks/pages/index-a2a24e9602e7ea52.js"],"/_error":["static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":[s,e,n,"static/chunks/317-18aac52df5551e76.js","static/chunks/pages/asset-library-91bd2baa09727e0a.js"],"/context/long-term":[s,e,t,c,a,d,n,i,r,b,"static/chunks/pages/context/long-term-994425812e118c6c.js"],"/context/short-term":[s,e,t,c,a,d,n,i,r,b,"static/chunks/pages/context/short-term-fcae99e1744d998a.js"],"/document-roles":[s,e,t,c,r,"static/chunks/496-4fb9a063790e65ff.js","static/chunks/pages/document-roles-fd02980db151650c.js"],"/documents":[s,e,t,c,d,r,o,"static/chunks/63-dd8eeb8edd766bae.js","static/chunks/pages/documents-84fe27cb0fbbb040.js"],"/guide":[s,e,"static/chunks/642-708b928fbafc6c20.js","static/chunks/pages/guide-61bea94f27710467.js"],"/knowledge":["static/chunks/pages/knowledge-905248d8dcb15453.js"],"/knowledge/file-detail":[s,e,t,a,d,n,i,o,j,f,"static/chunks/pages/knowledge/file-detail-87669392540614e4.js"],"/knowledge/files":[s,e,t,a,d,n,i,f,"static/chunks/pages/knowledge/files-14ef1012fd201e47.js"],"/knowledge/manage":[s,e,o,"static/chunks/788-7f7359a830e3f4fd.js","static/chunks/pages/knowledge/manage-ed99a6cb254ddbb7.js"],"/knowledge/search":[s,e,t,o,m,f,"static/chunks/pages/knowledge/search-afb423fc22eb623b.js"],"/models":[s,e,t,c,a,r,m,"static/chunks/647-d5e08fda405f7059.js","static/chunks/pages/models-d5e80645dc4a61b1.js"],"/overview":[s,e,h,l,"static/chunks/pages/overview-1260176045ed5f7a.js"],"/prompt":[s,e,t,c,a,"static/chunks/525-5d947137d894f5fe.js","static/chunks/pages/prompt-9b869fbe3463020d.js"],"/settings":[s,e,"static/chunks/pages/settings-fa9d6a56898ba678.js"],"/system/logs":[s,t,c,a,d,n,i,j,"static/chunks/pages/system/logs-cbeeb77dc70086ae.js"],sortedPages:["/","/_app","/_error","/asset-library","/context/long-term","/context/short-term","/document-roles","/documents","/guide","/knowledge","/knowledge/file-detail","/knowledge/files","/knowledge/manage","/knowledge/search","/models","/overview","/prompt","/settings","/system/logs"]}}("static/chunks/433-233659be69169c19.js","static/chunks/787-c18af810af3433f6.js","static/chunks/576-6699fed6c88502fe.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/102-881dcc464f983c89.js","static/chunks/375-4a1c73eb22d653d2.js","static/chunks/289-0031e62ca424247b.js","static/chunks/455-97ad88d6604f54b7.js",0,"static/chunks/506-93f730bc149d0dce.js","static/css/09be1fdeab8595ab.css",1e-4,NaN,"static/chunks/694-2d545cfbb9779f2c.js","static/chunks/795-d8fb7a0420512701.js","static/chunks/932-2f195f4200ce9378.js","static/chunks/861-91cbdd34b8e23151.js","static/chunks/938-45efd516bb130bd5.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
1
+ self.__BUILD_MANIFEST=function(s,e,t,c,a,n,d,i,r,u,o,f,k,g,h,l,b,j,m){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:g,bitArray:[]},__routerFilterDynamic:{numItems:u,errorRate:1e-4,numBits:u,numHashes:g,bitArray:[]},"/":[s,e,h,l,"static/chunks/pages/index-a2a24e9602e7ea52.js"],"/_error":["static/chunks/pages/_error-282257fbdcc167b4.js"],"/asset-library":[s,e,n,"static/chunks/317-18aac52df5551e76.js","static/chunks/pages/asset-library-91bd2baa09727e0a.js"],"/context/long-term":[s,e,t,c,a,d,n,i,r,b,"static/chunks/pages/context/long-term-994425812e118c6c.js"],"/context/short-term":[s,e,t,c,a,d,n,i,r,b,"static/chunks/pages/context/short-term-fcae99e1744d998a.js"],"/document-roles":[s,e,t,c,r,"static/chunks/496-4fb9a063790e65ff.js","static/chunks/pages/document-roles-fd02980db151650c.js"],"/documents":[s,e,t,c,d,r,o,"static/chunks/63-dd8eeb8edd766bae.js","static/chunks/pages/documents-9209f54ac7717b41.js"],"/guide":[s,e,"static/chunks/642-708b928fbafc6c20.js","static/chunks/pages/guide-61bea94f27710467.js"],"/knowledge":["static/chunks/pages/knowledge-905248d8dcb15453.js"],"/knowledge/file-detail":[s,e,t,a,d,n,i,o,j,f,"static/chunks/pages/knowledge/file-detail-87669392540614e4.js"],"/knowledge/files":[s,e,t,a,d,n,i,f,"static/chunks/pages/knowledge/files-14ef1012fd201e47.js"],"/knowledge/manage":[s,e,o,"static/chunks/788-7f7359a830e3f4fd.js","static/chunks/pages/knowledge/manage-ed99a6cb254ddbb7.js"],"/knowledge/search":[s,e,t,o,m,f,"static/chunks/pages/knowledge/search-afb423fc22eb623b.js"],"/models":[s,e,t,c,a,r,m,"static/chunks/647-d5e08fda405f7059.js","static/chunks/pages/models-d5e80645dc4a61b1.js"],"/overview":[s,e,h,l,"static/chunks/pages/overview-1260176045ed5f7a.js"],"/prompt":[s,e,t,c,a,"static/chunks/525-5d947137d894f5fe.js","static/chunks/pages/prompt-9b869fbe3463020d.js"],"/settings":[s,e,"static/chunks/pages/settings-fa9d6a56898ba678.js"],"/system/logs":[s,t,c,a,d,n,i,j,"static/chunks/pages/system/logs-cbeeb77dc70086ae.js"],sortedPages:["/","/_app","/_error","/asset-library","/context/long-term","/context/short-term","/document-roles","/documents","/guide","/knowledge","/knowledge/file-detail","/knowledge/files","/knowledge/manage","/knowledge/search","/models","/overview","/prompt","/settings","/system/logs"]}}("static/chunks/433-233659be69169c19.js","static/chunks/787-c18af810af3433f6.js","static/chunks/576-6699fed6c88502fe.js","static/chunks/195-2c0168eacab722d2.js","static/chunks/985-4b4a3ed36ada16eb.js","static/chunks/102-881dcc464f983c89.js","static/chunks/375-4a1c73eb22d653d2.js","static/chunks/289-0031e62ca424247b.js","static/chunks/455-97ad88d6604f54b7.js",0,"static/chunks/506-93f730bc149d0dce.js","static/css/09be1fdeab8595ab.css",1e-4,NaN,"static/chunks/694-2d545cfbb9779f2c.js","static/chunks/795-d8fb7a0420512701.js","static/chunks/932-2f195f4200ce9378.js","static/chunks/861-91cbdd34b8e23151.js","static/chunks/938-45efd516bb130bd5.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298],{16403:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/documents",function(){return r(19562)}])},19562:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>ec});var l=r(65321),n=r(97109),s=r(7576),a=r(35292),i=r(33442),o=r(11702),c=r(17807),d=r(63455),u=r(88762),p=r(85114),h=r(68787),m=r(84253),g=r(38332),x=r(26171),f=r(34052),j=r(42700),y=r(58569),v=r(2256),w=r(38770),A=r(76506),S=r(57271),b=r(49604),k=r(23216),I=r(16285),C=r(26619),T=r(8263),z=r(8579),B=r(75548),E=r(7851),M=r(84742),R=r(29071),_=r(63552),D=r(26631),F=r(29606),P=r(83914),L=r(58209),W=r(54746),G=r(71330),N=r(64068),O=r(93051),H=r(38762),q=r(64629),K=r(67547),V=r(76830),U=r(1310),X=r(6578),Q=r(79059);let{TextArea:J}=s.A,{Text:Y}=a.A;function Z(e){let{type:t="info",title:r,children:n,style:s}=e,a="error"===t?"var(--colorError)":"warning"===t?"var(--colorWarning)":"success"===t?"var(--colorSuccess)":"var(--colorInfo)";return(0,l.jsxs)("div",{style:{border:"1px solid ".concat(a),background:"error"===t?"var(--colorErrorBg)":"warning"===t?"var(--colorWarningBg)":"success"===t?"var(--colorSuccessBg)":"var(--colorInfoBg)",borderRadius:8,padding:"9px 12px",...s},children:[(0,l.jsx)(Y,{strong:!0,style:{color:a},children:r}),n&&(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12},children:n})]})}function $(e){let{children:t,gap:r=12,style:n}=e;return(0,l.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:r,...n},children:t})}let ee=null;function et(){null==ee||ee.listeners.forEach(e=>e())}let er={role_binding:(0,l.jsx)(k.A,{}),context_recall:(0,l.jsx)(I.A,{}),knowledge_retrieval:(0,l.jsx)(C.A,{}),file_understanding:(0,l.jsx)(T.A,{}),fact_extraction:(0,l.jsx)(I.A,{}),chapter_generation:(0,l.jsx)(z.A,{}),asset_generation:(0,l.jsx)(B.A,{}),validation:(0,l.jsx)(E.A,{}),formatting:(0,l.jsx)(M.A,{}),llm_review:(0,l.jsx)(R.A,{}),export_ready:(0,l.jsx)(_.A,{}),reference:(0,l.jsx)(B.A,{})},el={施工组织设计:(0,l.jsx)(E.A,{}),投标文件:(0,l.jsx)(_.A,{}),技术方案:(0,l.jsx)(I.A,{}),报告:(0,l.jsx)(D.A,{}),自定义:(0,l.jsx)(z.A,{})};function en(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function es(e){return e?e.split(/[\\/]/u).pop()||e:""}function ea(e){let t=[],r=e=>{for(let l of e)l.isFolder?l.children&&r(l.children):t.push(l.key)};return r(e),t}let ei={role_binding:"角色配置绑定",context_recall:"上下文召回",knowledge_retrieval:"知识库检索",file_understanding:"多模态文件理解",fact_extraction:"LLM 事实抽取",chapter_generation:"LLM 章节生成",asset_generation:"多模态资源生成",validation:"规则校验",formatting:"格式化排版",llm_review:"LLM 审查优化",export_ready:"导出就绪",reference:"参考资源处理"},eo={"knowledge-base":"知识库","document-readiness":"生成准备度检查","quality-repair":"质量补写","export-gate":"导出门禁","context-memory":"项目上下文","final-format":"正式排版","multimodal-files":"多模态文件理解",tender_announcement:"招标公告"};function ec(){var e,t,r,a,B;let ec=(0,Q.Vr)(),{message:ed}=c.A.useApp(),[eu]=d.A.useForm(),ep=(0,n.useRef)(null),[eh,em]=(0,n.useState)([]),[eg,ex]=(0,n.useState)("construction-organization-design"),[ef,ej]=(0,n.useState)([]),[ey,ev]=(0,n.useState)([]),[ew,eA]=(0,n.useState)([]),[eS,eb]=(0,n.useState)([]),[ek,eI]=(0,n.useState)(!1),[eC,eT]=(0,n.useState)(""),[ez,eB]=(0,n.useState)([]),[eE,eM]=(0,n.useState)(!0),[eR,e_]=(0,n.useState)(!1),[eD,eF]=(0,n.useState)(null),[eP,eL]=(0,n.useState)(""),[eW,eG]=(0,n.useState)([]),[eN,eO]=(0,n.useState)(null),[eH,eq]=(0,n.useState)(null),[eK,eV]=(0,n.useState)(""),[eU,eX]=(0,n.useState)(!1),[eQ,eJ]=(0,n.useState)("idle"),[eY,eZ]=(0,n.useState)(null),[e$,e0]=(0,n.useState)(null),[e1,e2]=(0,n.useState)({start:0,end:0}),[e6,e8]=(0,n.useState)([]),[e3,e4]=(0,n.useState)(!1),[e5,e7]=(0,n.useState)(!1),[e9,te]=(0,n.useState)({}),tt=ef.filter(e=>"file"===e.type).map(e=>({label:e.name,value:e.id})),tr=d.A.useWatch("fileBindingGroups",eu)||{},tl=(0,n.useMemo)(()=>(function(e){let t={};for(let n of[...e].sort((e,t)=>e.relativePath.localeCompare(t.relativePath,"zh-CN"))){let e=n.relativePath.split("/").filter(Boolean),s="";for(let a=0;a<e.length;a++){let o=e[a],c=s;s=s?"".concat(s,"/").concat(o):o;let d=a===e.length-1;if(!t[s]){var r;t[s]={key:s,rawTitle:o,title:d?(0,l.jsx)("span",{title:n.relativePath,children:o}):(0,l.jsxs)(i.A,{size:4,children:[(0,l.jsx)(F.A,{style:{color:"#faad14"}}),(0,l.jsx)("span",{children:o})]}),isFolder:!d,fileCount:+!!d,...d?{}:{children:[]}},c&&(null==(r=t[c])?void 0:r.children)&&t[c].children.push(t[s])}d&&(t[s].fileCount=1)}}let n=e=>{for(let r of e){var t;(null==(t=r.children)?void 0:t.length)&&(n(r.children),r.fileCount=r.children.reduce((e,t)=>e+t.fileCount,0),r.title=(0,l.jsxs)(i.A,{size:4,children:[(0,l.jsx)(F.A,{style:{color:"#faad14"}}),(0,l.jsx)("span",{children:r.rawTitle}),(0,l.jsx)(o.A,{style:{margin:0},children:r.fileCount})]}))}},s=Object.values(t).filter(e=>!e.key.includes("/"));return n(s),s.filter(e=>!e.isFolder||e.fileCount>0)})(eS),[eS]),tn=(0,n.useMemo)(()=>(function e(t,r){let l=r.trim().toLowerCase();return l?t.flatMap(t=>{let r=t.children?e(t.children,l):void 0;return t.key.toLowerCase().includes(l)||t.rawTitle.toLowerCase().includes(l)||(null==r?void 0:r.length)?[{...t,children:r}]:[]}):t})(tl,eC),[tl,eC]),ts=(0,n.useMemo)(()=>ea(tl),[tl]),ta=(0,n.useMemo)(()=>{var e,t,r;return(null==(e=ew.find(e=>e.selected))?void 0:e.projectRoot)||(null==(t=ew.find(e=>e.isCurrent))?void 0:t.projectRoot)||(null==(r=ew[0])?void 0:r.projectRoot)||""},[ew]),ti=(0,n.useMemo)(()=>{let e=[],t=r=>{for(let l of r)e.push(l.key),l.children&&t(l.children)};return t(tl),e},[tl]),[to,tc]=(0,n.useState)([]),[td,tu]=(0,n.useState)(null),[tp,th]=(0,n.useState)(null),[tm,tg]=(0,n.useState)("templates"),[tx,tf]=(0,n.useState)(!1),[tj,ty]=(0,n.useState)("workflow"),tv=(0,n.useRef)(null),tw=(0,n.useRef)(null),tA=(0,n.useRef)(0),tS=(0,n.useMemo)(()=>"activeGenDocId:".concat(ta||"default"),[ta]),tb=async()=>{try{eG((await (0,X.cQ)(ta||void 0)).documents)}catch(e){eG([])}};(0,n.useEffect)(()=>{let e=()=>{ee&&(tc(ee.flowSteps),tu(ee.activeFlowKey),e_(ee.loading),ee.documentId&&eO(ee.documentId),ee.draft&&eF(ee.draft),void 0!==ee.content&&eL(ee.content))},t=ee;return null==t||t.listeners.add(e),e(),()=>{null==t||t.listeners.delete(e)}},[]),(0,n.useEffect)(()=>{eM(!0),Promise.all([(0,X.Dl)().then(e=>{var t,r;em(e.templates),ex(null!=(r=null==(t=e.templates[0])?void 0:t.id)?r:"construction-organization-design")}),(0,X.lv)().then(e=>{ej(e.roles),ev(e.configs)}),(0,X.dx)().then(e=>eA(e))]).catch(()=>ed.error(ec("common.error"))).finally(()=>eM(!1))},[ed,ec]),(0,n.useEffect)(()=>{ta&&(localStorage.removeItem("activeGenDocId"),tb())},[ta]),(0,n.useEffect)(()=>{if(0===eW.length)return;let e=localStorage.getItem(tS);if(!e)return;if(!eW.find(t=>t.id===e&&"generating"===t.status))return void localStorage.removeItem(tS);let t=setInterval(()=>{(async()=>{try{let{document:r}=await (0,X.v7)(e,!1,ta||void 0);await tb(),"generating"!==r.status&&(localStorage.removeItem(tS),clearInterval(t))}catch(e){clearInterval(t)}})()},3e3);return()=>clearInterval(t)},[eW]);let tk=(0,n.useMemo)(()=>eh.find(e=>e.id===eg),[eh,eg]),tI=ey.map(e=>({label:e.name,value:e.id})),tC=Math.max(0,to.findIndex(e=>e.key===td)),tT=e=>{var t;return e?(null==(t=ef.find(t=>t.id===e))?void 0:t.name)||eo[e]||"未知角色":""},tz=e=>e.subtitle||e.roleName||tT(e.roleId)||ei[e.type]||e.type,tB=e=>{var t,r,l;return e.promptName||((t=e.promptId)?(null==(r=ew.find(e=>e.id===t))?void 0:r.projectName)||(null==(l=ef.find(e=>e.id===t))?void 0:l.name)||eo[t]||"未知提示词":"")},tE=()=>{tA.current+=1,eV(""),eZ(null),e0(null),e8([]),e4(!1),eX(!1),eJ("idle")},tM=e=>{ex(e),eO(null),eF(null),eL(""),tE(),ty("workflow"),tf(!0),tg("drafts")},tR=async e=>{eO(e.id),ex(e.templateId);let t=t_(e.status);if(t||"failed"===e.status||"aborted"===e.status){tE(),th(e),eF(null),eL(""),e_(t),ty("workflow"),tf(!0);try{let{document:t}=await (0,X.v7)(e.id,!1,e.projectRoot||ta||void 0);tP(t),t_(t.status)?tL(t.id,t.projectRoot||e.projectRoot||ta||void 0):await tb()}catch(t){tP(e)}return}ty("editor"),tc([]),tu(null),tE();try{let{document:t}=await (0,X.v7)(e.id,!1,e.projectRoot||ta||void 0);eF(t.draft||null),eL(t.editedMarkdown||t.markdown)}catch(e){ed.error(ec("common.error"))}tf(!0)},t_=e=>"completed"!==e&&"warning"!==e&&"failed"!==e&&"aborted"!==e,tD=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eR;(null==ee?void 0:ee.loading)&&(ee.flowSteps=e,ee.activeFlowKey=t,ee.loading=r,et())},tF=e=>{var t,r,n,s,a;let i=e.executionStages||(null==(t=e.draft)?void 0:t.executionStages)||[];if(i.length>0){let t=i.map((t,r)=>{var n;let s,a=("failed"===e.status||"aborted"===e.status)&&"running"===t.status||"failed"===(s=t.status)?"error":"running"===s?"process":"fallback"===s?"warning":"finish";return{key:"".concat(t.type,"-").concat(r),title:t.title||ei[t.type]||t.type,subtitle:tz(t),description:t.message||"",status:a,icon:"role_binding"===(n=t.type)?(0,l.jsx)(k.A,{}):"knowledge_retrieval"===n?(0,l.jsx)(C.A,{}):"context_recall"===n?(0,l.jsx)(I.A,{}):"file_understanding"===n?(0,l.jsx)(T.A,{}):"fact_extraction"===n?(0,l.jsx)(I.A,{}):"chapter_generation"===n?(0,l.jsx)(z.A,{}):"llm_review"===n?(0,l.jsx)(R.A,{}):"validation"===n?(0,l.jsx)(E.A,{}):"formatting"===n?(0,l.jsx)(M.A,{}):"export_ready"===n?(0,l.jsx)(_.A,{}):(0,l.jsx)(D.A,{}),subSteps:((e,t,r)=>{let l=Array.isArray(e.details)?e.details.filter(Boolean):[],n=e.progress?"".concat(e.progress.label||"进度",":").concat(e.progress.current,"/").concat(e.progress.total):"",s=[...n?[n]:[],...l];return 0===s.length?[{key:"stage-".concat(r),title:tB(e)?"提示词:".concat(tB(e)):tz(e),status:t}]:s.slice(0,8).map((e,l)=>({key:"stage-".concat(r,"-").concat(l),title:e,status:"process"===t&&0===l?"process":"error"===t&&0===l?"error":"warning"===t?"warning":"process"===t?"finish":t}))})(t,a,r)}});"generating"===e.status&&t.length>0&&(null==(r=t.at(-1))?void 0:r.status)==="finish"&&(t[t.length-1]={...t[t.length-1],status:"process"});let o="generating"===e.status?(null==(n=t.at(-1))?void 0:n.key)||"prepare":"failed"===e.status||"aborted"===e.status?(null==(s=t.find(e=>"error"===e.status))?void 0:s.key)||(null==(a=t.at(-1))?void 0:a.key)||"prepare":"done";return{steps:t,activeKey:o}}return{steps:[],activeKey:null}},tP=e=>{th(e);let{steps:t,activeKey:r}=tF(e);tc(t),tu(r),e_(t_(e.status)),tD(t,r,t_(e.status)),("failed"===e.status||"aborted"===e.status)&&ty("workflow"),("completed"===e.status||"warning"===e.status)&&e.draft&&(eF(e.draft),eL(e.editedMarkdown||e.markdown),ty("editor"),tc([]),tu(null))},tL=(e,t)=>{tv.current&&clearInterval(tv.current),tv.current=setInterval(()=>{(async()=>{try{let{document:r}=await (0,X.v7)(e,!0,t||ta||void 0);tP(r),await tb(),t_(r.status)||(tv.current&&clearInterval(tv.current),tv.current=null,localStorage.removeItem(tS))}catch(e){}})()},2e3)};(0,n.useEffect)(()=>()=>{tv.current&&(clearInterval(tv.current),tv.current=null),tw.current&&(clearTimeout(tw.current),tw.current=null)},[]),(0,n.useEffect)(()=>{if(!eR||!td)return;let e=window.setInterval(()=>tc(e=>{let t=e.map(e=>{if(e.key!==td||"process"!==e.status)return e;let t=e.subSteps.findIndex(e=>"process"===e.status),r=t<0?0:Math.min(t+1,e.subSteps.length-1);return{...e,subSteps:e.subSteps.map((e,t)=>t<r?{...e,status:"finish"}:t===r?{...e,status:"process"}:{...e,status:"wait"})}});return tD(t,td),t}),1400);return()=>window.clearInterval(e)},[td,eR]);let tW=async()=>{eI(!0);try{let e=await (0,X.HT)({limit:5e3,projectRoot:ta||void 0});eb(e.files)}catch(e){ed.error("知识库文件加载失败")}finally{eI(!1)}},tG=e=>{let t=null!=e?e:{id:"tpl-".concat(Date.now()),name:"",description:"",category:"自定义",outputTitle:"",projectRoleConfigId:void 0,chapters:[],fileBindings:[]};eu.resetFields(),eu.setFieldsValue({...t,fileBindingGroups:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.reduce((e,t)=>(t.roleId&&t.filePath&&(e[t.roleId]=en([...e[t.roleId]||[],t.filePath])),e),{})}(t.fileBindings)}),eT(""),tW(),e7(!0)},tN=(e,t)=>{let r=eu.getFieldValue("fileBindingGroups")||{};eu.setFieldValue("fileBindingGroups",{...r,[e]:en(t)})},tO=async()=>{try{await eu.validateFields();let e=eu.getFieldsValue(!0),t=e.fileBindingGroups||{},r=Object.entries(t).flatMap(e=>{let[t,r]=e;return en(r||[]).map(e=>({roleId:t,filePath:e}))}),{fileBindingGroups:l,...n}=e,s={...n,chapters:[],fileBindings:r},a=await (0,X.l2)(s);em(a.templates),ex(a.template.id),e7(!1),await tb(),ed.success(ec("common.success"))}catch(e){e instanceof Error&&ed.error(e.message)}},tH=async e=>{try{let t=await (0,X.bV)(e);em(t.templates),ex(t.template.id),ed.success(ec("common.success"))}catch(e){ed.error(ec("common.error"))}},tq=async e=>{try{var t,r;let l=await (0,X.h0)(e);em(l.templates),ex(null!=(r=null==(t=l.templates[0])?void 0:t.id)?r:""),ed.success(ec("common.success"))}catch(e){ed.error(ec("common.error"))}},tK=async e=>{try{let{validation:t}=await (0,X.SM)(e,ta||void 0);te(r=>({...r,[e]:t}));let r=t.issues.filter(e=>"error"===e.level);if(ex(e),r.length>0)return void ed.warning("模板运行前检查未通过,请先处理阻断项");if(t.issues.length>0)return void ed.warning("模板存在警告,可在检查面板确认后继续运行");tM(e)}catch(e){ed.error(e instanceof Error?e.message:"模板运行前检查失败")}},tV=async e=>{try{await (0,X.QG)(e.id,e.projectRoot||ta||void 0),eN===e.id&&(eO(null),eF(null),eL("")),await tb(),ed.success(ec("common.success"))}catch(e){ed.error(ec("common.error"))}},tU=async(e,t)=>{let r=Date.now(),l=0,n=Date.now();for(;;){let s;if(null==t?void 0:t.aborted)throw Error("用户中止");let a=new AbortController;t&&(t.pollController=a);try{({document:s}=await (0,X.v7)(e,!0,ta||void 0,a.signal))}finally{(null==t?void 0:t.pollController)===a&&(t.pollController=void 0)}if(tP(s),s.updatedAt!==l&&(l=s.updatedAt,n=Date.now()),("completed"===s.status||"warning"===s.status)&&s.draft)return s;if("failed"===s.status||"aborted"===s.status)throw Error(s.error||("aborted"===s.status?"生成已中止":"生成失败"));if(Date.now()-r>75e5||Date.now()-n>96e4)throw Error("生成任务疑似卡住,请点击继续生成或重新生成");await new Promise(e=>window.setTimeout(e,1500))}},tX=async()=>{if(!eg)return;if((null==ee?void 0:ee.aborted)&&(ee=null),null==ee?void 0:ee.loading){tc(ee.flowSteps),tu(ee.activeFlowKey),e_(!0);return}if(!ta)return void ed.error("未识别当前项目,请先选择或打开项目后再生成文件");e_(!0);let e=(0,X.OX)({templateId:eg,projectRoot:ta});ee={id:Date.now(),templateId:eg,loading:!0,flowSteps:[],activeFlowKey:null,promise:e,listeners:new Set},tc([]),tu(null);let t=[];try{let r=await e;r.documentId&&(localStorage.setItem(tS,r.documentId),eO(r.documentId),(null==ee?void 0:ee.promise)===e&&(ee.documentId=r.documentId)),await tb();let l=r.documentId?await tU(r.documentId,(null==ee?void 0:ee.promise)===e?ee:void 0):void 0,n=r.draft||(null==l?void 0:l.draft);if(!n)throw Error("生成结果为空");(r.documentId||(null==l?void 0:l.id))&&eO(r.documentId||l.id),t.forEach(e=>window.clearTimeout(e)),eF(n),eL((null==l?void 0:l.editedMarkdown)||(null==l?void 0:l.markdown)||n.markdown),(null==ee?void 0:ee.promise)===e&&(ee.draft=n,ee.content=(null==l?void 0:l.editedMarkdown)||(null==l?void 0:l.markdown)||n.markdown);let s=l||{id:r.documentId||"draft-".concat(Date.now()),templateId:eg,title:n.title,requirement:n.requirement,projectRoot:n.projectRoot||ta,projectId:n.projectId,markdown:n.markdown,status:n.validationIssues.some(e=>"error"===e.level||"warning"===e.level)||!n.exportGate.passed?"warning":"completed",draft:n,executionStages:n.executionStages,assets:n.assets||[],createdAt:n.generatedAt,updatedAt:Date.now()},{steps:a}=tF(s);tc(a),tD(a,"done",!1),tu("done"),(null==ee?void 0:ee.promise)===e&&(ee.activeFlowKey="done",ee.loading=!1,et(),ee=null),localStorage.removeItem(tS),await tb(),ed.success(ec("common.success")),window.setTimeout(()=>{var e;return null==(e=ep.current)?void 0:e.scrollIntoView({behavior:"smooth",block:"start"})},200)}catch(l){localStorage.removeItem(tS);let t=l instanceof Error?l.message:ec("common.error"),r=/用户中止|abort|aborted/i.test(t);r||tc(e=>{let r=e.map(e=>"process"===e.status?{...e,status:"error",description:t,subSteps:((e,t)=>{if("wait"===t)return e.subSteps.map(e=>({...e,status:"wait"}));if("finish"===t)return e.subSteps.map(e=>({...e,status:"finish"}));if("error"===t)return e.subSteps.map((e,t)=>({...e,status:0===t?"error":e.status}));let r=e.subSteps.findIndex(e=>"wait"===e.status);return e.subSteps.map((e,t)=>t<r||-1===r?{...e,status:"finish"}:t===r?{...e,status:"process"}:e)})(e,"error")}:e);return tD(r,td,!1),r}),(null==ee?void 0:ee.promise)===e&&(ee.loading=!1,ee.error=t,et(),ee=null),await tb().catch(()=>void 0),r||ed.error(t)}finally{t.forEach(e=>window.clearTimeout(e)),e_(!1),(null==ee?void 0:ee.promise)===e&&(ee.loading=!1,et())}},tQ=(0,n.useRef)(!1);(0,n.useEffect)(()=>(tw.current&&(clearTimeout(tw.current),tw.current=null),!tx||"workflow"!==tj||eN||tQ.current||(null==ee?void 0:ee.loading)||null==tk||!tk.projectRoleConfigId||(tQ.current=!0,tw.current=setTimeout(()=>{tw.current=null,tx&&"workflow"===tj&&!eN&&eg==eg&&tX()},300)),tx||(tQ.current=!1),()=>{tw.current&&(clearTimeout(tw.current),tw.current=null)}),[tx,tj,eN,tk,eg]);let tJ=async e=>{try{eO(e.id),ex(e.templateId),ty("workflow"),tf(!0),e_(!0);let t=await (0,X.UQ)(e.id,e.projectRoot||ta||void 0);localStorage.setItem(tS,t.documentId),await tb();let r=await tU(t.documentId);r.draft&&(eF(r.draft),eL(r.editedMarkdown||r.markdown||r.draft.markdown),ty("editor")),localStorage.removeItem(tS),await tb(),ed.success("已继续生成并完成")}catch(e){ed.error(e instanceof Error?e.message:"继续生成失败")}finally{e_(!1)}},tY=async e=>{if((null==ee?void 0:ee.loading)&&ee.documentId===e.id){var t;ee.aborted=!0,null==(t=ee.pollController)||t.abort(),ee.loading=!1,ee.error="用户中止",et(),ee=null,e_(!1)}localStorage.removeItem(tS),tv.current&&(clearInterval(tv.current),tv.current=null);try{await (0,X.r)(e.id,e.projectRoot||ta||void 0),ed.success("已中止生成任务")}catch(e){ed.info("任务已不在运行,已刷新状态")}finally{await tb(),eN===e.id&&(eO(null),th(null),eF(null),eL(""))}},tZ=async e=>{if(eD){eq(e);try{eD.exportGate.passed||ed.warning("导出门禁存在风险项,已允许导出,请下载后人工复核。");let t={documentId:eN||void 0,title:eD.title,markdown:eP,format:e,enforceGate:!1,exportGate:eD.exportGate,useClientMarkdown:!0},r=await (0,X.UE)(t);((e,t,r)=>{let l=new Blob([e],{type:r}),n=URL.createObjectURL(l),s=document.createElement("a");s.href=n,s.download=t,s.target="_self",s.rel="noopener",s.style.display="none",document.body.appendChild(s),s.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})),s.remove(),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)})(r,"".concat(eD.title,".").concat("markdown"===e?"md":e),{markdown:"text/markdown;charset=utf-8",html:"text/html;charset=utf-8",pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}[e])}catch(e){ed.error(e instanceof Error?e.message:ec("common.error"))}finally{eq(null)}}},t$=async()=>{if(eD)try{if(eN)await (0,X.a6)(eN,{editedMarkdown:eP,markdown:eP},eD.projectRoot||ta||void 0);else{let e=await (0,X.Af)({...eD,markdown:eP});eF(e.draft)}await tb(),ed.success(ec("common.success"))}catch(e){ed.error(ec("common.error"))}},t0=(e,t)=>{e8(r=>[{id:"".concat(Date.now()),content:e,prompt:t,createdAt:Date.now()},...r].slice(0,12))},t1=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&eV(""),eZ(null),e0(null),e2({start:0,end:0})},t2=(e,t)=>{var r,l;return{title:(null==eD?void 0:eD.title)||"未命名文档",markdown:t,instruction:e,facts:null==eD||null==(r=eD.structuredFacts)?void 0:r.map(e=>"".concat(e.key,": ").concat(e.value)),chapters:null==eD||null==(l=eD.chapters)?void 0:l.map(e=>e.title),...(()=>{let e=e1.start,t=e1.end;return t>e?{selection:{start:e,end:t,text:eP.slice(e,t)},cursorOffset:e}:{cursorOffset:e}})()}},t6=async()=>{let e=eK.trim();if(!eD||!e||eU)return;let t=tA.current+1;tA.current=t,eX(!0),eJ("planning"),e0(null);try{let r=await (0,X.Gi)({mode:"plan",...t2(e,eP)});if(tA.current!==t||eN!=eN)return;if(!r.plan)throw Error("AI 未返回修改计划");eZ(r.plan)}catch(e){tA.current===t&&ed.error(e instanceof Error?e.message:ec("common.error"))}finally{tA.current===t&&(eX(!1),eJ("idle"))}},t8=async e=>{let t=eK.trim();if(!eD||!t||eU)return;let r=tA.current+1;tA.current=r,eX(!0),eJ("applying");try{let l=await (0,X.Gi)({mode:"apply",...t2(t,eP),plan:e});if(tA.current!==r||eN!=eN)return;if(!l.markdown)throw Error("AI 未返回修改结果");e0({plan:l.plan||e,markdown:l.markdown,beforeSnippet:l.beforeSnippet,afterSnippet:l.afterSnippet,summary:l.summary,changedChars:l.changedChars,prompt:t,before:eP})}catch(e){tA.current===r&&ed.error(e instanceof Error?e.message:ec("common.error"))}finally{tA.current===r&&(eX(!1),eJ("idle"))}};if(eE)return(0,l.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,l.jsx)(u.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,l.jsx)(u.A,{active:!0,paragraph:{rows:2}}),(0,l.jsx)(u.A,{active:!0,paragraph:{rows:8}})]});let t3="workflow"===tj?"工作流:".concat((null==tk?void 0:tk.name)||"选择模板"):"编辑:".concat((null==eD?void 0:eD.title)||(null==tk?void 0:tk.outputTitle)||"文档");return(0,l.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h1",{className:"pageTitle",children:ec("documents.title")}),(0,l.jsx)("p",{className:"pageDesc",children:ec("documents.description")})]}),(0,l.jsx)(p.Ay,{type:"primary",icon:(0,l.jsx)(W.A,{}),onClick:()=>tG(),children:ec("documents.newTemplate")})]}),(0,l.jsx)(h.A,{size:"small",tabList:[{key:"templates",label:"模板库 (".concat(eh.length,")")},{key:"drafts",label:"生成记录 (".concat(eW.length,")")}],activeTabKey:tm,onTabChange:tg,children:"templates"===tm?0===eh.length?(0,l.jsx)(m.A,{description:ec("common.noData")}):(0,l.jsx)(g.A,{dataSource:eh,renderItem:e=>(0,l.jsx)(g.A.Item,{style:{cursor:"pointer",padding:"10px 0"},actions:[(0,l.jsx)(p.Ay,{size:"small",icon:(0,l.jsx)(G.A,{}),onClick:t=>{t.stopPropagation(),tG(e)},children:"配置"},"cfg"),(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:(0,l.jsx)(N.A,{}),onClick:t=>{t.stopPropagation(),tK(e.id)},children:"运行"},"run"),(0,l.jsx)(p.Ay,{size:"small",icon:(0,l.jsx)(O.A,{}),onClick:t=>{t.stopPropagation(),tH(e.id)}},"copy"),(0,l.jsx)(x.A,{title:ec("documents.deleteTemplateConfirm"),onConfirm:t=>{null==t||t.stopPropagation(),tq(e.id)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,icon:(0,l.jsx)(L.A,{}),onClick:e=>e.stopPropagation()})},"del")],onClick:()=>ex(e.id),children:(0,l.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,minWidth:0,flex:1},children:[function(e,t){let r=el[e]||(0,l.jsx)(D.A,{});return(0,l.jsx)("span",{style:{color:t?"var(--colorAccent)":"var(--colorTextSecondary)",fontSize:16,marginTop:2,flexShrink:0},children:r})}(e.category,eg===e.id),(0,l.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:2},children:[(0,l.jsx)("span",{style:{fontWeight:eg===e.id?600:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),eg===e.id&&(0,l.jsx)(o.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:"当前"}),(0,l.jsx)(o.A,{style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:e.category}),e9[e.id]&&(0,l.jsxs)(o.A,{color:e9[e.id].issues.some(e=>"error"===e.level)?"error":e9[e.id].issues.length?"warning":"success",style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:["检查 ",e9[e.id].fileDiagnostics.length," 文件 / ",e9[e.id].promptDiagnostics.length," 提示词"]})]}),e.description&&(0,l.jsx)(Y,{type:"secondary",style:{fontSize:12,lineHeight:"18px"},children:e.description}),e9[e.id]&&(0,l.jsx)("div",{onClick:e=>e.stopPropagation(),style:{marginTop:8,padding:10,border:"1px solid ".concat(e9[e.id].issues.some(e=>"error"===e.level)?"var(--colorErrorBorder)":e9[e.id].issues.length?"var(--colorWarningBorder)":"var(--colorSuccessBorder)"),borderRadius:10,background:e9[e.id].issues.some(e=>"error"===e.level)?"var(--colorErrorBg)":e9[e.id].issues.length?"var(--colorWarningBg)":"var(--colorSuccessBg)"},children:(0,l.jsxs)($,{gap:6,style:{width:"100%"},children:[(0,l.jsxs)(i.A,{wrap:!0,children:[(0,l.jsx)(Y,{strong:!0,children:e9[e.id].issues.some(e=>"error"===e.level)?"运行前检查未通过":e9[e.id].issues.length?"运行前检查存在警告":"运行前检查通过"}),(0,l.jsxs)(o.A,{color:"blue",children:["文件角色 ",e9[e.id].fileDiagnostics.length]}),(0,l.jsxs)(o.A,{color:"purple",children:["提示词角色 ",e9[e.id].promptDiagnostics.length]})]}),e9[e.id].issues.length>0?e9[e.id].issues.map(e=>(0,l.jsx)(Z,{type:"error"===e.level?"error":"warning",title:e.message},e.message)):(0,l.jsx)(Z,{type:"success",title:"文件角色、提示词角色和后台自动规范检查通过,可以运行。"}),!e9[e.id].issues.some(e=>"error"===e.level)&&e9[e.id].issues.length>0&&(0,l.jsx)("div",{children:(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:(0,l.jsx)(N.A,{}),onClick:()=>tM(e.id),children:"忽略警告并继续运行"})})]})})]})]})})}):0===eW.length?(0,l.jsx)(m.A,{description:ec("common.noData")}):(0,l.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:eW.slice(0,15).map((e,t)=>{var r,n,s;let a,c;return(0,l.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"10px 12px",border:"1px solid var(--colorBorderSecondary)",borderRadius:10,cursor:"pointer",background:eN===e.id?"var(--colorFillAlter)":void 0,minWidth:0},onClick:()=>{tR(e)},children:["completed"===e.status?(0,l.jsx)(M.A,{style:{fontSize:18,color:"var(--colorOk)",flexShrink:0,marginTop:2}}):"failed"===e.status||"aborted"===e.status?(0,l.jsx)(H.A,{style:{fontSize:18,color:"var(--colorDanger)",flexShrink:0,marginTop:2}}):"warning"===e.status?(0,l.jsx)(E.A,{style:{fontSize:18,color:"var(--colorWarning)",flexShrink:0,marginTop:2}}):(0,l.jsx)(q.A,{spin:!0,style:{fontSize:18,color:"#1677ff",flexShrink:0,marginTop:2}}),(0,l.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,l.jsx)("div",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:3},children:e.title}),(0,l.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px 10px",color:"var(--colorTextSecondary)",fontSize:11},children:[(0,l.jsx)("span",{children:new Date(e.updatedAt).toLocaleString()}),(0,l.jsxs)("span",{children:["耗时 ",(e=>{let t=Math.max(0,Math.round(((e.completedAt||e.updatedAt)-e.createdAt)/1e3));if(t<60)return"".concat(t," 秒");let r=Math.floor(t/60),l=t%60;if(r<60)return l?"".concat(r," 分 ").concat(l," 秒"):"".concat(r," 分");let n=Math.floor(r/60),s=r%60;return s?"".concat(n," 小时 ").concat(s," 分"):"".concat(n," 小时")})(e)]})]}),e.partialChapters&&e.partialChapters.length>0&&(0,l.jsxs)("div",{style:{marginTop:3,fontSize:11,color:"var(--colorTextSecondary)"},children:["已完成章节 ",e.partialChapters.filter(e=>"completed"===e.status||"cached"===e.status).length,"/",e.partialChapters.length," \xb7 ",e.partialChapters.reduce((e,t)=>e+t.chars,0).toLocaleString()," 字"]}),("warning"===e.status||"failed"===e.status||"aborted"===e.status)&&(0,l.jsx)("div",{style:{marginTop:3,color:"failed"===e.status||"aborted"===e.status?"var(--colorError)":"var(--colorWarning)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.error||(null==(r=e.warningIssues)?void 0:r[0])||(null==(s=e.draft)||null==(n=s.validationIssues.find(e=>"error"===e.level||"warning"===e.level))?void 0:n.message)||"需复核"})]}),(0,l.jsxs)(i.A,{size:4,align:"center",children:[(0,l.jsx)(o.A,{color:"completed"===(a=e.status)?"success":"warning"===a?"warning":"failed"===a?"error":"aborted"===a?"default":"processing",style:{margin:0,fontSize:10,lineHeight:"18px"},children:"completed"===(c=e.status)?"已完成":"warning"===c?"需复核":"failed"===c?"失败":"aborted"===c?"已中止":"生成中"}),(0,l.jsxs)(o.A,{style:{margin:0,fontSize:10,lineHeight:"18px"},children:["#",t+1]}),(0,l.jsx)(x.A,{title:"确认删除?",onConfirm:t=>{null==t||t.stopPropagation(),tV(e)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,icon:(0,l.jsx)(L.A,{}),onClick:e=>e.stopPropagation()})}),t_(e.status)&&(0,l.jsx)(x.A,{title:"确定中止此生成任务?",onConfirm:t=>{null==t||t.stopPropagation(),tY(e)},children:(0,l.jsx)(p.Ay,{size:"small",danger:!0,onClick:e=>e.stopPropagation(),children:"中止"})}),("failed"===e.status||"aborted"===e.status)&&(0,l.jsx)(p.Ay,{size:"small",onClick:t=>{t.stopPropagation(),tJ(e)},children:"继续"}),(0,l.jsx)(p.Ay,{size:"small",type:"primary",icon:t_(e.status)?(0,l.jsx)(q.A,{spin:!0}):(0,l.jsx)(N.A,{}),onClick:t=>{t.stopPropagation(),tR(e)},children:"打开"})]})]},e.id)})})}),(0,l.jsx)(f.A,{title:t3,open:tx,onClose:()=>{tf(!1),tv.current&&(clearInterval(tv.current),tv.current=null)},size:800,mask:{closable:!1},style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:eD?(0,l.jsxs)(i.A,{wrap:!0,children:[(0,l.jsx)(p.Ay,{icon:(0,l.jsx)(K.A,{}),disabled:eU,onClick:()=>{t$()},children:ec("documents.saveDraft")}),(0,l.jsx)(p.Ay,{icon:(0,l.jsx)(V.A,{}),disabled:eU,loading:"markdown"===eH,onClick:()=>{tZ("markdown")},children:"MD"}),(0,l.jsx)(p.Ay,{disabled:eU,loading:"html"===eH,onClick:()=>{tZ("html")},children:"HTML"}),(0,l.jsx)(p.Ay,{disabled:eU,loading:"docx"===eH,onClick:()=>{tZ("docx")},children:"DOCX"}),(0,l.jsx)(p.Ay,{type:"primary",disabled:eU,loading:"pdf"===eH,onClick:()=>{tZ("pdf")},children:"PDF"})]}):eR&&"workflow"===tj?(0,l.jsx)(p.Ay,{danger:!0,onClick:()=>{(async()=>{if(eN&&await (0,X.r)(eN,ta||void 0).catch(()=>void 0),ee){var e;ee.aborted=!0,null==(e=ee.pollController)||e.abort(),ee.loading=!1,ee.error="用户中止",et(),ee=null}localStorage.removeItem(tS),tv.current&&(clearInterval(tv.current),tv.current=null),e_(!1),tc([]),tu(null),tf(!1),await tb(),ed.info("已中止生成任务")})()},children:"中止任务"}):void 0,children:(0,l.jsxs)($,{style:{width:"100%"},gap:16,children:["workflow"===tj&&to.length>0&&(0,l.jsx)($,{gap:10,children:to.map((e,t)=>{let r;return(0,l.jsxs)("div",{style:{display:"flex",gap:10,padding:10,border:"1px solid var(--colorBorderSecondary)",borderRadius:10,background:t===tC?"var(--colorFillAlter)":"var(--colorBgContainer)"},children:[(0,l.jsx)("span",{children:"process"===e.status?(0,l.jsx)(P.A,{}):"warning"===e.status?(0,l.jsx)(E.A,{style:{color:"var(--colorWarning)"}}):e.icon}),(0,l.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,l.jsxs)(i.A,{wrap:!0,children:[(0,l.jsx)(Y,{strong:!0,children:e.title}),(0,l.jsx)(o.A,{color:"finish"===e.status?"success":"error"===e.status?"error":"warning"===e.status?"warning":"process"===e.status?"processing":"default",children:"warning"===(r=e.status)?"finish":r})]}),(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12,whiteSpace:"pre-wrap"},children:(0,l.jsxs)("div",{children:[e.subtitle&&(0,l.jsx)("div",{style:{marginBottom:4},children:(0,l.jsx)(o.A,{children:e.subtitle})}),(0,l.jsx)("div",{children:e.description}),(0,l.jsx)("div",{style:{marginTop:4},children:e.subSteps.map(e=>{var t;return(0,l.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,fontSize:12,color:"process"===e.status?"var(--colorPrimary)":"var(--colorTextSecondary)"},children:["process"===(t=e.status)?(0,l.jsx)(P.A,{}):"finish"===t?(0,l.jsx)(M.A,{}):"warning"===t?(0,l.jsx)(E.A,{style:{color:"var(--colorWarning)"}}):"error"===t?(0,l.jsx)(L.A,{}):(0,l.jsx)("span",{style:{display:"inline-block",height:6,width:6,borderRadius:"50%",background:"var(--colorTextTertiary)"}}),(0,l.jsx)("span",{children:e.title})]},e.key)})})]})})]})]},e.key)})}),"workflow"===tj&&(null==tp?void 0:tp.partialChapters)&&tp.partialChapters.length>0&&(0,l.jsx)(h.A,{size:"small",title:"章节进度",extra:(0,l.jsxs)(o.A,{color:"blue",children:[tp.partialChapters.filter(e=>"completed"===e.status||"cached"===e.status).length,"/",tp.partialChapters.length]}),children:(0,l.jsxs)($,{gap:6,style:{width:"100%"},children:[tp.partialChapters.slice(0,12).map(e=>(0,l.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:8,fontSize:12},children:[(0,l.jsx)(Y,{ellipsis:!0,style:{maxWidth:480},children:e.title}),(0,l.jsxs)(i.A,{size:6,children:[(0,l.jsx)(o.A,{color:"cached"===e.status?"purple":"failed"===e.status?"error":"success",children:"cached"===e.status?"缓存":"failed"===e.status?"失败":"完成"}),(0,l.jsxs)(Y,{type:"secondary",children:[e.chars.toLocaleString()," 字"]})]})]},e.id)),tp.partialChapters.length>12&&(0,l.jsxs)(Y,{type:"secondary",style:{fontSize:12},children:["其余 ",tp.partialChapters.length-12," 个章节将在完成后汇总展示"]})]})}),"workflow"===tj&&(null==tp||null==(e=tp.reviewMetadata)?void 0:e.diagnostics)&&(0,l.jsx)(Z,{type:"info",title:"后台自动优化",children:"策略:".concat(tp.reviewMetadata.diagnostics.strategy.mode,";LLM 调用 ").concat(tp.reviewMetadata.diagnostics.llm.calls," 次;缓存命中 ").concat(tp.reviewMetadata.diagnostics.cache.chapterHits," 章/").concat(tp.reviewMetadata.diagnostics.cache.sectionHits||0," 小节;噪声过滤 ").concat((null==(t=tp.reviewMetadata.diagnostics.evidence)?void 0:t.filteredNoise)||0," 条;质量门禁 阻断").concat((null==(r=tp.reviewMetadata.diagnostics.quality)?void 0:r.blockingCount)||0,"/重要").concat((null==(a=tp.reviewMetadata.diagnostics.quality)?void 0:a.importantCount)||0,"/轻微").concat((null==(B=tp.reviewMetadata.diagnostics.quality)?void 0:B.minorCount)||0,";自动限流调整 ").concat(tp.reviewMetadata.diagnostics.llm.limitAdjustments," 次。审查与诊断信息仅用于系统修复,不会写入正文或导出文件。")}),"workflow"===tj&&eR&&0===to.length&&(0,l.jsxs)("div",{style:{textAlign:"center",padding:40},children:[(0,l.jsx)(j.A,{}),(0,l.jsx)("div",{style:{marginTop:12,color:"var(--colorTextSecondary)"},children:"正在准备生成…"})]}),eD&&(0,l.jsx)("div",{ref:ep,children:(0,l.jsx)(y.A,{items:[{key:"edit",label:ec("documents.edit"),children:(0,l.jsxs)($,{gap:16,style:{width:"100%"},children:[(0,l.jsx)(J,{rows:28,value:eP,disabled:eU,onSelect:e=>{var t,r,l;return e2({start:null!=(t=e.currentTarget.selectionStart)?t:0,end:null!=(l=null!=(r=e.currentTarget.selectionEnd)?r:e.currentTarget.selectionStart)?l:0})},onChange:e=>{var t,r,l;eL(e.target.value),eZ(null),e0(null),e2({start:null!=(t=e.target.selectionStart)?t:0,end:null!=(l=null!=(r=e.target.selectionEnd)?r:e.target.selectionStart)?l:0})}}),(0,l.jsx)(h.A,{size:"small",style:{borderRadius:12,background:"linear-gradient(135deg, var(--colorFillAlter), var(--colorBgContainer))"},children:(0,l.jsxs)($,{gap:16,style:{width:"100%"},children:[(0,l.jsxs)(i.A,{align:"start",style:{width:"100%",justifyContent:"space-between"},children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)(i.A,{size:6,children:[(0,l.jsx)(R.A,{style:{color:"var(--colorAccent)"}}),(0,l.jsx)(Y,{strong:!0,children:"精准修改"}),(0,l.jsx)(o.A,{color:"blue",children:"AI 辅助"})]}),(0,l.jsx)("div",{style:{marginTop:4,color:"var(--colorTextSecondary)",fontSize:12},children:"针对当前编辑内容补充更具体的要求,AI 会保留文档结构并按你的提示细化修改。"})]}),(0,l.jsxs)(p.Ay,{size:"small",icon:(0,l.jsx)(U.A,{}),onClick:()=>e4(e=>!e),disabled:0===e6.length,children:["历史版本 ",e6.length>0?e6.length:""]})]}),(0,l.jsx)(Z,{type:"info",title:"系统只负责识别修改范围,不改写你的提示词;选中文字后优先只改选区,没有选区时按光标所在小节/章节定位。"}),(0,l.jsx)(J,{rows:4,value:eK,disabled:eU,onChange:e=>{eV(e.target.value),eZ(null),e0(null)},placeholder:"例如:写细一点;润色这段;第七章补充高处作业和临电安全措施;把安全检查频次改成每周一次。"}),(0,l.jsxs)(i.A,{wrap:!0,style:{width:"100%",justifyContent:"space-between"},children:[(0,l.jsx)(i.A,{wrap:!0,children:["写细一点","更专业","只润色选区","补充可执行措施"].map(e=>(0,l.jsx)(p.Ay,{size:"small",disabled:eU,onClick:()=>eV(t=>t?"".concat(t,";").concat(e):e),children:e},e))}),(0,l.jsx)(p.Ay,{type:"primary",icon:(0,l.jsx)(R.A,{}),loading:eU&&"planning"===eQ,disabled:!eK.trim()||eU,onClick:()=>{t6()},children:"识别修改范围"})]}),eY&&!e$&&(0,l.jsx)(h.A,{size:"small",style:{borderRadius:10,borderColor:"var(--colorAccent)"},children:(0,l.jsxs)($,{gap:8,style:{width:"100%"},children:[(0,l.jsxs)(i.A,{wrap:!0,children:[(0,l.jsx)(o.A,{color:"purple",children:eY.scope}),(0,l.jsx)(o.A,{color:"blue",children:eY.action}),(0,l.jsxs)(o.A,{color:eY.confidence>=.8?"green":"orange",children:["置信度 ",Math.round(100*eY.confidence),"%"]}),eY.targetTitle&&(0,l.jsx)(Y,{strong:!0,children:eY.targetTitle})]}),(0,l.jsx)(Y,{children:eY.summary}),(0,l.jsx)(Y,{type:"secondary",style:{fontSize:12},children:"将按你的原始提示词执行,不添加额外编辑任务。"}),(0,l.jsxs)(i.A,{children:[(0,l.jsx)(p.Ay,{type:"primary",loading:eU&&"applying"===eQ,onClick:()=>{t8(eY)},children:"执行并预览"}),(0,l.jsx)(p.Ay,{disabled:eU,onClick:()=>eZ(null),children:"取消"})]})]})}),e$&&(0,l.jsx)(h.A,{size:"small",style:{borderRadius:10,borderColor:"var(--colorSuccess)"},children:(0,l.jsxs)($,{gap:8,style:{width:"100%"},children:[(0,l.jsxs)(i.A,{wrap:!0,children:[(0,l.jsx)(o.A,{color:"green",children:"修改预览"}),(0,l.jsx)(Y,{children:e$.summary||e$.plan.summary}),(0,l.jsxs)(o.A,{children:[e$.changedChars&&e$.changedChars>0?"+".concat(e$.changedChars):e$.changedChars," 字符"]})]}),(0,l.jsxs)(v.A,{gutter:12,children:[(0,l.jsxs)(w.A,{span:12,children:[(0,l.jsx)(Y,{strong:!0,children:"修改前"}),(0,l.jsx)("div",{style:{marginTop:6,maxHeight:180,overflow:"auto",padding:10,borderRadius:8,background:"var(--colorFillAlter)",whiteSpace:"pre-wrap",fontSize:12},children:e$.beforeSnippet||"无片段预览"})]}),(0,l.jsxs)(w.A,{span:12,children:[(0,l.jsx)(Y,{strong:!0,children:"修改后"}),(0,l.jsx)("div",{style:{marginTop:6,maxHeight:180,overflow:"auto",padding:10,borderRadius:8,background:"var(--colorFillAlter)",whiteSpace:"pre-wrap",fontSize:12},children:e$.afterSnippet||"无片段预览"})]})]}),(0,l.jsxs)(i.A,{children:[(0,l.jsx)(p.Ay,{type:"primary",onClick:()=>{e$&&(t0(e$.before,e$.prompt),eL(e$.markdown),t1(!0),ed.success("已应用精准修改"))},children:"应用到文档"}),(0,l.jsx)(p.Ay,{onClick:()=>e0(null),children:"返回计划"}),(0,l.jsx)(p.Ay,{danger:!0,onClick:()=>{eZ(null),e0(null)},children:"放弃"})]})]})}),e3&&(0,l.jsx)("div",{style:{borderTop:"1px solid var(--colorBorderSecondary)",paddingTop:12},children:(0,l.jsx)(g.A,{size:"small",dataSource:e6,locale:{emptyText:"暂无历史版本"},renderItem:e=>(0,l.jsx)(g.A.Item,{actions:[(0,l.jsx)(p.Ay,{size:"small",disabled:eU,onClick:()=>{t0(eP,"恢复前版本"),eL(e.content),t1(!0),ed.success("已恢复历史版本")},children:"恢复"},"restore")],children:(0,l.jsx)(g.A.Item.Meta,{title:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(Y,{children:new Date(e.createdAt).toLocaleString()}),(0,l.jsx)(o.A,{children:e.prompt})]}),description:(0,l.jsx)(Y,{type:"secondary",ellipsis:!0,children:e.content.replace(/\s+/gu," ").slice(0,120)})})})})})]})})]})},{key:"chapters-facts",label:"章节与事实",children:(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[eD.chapters.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsxs)(Y,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["章节 (",eD.chapters.length,")"]}),(0,l.jsx)(g.A,{size:"small",dataSource:eD.chapters,renderItem:e=>(0,l.jsx)(g.A.Item,{children:(0,l.jsx)(g.A.Item.Meta,{title:e.title,description:"证据: ".concat(e.evidence.length," \xb7 缺失: ").concat(e.missingFacts.length)})})})]}),eD.structuredFacts.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsxs)(Y,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["结构化事实 (",eD.structuredFacts.length,")"]}),(0,l.jsx)(A.A,{size:"small",column:1,bordered:!0,children:eD.structuredFacts.map((e,t)=>(0,l.jsxs)(A.A.Item,{label:e.key,children:[(0,l.jsx)("span",{children:e.value}),(0,l.jsx)(o.A,{style:{marginLeft:8},children:e.confidence.toFixed(2)}),(0,l.jsx)(Y,{type:"secondary",style:{fontSize:11,marginLeft:8},children:e.sourceFile})]},t))})]})]})},{key:"sources-missing",label:"来源与缺失",children:(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)(Y,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["引用来源 (",eD.sources.length,")"]}),0===eD.sources.length?(0,l.jsx)(m.A,{description:"暂无"}):(0,l.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:eD.sources.map(e=>(0,l.jsxs)(o.A,{color:"blue",children:[e.filePath," (",e.count,")"]},e.filePath))})]}),(0,l.jsxs)("div",{children:[(0,l.jsxs)(Y,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:["缺失项 (",eD.missingItems.length,")"]}),0===eD.missingItems.length?(0,l.jsx)(m.A,{description:"无缺失"}):(0,l.jsx)(g.A,{size:"small",dataSource:eD.missingItems,renderItem:e=>(0,l.jsx)(g.A.Item,{children:e})})]})]})},{key:"validation",label:"校验 (".concat(eD.validationIssues.length,")"),children:0===eD.validationIssues.length?(0,l.jsx)(m.A,{description:"校验通过"}):(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[eD.validationIssues.map(e=>(0,l.jsxs)("div",{style:{border:"1px solid var(--colorBorderSecondary)",borderRadius:8,padding:12},children:[(0,l.jsx)(o.A,{color:"error"===e.level?"error":"warning"===e.level?"warning":"blue",children:e.level}),(0,l.jsx)("div",{style:{marginTop:6,whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-all",lineHeight:1.6},children:e.message}),e.suggestion&&(0,l.jsx)("div",{style:{marginTop:6,color:"var(--colorTextSecondary)",whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-all"},children:e.suggestion})]},"".concat(e.level,"-").concat(e.message))),eD.exportGate.checklist.length>0&&(0,l.jsxs)("div",{style:{marginTop:8},children:[(0,l.jsx)(Y,{strong:!0,style:{fontSize:13,marginBottom:8,display:"block"},children:"导出门禁"}),(0,l.jsx)(g.A,{size:"small",dataSource:eD.exportGate.checklist,renderItem:e=>(0,l.jsxs)(g.A.Item,{children:[(0,l.jsx)(Y,{style:{overflowWrap:"anywhere",wordBreak:"break-word"},children:e.label}),(0,l.jsx)(o.A,{color:e.passed?"success":"error",children:e.passed?"PASS":"FAIL"})]})})]})]})},{key:"stages",label:"执行阶段 (".concat(eD.executionStages.length,")"),children:(0,l.jsx)(g.A,{size:"small",dataSource:eD.executionStages,renderItem:e=>(0,l.jsxs)(g.A.Item,{children:[(0,l.jsx)(g.A.Item.Meta,{avatar:er[e.type]||(0,l.jsx)(D.A,{}),title:(0,l.jsx)(Y,{title:e.roleId,style:{overflowWrap:"anywhere",wordBreak:"break-word"},children:"".concat(ei[e.type]||e.type," \xb7 ").concat(e.roleName||tT(e.roleId))}),description:(0,l.jsx)(Y,{type:"secondary",style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-word"},children:e.message})}),(0,l.jsx)(o.A,{color:"success"===e.status?"success":"failed"===e.status?"error":"skipped"===e.status?"default":"warning",children:e.status})]})})}]})})]})}),(0,l.jsx)(f.A,{title:ec("documents.templateEditor"),open:e5,onClose:()=>e7(!1),size:860,mask:{closable:!1},styles:{body:{padding:20,overflow:"auto"},header:{borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(p.Ay,{onClick:()=>e7(!1),children:ec("common.cancel")}),(0,l.jsx)(p.Ay,{type:"primary",onClick:()=>{tO()},children:ec("common.save")})]}),children:(0,l.jsxs)(d.A,{form:eu,layout:"vertical",requiredMark:"optional",children:[(0,l.jsxs)(v.A,{gutter:12,children:[(0,l.jsx)(d.A.Item,{name:"id",hidden:!0,children:(0,l.jsx)(s.A,{})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"name",label:ec("documents.templateName"),rules:[{required:!0}],children:(0,l.jsx)(s.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"category",label:ec("documents.templateCategory"),children:(0,l.jsx)(s.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:8,children:(0,l.jsx)(d.A.Item,{name:"outputTitle",label:ec("documents.outputTitle"),children:(0,l.jsx)(s.A,{})})}),(0,l.jsx)(w.A,{xs:24,md:12,children:(0,l.jsx)(d.A.Item,{name:"description",label:ec("documents.templateDescription"),children:(0,l.jsx)(s.A,{})})})]}),(0,l.jsx)(d.A.Item,{name:"projectRoleConfigId",label:ec("documents.projectRoleConfig"),rules:[{required:!0,message:ec("documents.projectRoleConfigRequired")}],children:(0,l.jsx)(S.A,{showSearch:!0,placeholder:ec("documents.projectRoleConfigRequired"),options:tI})}),(0,l.jsxs)("div",{style:{marginBottom:16},children:[(0,l.jsxs)(i.A,{style:{width:"100%",justifyContent:"space-between",marginBottom:8},children:[(0,l.jsx)(Y,{strong:!0,children:"项目文件绑定"}),(0,l.jsx)(o.A,{color:"blue",children:"按文件角色多选"})]}),(0,l.jsx)(Z,{type:"info",title:"每个文件角色可直接勾选文件或文件夹;勾选文件夹会自动绑定该文件夹下所有文件。保存时仍按具体文件路径绑定,兼容现有模板和生成流程。",style:{marginBottom:12}}),(0,l.jsx)(s.A.Search,{allowClear:!0,placeholder:"搜索文件或文件夹",value:eC,onChange:e=>eT(e.target.value),style:{marginBottom:12}}),ek?(0,l.jsxs)("div",{style:{textAlign:"center",padding:24},children:[(0,l.jsx)(j.A,{}),(0,l.jsx)("div",{style:{marginTop:12,color:"var(--colorTextSecondary)"},children:"正在加载知识库文件…"})]}):0===tt.length?(0,l.jsx)(m.A,{image:m.A.PRESENTED_IMAGE_SIMPLE,description:"暂无可用文件角色"}):0===tl.length?(0,l.jsx)(m.A,{image:m.A.PRESENTED_IMAGE_SIMPLE,description:"暂无知识库文件"}):tt.map(e=>{let t=en(tr[e.value]||[]).filter(e=>ts.includes(e)),r=new Set(ea(tn));return(0,l.jsxs)(h.A,{size:"small",style:{marginBottom:12},title:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(Y,{children:e.label}),(0,l.jsxs)(o.A,{color:"blue",children:["已选 ",t.length]})]}),extra:(0,l.jsx)(p.Ay,{size:"small",disabled:0===t.length,onClick:()=>tN(e.value,[]),children:"清空"}),children:[(0,l.jsx)(d.A.Item,{name:["fileBindingGroups",e.value],hidden:!0,children:(0,l.jsx)(s.A,{})}),(0,l.jsx)("div",{style:{marginBottom:8,color:"var(--colorTextSecondary)",fontSize:12},children:t.length>0?t.slice(0,3).map(es).join("、")+(t.length>3?" 等 ".concat(t.length," 个文件"):""):"未选择文件"}),(0,l.jsx)(b.A,{checkable:!0,blockNode:!0,height:320,treeData:tn,checkedKeys:t,expandedKeys:eC.trim()?ti:ez,onExpand:e=>eB(e),onCheck:(l,n)=>{let s=new Set(t.filter(e=>!r.has(e)));for(let e of n.checkedNodes)e.isFolder?ea([e]).forEach(e=>s.add(e)):s.add(e.key);tN(e.value,Array.from(s))}})]},e.value)})]}),(0,l.jsx)(Z,{type:"info",title:"文档规范由后台根据模板、提示词和角色绑定自动生成,无需手动维护规范包。"})]})})]})}}},e=>{e.O(0,[433,787,576,195,375,455,506,63,636,593,792],()=>e(e.s=16403)),_N_E=e.O()}]);
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.71",
4
4
  "description": "Customize Agent Web 管理控制台",
5
5
  "exports": {
6
6
  "./package.json": "./package.json"
@@ -50,8 +50,8 @@
50
50
  "tesseract.js": "^7.0.0",
51
51
  "typescript": "^6.0.3",
52
52
  "xlsx": "^0.18.5",
53
+ "@customize-agent/knowledge": "^4.0.29",
53
54
  "@customize-agent/runtime": "^3.0.9",
54
- "@customize-agent/knowledge": "^4.0.28",
55
55
  "@customize-agent/llm": "^3.0.9"
56
56
  },
57
57
  "devDependencies": {
@@ -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}}};