@customize-agent/server 4.0.5 → 4.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +176 -271
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/routes-manifest.json +8 -0
  5. package/.next/server/chunks/1936.js +385 -0
  6. package/.next/server/chunks/8204.js +1 -1
  7. package/.next/server/middleware-build-manifest.js +1 -1
  8. package/.next/server/pages/404.html +1 -1
  9. package/.next/server/pages/500.html +1 -1
  10. package/.next/server/pages/_app.js +1 -1
  11. package/.next/server/pages/_app.js.nft.json +1 -1
  12. package/.next/server/pages/_error.js +1 -1
  13. package/.next/server/pages/_error.js.nft.json +1 -1
  14. package/.next/server/pages/api/config/models.js +1 -1
  15. package/.next/server/pages/api/jobs/[id].js +2 -0
  16. package/.next/server/pages/api/jobs/[id].js.nft.json +1 -0
  17. package/.next/server/pages/api/jobs.js +2 -0
  18. package/.next/server/pages/api/jobs.js.nft.json +1 -0
  19. package/.next/server/pages/api/kb/files/open.js +1 -1
  20. package/.next/server/pages/api/kb/files.js +2 -2
  21. package/.next/server/pages/api/kb/operations.js +2 -2
  22. package/.next/server/pages/api/kb/reindex.js +2 -2
  23. package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
  24. package/.next/server/pages/api/kb/upload.js +2 -2
  25. package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
  26. package/.next/server/pages/asset-library.html +1 -1
  27. package/.next/server/pages/asset-library.js.nft.json +1 -1
  28. package/.next/server/pages/context/long-term.html +1 -1
  29. package/.next/server/pages/context/long-term.js.nft.json +1 -1
  30. package/.next/server/pages/context/short-term.html +1 -1
  31. package/.next/server/pages/context/short-term.js.nft.json +1 -1
  32. package/.next/server/pages/document-roles.html +1 -1
  33. package/.next/server/pages/document-roles.js.nft.json +1 -1
  34. package/.next/server/pages/document-specs.html +1 -1
  35. package/.next/server/pages/document-specs.js.nft.json +1 -1
  36. package/.next/server/pages/documents.html +1 -1
  37. package/.next/server/pages/documents.js.nft.json +1 -1
  38. package/.next/server/pages/guide.html +1 -1
  39. package/.next/server/pages/guide.js.nft.json +1 -1
  40. package/.next/server/pages/index.html +1 -1
  41. package/.next/server/pages/index.js.nft.json +1 -1
  42. package/.next/server/pages/knowledge/file-detail.html +1 -1
  43. package/.next/server/pages/knowledge/file-detail.js.nft.json +1 -1
  44. package/.next/server/pages/knowledge/files.html +1 -1
  45. package/.next/server/pages/knowledge/files.js.nft.json +1 -1
  46. package/.next/server/pages/knowledge/manage.html +1 -1
  47. package/.next/server/pages/knowledge/manage.js.nft.json +1 -1
  48. package/.next/server/pages/knowledge/search.html +1 -1
  49. package/.next/server/pages/knowledge/search.js.nft.json +1 -1
  50. package/.next/server/pages/knowledge.html +1 -1
  51. package/.next/server/pages/knowledge.js.nft.json +1 -1
  52. package/.next/server/pages/models.html +1 -1
  53. package/.next/server/pages/models.js.nft.json +1 -1
  54. package/.next/server/pages/overview.html +1 -1
  55. package/.next/server/pages/overview.js.nft.json +1 -1
  56. package/.next/server/pages/prompt.html +1 -1
  57. package/.next/server/pages/prompt.js.nft.json +1 -1
  58. package/.next/server/pages/settings.html +1 -1
  59. package/.next/server/pages/settings.js.nft.json +1 -1
  60. package/.next/server/pages/system/logs.html +1 -1
  61. package/.next/server/pages/system/logs.js.nft.json +1 -1
  62. package/.next/server/pages-manifest.json +27 -25
  63. package/.next/static/2m64hom9a1sJPcvcwOlZ5/_buildManifest.js +1 -0
  64. package/.next/static/chunks/131-ad10d55ed64e627e.js +1 -0
  65. package/.next/static/chunks/{7150-123ff059dd0e2eb9.js → 150-57173312c2b70e98.js} +4 -4
  66. package/.next/static/chunks/195-9f2e4c67a9deff05.js +1 -0
  67. package/.next/static/chunks/20-23d24b40b69faf0f.js +8 -0
  68. package/.next/static/chunks/265-c3a46cef96364aac.js +1 -0
  69. package/.next/static/chunks/{1289-c788c44e65e9dc64.js → 289-36c210992d5009d5.js} +1 -1
  70. package/.next/static/chunks/412-03a4cc00655c0ec0.js +1 -0
  71. package/.next/static/chunks/433-ef3d7675b81826a9.js +1 -0
  72. package/.next/static/chunks/447-772df02993a8609b.js +1 -0
  73. package/.next/static/chunks/455-9e1e1c7e96845347.js +6 -0
  74. package/.next/static/chunks/506-b97aadd3e451b379.js +1 -0
  75. package/.next/static/chunks/512-e2813c7e9454d53c.js +1 -0
  76. package/.next/static/chunks/576-679ab6348b33b960.js +1 -0
  77. package/.next/static/chunks/698-0599729ce14a2e49.js +1 -0
  78. package/.next/static/chunks/749-dcb0cd85d1455f34.js +1 -0
  79. package/.next/static/chunks/{8787-c8bea0f25cbd3cf0.js → 787-196a2bed7b11745a.js} +1 -1
  80. package/.next/static/chunks/788-7de94bb44b70fb19.js +1 -0
  81. package/.next/static/chunks/932-823e1ae10dd43b8b.js +1 -0
  82. package/.next/static/chunks/938-0063785681203bb5.js +1 -0
  83. package/.next/static/chunks/985-da0b1f68e59d1e76.js +4 -0
  84. package/.next/static/chunks/framework-161be364fd69a7ce.js +1 -0
  85. package/.next/static/chunks/main-91fb767ebd74c9c1.js +1 -0
  86. package/.next/static/chunks/pages/_app-15da9e1394f6eaca.js +212 -0
  87. package/.next/static/chunks/pages/_error-282257fbdcc167b4.js +1 -0
  88. package/.next/static/chunks/pages/asset-library-e9ddfe1cbaac42d9.js +1 -0
  89. package/.next/static/chunks/pages/context/{long-term-820cba5f1ae3a6cd.js → long-term-2e6a30a8f879df47.js} +1 -1
  90. package/.next/static/chunks/pages/context/short-term-730211234fa3add6.js +1 -0
  91. package/.next/static/chunks/pages/{document-roles-ab6dfead3fd99a2c.js → document-roles-fb9e3ce4719fda9b.js} +1 -1
  92. package/.next/static/chunks/pages/document-specs-033d848b03b54df3.js +1 -0
  93. package/.next/static/chunks/pages/{documents-471786ecea050f17.js → documents-a21e4c98480b1a95.js} +1 -1
  94. package/.next/static/chunks/pages/{guide-2a3ec07403e02e1f.js → guide-6c680688d15f6200.js} +1 -1
  95. package/.next/static/chunks/pages/index-c5e0758e6b31deee.js +1 -0
  96. package/.next/static/chunks/pages/knowledge/file-detail-0a5e267f77f4e8b3.js +1 -0
  97. package/.next/static/chunks/pages/knowledge/files-4d2754cc303c2a70.js +1 -0
  98. package/.next/static/chunks/pages/knowledge/manage-25eb1a993b155450.js +1 -0
  99. package/.next/static/chunks/pages/knowledge/search-2cee4e8b8792170c.js +1 -0
  100. package/.next/static/chunks/pages/knowledge-905248d8dcb15453.js +1 -0
  101. package/.next/static/chunks/pages/models-b5f68c4c70257495.js +1 -0
  102. package/.next/static/chunks/pages/{overview-5235c02260509635.js → overview-37f93a823b4750f3.js} +1 -1
  103. package/.next/static/chunks/pages/prompt-4cf07545f8388d85.js +1 -0
  104. package/.next/static/chunks/pages/settings-fa9d6a56898ba678.js +1 -0
  105. package/.next/static/chunks/pages/system/logs-f4e222140dc7b30c.js +1 -0
  106. package/.next/static/chunks/{webpack-689755a4ff6d1f93.js → webpack-77d10b4726f13aa5.js} +1 -1
  107. package/package.json +3 -3
  108. package/scripts/kb-index-worker.cjs +128 -0
  109. package/.next/server/chunks/1547.js +0 -385
  110. package/.next/server/chunks/550.js +0 -1
  111. package/.next/server/chunks/9270.js +0 -1
  112. package/.next/static/IWuWLSb2ffDzvKo6MD3cy/_buildManifest.js +0 -1
  113. package/.next/static/chunks/1515-051d4383493143c9.js +0 -1
  114. package/.next/static/chunks/2073-244191fe7cc6e330.js +0 -4
  115. package/.next/static/chunks/2225-a90b5cc9338c63fa.js +0 -1
  116. package/.next/static/chunks/261-8a5ce39d74fc746e.js +0 -1
  117. package/.next/static/chunks/2884-b2944538a4a0d9b2.js +0 -1
  118. package/.next/static/chunks/3057-9eda004e07594513.js +0 -1
  119. package/.next/static/chunks/3455-c73ce4738620db20.js +0 -6
  120. package/.next/static/chunks/347-62c74776c299477d.js +0 -4
  121. package/.next/static/chunks/4052-9caaaa494d67a7e0.js +0 -1
  122. package/.next/static/chunks/4277-ba039fcf8f4e9cdc.js +0 -1
  123. package/.next/static/chunks/4427-302c5267a1f8493e.js +0 -1
  124. package/.next/static/chunks/4833-bf56f1203e2daffa.js +0 -28
  125. package/.next/static/chunks/5292-e65eab4f54b9f7ff.js +0 -16
  126. package/.next/static/chunks/5938-da5d441b981ec422.js +0 -1
  127. package/.next/static/chunks/6506-9d3cdc1ea816d7c4.js +0 -1
  128. package/.next/static/chunks/6578-6422ce4e29eb07d4.js +0 -1
  129. package/.next/static/chunks/6985-29200efa04920cb3.js +0 -4
  130. package/.next/static/chunks/7223-58376fd8a1d62df4.js +0 -1
  131. package/.next/static/chunks/7271-587c30b66ea4e619.js +0 -16
  132. package/.next/static/chunks/7576-b34ccf53f6efc388.js +0 -1
  133. package/.next/static/chunks/7889-8531b79751a71e39.js +0 -1
  134. package/.next/static/chunks/8326-b79c7555af5866e7.js +0 -8
  135. package/.next/static/chunks/861-dd60ef688592115e.js +0 -1
  136. package/.next/static/chunks/8676-5982391f15ea1190.js +0 -1
  137. package/.next/static/chunks/8732-69ffc27ed6c68f6f.js +0 -4
  138. package/.next/static/chunks/8932-e1bb3137986c259a.js +0 -1
  139. package/.next/static/chunks/9144-51689069a3d341e5.js +0 -1
  140. package/.next/static/chunks/9189-03f286defdb92816.js +0 -10
  141. package/.next/static/chunks/9773-53116cd0bf4b961a.js +0 -1
  142. package/.next/static/chunks/framework-fbc6f575b16f07d7.js +0 -1
  143. package/.next/static/chunks/main-105db6ecf7f64ff3.js +0 -1
  144. package/.next/static/chunks/pages/_app-03f3204a695aa8bc.js +0 -140
  145. package/.next/static/chunks/pages/_error-c01b6fb772028676.js +0 -1
  146. package/.next/static/chunks/pages/asset-library-634d18652eb7507d.js +0 -1
  147. package/.next/static/chunks/pages/context/short-term-3332ffb90b3b58a9.js +0 -1
  148. package/.next/static/chunks/pages/document-specs-565cf77237fce3d5.js +0 -1
  149. package/.next/static/chunks/pages/index-cc55686ed0309a22.js +0 -1
  150. package/.next/static/chunks/pages/knowledge/file-detail-f5e8f9bc35ebb92d.js +0 -1
  151. package/.next/static/chunks/pages/knowledge/files-88aba3534bd722f9.js +0 -1
  152. package/.next/static/chunks/pages/knowledge/manage-5629ccce14402b99.js +0 -1
  153. package/.next/static/chunks/pages/knowledge/search-ad678d4bc8137cb5.js +0 -1
  154. package/.next/static/chunks/pages/knowledge-55e4c53985e79449.js +0 -1
  155. package/.next/static/chunks/pages/models-1788b9741155e3ce.js +0 -1
  156. package/.next/static/chunks/pages/prompt-0184d79af09db7e1.js +0 -1
  157. package/.next/static/chunks/pages/settings-fd31c9ef833cf0af.js +0 -1
  158. package/.next/static/chunks/pages/system/logs-8040fb1e0c814a0c.js +0 -1
  159. /package/.next/static/{IWuWLSb2ffDzvKo6MD3cy → 2m64hom9a1sJPcvcwOlZ5}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6920],{2548:(e,s,l)=>{"use strict";l.r(s),l.d(s,{default:()=>b});var i=l(65321),r=l(35292),c=l(68787),n=l(2256),d=l(38770),t=l(11702),x=l(9730),h=l(13399),j=l(55122),a=l(15622),o=l(71330),g=l(8579),m=l(66926),A=l(7851),p=l(84742),u=l(32620);let{Paragraph:k,Title:z,Text:N}=r.A,y=[{icon:(0,i.jsx)(o.A,{}),title:"准备阶段",color:"blue",items:["配置模型","上传知识库资料","创建提示词"]},{icon:(0,i.jsx)(g.A,{}),title:"编排阶段",color:"purple",items:["创建文件角色","创建提示词角色","创建项目角色配置并排序"]},{icon:(0,i.jsx)(m.A,{}),title:"生成阶段",color:"geekblue",items:["创建模板","上下文召回","知识库证据增强","动态执行状态"]},{icon:(0,i.jsx)(A.A,{}),title:"交付阶段",color:"green",items:["审查事实和来源","检查导出门禁","导出正式文件"]}],w=[{title:"第一步:配置模型",goal:"让系统具备 LLM JSON 事实抽取、章节生成和校验能力。",path:"左侧菜单 → 模型配置",steps:["点击新增供应商,选择 OpenAI、DeepSeek、OpenRouter、Ollama 或其他兼容 OpenAI 协议的服务。","填写 Base URL、API Key、供应商名称并保存。","添加模型名称,建议至少准备一个用于生成和推理的模型。","把模型设置为当前启用模型。","执行健康检查,确认模型可调用。"],checks:["模型健康检查通过","至少有一个启用模型","API Key 和 Base URL 正确"],tips:"如果模型不可用,系统会回退到本地确定性抽取,但事实抽取质量会下降。"},{title:"第二步:上传知识库资料",goal:"把项目资料放入系统,让后续文件角色可以绑定。",path:"左侧菜单 → 知识库 → 文件管理 / 管理",steps:["上传招标文件、工程概况、合同条件、技术要求等项目事实资料。","上传工程量清单、劳动力计划、机械设备计划、材料计划等表格资料。","上传图纸目录、图纸说明、设计说明等图纸类资料。","上传规范、规程、企业标准、评分办法、编制要求等规则类资料。","等待索引完成,并在知识库文件列表中确认文件可见。"],checks:["文件上传成功","索引完成","文件能在文件角色绑定下拉框中看到"],tips:"表格资料最好有清晰表头;图纸资料最好附带目录或文字说明。"},{title:"第三步:创建提示词",goal:"定义每个执行阶段的模型行为。",path:"左侧菜单 → 提示词管理",steps:["创建事实抽取提示词:要求只抽取资料中明确出现的事实,返回结构化 JSON,不允许编造。","创建章节生成提示词:定义文档类型、专业语气、章节风格、引用事实和禁止事项。","创建校验提示词:检查工程名称、工期、质量目标、数字、表格引用、章节完整性。","创建格式化提示词:定义封面、目录、编号、表格、分页和正式输出样式。","保存后确认提示词能在提示词角色绑定下拉框中看到。"],checks:["事实抽取提示词已创建","章节生成提示词已创建","校验或格式化提示词已创建"],tips:"提示词越明确,生成结果越稳定。建议明确写上“没有来源的数据不要写”。"},{title:"第四步:创建文件角色",goal:"告诉系统每个文件在生成流程中的用途。",path:"左侧菜单 → 角色配置 → 新建文件角色",steps:["填写角色名称,例如“招标文件事实源”“工程量清单表格”“图纸说明文件”。","选择处理类型:规则文件、项目事实文件、表格数据、图纸文件、规范文件或参考资料。","绑定对应知识库文件。","保存角色。","按文件用途创建多个文件角色,不建议把不同用途资料混在一个角色里。"],checks:["文件角色有名称","已选择处理类型","已绑定知识库文件"],tips:"处理类型很重要:系统会根据它决定是否进行表格解析、事实抽取、规则引用或来源追踪。"},{title:"第五步:创建提示词角色",goal:"告诉系统每条提示词在哪个执行阶段使用。",path:"左侧菜单 → 角色配置 → 新建提示词角色",steps:["填写角色名称,例如“施工组织设计事实抽取”“章节生成规则”“导出前校验规则”。","选择执行类型:事实抽取、章节生成、校验、格式化或参考。","绑定对应提示词。","保存角色。","一个执行阶段可以有多个提示词角色,后续在项目角色配置中排序。"],checks:["提示词角色有名称","已选择执行类型","已绑定提示词"],tips:"角色名称可以完全自定义,但执行类型必须选对。系统依赖执行类型驱动多阶段流程。"},{title:"第六步:创建项目角色配置并排序",goal:"把文件角色和提示词角色组合成一个可复用的项目生成方案。",path:"左侧菜单 → 角色配置 → 新建项目配置",steps:["填写配置名称,例如“某项目施工组织设计配置”。","添加文件角色,并设置顺序。推荐:规则文件 → 项目事实文件 → 表格数据 → 图纸文件 → 规范文件 → 参考资料。","添加提示词角色,并设置顺序。推荐:事实抽取 → 章节生成 → 校验 → 格式化 → 参考。","保存项目角色配置。","后续模板只绑定项目角色配置,不再重复绑定文件和提示词。"],checks:["至少包含一个文件角色","至少包含一个提示词角色","顺序符合业务流程"],tips:"排序决定系统读取资料和应用提示词的优先级,是生产级生成稳定性的关键。"},{title:"第七步:创建模板并绑定项目配置",goal:"定义要生成哪种文档,以及使用哪套项目角色配置。",path:"左侧菜单 → 生成编辑 → 新建模板",steps:["填写模板 ID。ID 由系统生成或保持唯一,不建议手动频繁修改。","填写模板名称,例如“施工组织设计”“技术标文件”“专项施工方案”。","填写分类、输出标题和模板说明。","选择第六步创建的项目角色配置。","为章节填写查询词和必需事实;系统会自动按章节检索知识库证据。","高级优先证据通常无需填写;只有必须指定某份官方资料、图纸或表格时才使用。","保存模板。"],checks:["模板名称清晰","输出标题正确","已绑定项目角色配置"],tips:"模板负责文档入口;项目角色配置负责资料、提示词和顺序。两者分离后更容易复用。"},{title:"第八步:执行生成并查看状态",goal:"让用户明确知道生成流程进行到哪一步。",path:"左侧菜单 → 生成编辑 → 选择模板 → 点击生成",steps:["点击生成按钮后,页面会出现“执行状态”卡片。","系统会先绑定文件角色和提示词角色,再按当前项目召回短期/长期上下文;上下文只作为偏好和历史纠偏参考,不覆盖知识库事实。","系统会按章节自动检索知识库证据;只有在必须指定官方资料、图纸或表格时,才需要使用高级优先证据。","执行状态会根据当前模板、文档规范包、文件角色、提示词角色、上下文召回、证据增强和章节自动生成,不是固定工程流程。","当前执行节点会高亮显示,子状态会展示正在处理的章节、事实字段、文件角色、增强贡献或门禁规则。","生成任务在后台运行,页面通过 documentId 轮询;切换页面后回到生成编辑仍可恢复状态。","生成完成后,系统会用后端真实 executionStages 回填最终状态。","如果导出门禁未通过,生成完成节点会提示需要检查校验结果。"],checks:["执行状态 Card 出现","当前节点有高亮","生成完成后有执行阶段结果"],tips:"如果长时间停留在某一步,优先检查模型配置、知识库索引和文件角色绑定。"},{title:"第九步:审查结果并导出",goal:"确保文档可追溯、可校验、可交付,同时能区分阻断问题和可复核 warning。",path:"生成编辑 → 编辑器下方 Tabs → 导出按钮 / 草稿历史",steps:["查看“结构化事实”,确认事实字段是否按文档规范包动态 schema 抽取,并检查冲突提示。","查看“来源”,确认事实来自规范包要求的文件角色和绑定资料。","查看“缺失项”,补齐缺失资料或调整角色配置。","查看“校验”,优先处理 error;warning 表示可导出但建议复核。","查看“导出门禁”,真实 blockingIssues 会阻断 PDF/DOCX 导出,普通 warning 不阻断。","在草稿历史中确认生成状态、warning 原因、整体生成耗时,并可删除不需要的记录。","可以先导出 HTML 预览排版,再导出 DOCX/PDF。"],checks:["无真实阻断问题","关键事实有来源","章节有证据","warning 原因已复核","导出文件可打开"],tips:"导出不是简单放行:真实阻断仍会拦截;生成完成但存在可复核问题时显示 warning,用户可以继续导出并按原因优化资料。"}];function b(){let e=(0,u.Vr)();return(0,i.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,i.jsxs)(c.A,{className:"cardGlass",styles:{body:{padding:24}},children:[(0,i.jsx)(z,{level:2,className:"mb-2",children:e("guide.title")}),(0,i.jsx)(k,{className:"pageDesc mb-0",children:e("guide.description")})]}),(0,i.jsx)(n.A,{gutter:[16,16],children:y.map(e=>(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{className:"h-full",title:(0,i.jsxs)("span",{className:"flex items-center gap-2",children:[e.icon,e.title]}),children:(0,i.jsx)("div",{className:"space-y-2",children:e.items.map(s=>(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{color:e.color,children:s})},s))})})},e.title))}),(0,i.jsx)(c.A,{title:e("guide.fullFlow"),children:(0,i.jsx)(x.A,{direction:"vertical",items:w.map(e=>({title:e.title,description:"".concat(e.goal,"(入口:").concat(e.path,")")}))})}),(0,i.jsx)(c.A,{title:"详细步骤说明:照着做即可跑通",children:(0,i.jsx)(h.A,{mode:"left",items:w.map(e=>({dot:(0,i.jsx)(p.A,{}),children:(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsx)(z,{level:4,className:"mb-0",children:e.title}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"目标:"}),e.goal]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"入口:"}),e.path]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(N,{strong:!0,children:"操作步骤:"}),(0,i.jsx)("ol",{className:"list-decimal pl-6 mt-2 space-y-1",children:e.steps.map(e=>(0,i.jsx)("li",{children:e},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(N,{strong:!0,children:"完成检查:"}),(0,i.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:e.checks.map(e=>(0,i.jsx)(t.A,{color:"success",children:e},e))})]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"提示:"}),e.tips]}),(0,i.jsx)(j.A,{})]})}))})}),(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{title:e("guide.roleDesign"),children:[(0,i.jsx)(k,{children:e("guide.roleDesignDesc")}),(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{color:"blue",children:"file"}),(0,i.jsx)(N,{strong:!0,children:e("guide.fileRole")}),(0,i.jsx)(k,{children:e("guide.fileRoleDesc")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{color:"purple",children:"prompt"}),(0,i.jsx)(N,{strong:!0,children:e("guide.promptRole")}),(0,i.jsx)(k,{children:e("guide.promptRoleDesc")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{color:"geekblue",children:"config"}),(0,i.jsx)(N,{strong:!0,children:e("guide.projectConfig")}),(0,i.jsx)(k,{children:e("guide.projectConfigDesc")})]})]})]})}),(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{title:e("guide.generationEngine"),children:[(0,i.jsx)(k,{children:e("guide.generationEngineDesc")}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(t.A,{children:e("roles.factExtraction")}),(0,i.jsx)(t.A,{children:e("roles.chapterGeneration")}),(0,i.jsx)(t.A,{children:e("roles.validation")}),(0,i.jsx)(t.A,{children:e("roles.formatting")}),(0,i.jsx)(t.A,{children:e("documents.exportGate")})]})]})})]}),(0,i.jsx)(c.A,{title:"文件角色和提示词角色案例:它们在模板生成中到底起什么作用",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{size:"small",title:"案例 A:创建文件角色“招标文件事实源”",children:[(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"怎么创建:"}),"类型选择 file,处理类型选择“项目事实文件”,绑定招标文件、合同摘要或项目概况。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"生成时的作用:"}),"系统会从这个角色绑定的文件里抽取工程名称、建设地点、工期、质量目标、范围边界等事实,并把来源带入结构化事实和章节证据。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"带来的提升:"}),"模型不再凭空补项目事实;章节生成和导出校验都会追踪“这句话来自哪个文件角色、哪个文件”。"]})]})}),(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{size:"small",title:"案例 B:创建文件角色“工程量清单表格”",children:[(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"怎么创建:"}),"类型选择 file,处理类型选择“表格数据”,绑定 Excel、CSV、清单表或计划表。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"生成时的作用:"}),"系统会读取 Sheet、表头、行列和来源范围,把表格数据转换成可引用的结构化资源证据。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"带来的提升:"}),"章节中涉及数量、清单、计划、资源配置时,优先引用表格来源,减少数字编造和漏项。"]})]})}),(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{size:"small",title:"案例 C:创建提示词角色“章节生成规则”",children:[(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"怎么创建:"}),"先在提示词管理中写好生成规则,例如“必须引用来源、不要写无来源数据、输出正式报告语气”;再创建 prompt 角色,执行类型选择“章节生成”。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"生成时的作用:"}),"系统生成每个章节时会把这个提示词加入 LLM 上下文,用它约束语气、结构、引用方式和禁止事项。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"带来的提升:"}),"同一套资料可以生成更稳定的文档风格;不同模板只需替换提示词角色,就能调整写法而不改知识库文件。"]})]})}),(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{size:"small",title:"案例 D:创建提示词角色“导出前校验规则”",children:[(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"怎么创建:"}),"提示词内容写清楚必须检查的交付要求,例如“不能出现资料未提供、图片引用必须可访问、关键事实必须有来源”;prompt 角色执行类型选择“校验”或“格式化”。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"生成时的作用:"}),"生成完成后,系统会结合文档规范包、证据来源和导出门禁检查文档是否可交付。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"带来的提升:"}),"把人工审稿经验前置到生成流程,降低导出后才发现缺来源、缺图片、格式不合格的概率。"]})]})})]})}),(0,i.jsx)(c.A,{title:"我的数据、内置示例和门禁规则说明",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"默认优先看我的数据",children:(0,i.jsx)(k,{children:"文件、提示词、角色配置和规范包默认优先展示用户自己创建的内容。内置示例只用于学习,不能直接覆盖或删除,需要使用时请先复制。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"自定义门禁类型会执行",children:(0,i.jsx)(k,{children:"用户在文档规范包中创建的门禁类型,需要选择校验对象和校验方式。保存后它会和系统门禁类型一样参与生成校验,不只是备注说明。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"上传后关注索引状态",children:(0,i.jsx)(k,{children:"文件上传完成后,知识库索引会继续在后台写入。请在文件管理页查看状态,如果失败,页面会展示原因,方便重新配置模型或重试。"})})})]})}),(0,i.jsx)(c.A,{title:"上下文、知识库证据和增强贡献说明",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"上下文召回不是事实来源",children:(0,i.jsx)(k,{children:"生成前会按当前项目召回短期/长期上下文,但它只用于用户偏好、历史纠偏和连续性参考。如果上下文与知识库证据冲突,系统提示词会要求以知识库证据、模板要求和规范包为准。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"自动检索为主",children:(0,i.jsx)(k,{children:"模板章节的查询词、章节目的和必需事实会驱动系统自动检索知识库证据。高级优先证据只是兜底能力,用于必须指定官方资料、图纸或表格的场景,不是日常必填项。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"增强贡献可追踪",children:(0,i.jsx)(k,{children:"生成流程会展示知识库证据、人工确认/固定证据、项目上下文和自动检索证据的数量,帮助判断本次增强是否真的参与生成,而不是增加用户维护成本。"})})})]})}),(0,i.jsx)(c.A,{title:"动态 schema、证据和执行状态说明",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"动态事实 schema",children:(0,i.jsx)(k,{children:"系统不会写死工程字段。文档规范包的事实字段、模板章节 requiredFacts、字段 sourceRoleIds 和 extractionHint 会共同组成抽取 schema,并驱动事实抽取、冲突检测和导出门禁。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"结构化资源证据",children:(0,i.jsx)(k,{children:"文本、PDF/Word、Excel/CSV、图片、地图图纸和其他附件都会被整理成资源证据,包含文件角色、处理类型、正文用途、关联事实和证据片段,模型据此理解资料关系。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"动态执行状态",children:(0,i.jsx)(k,{children:"生成编辑页的执行节点会随模板、规范包、文件角色、提示词角色、章节和门禁规则变化;用户生成不同项目文件时看到的是对应项目的流程,而不是固定示例流程。"})})})]})}),(0,i.jsx)(c.A,{title:"生成记录、warning 和导出门禁怎么理解",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,lg:8,children:(0,i.jsxs)(c.A,{size:"small",title:"草稿历史记录",children:[(0,i.jsxs)(k,{children:["每次后台生成都会写入全局项目目录 ",(0,i.jsxs)(N,{code:!0,children:["~/.customize-agent/projects/","{projectId}","/generatedDocuments"]}),"。记录会保存标题、模板、状态、创建时间、完成时间、生成耗时、正文、结构化结果和资源引用。"]}),(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"completed:生成完成且无需要关注的问题。"}),(0,i.jsx)("li",{children:"warning:生成完成,但存在可复核问题。"}),(0,i.jsx)("li",{children:"failed:生成失败,需要查看错误原因。"}),(0,i.jsx)("li",{children:"generating:后台任务仍在执行,可轮询恢复。"})]})]})}),(0,i.jsx)(d.A,{xs:24,lg:8,children:(0,i.jsxs)(c.A,{size:"small",title:"warning 不是失败",children:[(0,i.jsx)(k,{children:"warning 用于提醒用户“文档已经生成,但建议复核”。例如必需事实没有在最佳来源角色中抽到、部分来源需要人工确认、格式或内容有优化建议。warning 会显示在草稿历史和校验详情中,并保留导出能力。"}),(0,i.jsx)(k,{children:"如果是明确阻断问题,例如正文包含临时图片生成 URL、出现“资料未提供”占位、真实 blockingIssues 未解决,则导出门禁仍会阻断 DOCX/PDF。"})]})}),(0,i.jsx)(d.A,{xs:24,lg:8,children:(0,i.jsxs)(c.A,{size:"small",title:"导出门禁规则",children:[(0,i.jsx)(k,{children:"门禁分为“真实阻断”和“复核建议”。系统不会因为普通 warning 简单禁止导出,但会在出现阻断级问题时保护交付质量。"}),(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"Markdown/HTML 更适合快速预览和人工调整。"}),(0,i.jsx)("li",{children:"DOCX/PDF 会启用真实门禁检查。"}),(0,i.jsx)("li",{children:"草稿历史可保留多个版本,便于对比和再次导出。"})]})]})})]})}),(0,i.jsx)(c.A,{title:"生成资源和知识库的关系",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsxs)(c.A,{size:"small",title:"生成资源自动回流知识库",children:[(0,i.jsx)(k,{children:"模型生成的图片、封面或后处理资源会登记到生成资源管理页,并自动回流到 knowledgeBase/生成资源 下完成索引。"}),(0,i.jsx)(k,{children:"后续文档可以继续检索和复用这些已生成资源,资源管理页也会展示入库状态。"})]})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsxs)(c.A,{size:"small",title:"资源预览和坏图处理",children:[(0,i.jsx)(k,{children:"资源预览会从全局 generatedDocuments 目录解析文件,不依赖当前页面临时路径。图片下载会识别“image is generating”等占位响应,并校验 PNG/JPEG/WebP 字节,避免把占位文本当成图片保存。"}),(0,i.jsx)(k,{children:"如果预览失败,优先查看资源管理页中的文件路径、资源状态和原始生成记录。"})]})})]})}),(0,i.jsx)(c.A,{title:"文件角色处理类型大白话说明",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"规则文件",children:(0,i.jsx)(k,{children:"用来告诉系统“必须怎么写、不能怎么写、按什么标准判断”。适合放评分办法、甲方编制要求、攻略写作要求、输出格式要求。生成时会优先作为约束使用。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"项目事实文件",children:(0,i.jsx)(k,{children:"用来告诉系统“真实情况是什么”。适合放项目概况、合同摘要、招标文件关键信息、游戏角色资料、产品资料。事实字段通常从这里抽取。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"表格数据",children:(0,i.jsx)(k,{children:"用来解析结构化数据。适合放 Excel、CSV、清单、计划表、评分表、推荐指数表。系统会读取 Sheet、表头、行列和来源范围。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"图纸文件",children:(0,i.jsx)(k,{children:"用来表达空间关系、路线、结构、站位或设计说明。可以是图纸目录、设计说明、路线示意、阵型图说明。没有 CAD 时也可以用文字图纸说明。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"规范文件",children:(0,i.jsx)(k,{children:"用来作为专业依据。适合放国家规范、行业标准、企业标准、攻略结构规范、质量标准。校验和生成时会把它当成依据。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"参考资料",children:(0,i.jsx)(k,{children:"只作为辅助阅读材料,不建议放关键事实。适合放图片来源、公开网页链接、背景资料、案例资料。系统可以参考,但不应把它当成强事实。"})})})]})}),(0,i.jsx)(c.A,{title:"推荐资料清单",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"必备资料",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"项目事实文件"}),(0,i.jsx)("li",{children:"招标或编制规则"}),(0,i.jsx)("li",{children:"章节生成提示词"})]})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"强烈建议",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"表格数据"}),(0,i.jsx)("li",{children:"图纸说明"}),(0,i.jsx)("li",{children:"规范或企业标准"})]})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"导出前确认",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"无 error 校验"}),(0,i.jsx)("li",{children:"事实有来源"}),(0,i.jsx)("li",{children:"导出门禁通过"})]})})})]})}),(0,i.jsx)(c.A,{title:"生产级生成前检查清单",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{size:"small",title:"资料完整性",children:(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"事实源、规则源、表格源、图片/图纸源分开绑定。"}),(0,i.jsx)("li",{children:"关键事实在知识库检索中可以搜索到。"}),(0,i.jsx)("li",{children:"表格有清晰表头,图片和图纸有说明文字。"}),(0,i.jsx)("li",{children:"只有必须指定资料时才维护高级优先证据。"})]})})}),(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{size:"small",title:"角色配置",children:(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"文件角色处理类型选对。"}),(0,i.jsx)("li",{children:"提示词角色执行类型选对。"}),(0,i.jsx)("li",{children:"项目角色配置排序符合生成流程。"}),(0,i.jsx)("li",{children:"生成后查看增强贡献,确认上下文和证据是否真实参与。"})]})})}),(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{size:"small",title:"规范包",children:(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"required fact 不要过度配置。"}),(0,i.jsx)("li",{children:"sourceRoleIds 只绑定真正应该提供该事实的角色。"}),(0,i.jsx)("li",{children:"gateRules 区分 error 和 warning。"})]})})}),(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{size:"small",title:"交付检查",children:(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"草稿历史记录状态合理。"}),(0,i.jsx)("li",{children:"warning 原因已经阅读。"}),(0,i.jsx)("li",{children:"导出文件打开正常,图片和表格可读。"})]})})})]})}),(0,i.jsx)(c.A,{title:"常见问题和处理建议",children:(0,i.jsx)(a.A,{items:[{key:"warning-export",label:"为什么生成完成后显示 warning,但仍然可以导出?",children:(0,i.jsx)(k,{children:"warning 表示文档已生成,但存在建议复核的问题,例如来源角色不完全匹配、某些事实需要人工确认或格式可优化。它不是失败,也不是导出阻断。只有真实 blockingIssues 或 error 级门禁问题才会阻断 DOCX/PDF 导出。"})},{key:"missing-facts",label:"为什么提示必需事实缺失?",children:(0,i.jsx)(k,{children:"优先检查文档规范包中的 factFields、sourceRoleIds、模板章节 requiredFacts 和文件角色绑定。很多情况下不是模型失败,而是资料没有被绑定到正确角色,或字段要求比资料实际内容更严格。"})},{key:"draft-duration",label:"草稿历史里的耗时怎么计算?",children:(0,i.jsx)(k,{children:"耗时使用生成记录的 createdAt 到 completedAt 计算;旧记录或未完成记录会使用 updatedAt 兜底。它用于判断本次生成链路整体成本,包括知识库检索、事实抽取、章节生成、资源处理、校验和格式化。"})},{key:"asset-index",label:"生成资源会如何进入知识库?",children:(0,i.jsx)(k,{children:"生成资源完成后会自动回流到 knowledgeBase/生成资源 并建立索引,便于后续模板继续复用。资源管理页会展示入库状态,错误资源可以删除后重新生成。"})},{key:"context-accuracy",label:"上下文召回会不会影响准确度?",children:(0,i.jsx)(k,{children:"上下文只作为当前项目的偏好、历史纠偏和连续性参考,不作为事实来源。生成和审查提示词都要求:如果上下文与知识库证据、模板要求或规范包冲突,以知识库证据和规范包为准。"})},{key:"priority-evidence",label:"什么时候需要维护高级优先证据?",children:(0,i.jsx)(k,{children:"日常不需要维护。只有当某章必须引用指定官方资料、图纸、表格,或自动检索结果不稳定时,才从知识库搜索页复制文件路径并填入章节高级优先证据。"})}]})}),(0,i.jsx)(a.A,{items:[{key:"prepare",label:e("guide.prepareTitle"),children:(0,i.jsx)(k,{children:e("guide.prepareContent")})},{key:"roles",label:e("guide.rolesTitle"),children:(0,i.jsx)(k,{children:e("guide.rolesContent")})},{key:"template",label:e("guide.templateTitle"),children:(0,i.jsx)(k,{children:e("guide.templateContent")})},{key:"generate",label:e("guide.generateTitle"),children:(0,i.jsx)(k,{children:e("guide.generateContent")})},{key:"qa",label:e("guide.qaTitle"),children:(0,i.jsx)(k,{children:e("guide.qaContent")})}]})]})}},34899:(e,s,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/guide",function(){return l(2548)}])}},e=>{e.O(0,[347,8787,4277,4833,5292,4427,8326,636,6593,8792],()=>e(e.s=34899)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[920],{2548:(e,s,l)=>{"use strict";l.r(s),l.d(s,{default:()=>b});var i=l(65321),r=l(35292),c=l(68787),n=l(2256),d=l(38770),t=l(11702),x=l(9730),h=l(13399),j=l(55122),a=l(15622),o=l(71330),g=l(30960),m=l(66926),A=l(7851),p=l(84742),u=l(79059);let{Paragraph:k,Title:z,Text:N}=r.A,y=[{icon:(0,i.jsx)(o.A,{}),title:"准备阶段",color:"blue",items:["配置模型","上传知识库资料","创建提示词"]},{icon:(0,i.jsx)(g.A,{}),title:"编排阶段",color:"purple",items:["创建文件角色","创建提示词角色","创建项目角色配置并排序"]},{icon:(0,i.jsx)(m.A,{}),title:"生成阶段",color:"geekblue",items:["创建模板","上下文召回","知识库证据增强","动态执行状态"]},{icon:(0,i.jsx)(A.A,{}),title:"交付阶段",color:"green",items:["审查事实和来源","检查导出门禁","导出正式文件"]}],w=[{title:"第一步:配置模型",goal:"让系统具备 LLM JSON 事实抽取、章节生成和校验能力。",path:"左侧菜单 → 模型配置",steps:["点击新增供应商,选择 OpenAI、DeepSeek、OpenRouter、Ollama 或其他兼容 OpenAI 协议的服务。","填写 Base URL、API Key、供应商名称并保存。","添加模型名称,建议至少准备一个用于生成和推理的模型。","把模型设置为当前启用模型。","执行健康检查,确认模型可调用。"],checks:["模型健康检查通过","至少有一个启用模型","API Key 和 Base URL 正确"],tips:"如果模型不可用,系统会回退到本地确定性抽取,但事实抽取质量会下降。"},{title:"第二步:上传知识库资料",goal:"把项目资料放入系统,让后续文件角色可以绑定。",path:"左侧菜单 → 知识库 → 文件管理 / 管理",steps:["上传招标文件、工程概况、合同条件、技术要求等项目事实资料。","上传工程量清单、劳动力计划、机械设备计划、材料计划等表格资料。","上传图纸目录、图纸说明、设计说明等图纸类资料。","上传规范、规程、企业标准、评分办法、编制要求等规则类资料。","等待索引完成,并在知识库文件列表中确认文件可见。"],checks:["文件上传成功","索引完成","文件能在文件角色绑定下拉框中看到"],tips:"表格资料最好有清晰表头;图纸资料最好附带目录或文字说明。"},{title:"第三步:创建提示词",goal:"定义每个执行阶段的模型行为。",path:"左侧菜单 → 提示词管理",steps:["创建事实抽取提示词:要求只抽取资料中明确出现的事实,返回结构化 JSON,不允许编造。","创建章节生成提示词:定义文档类型、专业语气、章节风格、引用事实和禁止事项。","创建校验提示词:检查工程名称、工期、质量目标、数字、表格引用、章节完整性。","创建格式化提示词:定义封面、目录、编号、表格、分页和正式输出样式。","保存后确认提示词能在提示词角色绑定下拉框中看到。"],checks:["事实抽取提示词已创建","章节生成提示词已创建","校验或格式化提示词已创建"],tips:"提示词越明确,生成结果越稳定。建议明确写上“没有来源的数据不要写”。"},{title:"第四步:创建文件角色",goal:"告诉系统每个文件在生成流程中的用途。",path:"左侧菜单 → 角色配置 → 新建文件角色",steps:["填写角色名称,例如“招标文件事实源”“工程量清单表格”“图纸说明文件”。","选择处理类型:规则文件、项目事实文件、表格数据、图纸文件、规范文件或参考资料。","绑定对应知识库文件。","保存角色。","按文件用途创建多个文件角色,不建议把不同用途资料混在一个角色里。"],checks:["文件角色有名称","已选择处理类型","已绑定知识库文件"],tips:"处理类型很重要:系统会根据它决定是否进行表格解析、事实抽取、规则引用或来源追踪。"},{title:"第五步:创建提示词角色",goal:"告诉系统每条提示词在哪个执行阶段使用。",path:"左侧菜单 → 角色配置 → 新建提示词角色",steps:["填写角色名称,例如“施工组织设计事实抽取”“章节生成规则”“导出前校验规则”。","选择执行类型:事实抽取、章节生成、校验、格式化或参考。","绑定对应提示词。","保存角色。","一个执行阶段可以有多个提示词角色,后续在项目角色配置中排序。"],checks:["提示词角色有名称","已选择执行类型","已绑定提示词"],tips:"角色名称可以完全自定义,但执行类型必须选对。系统依赖执行类型驱动多阶段流程。"},{title:"第六步:创建项目角色配置并排序",goal:"把文件角色和提示词角色组合成一个可复用的项目生成方案。",path:"左侧菜单 → 角色配置 → 新建项目配置",steps:["填写配置名称,例如“某项目施工组织设计配置”。","添加文件角色,并设置顺序。推荐:规则文件 → 项目事实文件 → 表格数据 → 图纸文件 → 规范文件 → 参考资料。","添加提示词角色,并设置顺序。推荐:事实抽取 → 章节生成 → 校验 → 格式化 → 参考。","保存项目角色配置。","后续模板只绑定项目角色配置,不再重复绑定文件和提示词。"],checks:["至少包含一个文件角色","至少包含一个提示词角色","顺序符合业务流程"],tips:"排序决定系统读取资料和应用提示词的优先级,是生产级生成稳定性的关键。"},{title:"第七步:创建模板并绑定项目配置",goal:"定义要生成哪种文档,以及使用哪套项目角色配置。",path:"左侧菜单 → 生成编辑 → 新建模板",steps:["填写模板 ID。ID 由系统生成或保持唯一,不建议手动频繁修改。","填写模板名称,例如“施工组织设计”“技术标文件”“专项施工方案”。","填写分类、输出标题和模板说明。","选择第六步创建的项目角色配置。","为章节填写查询词和必需事实;系统会自动按章节检索知识库证据。","高级优先证据通常无需填写;只有必须指定某份官方资料、图纸或表格时才使用。","保存模板。"],checks:["模板名称清晰","输出标题正确","已绑定项目角色配置"],tips:"模板负责文档入口;项目角色配置负责资料、提示词和顺序。两者分离后更容易复用。"},{title:"第八步:执行生成并查看状态",goal:"让用户明确知道生成流程进行到哪一步。",path:"左侧菜单 → 生成编辑 → 选择模板 → 点击生成",steps:["点击生成按钮后,页面会出现“执行状态”卡片。","系统会先绑定文件角色和提示词角色,再按当前项目召回短期/长期上下文;上下文只作为偏好和历史纠偏参考,不覆盖知识库事实。","系统会按章节自动检索知识库证据;只有在必须指定官方资料、图纸或表格时,才需要使用高级优先证据。","执行状态会根据当前模板、文档规范包、文件角色、提示词角色、上下文召回、证据增强和章节自动生成,不是固定工程流程。","当前执行节点会高亮显示,子状态会展示正在处理的章节、事实字段、文件角色、增强贡献或门禁规则。","生成任务在后台运行,页面通过 documentId 轮询;切换页面后回到生成编辑仍可恢复状态。","生成完成后,系统会用后端真实 executionStages 回填最终状态。","如果导出门禁未通过,生成完成节点会提示需要检查校验结果。"],checks:["执行状态 Card 出现","当前节点有高亮","生成完成后有执行阶段结果"],tips:"如果长时间停留在某一步,优先检查模型配置、知识库索引和文件角色绑定。"},{title:"第九步:审查结果并导出",goal:"确保文档可追溯、可校验、可交付,同时能区分阻断问题和可复核 warning。",path:"生成编辑 → 编辑器下方 Tabs → 导出按钮 / 草稿历史",steps:["查看“结构化事实”,确认事实字段是否按文档规范包动态 schema 抽取,并检查冲突提示。","查看“来源”,确认事实来自规范包要求的文件角色和绑定资料。","查看“缺失项”,补齐缺失资料或调整角色配置。","查看“校验”,优先处理 error;warning 表示可导出但建议复核。","查看“导出门禁”,真实 blockingIssues 会阻断 PDF/DOCX 导出,普通 warning 不阻断。","在草稿历史中确认生成状态、warning 原因、整体生成耗时,并可删除不需要的记录。","可以先导出 HTML 预览排版,再导出 DOCX/PDF。"],checks:["无真实阻断问题","关键事实有来源","章节有证据","warning 原因已复核","导出文件可打开"],tips:"导出不是简单放行:真实阻断仍会拦截;生成完成但存在可复核问题时显示 warning,用户可以继续导出并按原因优化资料。"}];function b(){let e=(0,u.Vr)();return(0,i.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,i.jsxs)(c.A,{className:"cardGlass",styles:{body:{padding:24}},children:[(0,i.jsx)(z,{level:2,className:"mb-2",children:e("guide.title")}),(0,i.jsx)(k,{className:"pageDesc mb-0",children:e("guide.description")})]}),(0,i.jsx)(n.A,{gutter:[16,16],children:y.map(e=>(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{className:"h-full",title:(0,i.jsxs)("span",{className:"flex items-center gap-2",children:[e.icon,e.title]}),children:(0,i.jsx)("div",{className:"space-y-2",children:e.items.map(s=>(0,i.jsx)("div",{children:(0,i.jsx)(t.A,{color:e.color,children:s})},s))})})},e.title))}),(0,i.jsx)(c.A,{title:e("guide.fullFlow"),children:(0,i.jsx)(x.A,{direction:"vertical",items:w.map(e=>({title:e.title,description:"".concat(e.goal,"(入口:").concat(e.path,")")}))})}),(0,i.jsx)(c.A,{title:"详细步骤说明:照着做即可跑通",children:(0,i.jsx)(h.A,{mode:"left",items:w.map(e=>({dot:(0,i.jsx)(p.A,{}),children:(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsx)(z,{level:4,className:"mb-0",children:e.title}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"目标:"}),e.goal]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"入口:"}),e.path]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(N,{strong:!0,children:"操作步骤:"}),(0,i.jsx)("ol",{className:"list-decimal pl-6 mt-2 space-y-1",children:e.steps.map(e=>(0,i.jsx)("li",{children:e},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(N,{strong:!0,children:"完成检查:"}),(0,i.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:e.checks.map(e=>(0,i.jsx)(t.A,{color:"success",children:e},e))})]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"提示:"}),e.tips]}),(0,i.jsx)(j.A,{})]})}))})}),(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{title:e("guide.roleDesign"),children:[(0,i.jsx)(k,{children:e("guide.roleDesignDesc")}),(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{color:"blue",children:"file"}),(0,i.jsx)(N,{strong:!0,children:e("guide.fileRole")}),(0,i.jsx)(k,{children:e("guide.fileRoleDesc")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{color:"purple",children:"prompt"}),(0,i.jsx)(N,{strong:!0,children:e("guide.promptRole")}),(0,i.jsx)(k,{children:e("guide.promptRoleDesc")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(t.A,{color:"geekblue",children:"config"}),(0,i.jsx)(N,{strong:!0,children:e("guide.projectConfig")}),(0,i.jsx)(k,{children:e("guide.projectConfigDesc")})]})]})]})}),(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{title:e("guide.generationEngine"),children:[(0,i.jsx)(k,{children:e("guide.generationEngineDesc")}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(t.A,{children:e("roles.factExtraction")}),(0,i.jsx)(t.A,{children:e("roles.chapterGeneration")}),(0,i.jsx)(t.A,{children:e("roles.validation")}),(0,i.jsx)(t.A,{children:e("roles.formatting")}),(0,i.jsx)(t.A,{children:e("documents.exportGate")})]})]})})]}),(0,i.jsx)(c.A,{title:"文件角色和提示词角色案例:它们在模板生成中到底起什么作用",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{size:"small",title:"案例 A:创建文件角色“招标文件事实源”",children:[(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"怎么创建:"}),"类型选择 file,处理类型选择“项目事实文件”,绑定招标文件、合同摘要或项目概况。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"生成时的作用:"}),"系统会从这个角色绑定的文件里抽取工程名称、建设地点、工期、质量目标、范围边界等事实,并把来源带入结构化事实和章节证据。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"带来的提升:"}),"模型不再凭空补项目事实;章节生成和导出校验都会追踪“这句话来自哪个文件角色、哪个文件”。"]})]})}),(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{size:"small",title:"案例 B:创建文件角色“工程量清单表格”",children:[(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"怎么创建:"}),"类型选择 file,处理类型选择“表格数据”,绑定 Excel、CSV、清单表或计划表。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"生成时的作用:"}),"系统会读取 Sheet、表头、行列和来源范围,把表格数据转换成可引用的结构化资源证据。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"带来的提升:"}),"章节中涉及数量、清单、计划、资源配置时,优先引用表格来源,减少数字编造和漏项。"]})]})}),(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{size:"small",title:"案例 C:创建提示词角色“章节生成规则”",children:[(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"怎么创建:"}),"先在提示词管理中写好生成规则,例如“必须引用来源、不要写无来源数据、输出正式报告语气”;再创建 prompt 角色,执行类型选择“章节生成”。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"生成时的作用:"}),"系统生成每个章节时会把这个提示词加入 LLM 上下文,用它约束语气、结构、引用方式和禁止事项。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"带来的提升:"}),"同一套资料可以生成更稳定的文档风格;不同模板只需替换提示词角色,就能调整写法而不改知识库文件。"]})]})}),(0,i.jsx)(d.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{size:"small",title:"案例 D:创建提示词角色“导出前校验规则”",children:[(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"怎么创建:"}),"提示词内容写清楚必须检查的交付要求,例如“不能出现资料未提供、图片引用必须可访问、关键事实必须有来源”;prompt 角色执行类型选择“校验”或“格式化”。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"生成时的作用:"}),"生成完成后,系统会结合文档规范包、证据来源和导出门禁检查文档是否可交付。"]}),(0,i.jsxs)(k,{children:[(0,i.jsx)(N,{strong:!0,children:"带来的提升:"}),"把人工审稿经验前置到生成流程,降低导出后才发现缺来源、缺图片、格式不合格的概率。"]})]})})]})}),(0,i.jsx)(c.A,{title:"我的数据、内置示例和门禁规则说明",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"默认优先看我的数据",children:(0,i.jsx)(k,{children:"文件、提示词、角色配置和规范包默认优先展示用户自己创建的内容。内置示例只用于学习,不能直接覆盖或删除,需要使用时请先复制。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"自定义门禁类型会执行",children:(0,i.jsx)(k,{children:"用户在文档规范包中创建的门禁类型,需要选择校验对象和校验方式。保存后它会和系统门禁类型一样参与生成校验,不只是备注说明。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"上传后关注索引状态",children:(0,i.jsx)(k,{children:"文件上传完成后,知识库索引会继续在后台写入。请在文件管理页查看状态,如果失败,页面会展示原因,方便重新配置模型或重试。"})})})]})}),(0,i.jsx)(c.A,{title:"上下文、知识库证据和增强贡献说明",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"上下文召回不是事实来源",children:(0,i.jsx)(k,{children:"生成前会按当前项目召回短期/长期上下文,但它只用于用户偏好、历史纠偏和连续性参考。如果上下文与知识库证据冲突,系统提示词会要求以知识库证据、模板要求和规范包为准。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"自动检索为主",children:(0,i.jsx)(k,{children:"模板章节的查询词、章节目的和必需事实会驱动系统自动检索知识库证据。高级优先证据只是兜底能力,用于必须指定官方资料、图纸或表格的场景,不是日常必填项。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"增强贡献可追踪",children:(0,i.jsx)(k,{children:"生成流程会展示知识库证据、人工确认/固定证据、项目上下文和自动检索证据的数量,帮助判断本次增强是否真的参与生成,而不是增加用户维护成本。"})})})]})}),(0,i.jsx)(c.A,{title:"动态 schema、证据和执行状态说明",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"动态事实 schema",children:(0,i.jsx)(k,{children:"系统不会写死工程字段。文档规范包的事实字段、模板章节 requiredFacts、字段 sourceRoleIds 和 extractionHint 会共同组成抽取 schema,并驱动事实抽取、冲突检测和导出门禁。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"结构化资源证据",children:(0,i.jsx)(k,{children:"文本、PDF/Word、Excel/CSV、图片、地图图纸和其他附件都会被整理成资源证据,包含文件角色、处理类型、正文用途、关联事实和证据片段,模型据此理解资料关系。"})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"动态执行状态",children:(0,i.jsx)(k,{children:"生成编辑页的执行节点会随模板、规范包、文件角色、提示词角色、章节和门禁规则变化;用户生成不同项目文件时看到的是对应项目的流程,而不是固定示例流程。"})})})]})}),(0,i.jsx)(c.A,{title:"生成记录、warning 和导出门禁怎么理解",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,lg:8,children:(0,i.jsxs)(c.A,{size:"small",title:"草稿历史记录",children:[(0,i.jsxs)(k,{children:["每次后台生成都会写入全局项目目录 ",(0,i.jsxs)(N,{code:!0,children:["~/.customize-agent/projects/","{projectId}","/generatedDocuments"]}),"。记录会保存标题、模板、状态、创建时间、完成时间、生成耗时、正文、结构化结果和资源引用。"]}),(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"completed:生成完成且无需要关注的问题。"}),(0,i.jsx)("li",{children:"warning:生成完成,但存在可复核问题。"}),(0,i.jsx)("li",{children:"failed:生成失败,需要查看错误原因。"}),(0,i.jsx)("li",{children:"generating:后台任务仍在执行,可轮询恢复。"})]})]})}),(0,i.jsx)(d.A,{xs:24,lg:8,children:(0,i.jsxs)(c.A,{size:"small",title:"warning 不是失败",children:[(0,i.jsx)(k,{children:"warning 用于提醒用户“文档已经生成,但建议复核”。例如必需事实没有在最佳来源角色中抽到、部分来源需要人工确认、格式或内容有优化建议。warning 会显示在草稿历史和校验详情中,并保留导出能力。"}),(0,i.jsx)(k,{children:"如果是明确阻断问题,例如正文包含临时图片生成 URL、出现“资料未提供”占位、真实 blockingIssues 未解决,则导出门禁仍会阻断 DOCX/PDF。"})]})}),(0,i.jsx)(d.A,{xs:24,lg:8,children:(0,i.jsxs)(c.A,{size:"small",title:"导出门禁规则",children:[(0,i.jsx)(k,{children:"门禁分为“真实阻断”和“复核建议”。系统不会因为普通 warning 简单禁止导出,但会在出现阻断级问题时保护交付质量。"}),(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"Markdown/HTML 更适合快速预览和人工调整。"}),(0,i.jsx)("li",{children:"DOCX/PDF 会启用真实门禁检查。"}),(0,i.jsx)("li",{children:"草稿历史可保留多个版本,便于对比和再次导出。"})]})]})})]})}),(0,i.jsx)(c.A,{title:"生成资源和知识库的关系",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsxs)(c.A,{size:"small",title:"生成资源自动回流知识库",children:[(0,i.jsx)(k,{children:"模型生成的图片、封面或后处理资源会登记到生成资源管理页,并自动回流到 knowledgeBase/生成资源 下完成索引。"}),(0,i.jsx)(k,{children:"后续文档可以继续检索和复用这些已生成资源,资源管理页也会展示入库状态。"})]})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsxs)(c.A,{size:"small",title:"资源预览和坏图处理",children:[(0,i.jsx)(k,{children:"资源预览会从全局 generatedDocuments 目录解析文件,不依赖当前页面临时路径。图片下载会识别“image is generating”等占位响应,并校验 PNG/JPEG/WebP 字节,避免把占位文本当成图片保存。"}),(0,i.jsx)(k,{children:"如果预览失败,优先查看资源管理页中的文件路径、资源状态和原始生成记录。"})]})})]})}),(0,i.jsx)(c.A,{title:"文件角色处理类型大白话说明",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"规则文件",children:(0,i.jsx)(k,{children:"用来告诉系统“必须怎么写、不能怎么写、按什么标准判断”。适合放评分办法、甲方编制要求、攻略写作要求、输出格式要求。生成时会优先作为约束使用。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"项目事实文件",children:(0,i.jsx)(k,{children:"用来告诉系统“真实情况是什么”。适合放项目概况、合同摘要、招标文件关键信息、游戏角色资料、产品资料。事实字段通常从这里抽取。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"表格数据",children:(0,i.jsx)(k,{children:"用来解析结构化数据。适合放 Excel、CSV、清单、计划表、评分表、推荐指数表。系统会读取 Sheet、表头、行列和来源范围。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"图纸文件",children:(0,i.jsx)(k,{children:"用来表达空间关系、路线、结构、站位或设计说明。可以是图纸目录、设计说明、路线示意、阵型图说明。没有 CAD 时也可以用文字图纸说明。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"规范文件",children:(0,i.jsx)(k,{children:"用来作为专业依据。适合放国家规范、行业标准、企业标准、攻略结构规范、质量标准。校验和生成时会把它当成依据。"})})}),(0,i.jsx)(d.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",title:"参考资料",children:(0,i.jsx)(k,{children:"只作为辅助阅读材料,不建议放关键事实。适合放图片来源、公开网页链接、背景资料、案例资料。系统可以参考,但不应把它当成强事实。"})})})]})}),(0,i.jsx)(c.A,{title:"推荐资料清单",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"必备资料",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"项目事实文件"}),(0,i.jsx)("li",{children:"招标或编制规则"}),(0,i.jsx)("li",{children:"章节生成提示词"})]})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"强烈建议",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"表格数据"}),(0,i.jsx)("li",{children:"图纸说明"}),(0,i.jsx)("li",{children:"规范或企业标准"})]})})}),(0,i.jsx)(d.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"导出前确认",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"无 error 校验"}),(0,i.jsx)("li",{children:"事实有来源"}),(0,i.jsx)("li",{children:"导出门禁通过"})]})})})]})}),(0,i.jsx)(c.A,{title:"生产级生成前检查清单",children:(0,i.jsxs)(n.A,{gutter:[16,16],children:[(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{size:"small",title:"资料完整性",children:(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"事实源、规则源、表格源、图片/图纸源分开绑定。"}),(0,i.jsx)("li",{children:"关键事实在知识库检索中可以搜索到。"}),(0,i.jsx)("li",{children:"表格有清晰表头,图片和图纸有说明文字。"}),(0,i.jsx)("li",{children:"只有必须指定资料时才维护高级优先证据。"})]})})}),(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{size:"small",title:"角色配置",children:(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"文件角色处理类型选对。"}),(0,i.jsx)("li",{children:"提示词角色执行类型选对。"}),(0,i.jsx)("li",{children:"项目角色配置排序符合生成流程。"}),(0,i.jsx)("li",{children:"生成后查看增强贡献,确认上下文和证据是否真实参与。"})]})})}),(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{size:"small",title:"规范包",children:(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"required fact 不要过度配置。"}),(0,i.jsx)("li",{children:"sourceRoleIds 只绑定真正应该提供该事实的角色。"}),(0,i.jsx)("li",{children:"gateRules 区分 error 和 warning。"})]})})}),(0,i.jsx)(d.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{size:"small",title:"交付检查",children:(0,i.jsxs)("ul",{className:"list-disc pl-5 space-y-1",children:[(0,i.jsx)("li",{children:"草稿历史记录状态合理。"}),(0,i.jsx)("li",{children:"warning 原因已经阅读。"}),(0,i.jsx)("li",{children:"导出文件打开正常,图片和表格可读。"})]})})})]})}),(0,i.jsx)(c.A,{title:"常见问题和处理建议",children:(0,i.jsx)(a.A,{items:[{key:"warning-export",label:"为什么生成完成后显示 warning,但仍然可以导出?",children:(0,i.jsx)(k,{children:"warning 表示文档已生成,但存在建议复核的问题,例如来源角色不完全匹配、某些事实需要人工确认或格式可优化。它不是失败,也不是导出阻断。只有真实 blockingIssues 或 error 级门禁问题才会阻断 DOCX/PDF 导出。"})},{key:"missing-facts",label:"为什么提示必需事实缺失?",children:(0,i.jsx)(k,{children:"优先检查文档规范包中的 factFields、sourceRoleIds、模板章节 requiredFacts 和文件角色绑定。很多情况下不是模型失败,而是资料没有被绑定到正确角色,或字段要求比资料实际内容更严格。"})},{key:"draft-duration",label:"草稿历史里的耗时怎么计算?",children:(0,i.jsx)(k,{children:"耗时使用生成记录的 createdAt 到 completedAt 计算;旧记录或未完成记录会使用 updatedAt 兜底。它用于判断本次生成链路整体成本,包括知识库检索、事实抽取、章节生成、资源处理、校验和格式化。"})},{key:"asset-index",label:"生成资源会如何进入知识库?",children:(0,i.jsx)(k,{children:"生成资源完成后会自动回流到 knowledgeBase/生成资源 并建立索引,便于后续模板继续复用。资源管理页会展示入库状态,错误资源可以删除后重新生成。"})},{key:"context-accuracy",label:"上下文召回会不会影响准确度?",children:(0,i.jsx)(k,{children:"上下文只作为当前项目的偏好、历史纠偏和连续性参考,不作为事实来源。生成和审查提示词都要求:如果上下文与知识库证据、模板要求或规范包冲突,以知识库证据和规范包为准。"})},{key:"priority-evidence",label:"什么时候需要维护高级优先证据?",children:(0,i.jsx)(k,{children:"日常不需要维护。只有当某章必须引用指定官方资料、图纸、表格,或自动检索结果不稳定时,才从知识库搜索页复制文件路径并填入章节高级优先证据。"})}]})}),(0,i.jsx)(a.A,{items:[{key:"prepare",label:e("guide.prepareTitle"),children:(0,i.jsx)(k,{children:e("guide.prepareContent")})},{key:"roles",label:e("guide.rolesTitle"),children:(0,i.jsx)(k,{children:e("guide.rolesContent")})},{key:"template",label:e("guide.templateTitle"),children:(0,i.jsx)(k,{children:e("guide.templateContent")})},{key:"generate",label:e("guide.generateTitle"),children:(0,i.jsx)(k,{children:e("guide.generateContent")})},{key:"qa",label:e("guide.qaTitle"),children:(0,i.jsx)(k,{children:e("guide.qaContent")})}]})]})}},34899:(e,s,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/guide",function(){return l(2548)}])}},e=>{e.O(0,[433,787,412,20,636,593,792],()=>e(e.s=34899)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[332],{15766:(e,u,_)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return _(76933)}])},76933:(e,u,_)=>{"use strict";_.r(u),_.d(u,{default:()=>t});var n=_(97109),r=_(86109);function t(){let e=(0,r.useRouter)();return(0,n.useEffect)(()=>{e.replace("/overview")},[e]),null}}},e=>{e.O(0,[636,593,792],()=>e(e.s=15766)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[309],{1873:(e,t,l)=>{e.exports=l(91952)},4632:(e,t)=>{"use strict";function l(e){var t;let{config:l,src:n,width:r,quality:i}=e,a=i||(null==(t=l.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75)<Math.abs(e-75)?t:e))||75;return l.path+"?url="+encodeURIComponent(n)+"&w="+r+"&q="+a+(n.startsWith("/_next/static/media/"),"")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}}),l.__next_img_default=!0;let n=l},14569:e=>{e.exports={featureLabel:"style_featureLabel__XFSTX",featureValue:"style_featureValue__I_wMP",filterInput:"style_filterInput__4_Elu",filterSelect:"style_filterSelect__vUBJ9",statusCard:"style_statusCard__H7Mee",statusSummary:"style_statusSummary__7KavF",statusSummaryText:"style_statusSummaryText__Shw3j",statusClearBtn:"style_statusClearBtn__uJ9bE",statusExpandBtn:"style_statusExpandBtn__HhgIj",statusFilters:"style_statusFilters__g_LbG",filterPill:"style_filterPill__1pjFW",filterPillActive:"style_filterPillActive___UZVi",statusPanel:"style_statusPanel__9arTu",statusEmpty:"style_statusEmpty__8LWzH",timelineList:"style_timelineList__dqJrz",timelineItem:"style_timelineItem__dbuL_",timelineStatusIcon:"style_timelineStatusIcon__SkRwb",timelinePercent:"style_timelinePercent__pEyH4",timelineRow:"style_timelineRow__EDOVa",timelineTitle:"style_timelineTitle__Yujr8",timelineClose:"style_timelineClose__Byx_9",timelineDetail:"style_timelineDetail__nALei",timelineDesc:"style_timelineDesc__FMjWE",timelinePath:"style_timelinePath__C9VQI",timelineMeta:"style_timelineMeta__u_pCn",timelineMetaTag:"style_timelineMetaTag__G3jF1",timelineExpandArrow:"style_timelineExpandArrow__xIBdF",timelineExpandArrowOpen:"style_timelineExpandArrowOpen__TWWDC",fileNameCell:"style_fileNameCell__EHsnt",folderName:"style_folderName__VhLXP",folderRow:"style_folderRow__d7k9S",searchResultList:"style_searchResultList__cVKZg",searchResultItem:"style_searchResultItem__boj6D",searchResultHeader:"style_searchResultHeader__meVdJ",searchContent:"style_searchContent__XbUVk",pdfPreviewStrip:"style_pdfPreviewStrip__94_eG",drawingPreview:"style_drawingPreview__lkk_L"}},37690:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/file-detail",function(){return l(70107)}])},45551:(e,t,l)=>{"use strict";function n(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),l=e/Math.pow(1024,t);return"".concat(l.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let l=Math.floor(Math.floor((Date.now()-e)/1e3)/60),n=Math.floor(l/60),r=Math.floor(n/24);return r>30?new Date(e).toLocaleDateString(t):"en-US"===t?r>0?"".concat(r,"d ago"):n>0?"".concat(n,"h ago"):l>0?"".concat(l,"m ago"):"Just now":r>0?"".concat(r," 天前"):n>0?"".concat(n," 小时前"):l>0?"".concat(l," 分钟前"):"刚刚"}l.d(t,{Jm:()=>s,fw:()=>r,z3:()=>n});let i={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},a={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function s(e){var t;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===l?a:i)[e])?t:e}},49952:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return w}});let n=l(34007),r=l(26908),i=l(65321),a=r._(l(97109)),s=n._(l(61222)),o=n._(l(64041)),c=l(62956),d=l(83149),u=l(65059);l(28965);let h=l(99318),m=n._(l(4632)),g=l(47503),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function f(e,t,l,n,r,i,a){let s=null==e?void 0:e.src;e&&e["data-loaded-src"]!==s&&(e["data-loaded-src"]=s,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&r(!0),null==l?void 0:l.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,r=!1;l.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>r,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{r=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function y(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}let _=(0,a.forwardRef)((e,t)=>{let{src:l,srcSet:n,sizes:r,height:s,width:o,decoding:c,className:d,style:u,fetchPriority:h,placeholder:m,loading:p,unoptimized:_,fill:x,onLoadRef:w,onLoadingCompleteRef:v,setBlurComplete:j,setShowAltText:b,sizesInput:C,onLoad:A,onError:S,...k}=e,P=(0,a.useCallback)(e=>{e&&(S&&(e.src=e.src),e.complete&&f(e,m,w,v,j,_,C))},[l,m,w,v,j,S,_,C]),R=(0,g.useMergedRef)(t,P);return(0,i.jsx)("img",{...k,...y(h),loading:p,width:o,height:s,decoding:c,"data-nimg":x?"fill":"1",className:d,style:u,sizes:r,srcSet:n,src:l,ref:R,onLoad:e=>{f(e.currentTarget,m,w,v,j,_,C)},onError:e=>{b(!0),"empty"!==m&&j(!0),S&&S(e)}})});function x(e){let{isAppRouter:t,imgAttributes:l}=e,n={as:"image",imageSrcSet:l.srcSet,imageSizes:l.sizes,crossOrigin:l.crossOrigin,referrerPolicy:l.referrerPolicy,...y(l.fetchPriority)};return t&&s.default.preload?(s.default.preload(l.src,n),null):(0,i.jsx)(o.default,{children:(0,i.jsx)("link",{rel:"preload",href:l.srcSet?void 0:l.src,...n},"__nimg-"+l.src+l.srcSet+l.sizes)})}let w=(0,a.forwardRef)((e,t)=>{let l=(0,a.useContext)(h.RouterContext),n=(0,a.useContext)(u.ImageConfigContext),r=(0,a.useMemo)(()=>{var e;let t=p||n||d.imageConfigDefault,l=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),r=t.deviceSizes.sort((e,t)=>e-t),i=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:l,deviceSizes:r,qualities:i}},[n]),{onLoad:s,onLoadingComplete:o}=e,g=(0,a.useRef)(s);(0,a.useEffect)(()=>{g.current=s},[s]);let f=(0,a.useRef)(o);(0,a.useEffect)(()=>{f.current=o},[o]);let[y,w]=(0,a.useState)(!1),[v,j]=(0,a.useState)(!1),{props:b,meta:C}=(0,c.getImgProps)(e,{defaultLoader:m.default,imgConf:r,blurComplete:y,showAltText:v});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(_,{...b,unoptimized:C.unoptimized,placeholder:C.placeholder,fill:C.fill,onLoadRef:g,onLoadingCompleteRef:f,setBlurComplete:w,setShowAltText:j,sizesInput:e.sizes,ref:t}),C.priority?(0,i.jsx)(x,{isAppRouter:!l,imgAttributes:b}):null]})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},58970:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"}},62956:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImgProps",{enumerable:!0,get:function(){return o}}),l(28965);let n=l(65545),r=l(83149),i=["-moz-initial","fill","none","scale-down",void 0];function a(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function o(e,t){var l,o;let c,d,u,{src:h,sizes:m,unoptimized:g=!1,priority:p=!1,loading:f,className:y,quality:_,width:x,height:w,fill:v=!1,style:j,overrideSrc:b,onLoad:C,onLoadingComplete:A,placeholder:S="empty",blurDataURL:k,fetchPriority:P,decoding:R="async",layout:I,objectFit:z,objectPosition:E,lazyBoundary:O,lazyRoot:N,...M}=e,{imgConf:D,showAltText:L,blurComplete:T,defaultLoader:F}=t,B=D||r.imageConfigDefault;if("allSizes"in B)c=B;else{let e=[...B.deviceSizes,...B.imageSizes].sort((e,t)=>e-t),t=B.deviceSizes.sort((e,t)=>e-t),n=null==(l=B.qualities)?void 0:l.sort((e,t)=>e-t);c={...B,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===F)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let J=M.loader||F;delete M.loader,delete M.srcSet;let V="__next_img_default"in J;if(V){if("custom"===c.loader)throw Object.defineProperty(Error('Image with src "'+h+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=J;J=t=>{let{config:l,...n}=t;return e(n)}}if(I){"fill"===I&&(v=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[I];e&&(j={...j,...e});let t={responsive:"100vw",fill:"100vw"}[I];t&&!m&&(m=t)}let H="",K=s(x),G=s(w);if((o=h)&&"object"==typeof o&&(a(o)||void 0!==o.src)){let e=a(h)?h.default:h;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(d=e.blurWidth,u=e.blurHeight,k=k||e.blurDataURL,H=e.src,!v)if(K||G){if(K&&!G){let t=K/e.width;G=Math.round(e.height*t)}else if(!K&&G){let t=G/e.height;K=Math.round(e.width*t)}}else K=e.width,G=e.height}let W=!p&&("lazy"===f||void 0===f);(!(h="string"==typeof h?h:H)||h.startsWith("data:")||h.startsWith("blob:"))&&(g=!0,W=!1),c.unoptimized&&(g=!0),V&&!c.dangerouslyAllowSVG&&h.split("?",1)[0].endsWith(".svg")&&(g=!0);let U=s(_),X=Object.assign(v?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:z,objectPosition:E}:{},L?{}:{color:"transparent"},j),q=T||"empty"===S?null:"blur"===S?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:K,heightInt:G,blurWidth:d,blurHeight:u,blurDataURL:k||"",objectFit:X.objectFit})+'")':'url("'+S+'")',$=i.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,Y=q?{backgroundSize:$,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:q}:{},Z=function(e){let{config:t,src:l,unoptimized:n,width:r,quality:i,sizes:a,loader:s}=e;if(n)return{src:l,srcSet:void 0,sizes:void 0};let{widths:o,kind:c}=function(e,t,l){let{deviceSizes:n,allSizes:r}=e;if(l){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(l);)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:r.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:r,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>r.find(t=>t>=e)||r[r.length-1]))],kind:"x"}}(t,r,a),d=o.length-1;return{sizes:a||"w"!==c?a:"100vw",srcSet:o.map((e,n)=>s({config:t,src:l,quality:i,width:e})+" "+("w"===c?e:n+1)+c).join(", "),src:s({config:t,src:l,quality:i,width:o[d]})}}({config:c,src:h,unoptimized:g,width:K,quality:U,sizes:m,loader:J});return{props:{...M,loading:W?"lazy":f,fetchPriority:P,width:K,height:G,decoding:R,className:y,style:{...X,...Y},sizes:Z.sizes,srcSet:Z.srcSet,src:b||Z.src},meta:{unoptimized:g,priority:p,placeholder:S,fill:v}}}},65545:(e,t)=>{"use strict";function l(e){let{widthInt:t,heightInt:l,blurWidth:n,blurHeight:r,blurDataURL:i,objectFit:a}=e,s=n?40*n:t,o=r?40*r:l,c=s&&o?"viewBox='0 0 "+s+" "+o+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+c+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(c?"none":"contain"===a?"xMidYMid":"cover"===a?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+i+"'/%3E%3C/svg%3E"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImageBlurSvg",{enumerable:!0,get:function(){return l}})},70107:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>T});var n=l(65321),r=l(97109),i=l(1873),a=l.n(i),s=l(86109),o=l(35292),c=l(76506),d=l(33442),u=l(11702),h=l(9137),m=l(21289),g=l(68787),p=l(56985),f=l(49604),y=l(88762),_=l(85493),x=l(84253),w=l(85114),v=l(58569),j=l(7576),b=l(58970),C=l(88483);function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n])}return e}).apply(this,arguments)}let S=r.forwardRef((e,t)=>r.createElement(C.A,A({},e,{ref:t,icon:b.A})));var k=l(6578),P=l(79059),R=l(45551),I=l(14569),z=l.n(I);let{Paragraph:E}=o.A;function O(e){if(!e)return{};try{return JSON.parse(e)}catch(e){return{}}}function N(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).slice(0,30):[]}function M(e,t){let l=t.trim()?[t.trim(),...t.split(/[\s,,。;;::、]+/u)].filter(Boolean).sort((e,t)=>t.length-e.length):[];if(0===l.length)return e;let r=RegExp("(".concat(l.map(e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")).join("|"),")"),"giu");return e.split(r).map((e,t)=>l.some(t=>t.toLowerCase()===e.toLowerCase())?(0,n.jsx)("mark",{children:e},t):e)}function D(e,t,l){return null==t||""===t||Array.isArray(t)&&0===t.length?null:(0,n.jsx)(c.A.Item,{label:e,children:Array.isArray(t)?(0,n.jsx)(d.A,{wrap:!0,children:t.map(e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>null==l?void 0:l(String(e)),children:String(e)},String(e)))}):String(t)})}function L(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value";return e.map((e,l)=>({key:"".concat(t,"-").concat(l),name:e}))}function T(){var e,t,l,i,o;let b=(0,P.Vr)(),C=(0,s.useRouter)(),A="string"==typeof C.query.relativePath?C.query.relativePath:"",[I,T]=(0,r.useState)(),[F,B]=(0,r.useState)(!1),[J,V]=(0,r.useState)(""),[H,K]=(0,r.useState)(!1),[G,W]=(0,r.useState)(""),[U,X]=(0,r.useState)([]);(0,r.useEffect)(()=>{A&&(B(!0),V(""),(0,k.xC)(A).then(T).catch(e=>{T(void 0),V(e instanceof Error?e.message:"文件详情加载失败")}).finally(()=>B(!1)))},[A]);let q=(0,r.useMemo)(()=>(function(e){let t=O(null==e?void 0:e.file.metadataJson);return"object"==typeof t.extraction&&t.extraction?t.extraction:t})(I),[I]),$=N(q.layerNames);(0,r.useEffect)(()=>{X($)},[null==I?void 0:I.file.relativePath,$.join("|")]);let Y=G.trim().toLowerCase(),Z=(0,r.useMemo)(()=>{var e;return I&&Y?I.chunks.filter(e=>{let t=O(e.metadataJson);return[e.content,e.sectionTitle,t.rowRange,t.chunkKind,t.parentId,JSON.stringify(t)].some(e=>String(null!=e?e:"").toLowerCase().includes(Y))}):null!=(e=null==I?void 0:I.chunks)?e:[]},[I,Y]),Q=(0,r.useMemo)(()=>{var e;return I&&Y?I.parents.filter(e=>[e.content,e.sectionTitle,e.parentId,e.metadataJson].some(e=>String(null!=e?e:"").toLowerCase().includes(Y))):null!=(e=null==I?void 0:I.parents)?e:[]},[I,Y]),ee=async()=>{if(A){K(!0);try{let e=await (0,k.HC)(A);e.detail&&T(e.detail),h.Ay.success("文件索引已重建")}finally{K(!1)}}},et=async e=>{e&&(await navigator.clipboard.writeText(e),h.Ay.success("已复制"))},el=async e=>{A&&(await (0,k.tn)(A,e),h.Ay.success("file"===e?"已请求打开文件":"已请求打开目录"))},en=(0,r.useMemo)(()=>{var e,t,l,r,i;let s=[],o=N(q.sheetNames),h=N(q.columnNames),y=N(q.layerNames),_=N(q.blockNames),x=N(q.entityTypes),w=N(q.productNames),v=N(q.materialNames),j=N(q.entityNames),b=N(q.dataPaths),C=o.length>0||h.length>0||null!=q.rowCount||null!=q.columnCount||null!=q.formulaCount||null!=q.mergeCount,A=L(h,"column"),S=(null!=(e=null==I?void 0:I.chunks)?e:[]).map(e=>O(e.metadataJson).rowRange).filter(e=>"string"==typeof e).map((e,t)=>({key:"row-".concat(t),name:e})),k=(null!=(t=null==I?void 0:I.chunks)?t:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>e.includes("|")).slice(0,80).map((e,t)=>({key:"grid-".concat(t),cells:e.split("|").map(e=>e.trim()).filter(Boolean)}));(C||A.length>0||S.length>0||k.length>0)&&s.push({key:"table",label:"表格",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[C&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("Sheet",o,W),D("表头",h,W),D("行数",q.rowCount),D("列数",q.columnCount),D("公式数",q.formulaCount),D("合并单元格",q.mergeCount)]}),A.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:A,columns:[{title:"列名",dataIndex:"name",render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})}]}),S.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:S,columns:[{title:"行范围",dataIndex:"name",render:e=>(0,n.jsxs)(u.A,{color:"gold",className:"cursor-pointer",onClick:()=>W(String(e)),children:["行 ",String(e)]})}]}),k.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:k,pagination:{pageSize:10},columns:[{title:"表格网格预览",dataIndex:"cells",render:e=>(0,n.jsx)(d.A,{wrap:!0,children:e.map((e,t)=>(0,n.jsx)(u.A,{children:e},"".concat(e,"-").concat(t)))})}]})]})});let P=y.length>0||_.length>0||x.length>0||w.length>0||v.length>0||j.length>0,R=[...L(y,"layer").map(e=>({...e,type:"图层"})),...L(x,"entity").map(e=>({...e,type:"实体类型"})),...L(_,"block").map(e=>({...e,type:"块/符号"}))];(P||y.length>0||R.length>0)&&s.push({key:"drawing",label:"图纸",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[P&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("图层",y,W),D("块/符号",_,W),D("实体类型",x,W),D("产品/零件",w,W),D("材料",v,W),D("实体名称",j,W)]}),y.length>0&&(0,n.jsxs)(g.A,{size:"small",title:"图层开关 / 图纸预览",children:[(0,n.jsx)(p.A.Group,{value:U,options:y.map(e=>({label:e,value:e})),onChange:e=>X(e.map(String))}),(0,n.jsx)("div",{className:z().drawingPreview,children:U.map(e=>(0,n.jsx)(u.A,{color:"blue",children:e},e))})]}),R.length>0&&(0,n.jsx)(m.A,{size:"small",pagination:!1,rowKey:"key",dataSource:R,columns:[{title:"类型",dataIndex:"type",width:120},{title:"名称",dataIndex:"name",render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})}]})]})});let M=(null!=(l=null==I?void 0:I.chunks)?l:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>/^[\w.[\]-]+\s*[:=]/u.test(e)).slice(0,200).map((e,t)=>{var l,n,r,i;let a=/^([^:=]+)\s*[:=]\s*(.*)$/u.exec(e);return{key:"data-".concat(t),path:null!=(r=null==a||null==(l=a[1])?void 0:l.trim())?r:e,value:null!=(i=null==a||null==(n=a[2])?void 0:n.trim())?i:""}});(b.length>0||M.length>0)&&s.push({key:"data",label:"数据路径",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[b.length>0&&(0,n.jsx)(f.A,{defaultExpandAll:!0,treeData:function(e){let t=new Map;for(let l of e){let e=t;for(let t of l.replace(/\[(\d+)\]/gu,".$1").split(".").filter(Boolean))e.has(t)||e.set(t,new Map),e=e.get(t)}let l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return[...e.entries()].map(e=>{let[n,r]=e;return{title:n,key:t?"".concat(t,".").concat(n):n,children:l(r,t?"".concat(t,".").concat(n):n)}})};return l(t)}(b),onSelect:e=>{var t;return W(String(null!=(t=e[0])?t:""))}}),M.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:M,pagination:{pageSize:20},columns:[{title:"Path",dataIndex:"path",width:260,render:e=>(0,n.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})},{title:"Value",dataIndex:"value",render:e=>(0,n.jsx)("span",{className:"break-all",children:String(e)})}]})]})});let T=null!=q.ocrRecommended||null!=q.ocrReason||null!=q.ocrProvider||null!=q.ocrLanguages||null!=q.ocrTextLength||null!=q.pdfPageOcrSupported||null!=q.ocrPageCount||null!=q.pdfOcrPageLimit||null!=q.pdfRenderer,F=(null!=(r=null==I?void 0:I.chunks)?r:[]).map(e=>e.content).join("\n\n").split(/PDF OCR 第\s*(\d+)\s*页[::]/u).slice(1).reduce((e,t,l,n)=>{var r,i,a;return l%2==0&&e.push({key:"page-".concat(t),page:t,text:null!=(a=null==(i=n[l+1])||null==(r=i.split(/PDF OCR 第\s*\d+\s*页[::]/u)[0])?void 0:r.trim())?a:""}),e},[]),B=(null==I?void 0:I.file.format)==="pdf";return(T||B||F.length>0)&&s.push({key:"ocr",label:"OCR/PDF",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[T&&(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[D("OCR 建议",q.ocrRecommended),D("OCR 原因",q.ocrReason),D("OCR 引擎",q.ocrProvider),D("OCR 语言",q.ocrLanguages),D("OCR 文本长度",q.ocrTextLength),D("PDF 页面 OCR 支持",q.pdfPageOcrSupported),D("PDF OCR 页数",q.ocrPageCount),D("PDF OCR 页数上限",q.pdfOcrPageLimit),D("PDF 渲染器",q.pdfRenderer)]}),B&&(0,n.jsx)("div",{className:z().pdfPreviewStrip,children:Array.from({length:Math.min(Number(null!=(i=q.ocrPageCount)?i:1)||1,6)},(e,t)=>(0,n.jsx)(a(),{width:220,height:320,src:"/api/kb/files/preview-pdf-page?relativePath=".concat(encodeURIComponent(I.file.relativePath),"&page=").concat(t+1),alt:"PDF 第 ".concat(t+1," 页"),unoptimized:!0},t))}),F.length>0&&(0,n.jsx)(m.A,{size:"small",rowKey:"key",dataSource:F,pagination:{pageSize:10},columns:[{title:"页码",dataIndex:"page",width:90},{title:"OCR 文本",dataIndex:"text",render:e=>(0,n.jsx)(E,{ellipsis:{rows:4,expandable:!0,symbol:"展开"},children:String(e)})}]})]})}),s},[q,I,U]),er=[{title:"序号",key:"index",width:70,render:(e,t,l)=>l+1},{title:b("knowledge.chunkIndex"),dataIndex:"chunkIndex",width:90,render:e=>String(e)},{title:b("knowledge.chunkType"),width:110,render:(e,t)=>{var l;return(0,n.jsx)(u.A,{children:String(null!=(l=O(t.metadataJson).chunkKind)?l:t.category)})}},{title:b("knowledge.sectionOrRange"),width:220,render:(e,t)=>{let l=O(t.metadataJson),r="string"==typeof l.rowRange?l.rowRange:void 0;return(0,n.jsxs)(d.A,{wrap:!0,children:[t.sectionTitle?(0,n.jsx)(u.A,{color:"cyan",children:t.sectionTitle}):null,r?(0,n.jsxs)(u.A,{color:"gold",children:["行 ",r]}):null]})}},{title:"Token",dataIndex:"tokenCount",width:90},{title:b("knowledge.chunkContent"),render:(e,t)=>(0,n.jsx)(E,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:z().searchContent,children:M(t.content,G)})}],ei=[{title:"序号",key:"index",width:70,render:(e,t,l)=>l+1},{title:b("knowledge.parentChunkId"),dataIndex:"parentId",width:260,render:e=>(0,n.jsx)("span",{className:"break-all",children:e})},{title:"切片数",dataIndex:"chunkCount",width:90},{title:"章节",dataIndex:"sectionTitle",width:220},{title:b("knowledge.chunkContent"),render:(e,t)=>(0,n.jsx)(E,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:z().searchContent,children:M(t.content,G)})}];return F?(0,n.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,n.jsx)(y.A,{active:!0,paragraph:{rows:1}}),(0,n.jsx)(g.A,{size:"small",children:(0,n.jsx)(y.A,{active:!0,paragraph:{rows:6}})}),(0,n.jsx)(g.A,{size:"small",children:(0,n.jsx)(y.A,{active:!0,paragraph:{rows:4}})})]}):J?(0,n.jsx)(_.A,{type:"error",showIcon:!0,message:"文件详情加载失败",description:J}):I?(0,n.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)(w.Ay,{icon:(0,n.jsx)(S,{}),href:"/knowledge/files",size:"small",style:{marginBottom:12},children:"返回文件列表"}),(0,n.jsxs)("div",{className:z().searchResultHeader,children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"pageTitle",children:"文件详情"}),(0,n.jsx)("p",{className:"pageDesc",children:"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。"})]}),(0,n.jsxs)(d.A,{children:[(0,n.jsx)(w.Ay,{onClick:()=>{et(null==I?void 0:I.absolutePath)},children:"复制原文件路径"}),(0,n.jsx)(w.Ay,{onClick:()=>{et(null==I?void 0:I.directory)},children:"复制所在目录"}),(0,n.jsx)(w.Ay,{onClick:()=>{el("file")},children:"打开文件"}),(0,n.jsx)(w.Ay,{onClick:()=>{el("directory")},children:"打开目录"}),"pdf"===I.file.format?(0,n.jsx)(w.Ay,{loading:H,onClick:()=>{ee()},children:"重新 OCR"}):null,(0,n.jsx)(w.Ay,{type:"primary",loading:H,onClick:()=>{ee()},children:"重建该文件索引"})]})]})]}),(0,n.jsx)(g.A,{size:"small",title:"基础信息",children:(0,n.jsxs)(c.A,{size:"small",column:2,bordered:!0,children:[(0,n.jsx)(c.A.Item,{label:"路径",children:I.file.relativePath}),(0,n.jsx)(c.A.Item,{label:"原文件",children:null!=(e=I.absolutePath)?e:"-"}),(0,n.jsx)(c.A.Item,{label:"所在目录",children:null!=(t=I.directory)?t:"-"}),(0,n.jsxs)(c.A.Item,{label:"分类",children:[(0,n.jsx)(u.A,{children:(0,R.Jm)(I.file.category)})," ",(0,n.jsx)(u.A,{children:I.file.format})]}),(0,n.jsx)(c.A.Item,{label:"大小",children:(0,R.z3)(I.file.fileSize)}),(0,n.jsx)(c.A.Item,{label:"切片数",children:I.file.chunkCount}),(0,n.jsx)(c.A.Item,{label:"状态",children:I.file.status}),(0,n.jsx)(c.A.Item,{label:"解析模式",children:String(null!=(l=q.extractionMode)?l:"-")}),(0,n.jsx)(c.A.Item,{label:"覆盖范围",children:String(null!=(i=q.contentCoverage)?i:"-")}),(0,n.jsx)(c.A.Item,{label:"正文长度",children:String(null!=(o=q.textLength)?o:"-")})]})}),en.length>0&&(0,n.jsx)(g.A,{size:"small",title:"结构化信息",children:(0,n.jsx)(v.A,{items:en})}),(0,n.jsx)(g.A,{size:"small",title:"详情筛选",children:(0,n.jsxs)(d.A,{direction:"vertical",className:"w-full",children:[(0,n.jsx)(j.A,{allowClear:!0,value:G,onChange:e=>W(e.target.value),placeholder:"筛选 rowRange、图层、实体、data path、section、chunk 内容"}),G?(0,n.jsxs)(d.A,{wrap:!0,children:[(0,n.jsxs)(u.A,{color:"blue",children:[b("knowledge.parentMatches")," ",Q.length]}),(0,n.jsxs)(u.A,{color:"green",children:[b("knowledge.childMatches")," ",Z.length]}),(0,n.jsxs)(u.A,{color:"purple",children:[b("knowledge.filterTerm")," ",G]})]}):null]})}),(0,n.jsxs)(g.A,{size:"small",title:"".concat(b("knowledge.parentChunks")," (").concat(Q.length,"/").concat(I.parents.length,")"),children:[(0,n.jsx)(_.A,{type:"info",showIcon:!0,message:b("knowledge.parentChunkHint"),style:{marginBottom:12}}),(0,n.jsx)(m.A,{rowKey:"id",columns:ei,dataSource:Q,pagination:{pageSize:10},size:"small"})]}),(0,n.jsx)(g.A,{size:"small",title:"".concat(b("knowledge.childChunks")," (").concat(Z.length,"/").concat(I.chunks.length,")"),children:(0,n.jsx)(m.A,{rowKey:"id",columns:er,dataSource:Z,pagination:{pageSize:20},size:"small"})})]}):(0,n.jsx)(x.A,{description:"请选择文件"})}},91952:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var l in t)Object.defineProperty(e,l,{enumerable:!0,get:t[l]})}(t,{default:function(){return o},getImageProps:function(){return s}});let n=l(34007),r=l(62956),i=l(49952),a=n._(l(4632));function s(e){let{props:t}=(0,r.getImgProps)(e,{defaultLoader:a.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,l]of Object.entries(t))void 0===l&&delete t[e];return{props:t}}let o=i.Image}},e=>{e.O(0,[433,787,576,985,150,289,506,512,636,593,792],()=>e(e.s=37690)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[28],{1611:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"database",theme:"outlined"}},10218:(e,t,l)=>{"use strict";l.d(t,{A:()=>g,H:()=>m});var r=l(97109),n=l(4932),a=l(82813);let s=e=>"object"==typeof e&&null!=e&&1===e.nodeType,i=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,o=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){let l=getComputedStyle(e,null);return i(l.overflowY,t)||i(l.overflowX,t)||(e=>{let t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)})(e)}return!1},c=(e,t,l,r,n,a,s,i)=>a<e&&s>t||a>e&&s<t?0:a<=e&&i<=l||s>=t&&i>=l?a-e-r:s>t&&i<l||a<e&&i>l?s-t+n:0,u=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},d=(e,t)=>{var l,r,n,a;if("undefined"==typeof document)return[];let{scrollMode:i,block:d,inline:f,boundary:h,skipOverflowHiddenElements:m}=t,p="function"==typeof h?h:e=>e!==h;if(!s(e))throw TypeError("Invalid target");let g=document.scrollingElement||document.documentElement,v=[],y=e;for(;s(y)&&p(y);){if((y=u(y))===g){v.push(y);break}null!=y&&y===document.body&&o(y)&&!o(document.documentElement)||null!=y&&o(y,m)&&v.push(y)}let x=null!=(r=null==(l=window.visualViewport)?void 0:l.width)?r:innerWidth,w=null!=(a=null==(n=window.visualViewport)?void 0:n.height)?a:innerHeight,{scrollX:j,scrollY:b}=window,{height:_,width:A,top:z,right:C,bottom:k,left:S}=e.getBoundingClientRect(),{top:M,right:P,bottom:N,left:H}=(e=>{let t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e),I="start"===d||"nearest"===d?z-M:"end"===d?k+N:z+_/2-M+N,E="center"===f?S+A/2-H+P:"end"===f?C+P:S-H,O=[];for(let e=0;e<v.length;e++){let t=v[e],{height:l,width:r,top:n,right:a,bottom:s,left:u}=t.getBoundingClientRect();if("if-needed"===i&&z>=0&&S>=0&&k<=w&&C<=x&&(t===g&&!o(t)||z>=n&&k<=s&&S>=u&&C<=a))break;let h=getComputedStyle(t),m=parseInt(h.borderLeftWidth,10),p=parseInt(h.borderTopWidth,10),y=parseInt(h.borderRightWidth,10),M=parseInt(h.borderBottomWidth,10),P=0,N=0,H="offsetWidth"in t?t.offsetWidth-t.clientWidth-m-y:0,F="offsetHeight"in t?t.offsetHeight-t.clientHeight-p-M:0,V="offsetWidth"in t?0===t.offsetWidth?0:r/t.offsetWidth:0,T="offsetHeight"in t?0===t.offsetHeight?0:l/t.offsetHeight:0;if(g===t)P="start"===d?I:"end"===d?I-w:"nearest"===d?c(b,b+w,w,p,M,b+I,b+I+_,_):I-w/2,N="start"===f?E:"center"===f?E-x/2:"end"===f?E-x:c(j,j+x,x,m,y,j+E,j+E+A,A),P=Math.max(0,P+b),N=Math.max(0,N+j);else{P="start"===d?I-n-p:"end"===d?I-s+M+F:"nearest"===d?c(n,s,l,p,M+F,I,I+_,_):I-(n+l/2)+F/2,N="start"===f?E-u-m:"center"===f?E-(u+r/2)+H/2:"end"===f?E-a+y+H:c(u,a,r,m,y+H,E,E+A,A);let{scrollLeft:e,scrollTop:i}=t;P=0===T?0:Math.max(0,Math.min(i+P/T,t.scrollHeight-l/T+F)),N=0===V?0:Math.max(0,Math.min(e+N/V,t.scrollWidth-r/V+H)),I+=i-P,E+=e-N}O.push({el:t,top:P,left:N})}return O};var f=l(26047),h=l(44624);function m(e){return(0,h.$r)(e).join("_")}function p(e,t){let l=t.getFieldInstance(e),r=(0,a.rb)(l);if(r)return r;let n=(0,h.kV)((0,h.$r)(e),t.__INTERNAL__.name);if(n)return document.getElementById(n)}function g(e){let[t]=(0,n.mN)(),l=r.useRef({}),a=r.useMemo(()=>e??{...t,__INTERNAL__:{itemRef:e=>t=>{let r=m(e);t?l.current[r]=t:delete l.current[r]}},scrollToField:(e,t={})=>{let{focus:l,...r}=t,n=p(e,a);n&&(!function(e,t){if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let l=(e=>{let t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(d(e,t));let r="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:n,top:a,left:s}of d(e,!1===t?{block:"end",inline:"nearest"}:t===Object(t)&&0!==Object.keys(t).length?t:{block:"start",inline:"nearest"})){let e=a-l.top+l.bottom,t=s-l.left+l.right;n.scroll({top:e,left:t,behavior:r})}}(n,{scrollMode:"if-needed",block:"nearest",...r}),l&&a.focusField(e))},focusField:e=>{let t=a.getFieldInstance(e);(0,f.Tn)(t?.focus)?t.focus():p(e,a)?.focus?.()},getFieldInstance:e=>{let t=m(e);return l.current[t]}},[e,t]);return[a]}},12887:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"}},13067:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0010.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 00-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z"}}]},name:"file-excel",theme:"outlined"}},14569:e=>{e.exports={featureLabel:"style_featureLabel__XFSTX",featureValue:"style_featureValue__I_wMP",filterInput:"style_filterInput__4_Elu",filterSelect:"style_filterSelect__vUBJ9",statusCard:"style_statusCard__H7Mee",statusSummary:"style_statusSummary__7KavF",statusSummaryText:"style_statusSummaryText__Shw3j",statusClearBtn:"style_statusClearBtn__uJ9bE",statusExpandBtn:"style_statusExpandBtn__HhgIj",statusFilters:"style_statusFilters__g_LbG",filterPill:"style_filterPill__1pjFW",filterPillActive:"style_filterPillActive___UZVi",statusPanel:"style_statusPanel__9arTu",statusEmpty:"style_statusEmpty__8LWzH",timelineList:"style_timelineList__dqJrz",timelineItem:"style_timelineItem__dbuL_",timelineStatusIcon:"style_timelineStatusIcon__SkRwb",timelinePercent:"style_timelinePercent__pEyH4",timelineRow:"style_timelineRow__EDOVa",timelineTitle:"style_timelineTitle__Yujr8",timelineClose:"style_timelineClose__Byx_9",timelineDetail:"style_timelineDetail__nALei",timelineDesc:"style_timelineDesc__FMjWE",timelinePath:"style_timelinePath__C9VQI",timelineMeta:"style_timelineMeta__u_pCn",timelineMetaTag:"style_timelineMetaTag__G3jF1",timelineExpandArrow:"style_timelineExpandArrow__xIBdF",timelineExpandArrowOpen:"style_timelineExpandArrowOpen__TWWDC",fileNameCell:"style_fileNameCell__EHsnt",folderName:"style_folderName__VhLXP",folderRow:"style_folderRow__d7k9S",searchResultList:"style_searchResultList__cVKZg",searchResultItem:"style_searchResultItem__boj6D",searchResultHeader:"style_searchResultHeader__meVdJ",searchContent:"style_searchContent__XbUVk",pdfPreviewStrip:"style_pdfPreviewStrip__94_eG",drawingPreview:"style_drawingPreview__lkk_L"}},23793:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"}},25258:(e,t,l)=>{"use strict";l.d(t,{A:()=>w});var r=l(51541),n=l(61848),a=l(5669),s=l(97109),i=l(72658),o=l(3638),c=l(92162),u=l(82725),d=l(74567),f=l(632),h=l(49517),m=l(79412),p=l(19527);let g=(0,u.U)(e=>{let{prefixCls:t,className:l,closeIcon:r,closable:n,type:a,title:u,children:g,footer:v,classNames:y,styles:x,...w}=e,{getPrefixCls:j}=s.useContext(d.QO),{className:b,style:_,classNames:A,styles:z}=(0,d.TP)("modal"),C=j(),k=t||j("modal"),S=(0,f.A)(C),[M,P]=(0,p.Ay)(k,S),[N,H]=(0,c.AV)([A,y],[z,x],{props:e}),I=`${k}-confirm`,E={};return E=a?{closable:n??!1,title:"",footer:"",children:s.createElement(h.k,{...e,prefixCls:k,confirmPrefixCls:I,rootPrefixCls:C,content:g})}:{closable:n??!0,title:u,footer:null!==v&&s.createElement(m.w,{...e}),children:g},s.createElement(i.Z,{prefixCls:k,className:(0,o.$)(M,`${k}-pure-panel`,a&&I,a&&`${I}-${a}`,l,b,P,S,N.root),style:{..._,...H.root},...w,closeIcon:(0,m.O)(k,r),closable:n,classNames:N,styles:H,...E})});var v=l(99739);function y(e){return(0,r.Ay)((0,r.fp)(e))}let x=a.A;x.useModal=v.A,x.info=function(e){return(0,r.Ay)((0,r.$D)(e))},x.success=function(e){return(0,r.Ay)((0,r.Ej)(e))},x.error=function(e){return(0,r.Ay)((0,r.jT)(e))},x.warning=y,x.warn=y,x.confirm=function(e){return(0,r.Ay)((0,r.lr)(e))},x.destroyAll=function(){for(;n.A.length;){let e=n.A.pop();e&&e()}},x.config=r.FB,x._InternalPanelDoNotUseOrYouWillBeFired=g;let w=x},26619:(e,t,l)=>{"use strict";l.d(t,{A:()=>i});var r=l(97109),n=l(1611),a=l(88483);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let i=r.forwardRef((e,t)=>r.createElement(a.A,s({},e,{ref:t,icon:n.A})))},26631:(e,t,l)=>{"use strict";l.d(t,{A:()=>i});var r=l(97109),n=l(12887),a=l(88483);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let i=r.forwardRef((e,t)=>r.createElement(a.A,s({},e,{ref:t,icon:n.A})))},30289:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"}},44624:(e,t,l)=>{"use strict";l.d(t,{$r:()=>n,BS:()=>s,kV:()=>a});let r=["parentNode"];function n(e){return void 0===e||!1===e?[]:Array.isArray(e)?e:[e]}function a(e,t){if(!e.length)return;let l=e.join("_");return t?`${t}_${l}`:r.includes(l)?`form_item_${l}`:l}function s(e,t,l,r,n,a){let s=r;return void 0!==a?s=a:l.validating?s="validating":e.length?s="error":t.length?s="warning":(l.touched||n&&l.validated)&&(s="success"),s}},45551:(e,t,l)=>{"use strict";function r(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),l=e/Math.pow(1024,t);return"".concat(l.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let l=Math.floor(Math.floor((Date.now()-e)/1e3)/60),r=Math.floor(l/60),n=Math.floor(r/24);return n>30?new Date(e).toLocaleDateString(t):"en-US"===t?n>0?"".concat(n,"d ago"):r>0?"".concat(r,"h ago"):l>0?"".concat(l,"m ago"):"Just now":n>0?"".concat(n," 天前"):r>0?"".concat(r," 小时前"):l>0?"".concat(l," 分钟前"):"刚刚"}l.d(t,{Jm:()=>i,fw:()=>n,z3:()=>r});let a={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},s={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function i(e){var t;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===l?s:a)[e])?t:e}},48893:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file-image",theme:"outlined"}},53234:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM496 208H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 244a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"hdd",theme:"outlined"}},58209:(e,t,l)=>{"use strict";l.d(t,{A:()=>i});var r=l(97109),n=l(23793),a=l(88483);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let i=r.forwardRef((e,t)=>r.createElement(a.A,s({},e,{ref:t,icon:n.A})))},58520:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 00-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 00-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z"}}]},name:"file-word",theme:"outlined"}},61825:(e,t,l)=>{"use strict";l.d(t,{A:()=>i});var r=l(97109),n=l(30289),a=l(88483);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let i=r.forwardRef((e,t)=>r.createElement(a.A,s({},e,{ref:t,icon:n.A})))},82738:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>ee});var r=l(65321),n=l(97109),a=l(79059),s=l(43220),i=l.n(s),o=l(86109),c=l(17807),u=l(25258),d=l(11702),f=l(85114),h=l(7576),m=l(57271),p=l(68787),g=l(33442),v=l(99605),y=l(14932),x=l(21289),w=l(56768),j=l(48893),b=l(88483);function _(){return(_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let A=n.forwardRef((e,t)=>n.createElement(b.A,_({},e,{ref:t,icon:j.A})));var z=l(13067);function C(){return(C=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let k=n.forwardRef((e,t)=>n.createElement(b.A,C({},e,{ref:t,icon:z.A})));var S=l(58520);function M(){return(M=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let P=n.forwardRef((e,t)=>n.createElement(b.A,M({},e,{ref:t,icon:S.A})));var N=l(90939);function H(){return(H=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let I=n.forwardRef((e,t)=>n.createElement(b.A,H({},e,{ref:t,icon:N.A})));var E=l(93314),O=l(61825),F=l(26619),V=l(29606),T=l(26631),B=l(64254),L=l(58209),R=l(30486),D=l(92803);function W(){return(W=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let $=n.forwardRef((e,t)=>n.createElement(b.A,W({},e,{ref:t,icon:D.A})));var U=l(64629),J=l(84742),Q=l(38762),X=l(6578),q=l(45551),G=l(14569),K=l.n(G);let Y=["document","spreadsheet","image","cad","code","data","web","diagram","other"],Z=/\.(zip|jar|war|apk|tar|gz|tgz|bz2|rar|7z)$/iu;function ee(){let e=(0,a.Vr)("knowledge"),{locale:t}=(0,a.x_)(),{message:l}=c.A.useApp(),s=(0,o.useRouter)(),j="string"==typeof s.query.category?s.query.category:"",[b,_]=(0,n.useState)([]),[z,C]=(0,n.useState)(!1),[S,M]=(0,n.useState)(""),[N,H]=(0,n.useState)(""),[D,W]=(0,n.useState)(j),[G,ee]=(0,n.useState)(!1),[et,el]=(0,n.useState)(!1),[er,en]=(0,n.useState)([]),[ea,es]=(0,n.useState)([]),[ei,eo]=(0,n.useState)(new Set),[ec,eu]=(0,n.useState)("all"),[ed,ef]=(0,n.useState)("user"),[eh,em]=(0,n.useState)(!0),[ep,eg]=(0,n.useState)([]),ev=(0,n.useRef)(D);(0,n.useEffect)(()=>{ev.current=D},[D]),(0,n.useEffect)(()=>{W("string"==typeof s.query.category?s.query.category:"")},[s.query.category]);let ey=(0,n.useCallback)(async e=>{let t=null!=e?e:ev.current;C(!0),M("");try{let e=await (0,X.HT)({category:t||void 0,limit:200});_(e.files||[]),e.initializing&&window.setTimeout(()=>{ey(t)},1500)}catch(e){_([]),M(e instanceof Error?e.message:"文件列表加载失败")}finally{C(!1)}},[]);(0,n.useEffect)(()=>{ey(D)},[D,ey]);let ex=e=>({id:e.id,type:e.type,title:e.title,description:e.message,status:e.status,percent:e.percent,filePath:e.filePath,chunkCount:e.chunkCount,textLength:e.textLength,extractionMode:e.extractionMode,error:e.error,createdAt:e.createdAt}),ew=(0,n.useCallback)(async()=>{try{let e=(await (0,X.Qx)()).operations.map(ex);en(t=>{let l=new Set(e.map(e=>e.id).filter(Boolean)),r=t.filter(e=>e.id&&!l.has(e.id)&&"processing"===e.status);return[...e,...r].slice(0,50)})}catch(e){}},[]),ej=(0,n.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];en(l=>{let r=l.findIndex(l=>e.id&&l.id===e.id||t.includes(l.title));if(r>=0){var n;let t=[...l];return t[r]={...l[r],...e,createdAt:null!=(n=l[r].createdAt)?n:e.createdAt},t}return[e,...l].slice(0,50)})},[]);(0,n.useEffect)(()=>{ew()},[ew]);let eb=async()=>{try{await (0,X.H7)(),en([]),l.success("任务状态已清空")}catch(e){l.error("清空任务状态失败")}},e_=async(e,t)=>{if(t.stopPropagation(),e.id)try{await (0,X.CU)(e.id)}catch(e){}en(t=>t.filter(t=>t!==e))},eA=(0,n.useMemo)(()=>{let e=0,t=0,l=0;for(let r of er)"processing"===r.status?e++:"success"===r.status?t++:("error"===r.status||"warning"===r.status)&&l++;return{processing:e,success:t,error:l}},[er]);(0,n.useEffect)(()=>{eA.processing>0&&em(!1)},[eA.processing]),(0,n.useEffect)(()=>{if(0===eA.processing)return;let e=window.setInterval(()=>{ew()},1e3);return()=>window.clearInterval(e)},[ew,eA.processing]);let ez="all"===ec?er:er.filter(e=>"processing"===ec?"processing"===e.status:"success"===ec?"success"===e.status:"error"!==ec||"error"===e.status||"warning"===e.status),eC=async e=>{let t=e.filter(e=>!Z.test(e.name)),r=e.length-t.length;if(r>0&&l.warning("已跳过 ".concat(r," 个压缩包,请解压后上传内部文件")),0===t.length)return;let n=1===t.length?t[0].name:"".concat(t.length," 个文件");ee(!0);let a="".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2));ej({id:a,type:"upload",title:"上传 ".concat(n),description:"等待上传、解析、切片和入库",status:"processing",percent:5});let s=!1,i=0,o=async()=>{let e=await (0,X.QT)(a);i=0;let t="error"===e.stage?"error":"done"===e.stage?"success":"processing";return ej({id:a,type:"error"===t?"error":"upload",title:"success"===t?"上传完成 ".concat(n):"上传 ".concat(n),description:"".concat(e.message).concat(e.chunkCount?",".concat(e.chunkCount," 个切片"):""),status:t,percent:e.percent}),("done"===e.stage||"error"===e.stage)&&(s=!0),e},c=e=>{if((i+=1)>=5){s=!0;let t=e instanceof Error?e.message:"进度查询失败";ej({id:a,type:"error",title:"上传失败 ".concat(n),description:t,status:"error",percent:100})}},u=setInterval(()=>{o().catch(c)},700);try{await (0,X.c1)(t,void 0,a),l.info("文件已上传,正在后台解析、切片和入库");for(let e=0;e<240&&!s;e++)await new Promise(e=>setTimeout(e,500)),await o().catch(c);H(""),W(""),es([]),ev.current="",await ey(),await ew(),s&&l.success("上传索引流程已完成")}catch(t){let e=t instanceof Error?t.message:"请重试或检查文件格式";l.error(e||"上传失败"),ej({id:a,type:"error",title:"上传失败 ".concat(n),description:e,status:"error",percent:100})}finally{clearInterval(u),ee(!1)}},ek=async()=>{el(!0);let e="reindex-ui-".concat(Date.now());ej({id:e,type:"reindex",title:"重新解析入库",description:"正在提交后台任务",status:"processing",percent:5});try{var t;let r=await (0,X.H1)(),n=r.operationId||e,a=r.job;l.info(r.alreadyRunning?"已有重新解析任务正在后台执行":"已提交重新解析入库任务,可在顶部“后台任务”查看进度"),ej({id:n,type:"reindex",title:(null==a?void 0:a.title)||"重新解析入库",description:(null==a?void 0:a.message)||"后台将重新扫描文件、解析、切片并重建索引",status:(null==a?void 0:a.status)||"processing",percent:null!=(t=null==a?void 0:a.percent)?t:10,error:null==a?void 0:a.error},["重新解析入库"]);for(let e=0;e<360;e++){let e=await (0,X.ax)(n).then(e=>e.job).catch(async()=>(await (0,X.Qx)()).operations.find(e=>e.id===n));if(e){let t="success"===e.status||"error"===e.status;if(ej({id:n,type:"error"===e.status?"error":"reindex",title:"success"===e.status?"重新解析入库完成":"error"===e.status?"重新解析入库失败":e.title,description:e.error||e.message,status:e.status,percent:e.percent,filePath:e.filePath,chunkCount:e.chunkCount,error:e.error}),t){"success"===e.status?l.success(e.message||"重新解析入库完成"):l.error(e.error||e.message||"重新解析入库失败");break}}await new Promise(e=>setTimeout(e,1e3))}await ey(),await ew()}catch(r){let t=r instanceof Error?r.message:"重新解析入库失败";l.error(t),ej({id:e,type:"error",title:"重新解析入库失败",description:t,status:"error",percent:100},["重新解析入库","重新解析入库完成","重新解析入库失败"])}finally{el(!1)}},eS=t=>{let r="selected"===t?eR:"filtered"===t?eP.filter(e=>!e.builtIn).map(e=>e.relativePath):[],n=b.filter(e=>!e.builtIn).length;if("all"!==t&&0===r.length||"all"===t&&0===n)return void l.info("没有可删除的用户文件");let a="all"===t?"删除全部用户文件 ".concat(n," 个?"):"filtered"===t?"删除当前筛选结果中的用户文件 ".concat(r.length," 个?"):"删除已选用户文件 ".concat(r.length," 个?");u.A.confirm({title:a,content:"将同时删除文件、切片、索引和向量记录。此操作不可撤销。",okText:e("common.delete"),cancelText:e("common.cancel"),okButtonProps:{danger:!0},onOk:async()=>{en(e=>[{type:"delete",title:a,description:"正在批量删除文件和索引",status:"processing",percent:10},...e].slice(0,50));try{var e;let a=null!=(e=("all"===t?await (0,X.X8)():"selected"===t?await (0,X.tZ)(eL,eB):await (0,X.SJ)(r)).deleted)?e:"all"===t?n:r.length;l.success("已删除 ".concat(a," 个文件")),es([]),en(e=>[{type:"delete",title:"批量删除完成",description:"已删除 ".concat(a," 个文件、切片和索引"),status:"success"},...e].slice(0,50)),await ey(),await ew()}catch(e){l.error("批量删除失败"),en(e=>[{type:"error",title:"批量删除失败",description:"请重试",status:"error"},...e].slice(0,50))}}})},eM=(0,n.useMemo)(()=>"all"===ed?b:b.filter(e=>"builtIn"===ed?e.builtIn:!e.builtIn),[b,ed]),eP=(0,n.useMemo)(()=>N?eM.filter(e=>e.relativePath.toLowerCase().includes(N.toLowerCase())):eM,[N,eM]),eN=(0,n.useMemo)(()=>b.filter(e=>!e.builtIn),[b]),eH=(0,n.useMemo)(()=>b.filter(e=>e.builtIn),[b]),eI=(0,n.useMemo)(()=>eP.filter(e=>!e.builtIn),[eP]),eE=(0,n.useMemo)(()=>eP.filter(e=>e.builtIn),[eP]),eO=(0,n.useMemo)(()=>new Set(eP.map(e=>e.relativePath)),[eP]),eF=(0,n.useMemo)(()=>{let e={};for(let l of[...eP].sort((e,t)=>e.relativePath.localeCompare(t.relativePath))){let r=l.relativePath.split("/"),n="";for(let a=0;a<r.length;a++){let s=r[a],i=n;n=n?"".concat(n,"/").concat(s):s;let o=a===r.length-1;if(e[n])o||e[n].isFolder?o&&(e[n].isFolder=!1,e[n].file=l,e[n].fileCount=1,e[n].userFileCount=+!l.builtIn,e[n].totalSize=l.fileSize,e[n].totalChunks=l.chunkCount):(e[n].isFolder=!0,e[n].children=[],e[n].fileCount=0,e[n].userFileCount=0,e[n].totalSize=0,e[n].totalChunks=0);else{var t;e[n]={key:n,name:s,isFolder:!o,...o?{file:l,fileCount:1,userFileCount:+!l.builtIn,totalSize:l.fileSize,totalChunks:l.chunkCount}:{children:[],fileCount:0,userFileCount:0,totalSize:0,totalChunks:0}},i&&(null==(t=e[i])?void 0:t.children)&&e[i].children.push(e[n])}}}let l=e=>{for(let s of e)if(s.children){l(s.children);let e=0,i=0,o=0,c=0;for(let l of s.children){var t,r,n,a;e+=null!=(t=l.fileCount)?t:0,i+=null!=(r=l.userFileCount)?r:0,o+=null!=(n=l.totalSize)?n:0,c+=null!=(a=l.totalChunks)?a:0}s.fileCount=e,s.userFileCount=i,s.totalSize=o,s.totalChunks=c}},r=e=>e.map(e=>e.children?{...e,children:r(e.children)}:e).filter(e=>{var t,l,r;return!e.isFolder||(null!=(l=e.fileCount)?l:0)>0&&(null!=(r=null==(t=e.children)?void 0:t.length)?r:0)>0}),n=Object.values(e).filter(e=>!e.key.includes("/"));return l(n),r(n)},[eP]),eV=(0,n.useMemo)(()=>{let e=[],t=l=>{for(let r of l)e.push(r.key),r.children&&t(r.children)};return t(eF),e},[eF]),eT=(0,n.useMemo)(()=>new Set([...eO,...eV]),[eV,eO]),eB=(0,n.useMemo)(()=>ea.map(String).filter(e=>!eO.has(e)&&eV.includes(e)),[eV,ea,eO]),eL=(0,n.useMemo)(()=>ea.map(String).filter(e=>eO.has(e)),[ea,eO]),eR=(0,n.useMemo)(()=>{let e=new Set;for(let t of eL){let l=b.find(e=>e.relativePath===t);l&&!l.builtIn&&e.add(l.relativePath)}for(let t of eB){let l="".concat(t,"/");for(let t of b)!t.builtIn&&t.relativePath.startsWith(l)&&e.add(t.relativePath)}return Array.from(e)},[b,eL,eB]),eD=eR.length;(0,n.useEffect)(()=>{es(e=>e.filter(e=>eT.has(String(e))))},[eT]);let eW=(0,n.useMemo)(()=>N?eV:eF.map(e=>e.key),[N,eV,eF]);(0,n.useEffect)(()=>{eg(eW)},[eW]);let e$=(e,t)=>{eg(l=>e?[...l,t.key]:l.filter(e=>e!==t.key))},eU=[{title:e("fileName"),dataIndex:"name",key:"name",render:(e,t)=>{var l;return(0,r.jsxs)("span",{className:K().fileNameCell,children:[t.isFolder?(0,r.jsx)("span",{style:{cursor:"pointer"},onClick:e=>{e.stopPropagation(),e$(!ep.includes(t.key),t)},children:(e=>{let t=e.children;return t&&0!==t.length?(0,r.jsx)(B.A,{style:{color:"#fa8c16",fontSize:15}}):(0,r.jsx)(V.A,{style:{color:"#fa8c16",fontSize:15}})})(t)}):(e=>{if(!e)return(0,r.jsx)(w.A,{style:{fontSize:15}});let t=e.category;return"image"===t?(0,r.jsx)(A,{style:{color:"#eb2f96",fontSize:15}}):"spreadsheet"===t?(0,r.jsx)(k,{style:{color:"#52c41a",fontSize:15}}):"document"===t?(0,r.jsx)(P,{style:{color:"#1677ff",fontSize:15}}):"code"===t?(0,r.jsx)(I,{style:{color:"#fa8c16",fontSize:15}}):"archive"===t?(0,r.jsx)(E.A,{style:{color:"#8c8c8c",fontSize:15}}):"web"===t?(0,r.jsx)(O.A,{style:{color:"#13c2c2",fontSize:15}}):"data"===t?(0,r.jsx)(F.A,{style:{color:"#722ed1",fontSize:15}}):"cad"===t?(0,r.jsx)(V.A,{style:{color:"#fa541c",fontSize:15}}):"diagram"===t?(0,r.jsx)(A,{style:{color:"#a0d911",fontSize:15}}):(0,r.jsx)(T.A,{style:{fontSize:15}})})(t.file),t.isFolder?(0,r.jsx)("span",{className:K().folderName,onClick:e=>{e.stopPropagation(),e$(!ep.includes(t.key),t)},children:t.name}):(0,r.jsxs)(r.Fragment,{children:[(null==(l=t.file)?void 0:l.builtIn)&&(0,r.jsx)(d.A,{color:"gold",style:{fontSize:11,lineHeight:"18px"},children:"内置"}),(0,r.jsx)(i(),{className:"truncate max-w-[380px] inline-block",href:"/knowledge/file-detail?relativePath=".concat(encodeURIComponent(t.key)),children:t.name})]})]})}},{title:e("fileCategory"),dataIndex:"category",key:"cat",width:110,render:(e,l)=>{var n,a;return l.isFolder?(0,r.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"—"}):(0,r.jsx)(d.A,{children:(0,q.Jm)(null!=(a=null==(n=l.file)?void 0:n.category)?a:"",t)})}},{title:e("fileSize"),dataIndex:"fileSize",key:"size",width:90,render:(e,t)=>{var l,r,n;return(0,q.z3)(t.isFolder?null!=(r=t.totalSize)?r:0:null!=(n=null==(l=t.file)?void 0:l.fileSize)?n:0)}},{title:"切片",dataIndex:"chunkCount",key:"chunks",width:80,render:(e,t)=>{var l,n,a;let s=t.isFolder?null!=(n=t.totalChunks)?n:0:null!=(a=null==(l=t.file)?void 0:l.chunkCount)?a:0;return(0,r.jsx)(d.A,{color:s>1?"green":"orange",children:s})}},{title:"解析状态",dataIndex:"status",key:"status",width:100,render:(e,t)=>{var l,n,a;return t.isFolder?(0,r.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"—"}):(0,r.jsx)(d.A,{color:(null==(l=t.file)?void 0:l.status)==="active"?"green":"red",children:(null==(n=t.file)?void 0:n.errorMessage)||(null==(a=t.file)?void 0:a.status)||"—"})}},{title:e("fileDate"),dataIndex:"mtime",key:"date",width:130,render:(e,l)=>{var n;return l.isFolder?(0,r.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"—"}):(null==(n=l.file)?void 0:n.mtime)?new Date(l.file.mtime).toLocaleDateString(t):"—"}},{title:"来源",key:"source",width:100,render:(e,t)=>{var l;return t.isFolder?(0,r.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"—"}):(null==(l=t.file)?void 0:l.builtIn)?(0,r.jsx)(d.A,{color:"gold",children:"内置示例"}):(0,r.jsx)(d.A,{color:"cyan",children:"我的文件"})}},{title:"",key:"act",width:50,render:(t,n)=>{var a;return n.isFolder?null:(0,r.jsx)(f.Ay,{type:"text",danger:!0,size:"small",disabled:null==(a=n.file)?void 0:a.builtIn,icon:(0,r.jsx)(L.A,{}),onClick:()=>(t=>{if(t.builtIn)return void l.info("内置示例资料不可删除");u.A.confirm({title:e("delete"),content:e("deleteConfirm"),okText:e("common.confirm"),cancelText:e("common.cancel"),okButtonProps:{danger:!0},onOk:async()=>{en(e=>[{type:"delete",title:"删除 ".concat(t.relativePath),description:"正在删除文件记录",status:"processing"},...e].slice(0,50));try{await (0,X.xq)(t.relativePath),l.success("已删除"),en(e=>[{type:"delete",title:"删除完成 ".concat(t.relativePath),description:"文件和索引记录已移除",status:"success"},...e].slice(0,50)),es(e=>e.filter(e=>e!==t.relativePath)),await ey(),await ew()}catch(e){l.error("删除失败"),en(e=>[{type:"error",title:"删除失败 ".concat(t.relativePath),description:"请重试",status:"error"},...e].slice(0,50))}}})})(n.file)})}}];return(0,r.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,r.jsx)("h2",{className:"pageTitle",children:e("files")}),(0,r.jsxs)("div",{className:"flex flex-wrap items-end gap-3",children:[(0,r.jsx)(h.A,{placeholder:e("searchPlaceholder"),prefix:(0,r.jsx)(R.A,{}),value:N,onChange:e=>{H(e.target.value)},allowClear:!0,className:K().filterInput}),(0,r.jsx)(m.A,{value:D||void 0,onChange:e=>{W(e||"")},placeholder:e("filterCategory"),allowClear:!0,className:K().filterSelect,options:[{label:e("allCategories"),value:""},...Y.map(e=>({label:(0,q.Jm)(e,t),value:e}))]}),(0,r.jsx)(m.A,{value:ed,onChange:ef,className:K().filterSelect,options:[{label:"全部来源 (".concat(b.length,")"),value:"all"},{label:"我的文件 (".concat(eN.length,")"),value:"user"},{label:"内置示例 (".concat(eH.length,")"),value:"builtIn"}]}),(0,r.jsx)(f.Ay,{type:"primary",icon:(0,r.jsx)($,{}),loading:G,onClick:()=>{var e;return null==(e=document.getElementById("kb-file-upload-input"))?void 0:e.click()},children:G?e("uploading"):e("upload")}),(0,r.jsx)(f.Ay,{icon:(0,r.jsx)($,{}),loading:G,onClick:()=>{var e;return null==(e=document.getElementById("kb-folder-upload-input"))?void 0:e.click()},children:"上传文件夹"}),(0,r.jsx)(f.Ay,{icon:(0,r.jsx)(U.A,{}),loading:et,onClick:()=>{ek()},children:"重新解析入库"}),(0,r.jsx)("input",{id:"kb-file-upload-input",type:"file",multiple:!0,hidden:!0,accept:".pdf,.doc,.docx,.txt,.md,.csv,.tsv,.xls,.xlsx,.png,.jpg,.jpeg,.webp,.svg,.dwg,.dxf,.step,.stp,.iges,.igs,.js,.ts,.tsx,.jsx,.py,.go,.java,.cs,.cpp,.c,.h,.json,.jsonl,.yaml,.yml,.xml,.html,.htm,.drawio,.dio,.vsdx,.vdx,.puml,.plantuml,.mmd,.mermaid,.excalidraw",onChange:e=>{var t;let l=Array.from(null!=(t=e.target.files)?t:[]);e.target.value="",eC(l)}}),(0,r.jsx)("input",{id:"kb-folder-upload-input",type:"file",multiple:!0,hidden:!0,webkitdirectory:"",onChange:e=>{var t;let l=Array.from(null!=(t=e.target.files)?t:[]);e.target.value="",eC(l)}})]}),(0,r.jsxs)(p.A,{size:"small",className:K().statusCard,styles:{body:{padding:0}},children:[(0,r.jsxs)("div",{className:K().statusSummary,onClick:()=>em(!eh),children:[(0,r.jsx)("span",{className:K().statusSummaryText,children:0===er.length?"暂无文件任务":(0,r.jsxs)(g.A,{size:6,children:[eA.processing>0&&(0,r.jsxs)(d.A,{color:"processing",style:{margin:0},icon:(0,r.jsx)(U.A,{spin:!0}),children:["处理中 ",eA.processing]}),(0,r.jsxs)(d.A,{color:"success",style:{margin:0},icon:(0,r.jsx)(J.A,{}),children:["已完成 ",eA.success]}),(0,r.jsxs)(d.A,{color:"error",style:{margin:0},icon:(0,r.jsx)(Q.A,{}),children:["失败 ",eA.error]})]})}),er.length>0&&(0,r.jsxs)(g.A,{size:6,children:[(0,r.jsx)(f.Ay,{size:"small",className:K().statusClearBtn,onClick:e=>{e.stopPropagation(),eb()},children:"清空"}),(0,r.jsx)(f.Ay,{size:"small",className:K().statusExpandBtn,onClick:e=>{e.stopPropagation(),em(!eh)},children:eh?"展开":"收起"})]})]}),!eh&&er.length>0&&(0,r.jsxs)("div",{className:K().statusPanel,children:[(0,r.jsxs)("div",{className:K().statusFilters,children:[(0,r.jsxs)("span",{className:"".concat(K().filterPill," ").concat("all"===ec?K().filterPillActive:""),style:"all"===ec?{color:"#1677ff"}:void 0,onClick:()=>eu("all"),children:["全部 ",(0,r.jsx)("b",{children:er.length})]}),(0,r.jsxs)("span",{className:"".concat(K().filterPill," ").concat("processing"===ec?K().filterPillActive:""),style:"processing"===ec?{color:"#1677ff"}:void 0,onClick:()=>eu("processing"),children:[(0,r.jsx)(U.A,{spin:eA.processing>0})," 处理中 ",(0,r.jsx)("b",{children:eA.processing})]}),(0,r.jsxs)("span",{className:"".concat(K().filterPill," ").concat("success"===ec?K().filterPillActive:""),style:"success"===ec?{color:"#52c41a"}:void 0,onClick:()=>eu("success"),children:[(0,r.jsx)(J.A,{})," 已完成 ",(0,r.jsx)("b",{children:eA.success})]}),(0,r.jsxs)("span",{className:"".concat(K().filterPill," ").concat("error"===ec?K().filterPillActive:""),style:"error"===ec?{color:"#ff4d4f"}:void 0,onClick:()=>eu("error"),children:[(0,r.jsx)(Q.A,{})," 失败 ",(0,r.jsx)("b",{children:eA.error})]})]}),(0,r.jsx)("div",{className:K().timelineList,children:0===ez.length?(0,r.jsx)("div",{className:K().statusEmpty,children:"没有匹配的任务"}):ez.map((e,l)=>{var n;let a=e.id||"".concat(e.type,"-").concat(null!=(n=e.createdAt)?n:e.title,"-").concat(l),s=ei.has(a);return(0,r.jsxs)("div",{className:K().timelineItem,children:[(0,r.jsxs)("div",{className:K().timelineRow,onClick:()=>{eo(e=>{let t=new Set(e);return t.has(a)?t.delete(a):t.add(a),t})},children:[(0,r.jsx)("span",{className:K().timelineStatusIcon,children:"success"===e.status?(0,r.jsx)(J.A,{style:{color:"#52c41a"}}):"processing"===e.status?(0,r.jsx)(U.A,{spin:!0,style:{color:"#1677ff"}}):"error"===e.status?(0,r.jsx)(Q.A,{style:{color:"#ff4d4f"}}):(0,r.jsx)("span",{style:{color:"#fa8c16",fontWeight:700},children:"!"})}),(0,r.jsx)("span",{className:K().timelineTitle,children:e.title}),"number"==typeof e.percent&&"processing"===e.status&&(0,r.jsxs)("span",{className:K().timelinePercent,children:[e.percent,"%"]}),(0,r.jsx)(f.Ay,{type:"text",size:"small",danger:!0,icon:(0,r.jsx)(L.A,{}),style:{width:22,height:22,padding:0,fontSize:12},onClick:t=>{e_(e,t)}})]}),s&&(0,r.jsxs)("div",{className:K().timelineDetail,children:["number"==typeof e.percent&&"processing"===e.status&&(0,r.jsx)(v.A,{percent:e.percent,size:"small",strokeColor:"#1677ff"}),e.description&&(0,r.jsx)("div",{className:K().timelineDesc,children:e.description}),e.error&&(0,r.jsx)("div",{style:{color:"var(--colorError)",fontSize:12,wordBreak:"break-word"},children:e.error}),e.filePath&&(0,r.jsx)(y.A,{title:e.filePath,children:(0,r.jsx)("div",{className:K().timelinePath,children:e.filePath})}),(0,r.jsxs)("div",{className:K().timelineMeta,children:["number"==typeof e.chunkCount&&(0,r.jsxs)("span",{className:K().timelineMetaTag,children:["切片 ",(0,r.jsx)("b",{children:e.chunkCount})]}),"number"==typeof e.textLength&&(0,r.jsxs)("span",{className:K().timelineMetaTag,children:["正文 ",(0,r.jsx)("b",{children:e.textLength.toLocaleString(t)})," 字符"]}),e.extractionMode&&(0,r.jsxs)("span",{className:K().timelineMetaTag,children:["解析 ",(0,r.jsx)("b",{children:e.extractionMode})]})]}),"error"===e.status&&(0,r.jsx)("div",{style:{color:"var(--colorError)",fontSize:12},children:"此任务失败,请重新上传文件或重试操作"})]})]},a)})})]})]}),(0,r.jsxs)(p.A,{title:"文件列表",extra:(0,r.jsxs)(g.A,{size:8,children:[(0,r.jsxs)(f.Ay,{danger:!0,size:"small",disabled:0===eD,icon:(0,r.jsx)(L.A,{}),onClick:()=>eS("selected"),children:["删除已选 ",eD||""]}),(0,r.jsx)(f.Ay,{danger:!0,size:"small",disabled:0===eN.length,onClick:()=>eS("all"),children:"删除全部用户文件"})]}),children:[S&&(0,r.jsxs)("div",{className:K().statusEmpty,children:["文件列表加载失败:",S]}),(0,r.jsx)(x.A,{rowKey:"key",columns:eU,dataSource:eF,loading:z,size:"middle",expandable:{expandedRowKeys:ep,onExpand:e$,childrenColumnName:"children"},locale:{emptyText:z?"正在加载文件列表...":N?e("emptySearch"):e("noFiles")},pagination:!1,rowClassName:e=>e.isFolder?K().folderRow:"",rowSelection:{selectedRowKeys:ea,onChange:es,checkStrictly:!1,getCheckboxProps:e=>{var t,l;return{disabled:e.isFolder?(null!=(l=e.userFileCount)?l:0)===0:!!(null==(t=e.file)?void 0:t.builtIn)}}},footer:()=>(0,r.jsxs)("div",{style:{color:"var(--colorTextSecondary)",fontSize:12},children:["当前展示 ",eP.length," 个文件,其中我的文件 ",eI.length," 个、内置示例 ",eE.length," 个;全部我的文件 ",eN.length," 个、内置示例 ",eH.length," 个;",eF.length," 个顶层目录"]})})]})]})}},90426:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/files",function(){return l(82738)}])},90939:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"}},92803:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"upload",theme:"outlined"}},93314:(e,t,l)=>{"use strict";l.d(t,{A:()=>i});var r=l(97109),n=l(53234),a=l(88483);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e}).apply(this,arguments)}let i=r.forwardRef((e,t)=>r.createElement(a.A,s({},e,{ref:t,icon:n.A})))}},e=>{e.O(0,[433,787,576,985,150,289,636,593,792],()=>e(e.s=90426)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[414],{45551:(e,l,t)=>{"use strict";function n(e){if(0===e)return"0 B";let l=Math.floor(Math.log(e)/Math.log(1024)),t=e/Math.pow(1024,l);return"".concat(t.toFixed(+(0!==l))," ").concat(["B","KB","MB","GB","TB"][l])}function a(e){let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===l?"Never":"从未";let t=Math.floor(Math.floor((Date.now()-e)/1e3)/60),n=Math.floor(t/60),a=Math.floor(n/24);return a>30?new Date(e).toLocaleDateString(l):"en-US"===l?a>0?"".concat(a,"d ago"):n>0?"".concat(n,"h ago"):t>0?"".concat(t,"m ago"):"Just now":a>0?"".concat(a," 天前"):n>0?"".concat(n," 小时前"):t>0?"".concat(t," 分钟前"):"刚刚"}t.d(l,{Jm:()=>o,fw:()=>a,z3:()=>n});let r={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},s={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function o(e){var l;let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(l=("en-US"===t?s:r)[e])?l:e}},50423:(e,l,t)=>{"use strict";t.r(l),t.d(l,{default:()=>E});var n=t(65321),a=t(97109),r=t(34986),s=t(79059),o=t(17807),c=t(33442),i=t(85114),d=t(2256),u=t(38770),h=t(68787),x=t(54849),g=t(57271),m=t(76506),j=t(11702),A=t(29606),f=t(30486),w=t(99811),v=t(56768),k=t(26619),p=t(93314),y=t(58740),b=t(35459),C=t(23216),S=t(63663),z=t(49484),D=t(6578),N=t(45551);let _=["document","spreadsheet","image","cad","code","data","web","diagram","archive","other"];function E(){var e,l,t,E;let I=(0,s.Vr)(),{locale:T}=(0,s.x_)(),M=(0,r.useRouter)(),{stats:B,loading:F,reload:R}=function(){let[e,l]=(0,a.useState)(null),[t,n]=(0,a.useState)(!1),r=(0,a.useCallback)(async()=>{n(!0);try{l(await (0,D.hc)())}catch(e){}finally{n(!1)}},[]);return(0,a.useEffect)(()=>{r()},[r]),{stats:e,loading:t,reload:r}}(),O=function(){let[e,l]=(0,a.useState)(null);return(0,a.useEffect)(()=>{(0,D.VW)().then(l).catch(()=>{})},[]),e}(),{reindexing:P,reindex:J}=function(){let[e,l]=(0,a.useState)(!1);return{reindexing:e,reindex:(0,a.useCallback)(async()=>{l(!0);try{return await (0,D.H1)(),!0}catch(e){return!1}finally{l(!1)}},[])}}(),[U,V]=(0,a.useState)("document"),[W,H]=(0,a.useState)({count:0,totalSize:0,totalChunks:0}),{message:X}=o.A.useApp(),G=(0,a.useCallback)(async e=>{try{let l=await (0,D.HT)({category:e,limit:1e4}),t=0,n=0;if(Array.isArray(l.files))for(let e of l.files)t+=e.fileSize||0,n+=e.chunkCount||0;H({count:l.total||0,totalSize:t,totalChunks:n})}catch(e){H({count:0,totalSize:0,totalChunks:0})}},[]);(0,a.useEffect)(()=>{G(U)},[U,G]);let K=async()=>{await J()?await Promise.all([R(),G(U)]):X.error(I("common.error"))};return(0,n.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"pageTitle",children:I("knowledge.manageTitle")}),(0,n.jsx)("p",{className:"pageDesc",children:I("knowledge.manageDesc")})]}),(0,n.jsxs)(c.A,{children:[(0,n.jsx)(i.Ay,{icon:(0,n.jsx)(A.A,{}),onClick:()=>M.push("/knowledge/files"),children:I("knowledge.files")}),(0,n.jsx)(i.Ay,{icon:(0,n.jsx)(f.A,{}),onClick:()=>M.push("/knowledge/search"),children:I("knowledge.search")}),(0,n.jsx)(i.Ay,{icon:(0,n.jsx)(w.A,{}),loading:P,onClick:()=>{K()},children:I("knowledge.reindex")})]})]}),(0,n.jsx)(d.A,{gutter:[16,16],children:[{icon:(0,n.jsx)(v.A,{}),label:I("knowledge.totalFiles"),value:null!=(l=null==B?void 0:B.fileCount)?l:0},{icon:(0,n.jsx)(k.A,{}),label:I("knowledge.totalChunks"),value:null!=(t=null==B?void 0:B.chunkCount)?t:0},{icon:(0,n.jsx)(p.A,{}),label:I("knowledge.totalSize"),value:(0,N.z3)(null!=(E=null==B?void 0:B.totalSizeBytes)?E:0)},{icon:(0,n.jsx)(y.A,{}),label:I("knowledge.lastIndexed"),value:(null==B?void 0:B.lastIndexedAt)?(0,N.fw)(B.lastIndexedAt,T):I("common.never")}].map((e,l)=>(0,n.jsx)(u.A,{xs:12,sm:6,children:(0,n.jsx)(h.A,{size:"small",loading:F&&!B,children:(0,n.jsx)(x.A,{title:e.label,value:e.value,prefix:e.icon})})},l))}),(0,n.jsxs)(h.A,{title:I("knowledge.categories"),size:"small",children:[(0,n.jsx)(g.A,{value:U,onChange:e=>V(e),options:_.map(e=>({label:(0,N.Jm)(e,T),value:e})),style:{width:160,marginBottom:16}}),(0,n.jsxs)(d.A,{gutter:[16,16],children:[(0,n.jsx)(u.A,{xs:12,sm:6,children:(0,n.jsx)(x.A,{title:I("knowledge.fileCount"),value:W.count,prefix:(0,n.jsx)(v.A,{style:{color:"var(--colorAccent)"}})})}),(0,n.jsx)(u.A,{xs:12,sm:6,children:(0,n.jsx)(x.A,{title:I("knowledge.totalSize"),value:(0,N.z3)(W.totalSize),prefix:(0,n.jsx)(p.A,{style:{color:"var(--colorWarning)"}})})}),(0,n.jsx)(u.A,{xs:12,sm:6,children:(0,n.jsx)(x.A,{title:"切片数",value:W.totalChunks,prefix:(0,n.jsx)(b.A,{style:{color:"var(--colorOk)"}})})}),(0,n.jsx)(u.A,{xs:12,sm:6,children:(0,n.jsx)(x.A,{title:"平均大小",value:W.count>0?(0,N.z3)(W.totalSize/W.count):"—",prefix:(0,n.jsx)(k.A,{style:{color:"var(--colorDanger)"}})})})]})]}),O&&(0,n.jsx)(h.A,{title:I("knowledge.features"),size:"small",children:(0,n.jsxs)(m.A,{size:"small",column:{xs:1,sm:2},bordered:!0,children:[(0,n.jsx)(m.A.Item,{label:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(C.A,{style:{marginRight:4}}),"Vector Store"]}),children:(0,n.jsx)(j.A,{color:"blue",children:O.vectorStore})}),(0,n.jsx)(m.A.Item,{label:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b.A,{style:{marginRight:4}}),"Embedding"]}),children:(0,n.jsx)(j.A,{color:"purple",children:O.embeddingProvider})}),(0,n.jsxs)(m.A.Item,{label:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(S.A,{style:{marginRight:4}}),I("knowledge.featureDedup")]}),children:[(0,n.jsx)(j.A,{color:"green",children:O.dedupEngine}),(0,n.jsx)("div",{className:"text-xs",style:{color:"var(--colorTextSecondary)",marginTop:2},children:I("knowledge.featureDedupDesc")})]}),(0,n.jsxs)(m.A.Item,{label:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(z.A,{style:{marginRight:4}}),I("knowledge.featureChunker")]}),children:[(0,n.jsx)(j.A,{color:"orange",children:O.chunker}),(0,n.jsx)("div",{className:"text-xs",style:{color:"var(--colorTextSecondary)",marginTop:2},children:I("knowledge.featureChunkerDesc")})]}),(null==(e=O.externalExtractors)?void 0:e.length)>0&&(0,n.jsx)(m.A.Item,{label:"外部提取器",span:2,children:(0,n.jsx)(c.A,{wrap:!0,children:O.externalExtractors.map(e=>(0,n.jsx)(j.A,{color:"cyan",children:e},e))})})]})})]})}},54178:(e,l,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/manage",function(){return t(50423)}])}},e=>{e.O(0,[433,787,506,788,636,593,792],()=>e(e.s=54178)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[207],{4184:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>E});var l=t(65321),r=t(43220),i=t.n(r),a=t(97109),n=t(35292),c=t(17807),o=t(85114),u=t(85493),d=t(68787),_=t(33442),h=t(7576),m=t(48318),y=t(76506),p=t(11702),x=t(42700),j=t(84253),w=t(30486),A=t(79059),f=t(6578),g=t(14569),b=t.n(g);let{Paragraph:v}=n.A,S=["keyword","vector","rewrite","hybridBonus"],k=["keywordScore","bm25Score","vectorScore","rerankBoost","hybridScore"];function P(e){return"number"==typeof e?e.toFixed(2):"-"}function C(e,s,t){let l=e(s);return l===s?t:l}function E(){var e,s,t;let{message:r}=c.A.useApp(),n=(0,A.Vr)("knowledge"),[g,E]=(0,a.useState)(""),[I,N]=(0,a.useState)(!1),[R,T]=(0,a.useState)([]),[L,F]=(0,a.useState)(),[B,D]=(0,a.useState)(),[z,M]=(0,a.useState)(""),[V,O]=(0,a.useState)({keyword:1,vector:.9,rewrite:.72,hybridBonus:.35}),H=async e=>{await navigator.clipboard.writeText(e),r.success(n("copyPriorityEvidenceSuccess"))},W=async()=>{let e=g.trim();if(e){N(!0),M("");try{let s=await (0,f.W2)(e,{limit:10,weights:V});T(s.results),F(s.queryTimeMs),D(s.debug)}catch(e){T([]),M(e instanceof Error?e.message:n("searchFailed"))}finally{N(!1)}}};return(0,l.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h1",{className:"pageTitle",children:n("searchTitle")}),(0,l.jsx)("p",{className:"pageDesc",children:n("searchDesc")})]}),(0,l.jsx)(i(),{href:"/documents",children:(0,l.jsx)(o.Ay,{children:n("goToDocuments")})})]}),(0,l.jsx)(u.A,{type:"info",showIcon:!0,message:n("autoSearchFirst"),description:n("autoSearchFirstDesc")}),(0,l.jsx)(d.A,{size:"small",children:(0,l.jsxs)(_.A.Compact,{className:"w-full",children:[(0,l.jsx)(h.A,{value:g,onChange:e=>E(e.target.value),onPressEnter:()=>{W()},placeholder:n("searchContentPlaceholder")}),(0,l.jsx)(o.Ay,{type:"primary",icon:(0,l.jsx)(w.A,{}),loading:I,onClick:()=>{W()},children:n("searchAction")})]})}),(0,l.jsx)(d.A,{size:"small",title:n("recallWeightTuning"),children:(0,l.jsx)(_.A,{wrap:!0,children:S.map(e=>(0,l.jsxs)("span",{children:[C(n,"weights.".concat(e),e)," ",(0,l.jsx)(m.A,{min:0,max:"hybridBonus"===e?2:5,step:"hybridBonus"===e?.05:.1,value:V[e],onChange:s=>O(t=>({...t,[e]:Number(null!=s?s:t[e])}))})]},e))})}),B&&(0,l.jsx)(d.A,{size:"small",title:n("debugPanel"),children:(0,l.jsxs)(y.A,{size:"small",column:2,bordered:!0,children:[(0,l.jsx)(y.A.Item,{label:n("originalQuery"),children:B.originalQuery}),(0,l.jsx)(y.A.Item,{label:n("reranker"),children:B.reranker}),(0,l.jsx)(y.A.Item,{label:n("rewrittenQueries"),span:2,children:(0,l.jsx)(_.A,{wrap:!0,children:null==(e=B.rewrittenQueries)?void 0:e.map(e=>(0,l.jsx)(p.A,{children:e},e))})}),(0,l.jsx)(y.A.Item,{label:n("recallCounts"),span:2,children:(0,l.jsx)(_.A,{wrap:!0,children:Object.entries(null!=(s=B.recallCounts)?s:{}).map(e=>{let[s,t]=e;return(0,l.jsxs)(p.A,{children:[C(n,"recallSources.".concat(s),s),": ",t]},s)})})}),(0,l.jsx)(y.A.Item,{label:n("recallWeights"),span:2,children:(0,l.jsx)(_.A,{wrap:!0,children:Object.entries(null!=(t=B.weights)?t:{}).map(e=>{let[s,t]=e;return(0,l.jsxs)(p.A,{children:[C(n,"weights.".concat(s),s),": ",t]},s)})})})]})}),(0,l.jsxs)(d.A,{size:"small",title:n("searchResults"),extra:"number"==typeof L?"".concat(L," ms"):void 0,children:[z?(0,l.jsx)(u.A,{type:"error",showIcon:!0,message:n("searchFailed"),description:z,className:"mb-4"}):null,I?(0,l.jsx)(x.A,{}):0===R.length?(0,l.jsx)(j.A,{description:n("noSearchResults")}):(0,l.jsx)("div",{className:b().searchResultList,children:R.map((e,s)=>{var t,r;return(0,l.jsxs)("div",{className:b().searchResultItem,children:[(0,l.jsxs)("div",{className:b().searchResultHeader,children:[(0,l.jsxs)(_.A,{size:8,wrap:!0,children:[(0,l.jsxs)(p.A,{children:[n("resultIndex")," ",s+1]}),(0,l.jsx)(p.A,{color:"hybrid"===e.source?"purple":"vector"===e.source?"blue":"green",children:C(n,"recallSources.".concat(null!=(t=e.source)?t:"keyword"),null!=(r=e.source)?r:"keyword")}),(0,l.jsx)(p.A,{children:C(n,"scopes.".concat(e.scope),e.scope)}),e.chunkKind&&(0,l.jsx)(p.A,{color:"geekblue",children:e.chunkKind}),e.rowRange&&(0,l.jsxs)(p.A,{color:"gold",children:[n("rowRange")," ",e.rowRange]}),e.sectionTitle&&(0,l.jsx)(p.A,{color:"cyan",children:e.sectionTitle})]}),(0,l.jsx)("strong",{children:P(e.score)})]}),(0,l.jsx)("div",{className:b().statusPath,children:(0,l.jsxs)(_.A,{size:8,wrap:!0,children:[(0,l.jsx)(i(),{href:"/knowledge/file-detail?relativePath=".concat(encodeURIComponent(e.filePath)),children:e.filePath}),"number"==typeof e.chunkIndex?" #".concat(e.chunkIndex):"",(0,l.jsx)(o.Ay,{size:"small",onClick:()=>{H(e.filePath)},children:n("copyAsPriorityEvidence")})]})}),(0,l.jsx)(v,{ellipsis:{rows:6,expandable:!0,symbol:n("expand")},className:b().searchContent,children:function(e,s){let t=[s.trim(),...s.split(/[\s,,。;;::、]+/u)].filter(Boolean).sort((e,s)=>s.length-e.length);if(0===t.length)return e;let r=RegExp("(".concat(t.map(e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")).join("|"),")"),"giu");return e.split(r).map((e,s)=>t.some(s=>s.toLowerCase()===e.toLowerCase())?(0,l.jsx)("mark",{children:e},s):e)}(e.content,g)}),e.facets&&Object.keys(e.facets).length>0&&(0,l.jsx)("div",{className:b().statusMeta,children:Object.entries(e.facets).slice(0,8).map(e=>{let[s,t]=e;return(0,l.jsxs)("span",{children:[s," ",(0,l.jsx)("b",{children:Array.isArray(t)?t.join(", "):String(t)})]},s)})}),(0,l.jsx)("div",{className:b().statusMeta,children:k.map(s=>{var t;return(0,l.jsxs)("span",{children:[C(n,"scoreDetails.".concat(s),s)," ",(0,l.jsx)("b",{children:P(null==(t=e.scoreDetails)?void 0:t[s])})]},s)})})]},e.id)})})]})]})}},9208:(e,s,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/search",function(){return t(4184)}])},14569:e=>{e.exports={featureLabel:"style_featureLabel__XFSTX",featureValue:"style_featureValue__I_wMP",filterInput:"style_filterInput__4_Elu",filterSelect:"style_filterSelect__vUBJ9",statusCard:"style_statusCard__H7Mee",statusSummary:"style_statusSummary__7KavF",statusSummaryText:"style_statusSummaryText__Shw3j",statusClearBtn:"style_statusClearBtn__uJ9bE",statusExpandBtn:"style_statusExpandBtn__HhgIj",statusFilters:"style_statusFilters__g_LbG",filterPill:"style_filterPill__1pjFW",filterPillActive:"style_filterPillActive___UZVi",statusPanel:"style_statusPanel__9arTu",statusEmpty:"style_statusEmpty__8LWzH",timelineList:"style_timelineList__dqJrz",timelineItem:"style_timelineItem__dbuL_",timelineStatusIcon:"style_timelineStatusIcon__SkRwb",timelinePercent:"style_timelinePercent__pEyH4",timelineRow:"style_timelineRow__EDOVa",timelineTitle:"style_timelineTitle__Yujr8",timelineClose:"style_timelineClose__Byx_9",timelineDetail:"style_timelineDetail__nALei",timelineDesc:"style_timelineDesc__FMjWE",timelinePath:"style_timelinePath__C9VQI",timelineMeta:"style_timelineMeta__u_pCn",timelineMetaTag:"style_timelineMetaTag__G3jF1",timelineExpandArrow:"style_timelineExpandArrow__xIBdF",timelineExpandArrowOpen:"style_timelineExpandArrowOpen__TWWDC",fileNameCell:"style_fileNameCell__EHsnt",folderName:"style_folderName__VhLXP",folderRow:"style_folderRow__d7k9S",searchResultList:"style_searchResultList__cVKZg",searchResultItem:"style_searchResultItem__boj6D",searchResultHeader:"style_searchResultHeader__meVdJ",searchContent:"style_searchContent__XbUVk",pdfPreviewStrip:"style_pdfPreviewStrip__94_eG",drawingPreview:"style_drawingPreview__lkk_L"}}},e=>{e.O(0,[433,787,576,506,938,636,593,792],()=>e(e.s=9208)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[12],{29735:(e,n,u)=>{"use strict";u.r(n),u.d(n,{default:()=>l});var _=u(97109),t=u(86109);function l(){let e=(0,t.useRouter)();return(0,_.useEffect)(()=>{e.replace("/knowledge/manage")},[e]),null}},74183:(e,n,u)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge",function(){return u(29735)}])}},e=>{e.O(0,[636,593,792],()=>e(e.s=74183)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46],{69:(e,l)=>{"use strict";l.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L255.8 713.6l-62.3-62.3a8.19 8.19 0 00-11.4 0l-39.8 39.8a8.19 8.19 0 000 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.19 8.19 0 00-11.4 0l-39.8 39.8a8.19 8.19 0 000 11.4l110.3 111.2c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.1 304.1 0 00608 720c167.9 0 304-136.1 304-304S775.9 112 608 112m161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2"}}]},name:"key",theme:"outlined"}},2256:(e,l,a)=>{"use strict";a.d(l,{A:()=>s});let s=a(25341).A},5450:(e,l)=>{"use strict";l.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z"}}]},name:"api",theme:"outlined"}},13114:(e,l,a)=>{"use strict";a.d(l,{A:()=>i});var s=a(97109),o=a(5450),t=a(88483);function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var a=arguments[l];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e}).apply(this,arguments)}let i=s.forwardRef((e,l)=>s.createElement(t.A,r({},e,{ref:l,icon:o.A})))},15437:(e,l,a)=>{"use strict";a.d(l,{A:()=>s});let s=e=>{let{componentCls:l,antCls:a,motionDurationMid:s,motionEaseInOut:o}=e;return{[l]:{[`${a}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`${["height","opacity"].map(e=>`${e} ${s} ${o}`).join(", ")} !important`}},[`${a}-motion-collapse`]:{overflow:"hidden",transition:`${["height","opacity"].map(e=>`${e} ${s} ${o}`).join(", ")} !important`}}}}},29071:(e,l,a)=>{"use strict";a.d(l,{A:()=>i});var s=a(97109),o=a(78847),t=a(88483);function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var a=arguments[l];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e}).apply(this,arguments)}let i=s.forwardRef((e,l)=>s.createElement(t.A,r({},e,{ref:l,icon:o.A})))},30289:(e,l)=>{"use strict";l.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z"}}]},name:"global",theme:"outlined"}},38770:(e,l,a)=>{"use strict";a.d(l,{A:()=>s});let s=a(51916).A},61825:(e,l,a)=>{"use strict";a.d(l,{A:()=>i});var s=a(97109),o=a(30289),t=a(88483);function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var a=arguments[l];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e}).apply(this,arguments)}let i=s.forwardRef((e,l)=>s.createElement(t.A,r({},e,{ref:l,icon:o.A})))},77305:(e,l,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/models",function(){return a(98841)}])},78847:(e,l)=>{"use strict";l.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z"}}]},name:"thunderbolt",theme:"outlined"}},98841:(e,l,a)=>{"use strict";a.r(l),a.d(l,{default:()=>R});var s=a(65321),o=a(97109),t=a(79059),r=a(17807),i=a(88762),n=a(68787),c=a(85114),d=a(2256),m=a(38770),h=a(33442),p=a(26171),u=a(11702),x=a(85493),v=a(57271),y=a(7576),g=a(48318),j=a(34052),A=a(63455),f=a(56985),b=a(54746),z=a(29071),w=a(59188),S=a(4216),k=a(13114),C=a(99650),O=a(58209),B=a(69),I=a(88483);function T(){return(T=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var a=arguments[l];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e}).apply(this,arguments)}let P=o.forwardRef((e,l)=>o.createElement(I.A,T({},e,{ref:l,icon:B.A})));var E=a(61825),K=a(6578);let M=[{label:"OpenAI 兼容",value:"openai"},{label:"Anthropic",value:"anthropic"},{label:"Google",value:"google"},{label:"Ollama",value:"ollama"},{label:"OpenRouter",value:"openrouter"}],H=[{key:"reader",labelKey:"models.tierReader",descKey:"models.tierReaderDesc"},{key:"reasoning",labelKey:"models.tierReasoning",descKey:"models.tierReasoningDesc"},{key:"action",labelKey:"models.tierAction",descKey:"models.tierActionDesc"}],L=[{key:"imageGeneration",label:"图片生成"},{key:"imageUnderstanding",label:"图片理解"},{key:"fileUnderstanding",label:"文件理解"},{key:"audio",label:"音频能力"},{key:"video",label:"视频能力"}];function R(){let e=(0,t.Vr)(),{message:l}=r.A.useApp(),[a,B]=(0,o.useState)(!0),[I,T]=(0,o.useState)([]),[R,N]=(0,o.useState)(null),[U,_]=(0,o.useState)({provider:"transformers-local",model:"BAAI/bge-small-zh-v1.5",dimensions:512}),[$,F]=(0,o.useState)(!1),[V,D]=(0,o.useState)(!1),[W,G]=(0,o.useState)(null),[X,Z]=(0,o.useState)(null),[q,J]=(0,o.useState)({}),[Q,Y]=(0,o.useState)(!1),[ee,el]=(0,o.useState)(!1),[ea,es]=(0,o.useState)(""),[eo,et]=(0,o.useState)(""),[er,ei]=(0,o.useState)(""),[en,ec]=(0,o.useState)(""),[ed,em]=(0,o.useState)("openai"),[eh,ep]=(0,o.useState)(!1),[eu,ex]=(0,o.useState)({}),[ev,ey]=(0,o.useState)(!1),eg=async()=>{B(!0);try{let[e,l,a]=await Promise.all([(0,K.Z3)().catch(()=>[]),(0,K.zr)().catch(()=>null),(0,K.II)().catch(()=>({provider:"transformers-local",model:"BAAI/bge-small-zh-v1.5",dimensions:512}))]);T(e),N(l),_(a)}catch(a){l.error(e("common.error"))}finally{B(!1)}};(0,o.useEffect)(()=>{eg()},[]);let ej=async e=>{el(!0),es(e.name),et(e.name),ei(""),ec(e.baseUrl||""),em(e.protocol||e.detectedProtocol||"openai"),ex(e.capabilities||{});try{let l=await (0,K.Bh)(e.name);ei(l.apiKey?"••••••••":""),ec(l.baseUrl||""),ex(l.capabilities||{})}catch(e){}Y(!0)},eA=async()=>{if(eo.trim()){ey(!0);try{let a=ee&&er.includes("•")?void 0:er||void 0;await (0,K._m)(eo.trim(),{oldName:ee?ea:void 0,apiKey:a,baseUrl:en||void 0,protocol:ed,directEndpoint:eh,capabilities:eu}),Y(!1),await eg(),l.success(e("common.success"))}catch(a){l.error(e("common.error"))}finally{ey(!1)}}},ef=async a=>{try{await (0,K.h1)(a),await eg(),l.success(e("common.success"))}catch(a){l.error(e("common.error"))}},eb=async a=>{Z(a);try{let s=await (0,K.bZ)(a);J(e=>({...e,[a]:s.success})),l[s.success?"success":"error"](s.success?e("models.connected"):e("models.connectionFailed"))}catch(e){J(e=>({...e,[a]:!1}))}finally{Z(null)}},ez=async(a,s)=>{if(!R)return;let o={...R},t=o[a];if(!s){t.active="",N(o);try{await (0,K.aP)(o)}catch(a){l.error(e("common.error"))}return}let[r,i]=s.includes(":")?s.split(":"):[s,s];t.active=i,t.list.some(e=>e.name===i&&e.provider===r)||t.list.push({name:i,provider:r}),N(o);try{await (0,K.aP)(o)}catch(a){l.error(e("common.error"))}},ew=async()=>{F(!0);try{let a=await (0,K.dd)(U);_(a),G(null),l.success(e("common.success"))}catch(a){l.error(e("common.error"))}finally{F(!1)}},eS=async()=>{D(!0);try{let a=await (0,K.u6)();G(a.success),l[a.success?"success":"error"](a.message||(a.success?e("models.connected"):e("models.connectionFailed")))}catch(e){G(!1)}finally{D(!1)}};return a?(0,s.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,s.jsx)(i.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,s.jsx)(n.A,{size:"small",children:(0,s.jsx)(i.A,{active:!0,paragraph:{rows:6}})}),(0,s.jsx)(n.A,{size:"small",children:(0,s.jsx)(i.A,{active:!0,paragraph:{rows:4}})}),(0,s.jsx)(n.A,{size:"small",children:(0,s.jsx)(i.A,{active:!0,paragraph:{rows:3}})})]}):(0,s.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"pageTitle",children:e("models.title")}),(0,s.jsx)("p",{className:"pageDesc",children:e("models.description")})]}),(0,s.jsx)(c.Ay,{type:"primary",icon:(0,s.jsx)(b.A,{}),onClick:()=>{el(!1),es(""),et(""),ei(""),ec(""),em("openai"),ep(!1),ex({}),Y(!0)},children:e("models.addModel")})]}),(0,s.jsx)(n.A,{size:"small",title:"".concat(e("models.modelList")," (").concat(I.length,")"),children:0===I.length?(0,s.jsx)("span",{style:{color:"var(--colorTextSecondary)",fontSize:12},children:e("models.noProviders")}):(0,s.jsx)(d.A,{gutter:[12,12],children:I.map((l,a)=>(0,s.jsx)(m.A,{xs:24,sm:12,lg:8,xl:6,children:(0,s.jsxs)(n.A,{size:"small",hoverable:!0,style:{height:"100%"},children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8,marginBottom:8,minWidth:0},children:[(0,s.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,s.jsx)("div",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l.name}),(0,s.jsxs)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:[(0,s.jsx)(z.A,{})," ",l.protocol||l.detectedProtocol||"openai"]})]}),(0,s.jsxs)(h.A,{size:2,children:[(0,s.jsx)(c.Ay,{size:"small",loading:X===l.name,onClick:()=>{eb(l.name)},icon:!0===q[l.name]?(0,s.jsx)(w.A,{style:{color:"var(--colorOk)"}}):!1===q[l.name]?(0,s.jsx)(S.A,{style:{color:"var(--colorDanger)"}}):(0,s.jsx)(k.A,{})}),(0,s.jsx)(c.Ay,{size:"small",icon:(0,s.jsx)(C.A,{}),onClick:()=>{ej(l)}}),(0,s.jsx)(p.A,{title:e("models.deleteProviderConfirm"),onConfirm:()=>{ef(l.name)},children:(0,s.jsx)(c.Ay,{size:"small",danger:!0,icon:(0,s.jsx)(O.A,{})})})]})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,s.jsxs)("span",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:[(0,s.jsx)(P,{})," ",l.hasApiKey?"••••••••":"—"]}),l.baseUrl&&(0,s.jsxs)("span",{style:{fontSize:12,color:"var(--colorTextSecondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:l.baseUrl,children:[(0,s.jsx)(E.A,{})," ",l.baseUrl]}),(0,s.jsx)(h.A,{size:4,wrap:!0,children:L.filter(e=>{var a;return null==(a=l.capabilities)?void 0:a[e.key]}).map(e=>(0,s.jsx)(u.A,{color:"purple",style:{margin:0,fontSize:10,lineHeight:"16px"},children:e.label},e.key))})]})]})},l.name))})}),(0,s.jsxs)(n.A,{size:"small",title:e("models.embeddingConfig"),children:[(0,s.jsx)(x.A,{type:"info",showIcon:!0,message:e("models.embeddingHint"),style:{marginBottom:16}}),(0,s.jsxs)(d.A,{gutter:[12,12],children:[(0,s.jsxs)(m.A,{xs:24,sm:8,children:[(0,s.jsx)("div",{style:{fontSize:12,marginBottom:4,color:"var(--colorTextSecondary)"},children:e("models.embeddingProvider")}),(0,s.jsx)(v.A,{value:U.provider,style:{width:"100%"},options:[{label:"本地语义模型(推荐)",value:"transformers-local"},{label:"外部 Embedding(高级)",value:"openai-compatible"}],onChange:e=>_(l=>({...l,provider:e,model:"transformers-local"===e?l.model||"BAAI/bge-small-zh-v1.5":l.model,dimensions:"transformers-local"===e?512:l.dimensions||1024}))})]}),"openai-compatible"===U.provider&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(m.A,{xs:24,sm:8,children:[(0,s.jsx)("div",{style:{fontSize:12,marginBottom:4,color:"var(--colorTextSecondary)"},children:"Base URL"}),(0,s.jsx)(y.A,{value:U.baseUrl,onChange:e=>_(l=>({...l,baseUrl:e.target.value})),placeholder:"http://localhost:11434/v1"})]}),(0,s.jsxs)(m.A,{xs:24,sm:8,children:[(0,s.jsx)("div",{style:{fontSize:12,marginBottom:4,color:"var(--colorTextSecondary)"},children:e("models.model")}),(0,s.jsx)(y.A,{value:U.model,onChange:e=>_(l=>({...l,model:e.target.value})),placeholder:"bge-m3"})]}),(0,s.jsxs)(m.A,{xs:24,sm:8,children:[(0,s.jsx)("div",{style:{fontSize:12,marginBottom:4,color:"var(--colorTextSecondary)"},children:e("models.apiKey")}),(0,s.jsx)(y.A.Password,{value:U.apiKey,onFocus:()=>{var e;(null==(e=U.apiKey)?void 0:e.includes("•"))&&_(e=>({...e,apiKey:""}))},onChange:e=>_(l=>({...l,apiKey:e.target.value})),placeholder:e("models.optional")}),U.hasApiKey&&(0,s.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginTop:4},children:e("models.embeddingApiKeyHint")})]})]}),"transformers-local"===U.provider&&(0,s.jsxs)(m.A,{xs:24,sm:8,children:[(0,s.jsx)("div",{style:{fontSize:12,marginBottom:4,color:"var(--colorTextSecondary)"},children:e("models.model")}),(0,s.jsx)(y.A,{value:U.model,onChange:e=>_(l=>({...l,model:e.target.value})),placeholder:"BAAI/bge-small-zh-v1.5"})]}),(0,s.jsxs)(m.A,{xs:24,sm:8,children:[(0,s.jsx)("div",{style:{fontSize:12,marginBottom:4,color:"var(--colorTextSecondary)"},children:e("models.dimensions")}),(0,s.jsx)(g.A,{style:{width:"100%"},min:1,value:U.dimensions,onChange:e=>_(l=>({...l,dimensions:Number(e||("transformers-local"===l.provider?512:1024))}))})]}),(0,s.jsxs)(m.A,{xs:24,sm:8,children:[(0,s.jsx)("div",{style:{fontSize:12,marginBottom:4,color:"var(--colorTextSecondary)"},children:e("models.status")}),(0,s.jsxs)(h.A,{children:[(0,s.jsx)(u.A,{color:"blue",children:"transformers-local"===U.provider?"本地语义模型":e("models.openAICompatible")}),!0===W&&(0,s.jsx)(u.A,{color:"success",children:e("models.connected")}),!1===W&&(0,s.jsx)(u.A,{color:"error",children:e("models.connectionFailed")})]})]})]}),(0,s.jsxs)(h.A,{style:{marginTop:16},children:[(0,s.jsx)(c.Ay,{type:"primary",loading:$,onClick:()=>{ew()},children:e("models.saveEmbedding")}),(0,s.jsx)(c.Ay,{loading:V,onClick:()=>{eS()},children:e("models.testEmbedding")})]})]}),R&&(0,s.jsx)(n.A,{size:"small",title:e("models.modelTiers"),children:(0,s.jsx)(d.A,{gutter:[12,12],children:H.map(l=>{let{key:a,labelKey:o,descKey:t}=l,r=R[a],i=r.list.map(e=>({label:"".concat(e.provider," / ").concat(e.name),value:"".concat(e.provider,":").concat(e.name)})),c=I.filter(e=>!r.list.some(l=>l.provider===e.name)).map(e=>({label:e.name,value:"".concat(e.name,":").concat(e.name)})),d=r.active?r.list.find(e=>e.name===r.active):null;return(0,s.jsx)(m.A,{xs:24,lg:8,children:(0,s.jsxs)(n.A,{size:"small",title:(0,s.jsx)("span",{style:{fontSize:14},children:e(o)}),style:{height:"100%"},children:[(0,s.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)",marginBottom:8,lineHeight:1.5},children:e(t)}),(0,s.jsx)(v.A,{value:r.active?"".concat((null==d?void 0:d.provider)||"",":").concat(r.active):void 0,onChange:e=>{ez(a,e)},allowClear:!0,placeholder:e("models.selectModelPlaceholder"),style:{width:"100%"},options:[...i,...c]}),d&&(()=>{let e=I.find(e=>e.name===d.provider);return(0,s.jsxs)("div",{style:{marginTop:12,padding:"8px 12px",background:"var(--colorBgElevated)",borderRadius:6,border:"1px solid var(--colorBorderSecondary)",display:"flex",alignItems:"center",gap:8},children:[(0,s.jsx)(k.A,{style:{color:"var(--colorAccent)",fontSize:14,flexShrink:0}}),(0,s.jsx)("span",{style:{fontSize:12,fontWeight:500,flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d.provider}),(null==e?void 0:e.capabilities)&&L.filter(l=>e.capabilities[l.key]).length>0&&(0,s.jsx)(h.A,{size:4,wrap:!0,style:{flexShrink:0},children:L.filter(l=>e.capabilities[l.key]).slice(0,2).map(e=>(0,s.jsx)(u.A,{color:"purple",style:{margin:0,fontSize:10,lineHeight:"16px"},children:e.label},e.key))}),(0,s.jsx)(u.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"18px",flexShrink:0},children:"激活"})]})})()]})},a)})})}),(0,s.jsx)(j.A,{title:ee?e("models.editModel"):e("models.addModel"),open:Q,onClose:()=>Y(!1),width:800,maskClosable:!1,style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,s.jsx)(c.Ay,{type:"primary",loading:ev,onClick:()=>{eA()},children:e("common.save")}),children:(0,s.jsxs)(A.A,{layout:"vertical",children:[(0,s.jsx)(A.A.Item,{label:e("models.modelName"),children:(0,s.jsx)(y.A,{value:eo,onChange:e=>et(e.target.value),placeholder:e("models.modelNamePlaceholder")})}),(0,s.jsx)(A.A.Item,{label:e("models.apiKey"),help:ee?e("models.apiKeyEditHint"):void 0,children:(0,s.jsx)(y.A.Password,{value:er,onFocus:()=>{ee&&er.includes("•")&&ei("")},onChange:e=>ei(e.target.value),placeholder:ee?e("models.apiKeyEditPlaceholder"):"sk-..."})}),(0,s.jsx)(A.A.Item,{label:e("models.baseUrl"),children:(0,s.jsx)(y.A,{value:en,onChange:e=>ec(e.target.value),placeholder:"https://api.openai.com/v1"})}),(0,s.jsx)(A.A.Item,{label:e("models.protocol"),children:(0,s.jsx)(v.A,{value:ed,onChange:em,options:M})}),(0,s.jsx)(A.A.Item,{label:"直连端点",children:(0,s.jsx)(f.A,{checked:eh,onChange:e=>ep(e.target.checked),children:"Base URL 是完整接口地址"})}),(0,s.jsx)(A.A.Item,{label:"多模态能力",children:(0,s.jsx)(f.A.Group,{value:L.filter(e=>eu[e.key]).map(e=>e.key),options:L.map(e=>({label:e.label,value:e.key})),onChange:e=>ex(Object.fromEntries(L.map(l=>[l.key,e.includes(l.key)])))})})]})})]})}}},e=>{e.O(0,[433,787,576,195,985,455,938,636,593,792],()=>e(e.s=77305)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5449],{27795:(e,l,s)=>{"use strict";s.r(l),s.d(l,{default:()=>T});var t=s(65321),r=s(97109),i=s(32620),c=s(85114),o=s(2256),n=s(38770),a=s(68787),x=s(99605),d=s(54849),h=s(33442),v=s(11702),m=s(99811),u=s(520),j=s(93314),A=s(13114),y=s(29071),p=s(26631),g=s(84742),f=s(38762),w=s(8579),k=s(9020),z=s(32632),S=s(95118),N=s(24810),_=s(6578);function T(){var e,l,s,T,P,b,O,C,D,E,M,F;let I=(0,i.Vr)(),[B,W]=(0,r.useState)(null),[U,X]=(0,r.useState)(!0),[R,V]=(0,r.useState)(0),[Z,q]=(0,r.useState)(0),[G,H]=(0,r.useState)(0),[J,K]=(0,r.useState)(0),[L,Q]=(0,r.useState)(0),[Y,$]=(0,r.useState)(null),ee=(0,r.useCallback)(async()=>{X(!0);try{let[e,l,s,t,r,i]=await Promise.all([(0,_.FC)(),(0,_.Z3)().catch(()=>[]),(0,_.lv)().catch(()=>({roles:[],configs:[]})),(0,_.mx)().catch(()=>({specs:[]})),(0,_.Dl)().catch(()=>({templates:[]})),(0,_.II)().catch(()=>null)]);W(e),V(Array.isArray(l)?l.length:0);let c=Array.isArray(s.roles)?s.roles:[];q(c.filter(e=>"file"===e.type).length),H(c.filter(e=>"prompt"===e.type).length),K(Array.isArray(t.specs)?t.specs.length:0),Q(Array.isArray(r.templates)?r.templates.length:0),$(i)}catch(e){}finally{X(!1)}},[]);(0,r.useEffect)(()=>{ee();let e=setInterval(()=>{ee()},1e4);return()=>clearInterval(e)},[ee]);let el=(null!=(l=null==B?void 0:B.cpu.usagePercent)?l:0)>80?"var(--colorDanger)":(null!=(s=null==B?void 0:B.cpu.usagePercent)?s:0)>50?"var(--colorWarning)":"var(--colorOk)",es=(null!=(T=null==B?void 0:B.memory.usagePercent)?T:0)>80?"var(--colorDanger)":(null!=(P=null==B?void 0:B.memory.usagePercent)?P:0)>50?"var(--colorWarning)":"var(--colorOk)",et=(null==B?void 0:B.tasks.total)?Math.round(B.tasks.success/B.tasks.total*100):0,er=null==B||null==(e=B.models)?void 0:e[0];return(0,t.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"pageTitle",children:I("overview.title")}),(0,t.jsx)("p",{className:"pageDesc",children:I("overview.description")})]}),(0,t.jsx)(c.Ay,{icon:(0,t.jsx)(m.A,{spin:U}),loading:U,onClick:()=>{ee()},children:I("common.retry")})]}),(0,t.jsxs)(o.A,{gutter:[16,16],children:[(0,t.jsx)(n.A,{xs:24,sm:12,children:(0,t.jsx)(a.A,{size:"small",title:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.A,{})," CPU"]}),children:(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)(x.A,{type:"circle",percent:null!=(b=null==B?void 0:B.cpu.usagePercent)?b:0,size:120,strokeColor:el,format:e=>"".concat(null==e?void 0:e.toFixed(1),"%")}),(0,t.jsxs)("div",{className:"text-xs mt-2",style:{color:"var(--colorTextSecondary)"},children:[null!=(O=null==B?void 0:B.cpu.cores)?O:0," ",I("overview.cores")]})]})})}),(0,t.jsx)(n.A,{xs:24,sm:12,children:(0,t.jsx)(a.A,{size:"small",title:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.A,{})," ",I("overview.memory")]}),children:(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)(x.A,{type:"circle",percent:null!=(C=null==B?void 0:B.memory.usagePercent)?C:0,size:120,strokeColor:es,format:e=>"".concat(e,"%")}),(0,t.jsxs)("div",{className:"text-xs mt-2",style:{color:"var(--colorTextSecondary)"},children:[null!=(D=null==B?void 0:B.memory.processMB)?D:0," MB / ",null!=(E=null==B?void 0:B.memory.totalMB)?E:0," MB"]})]})})})]}),(0,t.jsxs)(o.A,{gutter:[16,16],children:[(0,t.jsx)(n.A,{xs:12,sm:6,children:(0,t.jsx)(a.A,{size:"small",children:(0,t.jsx)(d.A,{title:"运行时间",value:B?Math.floor(B.uptime/3600):0,suffix:"小时",prefix:(0,t.jsx)(A.A,{})})})}),(0,t.jsx)(n.A,{xs:12,sm:6,children:(0,t.jsx)(a.A,{size:"small",children:(0,t.jsx)(d.A,{title:I("overview.tokensUsed"),value:null!=(M=null==B?void 0:B.tokens.total)?M:0,prefix:(0,t.jsx)(y.A,{})})})}),(0,t.jsx)(n.A,{xs:12,sm:6,children:(0,t.jsx)(a.A,{size:"small",children:(0,t.jsx)(d.A,{title:I("overview.tasksTotal"),value:null!=(F=null==B?void 0:B.tasks.total)?F:0,prefix:(0,t.jsx)(p.A,{})})})}),(0,t.jsx)(n.A,{xs:12,sm:6,children:(0,t.jsx)(a.A,{size:"small",children:(0,t.jsx)(d.A,{title:I("overview.successRate"),value:et,suffix:"%",prefix:et>80?(0,t.jsx)(g.A,{style:{color:"var(--colorOk)"}}):(0,t.jsx)(f.A,{style:{color:"var(--colorDanger)"}})})})})]}),(0,t.jsx)(a.A,{size:"small",title:"资源概览",children:(0,t.jsxs)(o.A,{gutter:[16,16],children:[(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"文件角色",value:Z,prefix:(0,t.jsx)(p.A,{style:{color:"var(--colorAccent)"}})})})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"提示词角色",value:G,prefix:(0,t.jsx)(w.A,{style:{color:"var(--colorWarning)"}})})})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"文档规范包",value:J,prefix:(0,t.jsx)(k.A,{style:{color:"var(--colorOk)"}})})})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"模板",value:L,prefix:(0,t.jsx)(z.A,{style:{color:"var(--colorDanger)"}})})})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsxs)(a.A,{size:"small",style:{height:"100%",overflow:"hidden"},children:[(0,t.jsx)(d.A,{title:"语义模型",value:(null==Y?void 0:Y.provider)==="openai-compatible"?"外部 Embedding":Y?"本地语义模型":"—",prefix:(0,t.jsx)(S.A,{style:{color:"var(--colorAccent)"}}),valueStyle:{fontSize:18,whiteSpace:"nowrap"}}),(null==Y?void 0:Y.model)&&(0,t.jsxs)("div",{className:"text-xs mt-1",style:{color:"var(--colorTextSecondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"".concat(Y.model).concat(Y.dimensions?" \xb7 ".concat(Y.dimensions,"维"):""),children:[Y.model,Y.dimensions?" \xb7 ".concat(Y.dimensions,"维"):""]})]})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"模型供应商",value:R,prefix:(0,t.jsx)(N.A,{style:{color:"var(--colorAccent)"}})})})})]})}),(0,t.jsxs)(o.A,{gutter:[16,16],children:[(0,t.jsx)(n.A,{xs:24,sm:12,children:(0,t.jsx)(a.A,{size:"small",title:I("overview.topModel"),style:{height:"100%"},children:er?(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(A.A,{style:{fontSize:24,color:"var(--colorAccent)"}}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-semibold",children:er.model}),(0,t.jsxs)("div",{style:{color:"var(--colorTextSecondary)",fontSize:12},children:["@",er.provider," — ",er.count," ",I("overview.calls")]})]})]}):(0,t.jsx)("span",{style:{color:"var(--colorTextSecondary)"},children:I("common.noData")})})}),(0,t.jsx)(n.A,{xs:24,sm:12,children:(0,t.jsx)(a.A,{size:"small",title:I("overview.taskTypes"),style:{height:"100%"},children:(null==B?void 0:B.tasks.types)&&Object.keys(B.tasks.types).length>0?(0,t.jsx)(h.A,{wrap:!0,children:Object.entries(B.tasks.types).map(e=>{let[l,s]=e;return(0,t.jsxs)(v.A,{children:[l.slice(0,30),": ",s]},l)})}):(0,t.jsx)("span",{style:{color:"var(--colorTextSecondary)"},children:I("common.noData")})})})]})]})}},53139:(e,l,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/overview",function(){return s(27795)}])}},e=>{e.O(0,[347,8787,4277,8732,261,6578,636,6593,8792],()=>e(e.s=53139)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[449],{27795:(e,l,s)=>{"use strict";s.r(l),s.d(l,{default:()=>T});var t=s(65321),r=s(97109),i=s(79059),c=s(85114),o=s(2256),n=s(38770),a=s(68787),x=s(99605),d=s(54849),h=s(33442),v=s(11702),m=s(99811),u=s(520),j=s(93314),A=s(13114),y=s(29071),p=s(26631),g=s(84742),f=s(38762),w=s(30960),k=s(9020),z=s(32632),S=s(95118),N=s(24810),_=s(6578);function T(){var e,l,s,T,P,b,O,C,D,E,M,F;let I=(0,i.Vr)(),[B,W]=(0,r.useState)(null),[U,X]=(0,r.useState)(!0),[R,V]=(0,r.useState)(0),[Z,q]=(0,r.useState)(0),[G,H]=(0,r.useState)(0),[J,K]=(0,r.useState)(0),[L,Q]=(0,r.useState)(0),[Y,$]=(0,r.useState)(null),ee=(0,r.useCallback)(async()=>{X(!0);try{let[e,l,s,t,r,i]=await Promise.all([(0,_.FC)(),(0,_.Z3)().catch(()=>[]),(0,_.lv)().catch(()=>({roles:[],configs:[]})),(0,_.mx)().catch(()=>({specs:[]})),(0,_.Dl)().catch(()=>({templates:[]})),(0,_.II)().catch(()=>null)]);W(e),V(Array.isArray(l)?l.length:0);let c=Array.isArray(s.roles)?s.roles:[];q(c.filter(e=>"file"===e.type).length),H(c.filter(e=>"prompt"===e.type).length),K(Array.isArray(t.specs)?t.specs.length:0),Q(Array.isArray(r.templates)?r.templates.length:0),$(i)}catch(e){}finally{X(!1)}},[]);(0,r.useEffect)(()=>{ee();let e=setInterval(()=>{ee()},1e4);return()=>clearInterval(e)},[ee]);let el=(null!=(l=null==B?void 0:B.cpu.usagePercent)?l:0)>80?"var(--colorDanger)":(null!=(s=null==B?void 0:B.cpu.usagePercent)?s:0)>50?"var(--colorWarning)":"var(--colorOk)",es=(null!=(T=null==B?void 0:B.memory.usagePercent)?T:0)>80?"var(--colorDanger)":(null!=(P=null==B?void 0:B.memory.usagePercent)?P:0)>50?"var(--colorWarning)":"var(--colorOk)",et=(null==B?void 0:B.tasks.total)?Math.round(B.tasks.success/B.tasks.total*100):0,er=null==B||null==(e=B.models)?void 0:e[0];return(0,t.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"pageTitle",children:I("overview.title")}),(0,t.jsx)("p",{className:"pageDesc",children:I("overview.description")})]}),(0,t.jsx)(c.Ay,{icon:(0,t.jsx)(m.A,{spin:U}),loading:U,onClick:()=>{ee()},children:I("common.retry")})]}),(0,t.jsxs)(o.A,{gutter:[16,16],children:[(0,t.jsx)(n.A,{xs:24,sm:12,children:(0,t.jsx)(a.A,{size:"small",title:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.A,{})," CPU"]}),children:(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)(x.A,{type:"circle",percent:null!=(b=null==B?void 0:B.cpu.usagePercent)?b:0,size:120,strokeColor:el,format:e=>"".concat(null==e?void 0:e.toFixed(1),"%")}),(0,t.jsxs)("div",{className:"text-xs mt-2",style:{color:"var(--colorTextSecondary)"},children:[null!=(O=null==B?void 0:B.cpu.cores)?O:0," ",I("overview.cores")]})]})})}),(0,t.jsx)(n.A,{xs:24,sm:12,children:(0,t.jsx)(a.A,{size:"small",title:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.A,{})," ",I("overview.memory")]}),children:(0,t.jsxs)("div",{style:{textAlign:"center"},children:[(0,t.jsx)(x.A,{type:"circle",percent:null!=(C=null==B?void 0:B.memory.usagePercent)?C:0,size:120,strokeColor:es,format:e=>"".concat(e,"%")}),(0,t.jsxs)("div",{className:"text-xs mt-2",style:{color:"var(--colorTextSecondary)"},children:[null!=(D=null==B?void 0:B.memory.processMB)?D:0," MB / ",null!=(E=null==B?void 0:B.memory.totalMB)?E:0," MB"]})]})})})]}),(0,t.jsxs)(o.A,{gutter:[16,16],children:[(0,t.jsx)(n.A,{xs:12,sm:6,children:(0,t.jsx)(a.A,{size:"small",children:(0,t.jsx)(d.A,{title:"运行时间",value:B?Math.floor(B.uptime/3600):0,suffix:"小时",prefix:(0,t.jsx)(A.A,{})})})}),(0,t.jsx)(n.A,{xs:12,sm:6,children:(0,t.jsx)(a.A,{size:"small",children:(0,t.jsx)(d.A,{title:I("overview.tokensUsed"),value:null!=(M=null==B?void 0:B.tokens.total)?M:0,prefix:(0,t.jsx)(y.A,{})})})}),(0,t.jsx)(n.A,{xs:12,sm:6,children:(0,t.jsx)(a.A,{size:"small",children:(0,t.jsx)(d.A,{title:I("overview.tasksTotal"),value:null!=(F=null==B?void 0:B.tasks.total)?F:0,prefix:(0,t.jsx)(p.A,{})})})}),(0,t.jsx)(n.A,{xs:12,sm:6,children:(0,t.jsx)(a.A,{size:"small",children:(0,t.jsx)(d.A,{title:I("overview.successRate"),value:et,suffix:"%",prefix:et>80?(0,t.jsx)(g.A,{style:{color:"var(--colorOk)"}}):(0,t.jsx)(f.A,{style:{color:"var(--colorDanger)"}})})})})]}),(0,t.jsx)(a.A,{size:"small",title:"资源概览",children:(0,t.jsxs)(o.A,{gutter:[16,16],children:[(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"文件角色",value:Z,prefix:(0,t.jsx)(p.A,{style:{color:"var(--colorAccent)"}})})})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"提示词角色",value:G,prefix:(0,t.jsx)(w.A,{style:{color:"var(--colorWarning)"}})})})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"文档规范包",value:J,prefix:(0,t.jsx)(k.A,{style:{color:"var(--colorOk)"}})})})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"模板",value:L,prefix:(0,t.jsx)(z.A,{style:{color:"var(--colorDanger)"}})})})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsxs)(a.A,{size:"small",style:{height:"100%",overflow:"hidden"},children:[(0,t.jsx)(d.A,{title:"语义模型",value:(null==Y?void 0:Y.provider)==="openai-compatible"?"外部 Embedding":Y?"本地语义模型":"—",prefix:(0,t.jsx)(S.A,{style:{color:"var(--colorAccent)"}}),valueStyle:{fontSize:18,whiteSpace:"nowrap"}}),(null==Y?void 0:Y.model)&&(0,t.jsxs)("div",{className:"text-xs mt-1",style:{color:"var(--colorTextSecondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"".concat(Y.model).concat(Y.dimensions?" \xb7 ".concat(Y.dimensions,"维"):""),children:[Y.model,Y.dimensions?" \xb7 ".concat(Y.dimensions,"维"):""]})]})}),(0,t.jsx)(n.A,{xs:24,sm:12,md:8,lg:4,children:(0,t.jsx)(a.A,{size:"small",style:{height:"100%"},children:(0,t.jsx)(d.A,{title:"模型供应商",value:R,prefix:(0,t.jsx)(N.A,{style:{color:"var(--colorAccent)"}})})})})]})}),(0,t.jsxs)(o.A,{gutter:[16,16],children:[(0,t.jsx)(n.A,{xs:24,sm:12,children:(0,t.jsx)(a.A,{size:"small",title:I("overview.topModel"),style:{height:"100%"},children:er?(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)(A.A,{style:{fontSize:24,color:"var(--colorAccent)"}}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-semibold",children:er.model}),(0,t.jsxs)("div",{style:{color:"var(--colorTextSecondary)",fontSize:12},children:["@",er.provider," — ",er.count," ",I("overview.calls")]})]})]}):(0,t.jsx)("span",{style:{color:"var(--colorTextSecondary)"},children:I("common.noData")})})}),(0,t.jsx)(n.A,{xs:24,sm:12,children:(0,t.jsx)(a.A,{size:"small",title:I("overview.taskTypes"),style:{height:"100%"},children:(null==B?void 0:B.tasks.types)&&Object.keys(B.tasks.types).length>0?(0,t.jsx)(h.A,{wrap:!0,children:Object.entries(B.tasks.types).map(e=>{let[l,s]=e;return(0,t.jsxs)(v.A,{children:[l.slice(0,30),": ",s]},l)})}):(0,t.jsx)("span",{style:{color:"var(--colorTextSecondary)"},children:I("common.noData")})})})]})]})}},53139:(e,l,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/overview",function(){return s(27795)}])}},e=>{e.O(0,[433,787,131,636,593,792],()=>e(e.s=53139)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26],{12887:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"}},23830:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"}}]},name:"folder",theme:"outlined"}},26631:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var o=r(97109),i=r(12887),n=r(88483);function a(){return(a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e}).apply(this,arguments)}let l=o.forwardRef((e,t)=>o.createElement(n.A,a({},e,{ref:t,icon:i.A})))},27549:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/prompt",function(){return r(34508)}])},29606:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var o=r(97109),i=r(23830),n=r(88483);function a(){return(a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e}).apply(this,arguments)}let l=o.forwardRef((e,t)=>o.createElement(n.A,a({},e,{ref:t,icon:i.A})))},34508:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>H});var o=r(65321),i=r(97109),n=r(79059),a=r(17807),l=r(88762),s=r(68787),c=r(33442),d=r(11702),p=r(57271),h=r(85114),m=r(84253),u=r(56985),f=r(26171),y=r(34052),x=r(7576),g=r(29606),j=r(54746),v=r(26631),w=r(99650),A=r(58209);async function S(){let e=await fetch("/api/prompt");if(!e.ok)throw Error("Failed");return e.json()}async function b(e,t,r){let o=await fetch("/api/prompt",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePath:e,content:t,name:r})});if(!o.ok)throw Error("Failed");return o.json()}async function z(e){let t=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"create",projectRoot:e,content:"# CUSTOMIZE\n"})});if(!t.ok)throw Error("Failed");return t.json()}async function C(e,t){let r=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"createCustom",name:e,content:t})});if(!r.ok)throw Error("Failed");return r.json()}async function T(e){let t=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"select",selectedIds:e})});if(!t.ok)throw Error("Failed");return t.json()}function O(e){return e.id.startsWith("builtin:")}function k(e){return e.id.startsWith("custom:")}function H(){let e=(0,n.Vr)(),{message:t}=a.A.useApp(),[r,H]=(0,i.useState)(!0),[N,E]=(0,i.useState)([]),[F,P]=(0,i.useState)(!1),[R,_]=(0,i.useState)(null),[B,M]=(0,i.useState)(""),[I,V]=(0,i.useState)(""),[W,J]=(0,i.useState)(!1),[L,D]=(0,i.useState)(!1),[U,X]=(0,i.useState)("custom"),Z=async()=>{H(!0);try{E(await S())}catch(r){t.error(e("common.error"))}finally{H(!1)}};(0,i.useEffect)(()=>{Z()},[]);let $=r=>{if(null==r?void 0:r.projectRoot)return void z(r.projectRoot).then(()=>{t.success(e("common.success")),Z()}).catch(()=>t.error(e("common.error")));_(null),D(!0),V(""),M(""),P(!0)},q=async()=>{if(!I.trim())return void t.error("请输入名称");J(!0);try{R?await b(R.customizePath,B,k(R)?I.trim():void 0):await C(I.trim(),B||"# ".concat(I.trim(),"\n")),t.success(e("common.success")),P(!1),await Z()}catch(r){t.error(e("common.error"))}finally{J(!1)}},G=async(r,o)=>{let i=o?Array.from(new Set([...N.filter(e=>e.selected).map(e=>e.id),r.id])):N.filter(e=>e.selected&&e.id!==r.id).map(e=>e.id);try{await T(i),E(e=>e.map(e=>({...e,selected:i.includes(e.id)})))}catch(r){t.error(e("common.error"))}},K=async r=>{try{if(!(await fetch("/api/prompt",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:r.projectId,filePath:r.customizePath})})).ok)throw Error("Failed");t.success(e("common.success")),await Z()}catch(r){t.error(e("common.error"))}},Q=N.find(e=>e.isCurrent),Y=N.filter(O),ee=N.filter(k),et=N.filter(e=>!O(e)&&!k(e)),er="all"===U?N:"builtin"===U?Y:"custom"===U?ee:et;return r?(0,o.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,o.jsx)(l.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,o.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:12},children:Array.from({length:4}).map((e,t)=>(0,o.jsx)(s.A,{size:"small",children:(0,o.jsx)(l.A,{active:!0,paragraph:{rows:4}})},t))})]}):(0,o.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"pageTitle",children:e("nav.promptManagement")}),(0,o.jsx)("p",{className:"pageDesc",children:e("prompt.description")})]}),(0,o.jsxs)(c.A,{children:[Q&&(0,o.jsxs)(d.A,{color:"green",style:{lineHeight:"22px"},children:[(0,o.jsx)(g.A,{})," ",Q.projectRoot]}),(0,o.jsx)(p.A,{value:U,onChange:X,style:{width:160},options:[{label:"全部 (".concat(N.length,")"),value:"all"},{label:"我的提示词 (".concat(ee.length,")"),value:"custom"},{label:"项目提示词 (".concat(et.length,")"),value:"project"},{label:"内置示例 (".concat(Y.length,")"),value:"builtin"}]}),(0,o.jsx)(h.Ay,{type:"primary",icon:(0,o.jsx)(j.A,{}),onClick:()=>$(),children:"创建提示词"})]})]}),0===er.length?(0,o.jsx)(m.A,{description:e("prompt.noProjects")}):(0,o.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:12},children:er.map(e=>{let r=e.hasFile&&e.content?e.content.replace(/^#.*$/gm,"").replace(/\n{3,}/g,"\n\n").trim():"";return(0,o.jsxs)(s.A,{size:"small",hoverable:!0,styles:{body:{display:"flex",flexDirection:"column",height:"100%"}},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:8},children:[(0,o.jsx)(v.A,{style:{color:e.isCurrent?"var(--colorOk)":"var(--colorAccent)",fontSize:14,flexShrink:0}}),(0,o.jsx)("span",{style:{fontWeight:600,fontSize:13,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:e.projectName}),!e.hasFile&&e.projectRoot&&(0,o.jsx)(h.Ay,{size:"small",icon:(0,o.jsx)(j.A,{}),onClick:()=>$(e)})]}),e.projectRoot&&(0,o.jsxs)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:6,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,o.jsx)(g.A,{style:{marginRight:4}}),e.projectRoot]}),(0,o.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginBottom:8},children:[e.isCurrent&&(0,o.jsx)(d.A,{color:"green",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"当前项目"}),O(e)&&(0,o.jsx)(d.A,{color:"gold",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"内置示例"}),k(e)&&(0,o.jsx)(d.A,{color:"cyan",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"我的提示词"}),!O(e)&&!k(e)&&(0,o.jsx)(d.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"项目提示词"}),e.selected&&(0,o.jsx)(d.A,{color:"purple",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"已选中"}),e.hasFile?(0,o.jsx)(d.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"有文件"}):(0,o.jsx)(d.A,{color:"default",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"无文件"})]}),r&&(0,o.jsxs)("div",{style:{padding:8,background:"var(--colorFillAlter)",borderRadius:6,fontSize:11,maxHeight:80,overflow:"hidden",color:"var(--colorTextSecondary)",whiteSpace:"pre-wrap",fontFamily:"monospace",marginBottom:8,lineHeight:1.5},children:[r.slice(0,180),r.length>180?"...":""]}),(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,paddingTop:8,borderTop:"1px solid var(--colorBorderSecondary)",marginTop:"auto"},children:[e.hasFile?(0,o.jsx)(u.A,{checked:e.selected,onChange:t=>{G(e,t.target.checked)},style:{fontSize:12},children:"选中"}):(0,o.jsx)("span",{}),(0,o.jsx)("div",{style:{flex:1}}),e.hasFile&&(0,o.jsx)(h.Ay,{size:"small",icon:(0,o.jsx)(w.A,{}),onClick:()=>(e=>{if(O(e)){_(null),D(!0),V(e.projectName.replace(/^内置|/,"")+" Copy"),M(e.content||""),P(!0),t.info("内置提示词不可直接编辑,已为你创建副本");return}_(e),D(!1),V(e.projectName),M(e.content||""),P(!0)})(e),children:O(e)?"复制":"编辑"}),(0,o.jsx)(f.A,{title:O(e)?"删除内置提示词?":k(e)?"删除自定义提示词?":"删除项目记录及文件?",disabled:O(e),onConfirm:()=>{K(e)},children:(0,o.jsx)(h.Ay,{size:"small",danger:!0,icon:(0,o.jsx)(A.A,{}),disabled:O(e)})})]})]},e.id)})}),(0,o.jsxs)(y.A,{title:L?"创建提示词":R&&k(R)?"编辑我的提示词 — ".concat(I||R.projectName):"编辑项目提示词 — ".concat((null==R?void 0:R.projectName)||""),open:F,onClose:()=>P(!1),width:800,maskClosable:!1,style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,o.jsxs)(c.A,{children:[(0,o.jsx)(h.Ay,{onClick:()=>P(!1),children:e("common.cancel")}),(0,o.jsx)(h.Ay,{type:"primary",loading:W,onClick:()=>{q()},children:e("common.save")})]}),children:[(0,o.jsx)("div",{style:{marginBottom:12},children:L||R&&k(R)?(0,o.jsxs)(c.A,{direction:"vertical",size:6,style:{width:"100%"},children:[(0,o.jsx)(x.A,{placeholder:"提示词名称",value:I,onChange:e=>V(e.target.value),style:{maxWidth:400}}),!L&&(0,o.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:null==R?void 0:R.customizePath})]}):(0,o.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:null==R?void 0:R.customizePath})}),(0,o.jsx)(x.A.TextArea,{value:B,onChange:e=>M(e.target.value),rows:25,style:{fontFamily:"SF Mono, Monaco, Consolas, monospace",fontSize:13}})]})]})}}},e=>{e.O(0,[433,787,576,195,985,636,593,792],()=>e(e.s=27549)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[199],{2256:(e,l,s)=>{"use strict";s.d(l,{A:()=>i});let i=s(25341).A},7368:(e,l,s)=>{"use strict";s.r(l),s.d(l,{default:()=>S});var i=s(65321),t=s(97109),r=s(79059),n=s(49759),o=s(88762),d=s(2256),a=s(38770),c=s(68787),x=s(11702),h=s(73340),y=s(1278);let g=(0,y.A)("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var v=s(56733),j=s(38300);let p=(0,y.A)("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);var m=s(87824);let u=(0,y.A)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var f=s(6578);let A=(e,l,s)=>(0,i.jsx)("div",{style:{width:32,height:32,borderRadius:8,background:l,display:"flex",alignItems:"center",justifyContent:"center",color:s,flexShrink:0},children:e});function S(){var e,l;let s=(0,r.Vr)("settings"),{theme:y,resolvedTheme:S,setTheme:b}=(0,n.D)(),{locale:z,setLocale:k}=(0,r.x_)(),[w,T]=(0,t.useState)(null),[B,N]=(0,t.useState)(null),[F,_]=(0,t.useState)(null),[C,I]=(0,t.useState)(!0);(0,t.useEffect)(()=>{I(!0),Promise.all([(0,f.FC)().catch(()=>null),(0,f.le)().catch(()=>null),(0,f.II)().catch(()=>null)]).then(e=>{let[l,s,i]=e;T(l),N(s),_(i)}).finally(()=>I(!1))},[]);let W="system"===y?"system":S,M=e=>"applePill".concat(e?" applePillActive":"");return C?(0,i.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,i.jsx)(o.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,i.jsxs)(d.A,{gutter:[16,16],children:[Array.from({length:4}).map((e,l)=>(0,i.jsx)(a.A,{xs:24,md:12,children:(0,i.jsx)(c.A,{size:"small",children:(0,i.jsx)(o.A,{active:!0,paragraph:{rows:2}})})},l)),(0,i.jsx)(a.A,{xs:24,children:(0,i.jsx)(c.A,{size:"small",children:(0,i.jsx)(o.A,{active:!0,paragraph:{rows:4}})})})]})]}):(0,i.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h1",{className:"pageTitle",children:s("title")}),(0,i.jsx)("p",{className:"pageDesc",children:s("description")})]}),(0,i.jsxs)(d.A,{gutter:[16,16],children:[(0,i.jsx)(a.A,{xs:24,md:12,style:{display:"flex"},children:(0,i.jsxs)(c.A,{size:"small",style:{flex:1},styles:{body:{padding:"14px 18px"}},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:14},children:[A((0,i.jsx)(h.A,{size:16}),"rgba(88,86,214,0.1)","#5856d6"),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontWeight:600,fontSize:14},children:s("language")}),(0,i.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:s("languageDesc")})]})]}),(0,i.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,i.jsx)("button",{className:M("zh-CN"===z),onClick:()=>k("zh-CN"),children:"中文"}),(0,i.jsx)("button",{className:M("en-US"===z),onClick:()=>k("en-US"),children:"English"})]})]})}),(0,i.jsx)(a.A,{xs:24,md:12,style:{display:"flex"},children:(0,i.jsxs)(c.A,{size:"small",style:{flex:1},styles:{body:{padding:"14px 18px"}},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:14},children:[A((0,i.jsx)(g,{size:16}),"rgba(250,140,22,0.1)","#fa8c16"),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontWeight:600,fontSize:14},children:s("theme")}),(0,i.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:s("themeDesc")})]})]}),(0,i.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,i.jsxs)("button",{className:M("light"===W),onClick:()=>b("light"),children:[(0,i.jsx)(v.A,{size:14}),s("light")]}),(0,i.jsxs)("button",{className:M("dark"===W),onClick:()=>b("dark"),children:[(0,i.jsx)(j.A,{size:14}),s("dark")]}),(0,i.jsxs)("button",{className:M("system"===W),onClick:()=>b("system"),children:[(0,i.jsx)(g,{size:14}),s("system")]})]})]})}),(0,i.jsx)(a.A,{xs:24,md:12,style:{display:"flex"},children:(0,i.jsxs)(c.A,{size:"small",style:{flex:1},styles:{body:{padding:"14px 18px"}},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:14},children:[A((0,i.jsx)(p,{size:16}),"rgba(22,119,255,0.1)","#1677ff"),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontWeight:600,fontSize:14},children:"服务运行状态"}),(0,i.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:"查看当前服务是否正常,以及本机资源占用情况。"})]})]}),(0,i.jsxs)(d.A,{gutter:[12,12],children:[(0,i.jsx)(a.A,{span:12,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"10px 12px",textAlign:"left"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:4},children:"状态"}),(0,i.jsx)(x.A,{color:(null==B?void 0:B.status)==="ok"?"success":"error",style:{margin:0},children:(null==B?void 0:B.status)==="ok"?"运行中":"—"})]})}),(0,i.jsx)(a.A,{span:12,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"10px 12px",textAlign:"left"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:4},children:"运行时间"}),(0,i.jsx)("div",{style:{fontSize:14,fontWeight:600},children:B?(e=>{let l=Math.floor(e/86400),s=Math.floor(e%86400/3600),i=Math.floor(e%3600/60);return l>0?"".concat(l," 天 ").concat(s," 小时"):s>0?"".concat(s," 小时 ").concat(i," 分"):"".concat(i," 分")})(B.uptime):"—"})]})}),(0,i.jsx)(a.A,{span:12,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"10px 12px",textAlign:"left"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:4},children:"CPU"}),(0,i.jsx)("div",{style:{fontSize:14,fontWeight:600},children:w?"".concat(w.cpu.usagePercent.toFixed(1),"%"):"—"}),(0,i.jsxs)("div",{style:{fontSize:10,color:"var(--colorTextSecondary)"},children:[null!=(e=null==w?void 0:w.cpu.cores)?e:0," 核"]})]})}),(0,i.jsx)(a.A,{span:12,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"10px 12px",textAlign:"left"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:4},children:"内存"}),(0,i.jsx)("div",{style:{fontSize:14,fontWeight:600},children:w?"".concat(w.memory.processMB," MB"):"—"}),(0,i.jsxs)("div",{style:{fontSize:10,color:"var(--colorTextSecondary)"},children:["/ ",null!=(l=null==w?void 0:w.memory.totalMB)?l:0," MB"]})]})})]})]})}),(0,i.jsx)(a.A,{xs:24,md:12,style:{display:"flex"},children:(0,i.jsxs)(c.A,{size:"small",style:{flex:1},styles:{body:{padding:"14px 18px"}},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:14},children:[A((0,i.jsx)(m.A,{size:16}),"rgba(82,196,26,0.1)","#52c41a"),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontWeight:600,fontSize:14},children:"知识库向量配置"}),(0,i.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:"用于知识库检索。修改模型或维度后,建议重新索引知识库。"})]})]}),(0,i.jsxs)(d.A,{gutter:[12,12],children:[(0,i.jsx)(a.A,{span:12,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"10px 12px",textAlign:"left"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:4},children:"供应商"}),(0,i.jsx)(x.A,{color:"blue",style:{margin:0},children:(null==F?void 0:F.provider)||"—"})]})}),(0,i.jsx)(a.A,{span:12,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"10px 12px",textAlign:"left"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:4},children:"密钥状态"}),(null==F?void 0:F.hasApiKey)?(0,i.jsx)(x.A,{color:"success",style:{margin:0},children:"已配置"}):(0,i.jsx)(x.A,{color:"default",style:{margin:0},children:"未配置"})]})}),(0,i.jsx)(a.A,{span:12,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"10px 12px",textAlign:"left"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:4},children:"模型"}),(0,i.jsx)("div",{style:{fontSize:12,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(null==F?void 0:F.model)||"—"})]})}),(0,i.jsx)(a.A,{span:12,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"10px 12px",textAlign:"left"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:4},children:"维度"}),(0,i.jsx)("div",{style:{fontSize:14,fontWeight:600},children:(null==F?void 0:F.dimensions)?"".concat(F.dimensions):"—"})]})})]})]})}),(0,i.jsx)(a.A,{xs:24,children:(0,i.jsxs)(c.A,{size:"small",styles:{body:{padding:"14px 18px"}},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:14},children:[A((0,i.jsx)(u,{size:16}),"rgba(114,46,209,0.1)","#722ed1"),(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontWeight:600,fontSize:14},children:"本地数据与使用概况"}),(0,i.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:"用户数据保存在本机,包含知识库、提示词、角色配置、规范包、生成记录和日志。"})]})]}),(0,i.jsx)(d.A,{gutter:[8,8],children:[{label:"用户数据目录",value:"~/.customize-agent/",mono:!0},{label:"知识库数据",value:"本地索引与向量库"},{label:"生成记录",value:"草稿、导出和资源"},{label:"配置数据",value:"提示词、角色、规范包"},{label:"累计任务",value:w?w.tasks.total.toLocaleString():"—"},{label:"Token 用量",value:w?w.tokens.total.toLocaleString():"—"},{label:"日志",value:"本地运行日志"},{label:"数据范围",value:"仅保存在本机"}].map(e=>(0,i.jsx)(a.A,{xs:12,sm:6,children:(0,i.jsxs)("div",{style:{background:"var(--colorFillAlter)",borderRadius:8,padding:"8px 12px"},children:[(0,i.jsx)("div",{style:{fontSize:11,color:"var(--colorTextSecondary)",marginBottom:2},children:e.label}),(0,i.jsx)("div",{style:{fontSize:13,fontWeight:600,fontFamily:e.mono?"monospace":void 0},children:e.value})]})},e.label))})]})})]})]})}},38770:(e,l,s)=>{"use strict";s.d(l,{A:()=>i});let i=s(51916).A},58451:(e,l,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/settings",function(){return s(7368)}])}},e=>{e.O(0,[433,787,636,593,792],()=>e(e.s=58451)),_N_E=e.O()}]);