@customize-agent/server 4.57.0 → 4.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +132 -143
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +117 -9
- package/.next/server/chunks/1001.js +56 -0
- package/.next/server/chunks/1928.js +1 -1
- package/.next/server/chunks/1936.js +2 -2
- package/.next/server/chunks/2434.js +4 -0
- package/.next/server/chunks/299.js +50 -0
- package/.next/server/chunks/5547.js +350 -0
- package/.next/server/chunks/6087.js +3 -0
- package/.next/server/chunks/6321.js +3 -0
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/assets/generated/preview.js +1 -1
- package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
- package/.next/server/pages/api/assets/generated.js +1 -1
- package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
- package/.next/server/pages/api/config/embedding/healthCheck.js.nft.json +1 -1
- package/.next/server/pages/api/config/healthCheck.js +2 -2
- package/.next/server/pages/api/config/providers.js +2 -2
- package/.next/server/pages/api/documents/canvas/[id].js +2 -0
- package/.next/server/pages/api/documents/canvas/[id].js.nft.json +1 -0
- package/.next/server/pages/api/documents/export.js +3 -3
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate/preview.js +2 -0
- package/.next/server/pages/api/documents/generate/preview.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generate.js +2 -2
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated/[id]/events.js +10 -0
- package/.next/server/pages/api/documents/generated/[id]/events.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/figure/[name].js +1 -0
- package/.next/server/pages/api/documents/generated/[id]/figure/[name].js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js +2 -0
- package/.next/server/pages/api/documents/generated/[id]/nodes/[nodeId].js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/nodes.js +2 -0
- package/.next/server/pages/api/documents/generated/[id]/nodes.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/pause.js +2 -0
- package/.next/server/pages/api/documents/generated/[id]/pause.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/preview.js +2 -0
- package/.next/server/pages/api/documents/generated/[id]/preview.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js +1 -0
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js +1 -0
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/rollback.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/repair.js +1 -0
- package/.next/server/pages/api/documents/generated/[id]/repair.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id]/resume-generate.js +2 -0
- package/.next/server/pages/api/documents/generated/[id]/resume-generate.js.nft.json +1 -0
- package/.next/server/pages/api/documents/generated/[id].js +2 -2
- package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
- package/.next/server/pages/api/documents/generated.js +1 -1
- package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
- package/.next/server/pages/api/jobs/[id].js +1 -1
- package/.next/server/pages/api/jobs/[id].js.nft.json +1 -1
- package/.next/server/pages/api/jobs.js +1 -1
- package/.next/server/pages/api/jobs.js.nft.json +1 -1
- package/.next/server/pages/api/kb/categories.js +2 -2
- package/.next/server/pages/api/kb/categories.js.nft.json +1 -1
- package/.next/server/pages/api/kb/duplicates.js +2 -2
- package/.next/server/pages/api/kb/duplicates.js.nft.json +1 -1
- package/.next/server/pages/api/kb/evaluate.js +3 -3
- package/.next/server/pages/api/kb/evaluate.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/detail.js +4 -4
- package/.next/server/pages/api/kb/files/detail.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/export.js +3 -3
- package/.next/server/pages/api/kb/files/export.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/open.js +2 -2
- package/.next/server/pages/api/kb/files/open.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/preview-pdf-page.js +1 -1
- package/.next/server/pages/api/kb/files/preview-pdf-page.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/reindex.js +1 -1
- package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/search.js +3 -3
- package/.next/server/pages/api/kb/files/search.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files/tree.js +3 -3
- package/.next/server/pages/api/kb/files/tree.js.nft.json +1 -1
- package/.next/server/pages/api/kb/files.js +4 -4
- package/.next/server/pages/api/kb/files.js.nft.json +1 -1
- package/.next/server/pages/api/kb/ignore.js +2 -2
- package/.next/server/pages/api/kb/ignore.js.nft.json +1 -1
- package/.next/server/pages/api/kb/intelligence.js +1 -1
- package/.next/server/pages/api/kb/intelligence.js.nft.json +1 -1
- package/.next/server/pages/api/kb/material-groups.js +2 -0
- package/.next/server/pages/api/kb/material-groups.js.nft.json +1 -0
- package/.next/server/pages/api/kb/operations.js +1 -1
- package/.next/server/pages/api/kb/operations.js.nft.json +1 -1
- package/.next/server/pages/api/kb/reindex.js +1 -1
- package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
- package/.next/server/pages/api/kb/search.js +2 -2
- package/.next/server/pages/api/kb/search.js.nft.json +1 -1
- package/.next/server/pages/api/kb/stats.js +2 -2
- package/.next/server/pages/api/kb/stats.js.nft.json +1 -1
- package/.next/server/pages/api/kb/tags.js +1 -1
- package/.next/server/pages/api/kb/tags.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload/complete.js +1 -1
- package/.next/server/pages/api/kb/upload/complete.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload/progress.js +2 -2
- package/.next/server/pages/api/kb/upload/progress.js.nft.json +1 -1
- package/.next/server/pages/api/kb/upload.js +1 -1
- package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
- package/.next/server/pages/api/prompt.js +1 -1
- package/.next/server/pages/api/prompt.js.nft.json +1 -1
- package/.next/server/pages/api/skills/[id].js +1 -0
- package/.next/server/pages/api/skills/[id].js.nft.json +1 -0
- package/.next/server/pages/api/skills/validate.js +1 -0
- package/.next/server/pages/api/skills/validate.js.nft.json +1 -0
- package/.next/server/pages/api/skills.js +1 -0
- package/.next/server/pages/api/skills.js.nft.json +1 -0
- package/.next/server/pages/api/system/logs.js +2 -2
- package/.next/server/pages/api/system/stats.js +1 -1
- package/.next/server/pages/canvas/[id].html +1 -0
- package/.next/server/pages/canvas/[id].js.nft.json +1 -0
- package/.next/server/pages/canvas.html +1 -0
- package/.next/server/pages/canvas.js.nft.json +1 -0
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/documents.js.nft.json +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/files.js.nft.json +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge/manage.js.nft.json +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/knowledge.js.nft.json +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/skills.html +1 -0
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages-manifest.json +45 -32
- package/.next/static/Z8psgNSpy4sSg2lIho8Uw/_buildManifest.js +1 -0
- package/.next/static/chunks/127-20f09f6ebe1e6c1f.js +1 -0
- package/.next/static/chunks/174-1bc48f295d7dd075.js +10 -0
- package/.next/static/chunks/189-3f4f4e237056adaf.js +4 -0
- package/.next/static/chunks/243-03eba51d5d737e98.js +1 -0
- package/.next/static/chunks/269-7a3502478bf67fff.js +11 -0
- package/.next/static/chunks/289-136ebb30e0f6723a.js +78 -0
- package/.next/static/chunks/310-6c678cb70e4ba2d6.js +19 -0
- package/.next/static/chunks/422-46f07037c58d2309.js +1 -0
- package/.next/static/chunks/426-90638907336adcb8.js +21 -0
- package/.next/static/chunks/445-d12731f107978b10.js +6 -0
- package/.next/static/chunks/530-1b18bb11570dc44a.js +1 -0
- package/.next/static/chunks/569-2bfdde9e402af5b2.js +16 -0
- package/.next/static/chunks/700-5d29b0475311f590.js +1 -0
- package/.next/static/chunks/709-a7c652953ccd3b4b.js +1 -0
- package/.next/static/chunks/787-207289f4bb577708.js +10 -0
- package/.next/static/chunks/795-9e0cb0bb11e8c89f.js +1 -0
- package/.next/static/chunks/914-292edce0ba2a212d.js +1 -0
- package/.next/static/chunks/{framework-161be364fd69a7ce.js → framework-4b565b3ddc94cdac.js} +1 -1
- package/.next/static/chunks/main-0c91f573696223ca.js +1 -0
- package/.next/static/chunks/pages/_app-74fce107cacfaee7.js +185 -0
- package/.next/static/chunks/pages/canvas/[id]-9f4e9f49e512418b.js +1 -0
- package/.next/static/chunks/pages/canvas-323d44fe56d685a7.js +1 -0
- package/.next/static/chunks/pages/documents-e6a80f2de39c6fd2.js +1 -0
- package/.next/static/chunks/pages/guide-7367305082617e3c.js +1 -0
- package/.next/static/chunks/pages/knowledge/file-detail-aee7c15541d1d130.js +1 -0
- package/.next/static/chunks/pages/knowledge/files-b3ef5324e4b74c4a.js +1 -0
- package/.next/static/chunks/pages/knowledge/manage-d9eaebf3a8307953.js +1 -0
- package/.next/static/chunks/pages/knowledge-ca8ad5501faed486.js +1 -0
- package/.next/static/chunks/pages/models-8b96ba85131d5408.js +1 -0
- package/.next/static/chunks/pages/prompt-dd9a9f9105216e2b.js +1 -0
- package/.next/static/chunks/pages/settings-0a7709bf039a2a4d.js +1 -0
- package/.next/static/chunks/pages/skills-3d77213c3e9ef0b5.js +1 -0
- package/.next/static/chunks/pages/system/logs-9deb1217739490af.js +1 -0
- package/.next/static/chunks/webpack-6224d37324e372cb.js +1 -0
- package/.next/static/css/0e46e39b61e4e262.css +1 -0
- package/messages/en-US.json +108 -344
- package/messages/zh-CN.json +109 -345
- package/package.json +6 -5
- package/scripts/capture-baseline.mjs +541 -0
- package/.next/server/chunks/208.js +0 -136
- package/.next/server/chunks/4435.js +0 -249
- package/.next/server/chunks/5840.js +0 -1
- package/.next/server/pages/api/documents/drafts.js +0 -1
- package/.next/server/pages/api/documents/drafts.js.nft.json +0 -1
- package/.next/server/pages/api/documents/refine.js +0 -13
- package/.next/server/pages/api/documents/refine.js.nft.json +0 -1
- package/.next/server/pages/api/documents/roles.js +0 -1
- package/.next/server/pages/api/documents/roles.js.nft.json +0 -1
- package/.next/server/pages/api/documents/templates.js +0 -1
- package/.next/server/pages/api/documents/templates.js.nft.json +0 -1
- package/.next/server/pages/asset-library.html +0 -1
- package/.next/server/pages/document-roles.html +0 -1
- package/.next/server/pages/document-roles.js.nft.json +0 -1
- package/.next/static/chunks/195-2c0168eacab722d2.js +0 -1
- package/.next/static/chunks/289-12dfcb3abec1c4b4.js +0 -78
- package/.next/static/chunks/44-d3545eedd5c75ef1.js +0 -4
- package/.next/static/chunks/455-e1b41ac4946d2b6f.js +0 -6
- package/.next/static/chunks/563-2b116a2500a97dba.js +0 -1
- package/.next/static/chunks/665-88e20299084b9e73.js +0 -1
- package/.next/static/chunks/7-20bcc985742a9ae1.js +0 -10
- package/.next/static/chunks/717-743b697a417dd5ee.js +0 -4
- package/.next/static/chunks/760-f8bb8e969c5e0d57.js +0 -1
- package/.next/static/chunks/787-c18af810af3433f6.js +0 -25
- package/.next/static/chunks/788-961761f5858f9189.js +0 -1
- package/.next/static/chunks/795-cd94e8d4e9768eb9.js +0 -1
- package/.next/static/chunks/81-c3a7f04d96ea3f7d.js +0 -1
- package/.next/static/chunks/827-a6dc09e42833e6a3.js +0 -1
- package/.next/static/chunks/883-506cbca959974997.js +0 -16
- package/.next/static/chunks/986-49b865de7906320a.js +0 -8
- package/.next/static/chunks/994-241f87efc61005b8.js +0 -4
- package/.next/static/chunks/main-91fb767ebd74c9c1.js +0 -1
- package/.next/static/chunks/pages/_app-66149ba52ad1dc26.js +0 -185
- package/.next/static/chunks/pages/asset-library-a1047694e888e655.js +0 -1
- package/.next/static/chunks/pages/document-roles-5620a98d6312f81c.js +0 -1
- package/.next/static/chunks/pages/documents-8e1a30170e9311b0.js +0 -1
- package/.next/static/chunks/pages/guide-a411c554520b7109.js +0 -1
- package/.next/static/chunks/pages/knowledge/file-detail-fe69eb38d70adea0.js +0 -1
- package/.next/static/chunks/pages/knowledge/files-7b78e962e432d199.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-7535b873ab505397.js +0 -1
- package/.next/static/chunks/pages/knowledge-905248d8dcb15453.js +0 -1
- package/.next/static/chunks/pages/models-6ef838f3e00ba21e.js +0 -1
- package/.next/static/chunks/pages/prompt-2c242e541f2e77a9.js +0 -1
- package/.next/static/chunks/pages/settings-810eb1a6cf1a6b02.js +0 -1
- package/.next/static/chunks/pages/system/logs-c5a8920c6506a7e8.js +0 -1
- package/.next/static/chunks/webpack-4224e970a97a4a86.js +0 -1
- package/.next/static/css/18018ee565a1deba.css +0 -1
- package/.next/static/uVLt2UAGpslnZIBzcFv3n/_buildManifest.js +0 -1
- /package/.next/server/pages/{asset-library.js.nft.json → skills.js.nft.json} +0 -0
- /package/.next/static/{uVLt2UAGpslnZIBzcFv3n → Z8psgNSpy4sSg2lIho8Uw}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[790],{29310:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>eU});var l=n(65321),r=n(97109),i=n(3454),a=n.n(i),s=n(43220),o=n.n(s),c=n(86109),d=n(48399),u=n(17807),h=n(42700),p=n(32941),m=n(33442),x=n(85114),f=n(25258),v=n(85493),g=n(99811),y=n(6578),j=n(85587),A=n(70553),w=n(11702),k=n(8090);let{Paragraph:b,Text:S}=d.A;function I(e){return new Date(e).toLocaleString()}function C(e){var t,n,i;let{status:a,title:s,html:o,source:c,truncated:d,totalChars:u,renderedChars:p,stats:f,gate:g,loading:y,error:j,onRetry:A,updatedAt:C,generatedAt:z,className:E,t:N}=e,M=null!=o?o:"",R=M.trim().length>0,T=f?function(e){let t=[];return e.droppedDangerousBlocks>0&&t.push("删除了 ".concat(e.droppedDangerousBlocks," 处可执行/可加载内容(脚本、样式、内嵌页面等)")),e.blockedUrls>0&&t.push("拦截了 ".concat(e.blockedUrls," 个协议不安全的链接(如 javascript: / data:)")),e.escapedTags>0&&t.push("转义了 ".concat(e.escapedTags," 个不支持的标签(原文里的原始 HTML 会以文字显示)")),e.droppedAttributes>0&&t.push("剥离了 ".concat(e.droppedAttributes," 个属性(样式、事件、非白名单属性)")),e.droppedComments>0&&t.push("删除了 ".concat(e.droppedComments," 处注释/声明")),t}(f):[],[L,D]=(0,r.useState)(!1),P=null!=(t=null==g?void 0:g.issues)?t:[],_=P.length>5,B=L?P:P.slice(0,5),H=P.length-B.length,q=H+(null!=(n=null==g?void 0:g.truncatedCount)?n:0),W=(0,l.jsxs)("div",{className:"deliverablePreviewMeta",children:[s&&(0,l.jsx)(S,{strong:!0,style:{fontSize:15},children:s}),a&&(0,l.jsx)(w.A,{color:(0,k.uj)(a),children:(0,k.GC)(a,N)}),c&&(0,l.jsx)(S,{type:"secondary",style:{fontSize:12},children:"预览正文:".concat("editedMarkdown"===c?"编辑后的正文(以它为准)":"markdown"===c?"记录里的正文(markdown 字段)":"draft"===c?"生成时的草案正文(draft.markdown)":"none"===c?"没有正文":"未识别的正文来源(".concat(c,")"))}),z?(0,l.jsx)(S,{type:"secondary",style:{fontSize:12},children:"生成于 ".concat(I(z))}):null,C?(0,l.jsx)(S,{type:"secondary",style:{fontSize:12},children:"更新于 ".concat(I(C))}):null]}),F=P.length>0&&(0,l.jsxs)("div",{style:{fontSize:12.5,lineHeight:1.8},children:[B.map((e,t)=>(0,l.jsxs)("div",{children:["\xb7 ",e]},"".concat(t,"-").concat(e.slice(0,12)))),q>0&&(0,l.jsx)("div",{children:"…还有 ".concat(q," 项未列出").concat(H>0&&(null!=(i=null==g?void 0:g.truncatedCount)?i:0)>0?"(服务端只下发了 ".concat(P.length," 项)"):"")}),_&&(0,l.jsx)(x.Ay,{type:"link",size:"small",style:{paddingInline:0},onClick:()=>D(e=>!e),children:L?"收起阻断项":"展开全部 ".concat(P.length," 项")})]}),G=g?(0,l.jsx)(v.A,{style:{width:"100%"},type:g.passed?"success":"warning",showIcon:!0,message:g.passed?"交付门禁:通过":"交付门禁:阻断 ".concat(g.blockingCount," 项"),description:(0,l.jsxs)(m.A,{direction:"vertical",size:4,style:{width:"100%"},children:[(0,l.jsx)(S,{type:"secondary",style:{fontSize:12},children:"能否导出由服务端判定;此处仅供查看。"}),F]})}):(0,l.jsx)(v.A,{style:{width:"100%"},type:"info",showIcon:!0,message:"尚无交付门禁结论(生成中或尚未完成)——这不代表已通过。"});return(0,l.jsx)("div",{className:null!=E?E:"deliverablePreview",children:(0,l.jsxs)("div",{className:"deliverablePreviewStack",children:[W,G,d&&(0,l.jsx)(v.A,{style:{width:"100%"},type:"warning",showIcon:!0,message:"正文过长,预览只渲染了前 ".concat((null!=p?p:0).toLocaleString()," 字(共 ").concat((null!=u?u:0).toLocaleString()," 字)"),description:"后续内容未渲染;导出物是完整正文,不受预览截断影响。"}),T.length>0&&(0,l.jsx)(v.A,{style:{width:"100%"},type:"info",showIcon:!0,message:"预览已对内容做安全处置(与导出物可能存在差异)",description:(0,l.jsx)("div",{style:{fontSize:12,lineHeight:1.7},children:T.map(e=>(0,l.jsxs)("div",{children:["\xb7 ",e]},e))})}),y&&(0,l.jsxs)(m.A,{align:"center",size:8,children:[(0,l.jsx)(h.A,{size:"small"}),(0,l.jsx)(S,{type:"secondary",children:"正在取回成稿预览(服务端渲染 + 清洗)…"})]}),!y&&j&&(0,l.jsx)(v.A,{style:{width:"100%"},type:"error",showIcon:!0,message:"取回成稿预览失败",description:(0,l.jsxs)(m.A,{direction:"vertical",size:6,children:[(0,l.jsx)(S,{style:{fontSize:12},children:j}),A&&(0,l.jsx)(x.Ay,{size:"small",onClick:A,children:"重新取回"})]})}),!y&&!j&&!R&&(0,l.jsx)(v.A,{style:{width:"100%"},type:"info",showIcon:!0,message:"这条记录还没有可预览的正文",description:"生成完成后这里会显示成稿全文;生成中的记录只有节点日志(见画布),没有正文可预览。"}),!j&&R&&(0,l.jsxs)("div",{className:"deliverablePreviewPaper",children:[(0,l.jsx)("article",{className:"deliverablePreviewBody","aria-label":"成稿预览正文",dangerouslySetInnerHTML:{__html:M}}),(0,l.jsxs)("div",{className:"deliverablePreviewEnd",children:[(0,l.jsx)(S,{type:"secondary",style:{fontSize:12},children:d?"正文到此为止(预览有截断,见上方提示;导出物是完整正文)":p&&p>0?"正文到此为止:以上是本记录的全部正文,共 ".concat(p.toLocaleString()," 字(未截断)"):"正文到此为止:以上是本记录的全部正文(未截断)"}),g&&!g.passed&&(0,l.jsx)(S,{style:{fontSize:12,color:"var(--colorWarning)"},children:"交付门禁未通过(阻断 ".concat(g.blockingCount," 项)——正文在这里结束并不代表成稿完整,缺什么见上方的阻断项清单。")})]})]}),!j&&R&&(0,l.jsx)(b,{type:"secondary",style:{fontSize:12,marginBottom:0,textAlign:"center"},children:"预览为服务端渲染结果;排版细节(字体、页眉页脚、分页)以导出物为准。"})]})})}let z=new Set(["prepare","understand","plan","blueprint"]),E=new Set(["close","deliver"]),N=new Set(["chapter","write"]);function M(e,t){let n=new Map;for(let t of e){if(void 0===t.parentId)continue;let e=n.get(t.parentId);e?e.push(t.id):n.set(t.parentId,[t.id])}let l=new Set([t]),r=[t],i=[];for(;r.length>0;){var a;let e=r.shift();for(let t of(i.push(e),null!=(a=n.get(e))?a:[]))l.has(t)||(l.add(t),r.push(t))}return i}function R(e,t){var n;let l=new Map(e.map(e=>[e.id,e])),r=l.get(t);if(!r)return;let i=M(e,t),a=e.map(e=>e.id).sort();if(z.has(r.type))return{targetNodeId:t,kind:"contaminated",affectedNodeIds:a,reason:"".concat(r.type," 承载事实 / 命名 / 标题指纹 → 11.1:跨文档污染,**不可回滚**(要么回滚,要么重新校准)"),escalate:a.length>5,rollbackable:!1};let s=(n=r.type).split(".")[0]||n;if(E.has(r.type)||E.has(s))return{targetNodeId:t,kind:"propagated",affectedNodeIds:a,reason:"".concat(r.type," 属全篇收口 / 交付层 → 预算守恒与全量判据复检波及整篇(11.1)"),escalate:a.length>5,rollbackable:!0};if(N.has(r.type)||"round"===s){let n=function(e,t,n){let l=new Set([t]),r=e.get(t);for(;r;){if(n(r))return r;let t=r.parentId;if(void 0===t||l.has(t))break;l.add(t),r=e.get(t)}}(l,t,e=>N.has(e.type)),i=n?M(e,n.id):a;return{targetNodeId:t,kind:"propagated",affectedNodeIds:i,reason:n?"".concat(r.type," 在章级锚点「").concat(n.title||n.id,"」内 → 跨章数值一致性 / 复读 / 依据对账(11.1)波及同章其余部分"):"".concat(r.type," 无章级锚点 → 按整篇保守估算(11.1)"),escalate:i.length>5,rollbackable:!0}}return{targetNodeId:t,kind:"local",affectedNodeIds:i,reason:"".concat(r.type," 属定点补丁层(11.5:确定性处理节点)→ 影响面限自身子树"),escalate:i.length>5,rollbackable:!0}}function T(e){let t=Math.max(18,Math.abs(e.y2-e.y1)/2);return"M ".concat(e.x1," ").concat(e.y1," C ").concat(e.x1," ").concat(e.y1+t,", ").concat(e.x2," ").concat(e.y2-t,", ").concat(e.x2," ").concat(e.y2)}let L={default:"canvasEdge",active:"canvasEdge canvasEdgeActive",warn:"canvasEdge canvasEdgeWarn",affected:"canvasEdge canvasEdgeAffected"},D={default:"url(#canvasArrow)",active:"url(#canvasArrowActive)",warn:"url(#canvasArrowWarn)",affected:"url(#canvasArrow)"};function P(e){let{edge:t,tone:n="default"}=e;return(0,l.jsx)("path",{className:L[n],d:T(t),markerEnd:D[n],"data-edge":"".concat(t.fromId,"->").concat(t.toId)})}function _(e){let{edges:t,width:n,height:r,toneOf:i,flowing:a,style:s}=e;return(0,l.jsxs)("svg",{className:"canvasEdgeLayer",width:Math.max(1,n),height:Math.max(1,r),viewBox:"0 0 ".concat(Math.max(1,n)," ").concat(Math.max(1,r)),"aria-hidden":"true",focusable:"false",style:s,children:[(0,l.jsxs)("defs",{children:[(0,l.jsx)("marker",{id:"canvasArrow",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto",markerUnits:"strokeWidth",children:(0,l.jsx)("path",{d:"M0,0 L8,4 L0,8 z",fill:"var(--canvasEdge)"})}),(0,l.jsx)("marker",{id:"canvasArrowActive",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto",markerUnits:"strokeWidth",children:(0,l.jsx)("path",{d:"M0,0 L8,4 L0,8 z",fill:"var(--canvasEdgeActive)"})}),(0,l.jsx)("marker",{id:"canvasArrowWarn",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto",markerUnits:"strokeWidth",children:(0,l.jsx)("path",{d:"M0,0 L8,4 L0,8 z",fill:"var(--canvasEdgeWarn)"})})]}),t.map(e=>{var t;return(0,l.jsxs)("g",{children:[(0,l.jsx)(P,{edge:e,tone:null!=(t=null==i?void 0:i(e))?t:"default"}),(null==a?void 0:a.has(e.id))&&(0,l.jsx)("path",{className:"canvasEdgeFlow",d:T(e),"data-flow":"".concat(e.fromId,"->").concat(e.toId)})]},e.id)})]})}let B=new Set(["completed","failed","skipped"]),H=[{key:"chars",unit:" 字"},{key:"words",unit:" 字"},{key:"noteChars",unit:" 字"},{key:"turn",unit:" 轮",prefix:"第 "},{key:"chapters",unit:" 章"},{key:"facts",unit:" 条事实"},{key:"evidence",unit:" 条证据"},{key:"issues",unit:" 个问题"},{key:"toolCalls",unit:" 次工具调用"},{key:"totalFiles",unit:" 份资料"},{key:"totalChunks",unit:" 个切片"},{key:"roundIteration",unit:" 轮修复",prefix:"第 "}];function q(e){var t;let n=null==(t=e.metrics)?void 0:t.note;return"string"==typeof n&&n.trim()?n.trim():void 0}function W(e,t){let{input:n,output:l}=function(e){let t=e=>"string"==typeof e&&e.trim()?e.trim():void 0;return{input:t(e.inputSummary),output:t(e.outputSummary)}}(e);for(let r of"dispatch"===t?[n,q(e),e.title]:[l,q(e),e.title,function(e){var t;let n=null!=(t=e.metrics)?t:{},l=[];for(let{key:e,unit:t,prefix:r}of H){let i=n[e];if(("number"==typeof i||"string"==typeof i)&&""!==i&&0!==i&&(l.push("".concat(null!=r?r:"").concat("number"==typeof i?i.toLocaleString():i).concat(t)),2===l.length))break}return l.length>0?l.join(" \xb7 "):void 0}(e)])if(r&&r.trim())return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24,n=e.replace(/\s+/gu," ").trim();return n.length>t?"".concat(n.slice(0,t-1),"…"):n}(r)}function F(e){let{bubbles:t,layout:n,static:r=!1}=e;return 0===t.length?null:(0,l.jsx)("div",{className:"canvasBubbleLayer",style:{width:Math.max(1,n.width),height:Math.max(1,n.height)},"aria-hidden":"true",children:t.map(e=>{let t=function(e,t){let n=t.edges.find(t=>t.fromId===e.fromId&&t.toId===e.toId);if(n)return T(n);let l=t.edges.find(t=>t.fromId===e.toId&&t.toId===e.fromId);return l?function(e){let t=T(e),n=/^M ([\d.-]+) ([\d.-]+) C ([\d.-]+) ([\d.-]+), ([\d.-]+) ([\d.-]+), ([\d.-]+) ([\d.-]+)$/u.exec(t);if(!n)return t;let[,l,r,i,a,s,o,c,d]=n;return"M ".concat(c," ").concat(d," C ").concat(s," ").concat(o,", ").concat(i," ").concat(a,", ").concat(l," ").concat(r)}(l):null}(e,n);return t?(0,l.jsx)("div",{className:r?"canvasBubble canvasBubbleStatic":"canvasBubble","data-kind":e.kind,"data-from":e.fromId,"data-to":e.toId,style:{offsetPath:'path("'.concat(t,'")'),offsetRotate:"0deg",animationDuration:"".concat(1500,"ms")},children:(0,l.jsx)("span",{className:"canvasBubbleBody",children:(0,l.jsx)("span",{className:"canvasBubbleText",children:e.label})})},e.id):null})})}function G(e){return"stage-details"===e.source}let O=new Set(["running","repairing"]),U=new Set(["role_binding","knowledge_retrieval","file_understanding","fact_extraction","chapter_generation","llm_review","validation","reference"]);function X(e){return U.has(e)?({role_binding:"项目角色配置绑定",knowledge_retrieval:"知识库证据检索",file_understanding:"项目资料理解",fact_extraction:"事实抽取",chapter_generation:"章节正文生成",llm_review:"LLM 审查优化",validation:"内容优化与质量校验",reference:"资料增强"})[e]:(0,k.z9)(e)}function J(e,t){var n;let l=null==(n=e.metrics)?void 0:n[t];return"string"==typeof l&&l.trim()?l.trim():void 0}function K(e,t,n){var l;let r=function(e){var t;let n=null==(t=e.metrics)?void 0:t.stageType;return"string"==typeof n&&n.trim()?n.trim():e.type.split(".")[0]||"default"}(e),i=null!=(l=J(e,"stageSubtitle"))?l:J(e,"stageRoleId"),a=J(e,"note");return{id:e.id,kind:r,kindLabel:X(r),...i&&i!==e.title?{role:i}:{},title:e.title||X(r),...a?{activity:a}:{},status:e.status,..."number"==typeof e.startedAt?{startedAt:e.startedAt}:{},..."number"==typeof e.completedAt?{completedAt:e.completedAt}:{},metrics:(0,k.dB)(e.metrics,8),depth:t}}function Y(e,t){if("number"==typeof e.startedAt)return Math.max(0,("number"==typeof e.completedAt?e.completedAt:t)-e.startedAt)}var V=n(46758),Q=n(99605);let{Text:Z}=d.A,$=["error","warning","info"],ee={error:"#ff4d4f",warning:"#faad14",info:"#1677ff"};function et(e){let{node:t,x:n,y:i,selected:a,affected:s,flashed:o,onSelect:c,onDrag:d,t:u}=e,h=function(e){let t=[],n=[];for(let l of e.issues)(G(l)?n:t).push(l);return{problems:t,details:n,counts:{error:t.filter(e=>"error"===e.level).length,warning:t.filter(e=>"warning"===e.level).length,info:t.filter(e=>"info"===e.level).length}}}(t),p=(0,k.Jy)(t),m=(0,k.O0)(t.metrics,2),x=(0,r.useRef)(null);return(0,r.useEffect)(()=>()=>{var e;null==(e=x.current)||e.call(x)},[]),(0,l.jsxs)("div",{className:"canvasNode".concat(a?" canvasNodeSelected":"").concat(s?" canvasNodeAffected":"").concat(o?" canvasNodeFlashed":""),style:{left:n,top:i,width:k.zT,height:k.EL},role:"button",tabIndex:0,"aria-label":"节点 ".concat(t.title),"data-node-id":t.id,onClick:e=>{e.stopPropagation(),c(t)},onPointerDown:e=>{var n,l;if(0!==e.button||(e.stopPropagation(),!d||(null==(l=e.target)||null==(n=l.closest)?void 0:n.call(l,"button, a, input, textarea"))))return;let r=e.clientX,i=e.clientY,a=e.pointerId,s=!1,o={dx:0,dy:0},c=e=>{e.pointerId===a&&(o={dx:e.clientX-r,dy:e.clientY-i},!s&&4>Math.abs(o.dx)&&4>Math.abs(o.dy)||(s=!0,d(t,o.dx,o.dy,"move")))},u=e=>{if(e.pointerId===a)document.removeEventListener("pointermove",c),document.removeEventListener("pointerup",u),document.removeEventListener("pointercancel",u),x.current=null,s&&(document.addEventListener("click",e=>{e.stopPropagation(),e.preventDefault()},{capture:!0,once:!0}),d(t,o.dx,o.dy,"end"))};document.addEventListener("pointermove",c),document.addEventListener("pointerup",u),document.addEventListener("pointercancel",u),x.current=()=>{document.removeEventListener("pointermove",c),document.removeEventListener("pointerup",u),document.removeEventListener("pointercancel",u)}},onContextMenu:e=>{e.preventDefault(),e.stopPropagation()},onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c(t))},children:[(0,l.jsxs)("div",{className:"canvasNodeHeader",children:[(0,l.jsx)("span",{className:"canvasNodeIcon","data-status":t.status,children:(0,k.kH)(t.type)}),(0,l.jsx)(Z,{ellipsis:!0,style:{flex:1,minWidth:0,fontWeight:600,fontSize:13},title:t.title,children:t.title}),$.map(e=>h.counts[e]>0&&(0,l.jsx)("span",{"data-issue-level":e,style:{flexShrink:0},children:(0,l.jsx)(V.A,{count:h.counts[e],size:"small",color:ee[e]})},e))]}),(0,l.jsxs)("div",{className:"canvasNodeMeta",children:[(0,l.jsx)(w.A,{color:(0,k.uv)(t.status),style:{marginInlineEnd:4},children:(0,k.m_)(t.status,u)}),(0,l.jsx)(Z,{type:"secondary",style:{fontSize:11},ellipsis:!0,children:(0,k.z9)(t.type)})]}),t.progress&&t.progress.total>0?(0,l.jsx)(Q.A,{percent:Math.round(t.progress.current/t.progress.total*100),size:"small",showInfo:!1,status:"failed"===t.status?"exception":"completed"===t.status?"success":"active",style:{marginBottom:0}}):(0,l.jsxs)("div",{className:"canvasNodeMetrics",children:[m.map(e=>(0,l.jsx)(Z,{type:"secondary",style:{fontSize:11},ellipsis:!0,children:e},e)),0===m.length&&(0,l.jsx)(Z,{type:"secondary",style:{fontSize:11},children:(0,k.a3)(p)})]})]})}var en=n(14932),el=n(57271),er=n(55122),ei=n(99271),ea=n(37510),es=n(48156),eo=n(63046),ec=n(64068),ed=n(76830),eu=n(83914);function eh(e){let{updatedAt:t,running:n}=e,[i,a]=(0,r.useState)(()=>Date.now());if((0,r.useEffect)(()=>{if(!n)return;let e=setInterval(()=>a(Date.now()),5e3);return()=>clearInterval(e)},[n]),!n||!t)return null;let s=Math.max(0,i-t);return s<=9e4?(0,l.jsx)(en.A,{title:"记录每 30 秒刷新一次(最近一次 ".concat(new Date(t).toLocaleTimeString(),")——长阶段里画布可能几分钟没有新节点,这个信号说明进程还在跑"),children:(0,l.jsxs)(w.A,{color:"processing",children:["心跳 ",Math.round(s/1e3)," 秒前"]})}):(0,l.jsx)(en.A,{title:"最后一次进度写入是 ".concat(new Date(t).toLocaleTimeString(),"——超过 ").concat(Math.round(1.5)," 分钟没有动静,进程可能已退出(可「继续生成」续跑)"),children:(0,l.jsxs)(w.A,{color:"warning",children:["心跳已停 ",Math.floor(s/6e4)," 分钟"]})})}function ep(e){let{startedAt:t,endedAt:n,running:i}=e,[a,s]=(0,r.useState)(()=>Date.now());if((0,r.useEffect)(()=>{if(!i)return;let e=setInterval(()=>s(Date.now()),1e3);return()=>clearInterval(e)},[i]),!t)return null;let o=Math.max(0,(i?a:null!=n?n:a)-t);return(0,l.jsx)(en.A,{title:"本轮生成的整体耗时(自 ".concat(new Date(t).toLocaleTimeString()," 起").concat(i?"":",已结束",")"),children:(0,l.jsx)(w.A,{color:"default",children:"耗时 ".concat((0,k.a3)(o))})})}var em=n(55897),ex=n(49075),ef=n(84742);let{Text:ev}=d.A;function eg(e){var t;let{row:n,now:r,onLocate:i}=e;return(0,l.jsxs)("div",{className:"canvasAgentDetail","data-node-id":n.id,children:[(0,l.jsxs)("div",{className:"canvasAgentDetailHead",children:[(0,l.jsx)("span",{className:"canvasAgentIcon","data-status":n.status,children:(0,k.Qs)(n.kind)}),(0,l.jsx)(ev,{strong:!0,style:{fontSize:12},children:n.kindLabel}),n.role&&(0,l.jsxs)(ev,{type:"secondary",style:{fontSize:12},children:["\xb7 ",n.role]})]}),(0,l.jsxs)("div",{className:"canvasAgentDetailRow",children:[(0,l.jsx)(ev,{type:"secondary",style:{fontSize:12},children:"在干什么"}),(0,l.jsx)(ev,{style:{fontSize:12},children:null!=(t=n.activity)?t:n.title})]}),n.activity&&n.title&&n.activity!==n.title&&(0,l.jsxs)("div",{className:"canvasAgentDetailRow",children:[(0,l.jsx)(ev,{type:"secondary",style:{fontSize:12},children:"对象"}),(0,l.jsx)(ev,{style:{fontSize:12},children:n.title})]}),(0,l.jsxs)("div",{className:"canvasAgentDetailRow",children:[(0,l.jsx)(ev,{type:"secondary",style:{fontSize:12},children:n.completedAt?"耗时":"已跑"}),(0,l.jsx)(ev,{style:{fontSize:12},children:(0,k.a3)(Y(n,r))})]}),n.metrics.length>0&&(0,l.jsxs)("div",{className:"canvasAgentDetailRow",children:[(0,l.jsx)(ev,{type:"secondary",style:{fontSize:12},children:"指标"}),(0,l.jsx)(ev,{style:{fontSize:12},children:n.metrics.map(e=>e.text).join(" \xb7 ")})]}),(0,l.jsxs)("button",{type:"button",className:"canvasAgentLocate",onClick:()=>i(n.id),title:"在画布上定位到这条节点",children:[(0,l.jsx)(ex.A,{})," 定位到节点"]})]})}function ey(e){return e.some(e=>"failed"===e.status)?"repairing":"completed"}function ej(e){let{view:t,running:n,onLocate:i,decisions:a=[],active:s=!1}=e,[o,c]=(0,r.useState)(()=>Date.now());if((0,r.useEffect)(()=>{if(!n)return;let e=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(e)},[n]),0===t.runningTotal&&0===t.recentTotal&&0===a.length&&!s)return null;let d=t.runningTotal-t.running.length;return(0,l.jsxs)(m.A,{size:4,align:"center",wrap:!0,"data-agents":t.runningTotal,className:"canvasAgentsChips",children:[(0,l.jsx)(en.A,{title:"本稿此刻在调度哪些智能体(点图标看在干什么)",children:(0,l.jsx)(ev,{type:"secondary",style:{fontSize:12},children:"智能体调度中心"})}),(s||a.length>0)&&(0,l.jsx)(em.A,{trigger:"click",placement:"bottomLeft",content:(0,l.jsx)("div",{className:"canvasAgentDetail",children:0===a.length?(0,l.jsx)("div",{className:"canvasAgentDetailRow",children:(0,l.jsx)(ev,{type:"secondary",style:{fontSize:12},children:"尚未做出决策:主智能体在本稿运行中持续观察运行台账(预算余量 / 章块结局 / 失败种类),达到判据才出手。"})}):a.map(e=>{var t;return(0,l.jsxs)("div",{className:"canvasAgentDetailRow",children:[(0,l.jsx)(ev,{type:"secondary",style:{fontSize:12},children:e.action}),(0,l.jsx)(ev,{style:{fontSize:12},children:null!=(t=e.note)?t:e.title})]},e.id)})}),children:(0,l.jsxs)("button",{type:"button",className:"canvasAgentChip canvasAgentChipMain","data-kind":"supervisor","data-status":ey(a),title:"主智能体(调度中心):决定缩范围 / 重切块 / 请示人 / 停止保交付",children:[(0,l.jsx)("span",{className:"canvasAgentAvatar","data-status":ey(a),children:(0,l.jsx)("span",{className:"canvasAgentAvatarGlyph",children:(0,k.Qs)("supervisor")})}),(0,l.jsx)("span",{className:"canvasAgentRole","data-role":"main",children:"主"})]})}),t.running.map(e=>{var t;return(0,l.jsx)(em.A,{trigger:"click",placement:"bottomLeft",content:(0,l.jsx)(eg,{row:e,now:o,onLocate:i}),children:(0,l.jsxs)("button",{type:"button",className:"canvasAgentChip","data-node-id":e.id,"data-kind":e.kind,"data-status":e.status,title:"".concat(e.kindLabel).concat(e.role?" \xb7 ".concat(e.role):"",":").concat(null!=(t=e.activity)?t:e.title),children:[(0,l.jsx)("span",{className:"canvasAgentAvatar","data-status":e.status,children:(0,l.jsx)("span",{className:"canvasAgentAvatarGlyph",children:(0,k.Qs)(e.kind)})}),(0,l.jsx)("span",{className:"canvasAgentRole","data-role":"sub",title:"子智能体(执行具体环节)",children:"子"})]})},e.id)}),d>0&&(0,l.jsx)(en.A,{title:"另有 ".concat(d," 个在跑(画布上可逐个查看)"),children:(0,l.jsxs)(ev,{type:"secondary",style:{fontSize:12},children:["+",d]})}),t.recent.length>0&&(0,l.jsx)(en.A,{title:t.recent.map(e=>"".concat(e.kindLabel,":").concat(e.title,"(已完成)")).join("\n"),children:(0,l.jsxs)(ev,{type:"secondary",style:{fontSize:12},children:[(0,l.jsx)(ef.A,{})," 刚完成 ",t.recentTotal]})})]})}var eA=n(34052),ew=n(84253);function ek(e){let{reports:t,t:n}=e,[i,a]=(0,r.useState)(!1),s=(e,t)=>{var l;return null!=(l=null==n?void 0:n(e))?l:t};if(0===t.length)return null;let o=[...t].sort((e,t)=>t.exportedAt-e.exportedAt),c=o.find(e=>{var t,n;return(null!=(n=null==(t=e.gateChecklist)?void 0:t.items.length)?n:0)>0});return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(en.A,{title:s("records.reportTitle","导出闭环报告"),children:(0,l.jsxs)(x.Ay,{size:"small",icon:(0,l.jsx)(ed.A,{}),onClick:()=>a(!0),children:[s("records.reportEntry","导出报告"),(0,l.jsx)("span",{className:"ml-1 text-[var(--colorTextTertiary)]",children:t.length})]})}),(0,l.jsx)(eA.A,{title:s("records.reportTitle","导出闭环报告"),placement:"right",size:"default",open:i,onClose:()=>a(!1),styles:{body:{padding:16}},children:0===o.length?(0,l.jsx)(ew.A,{image:ew.A.PRESENTED_IMAGE_SIMPLE,description:s("records.reportEmpty","还没有导出记录")}):(0,l.jsxs)("div",{className:"flex flex-col gap-3",children:[o.map((e,t)=>{var n;let r;return(0,l.jsxs)("div",{className:"rounded-xl border border-[var(--borderColor)] bg-[var(--colorFillAlter)] px-3 py-2.5 text-xs",children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)(w.A,{color:"blue",className:"m-0 border-0 font-semibold",children:e.format.toUpperCase()}),(0,l.jsx)("span",{className:"text-[var(--colorTextSecondary)]",children:new Date(e.exportedAt).toLocaleString()})]}),(0,l.jsxs)("div",{className:"mt-1.5 flex flex-wrap items-center gap-x-3 gap-y-1 text-[var(--colorTextSecondary)]",children:[void 0!==e.durationMs&&(0,l.jsxs)("span",{children:[s("records.reportDuration","总用时")," ",(r=e.durationMs)>=6e4?"".concat(Math.floor(r/6e4)," 分 ").concat(Math.round(r%6e4/1e3)," 秒"):"".concat((r/1e3).toFixed(1)," 秒")]}),void 0!==e.repairedCount&&(0,l.jsxs)("span",{children:[s("records.reportRepaired","修复")," ",e.repairedCount,void 0!==e.blockingCount?"(".concat(s("records.reportBlocking","阻断")," ").concat(e.blockingCount,")"):""]}),e.ruleSummary&&e.ruleSummary.length>0&&(0,l.jsxs)("span",{children:[s("records.reportRules","规则")," ",e.ruleSummary.length]}),!1===e.gatePassed&&(0,l.jsxs)(w.A,{color:"error",className:"m-0 border-0",children:[s("records.reportGateBlocked","非交付物")," ",null!=(n=e.gateIssueCount)?n:""]}),e.healthAlerts&&e.healthAlerts.length>0&&(0,l.jsxs)(w.A,{color:"warning",className:"m-0 border-0",children:[s("records.reportHealthAlerts","健康告警")," ",e.healthAlerts.length]})]})]},"".concat(e.exportedAt,"-").concat(t))}),(null==c?void 0:c.gateChecklist)&&(0,l.jsxs)("div",{className:"rounded-xl border border-[var(--colorWarning)] bg-[var(--colorWarningBg)] px-3 py-2.5",children:[(0,l.jsxs)("div",{className:"text-xs font-semibold text-[var(--colorWarning)]",children:[s("records.reportChecklistTitle","最近一次非交付物导出的未收敛项"),"(",s("records.reportChecklistTotal","共 {count} 项").replace("{count}",String(c.gateChecklist.total)),")"]}),(0,l.jsx)("div",{className:"mt-2 flex flex-col gap-2",children:c.gateChecklist.items.map(e=>(0,l.jsxs)("div",{className:"text-xs",children:[(0,l.jsx)("div",{className:"whitespace-pre-wrap text-[var(--colorText)]",children:"".concat(e.index,".【").concat(e.category,"】").concat(e.problem)}),(0,l.jsxs)("div",{className:"text-[var(--colorTextSecondary)]",children:[e.repairPath,e.detectorId?"|".concat(e.detectorId):""]})]},e.index))})]})]})})]})}let{Text:eb}=d.A,eS={connecting:{text:"通道连接中",color:"default"},open:{text:"事件通道已连",color:"success"},error:{text:"通道已断(改用增量补差)",color:"warning"},closed:{text:"通道已关闭",color:"default"}};function eI(e){var t,n;let{title:r,status:i,updatedAt:a,wordCount:s,nodeCount:o,visibleCount:c,hiddenCount:d,degraded:u,skills:h,gate:p,connection:f,lastSeq:y,zoom:j,depth:A,following:b,generating:S,resumable:I,exporting:C,nonDeliverableExport:z,onZoomIn:E,onZoomOut:N,onZoomReset:M,onFit:R,onDepthChange:T,onToggleFollow:L,onContinue:D,onPause:P,onResume:_,onAbort:B,onExport:H,exportReports:q,previewOpen:W,onTogglePreview:F,hasNodeOffsets:G,onResetNodeLayout:O,agents:U,onLocateAgent:X,supervisorDecisions:J,agentsActive:K,startedAt:Y,t:V}=e,Q=S&&!I,Z=(0,l.jsxs)("div",{style:{fontSize:12,lineHeight:1.7},children:[(0,l.jsx)("div",{children:"导出会经过服务端交付门禁:**默认阻断**不合格稿件(422 EXPORT_GATE_BLOCKED)。"}),(0,l.jsx)("div",{children:"确需留档时,界面会弹出「仍要导出(非交付物)」的显式确认——产物由服务端强制加后缀并在界面横幅标注,不得作为正式成果提交。"}),(0,l.jsx)("div",{children:"本按钮是画布唯一的导出入口,与文档页共用同一套门禁处理,没有第二条绕过路径。"})]});return(0,l.jsxs)("div",{className:"canvasToolbar",children:[(0,l.jsxs)(m.A,{wrap:!0,size:8,align:"center",style:{flex:1,minWidth:0},children:[(0,l.jsx)(eb,{strong:!0,style:{fontSize:14},ellipsis:!0,title:r,children:r}),i&&(0,l.jsx)(w.A,{color:(0,k.uj)(i),children:(0,k.GC)(i,V)}),(0,l.jsxs)(eb,{type:"secondary",style:{fontSize:12},children:[void 0!==s?"".concat(s.toLocaleString()," 字"):""," 节点 ".concat(c,"/").concat(o),d>0?"(未显示 ".concat(d,")"):"",a?" 更新于 ".concat(new Date(a).toLocaleTimeString()):""]}),(0,l.jsx)(eh,{updatedAt:a,running:Q}),(0,l.jsx)(ep,{startedAt:Y,endedAt:a,running:Q}),U&&(0,l.jsx)(ej,{view:U,running:U.runningTotal>0,onLocate:null!=X?X:()=>{},...J?{decisions:J}:{},active:!!K}),(0,l.jsx)(en.A,{title:"通道游标 seq=".concat(null!=y?y:0,"(断线重连用它补发;节点增量用日志时间 t)"),children:(0,l.jsx)(w.A,{color:eS[f].color,children:eS[f].text})}),h.hits.length>0&&(0,l.jsx)(en.A,{title:h.hits.map(e=>"".concat(e.title,"(").concat(e.skillId,")")).join("、"),children:(0,l.jsxs)(w.A,{color:"blue",children:["技能命中 ",h.hits.length]})}),p&&(0,l.jsx)(en.A,{title:p.issues.length>0?p.issues.join("\n"):"服务端门禁结论:通过",children:(0,l.jsx)(w.A,{color:p.passed?"success":"error",children:p.passed?"门禁:通过":"门禁:阻断 ".concat(p.blockingCount," 项")})})]}),(0,l.jsxs)(m.A,{wrap:!0,size:6,align:"center",children:[(0,l.jsx)(x.Ay,{size:"small",icon:(0,l.jsx)(ei.A,{}),onClick:N,"aria-label":"缩小"}),(0,l.jsxs)(eb,{type:"secondary",style:{fontSize:12,width:44,textAlign:"center"},children:[Math.round(100*j),"%"]}),(0,l.jsx)(x.Ay,{size:"small",icon:(0,l.jsx)(ea.A,{}),onClick:E,"aria-label":"放大"}),(0,l.jsx)(en.A,{title:"恢复到 100% 并回到原点",children:(0,l.jsx)(x.Ay,{size:"small",icon:(0,l.jsx)(g.A,{}),onClick:M,"aria-label":"重置视图"})}),(0,l.jsx)(en.A,{title:G?"把拖过的节点放回自动排布(手工摆放的是**偏移**,清空即恢复)":"没有手工拖过的节点:布局就是自动排布的",children:(0,l.jsx)(x.Ay,{size:"small",disabled:!G,onClick:O,children:"恢复布局"})}),(0,l.jsx)(en.A,{title:"适应窗口(按内容包围盒缩放)",children:(0,l.jsx)(x.Ay,{size:"small",onClick:R,children:"适应"})}),(0,l.jsx)(el.A,{size:"small",value:A,style:{width:108},onChange:e=>T(e),options:[{value:1,label:"只看 1 层"},{value:2,label:"看 2 层"},{value:3,label:"看 3 层"},{value:"all",label:"全部层"}]}),(0,l.jsx)(en.A,{title:"跟随最新:生成中新出现的节点自动定位(关掉就不再打扰你的视角)",children:(0,l.jsx)(x.Ay,{size:"small",type:b?"primary":"default",onClick:L,children:b?"跟随中":"跟随最新"})}),(0,l.jsx)(er.A,{type:"vertical"}),Q&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(en.A,{title:"暂停在当前节点边界:强制落盘、释放槽位,可随时继续(不会丢已生成的章节)",children:(0,l.jsx)(x.Ay,{size:"small",icon:(0,l.jsx)(es.A,{}),onClick:P,children:"暂停"})}),(0,l.jsx)(en.A,{title:"中止是**结束**这次生成;要继续请用「继续生成」(从中断处接着跑)",children:(0,l.jsx)(x.Ay,{size:"small",danger:!0,icon:(0,l.jsx)(eo.A,{}),onClick:B,children:"中止"})})]}),!Q&&I&&(0,l.jsx)(x.Ay,{size:"small",type:"primary",icon:(0,l.jsx)(ec.A,{}),onClick:D,children:"继续生成"}),!Q&&!I&&"paused"===i&&(0,l.jsx)(x.Ay,{size:"small",type:"primary",icon:(0,l.jsx)(ec.A,{}),onClick:_,children:"从暂停处继续"}),(0,l.jsx)(er.A,{type:"vertical"}),(0,l.jsx)(en.A,{title:Z,children:(0,l.jsx)(m.A,{size:4,children:[{key:"markdown",label:"MD"},{key:"html",label:"HTML"},{key:"docx",label:"DOCX"},{key:"pdf",label:"PDF",primary:!0}].map(e=>(0,l.jsx)(x.Ay,{size:"small",type:e.primary?"primary":"default",icon:"markdown"===e.key?(0,l.jsx)(ed.A,{}):void 0,loading:C===e.key,disabled:null!==C&&C!==e.key,onClick:()=>H(e.key),children:e.label},e.key))})}),(0,l.jsx)(ek,{reports:null!=q?q:[],...V?{t:V}:{}}),(0,l.jsx)(en.A,{title:"成稿预览(服务端渲染并清洗后的全文;只读,不提供导出)",children:(0,l.jsx)(x.Ay,{size:"small",type:W?"primary":"default",onClick:F,children:"成稿预览"})})]}),z&&(0,l.jsx)(v.A,{style:{width:"100%",marginTop:8},type:"error",showIcon:!0,message:null!=(t=null==V?void 0:V("documents.nonDeliverableExportTitle"))?t:"本次导出的是「非交付物」",description:(0,l.jsxs)("div",{style:{whiteSpace:"pre-wrap",fontSize:12},children:[(0,l.jsx)("div",{children:null!=(n=null==V?void 0:V("documents.nonDeliverableExportHint"))?n:"文件名已由服务端强制加「非交付物」后缀,不得作为正式成果提交。"}),z.count>0&&(0,l.jsxs)("div",{style:{marginTop:4},children:["阻断项(".concat(z.count,"):"),z.issues.slice(0,5).map((e,t)=>(0,l.jsxs)("div",{children:["\xb7 ",e]},t)),z.count>5&&(0,l.jsx)("div",{children:"…还有 ".concat(z.count-5," 项")})]})]})}),u.length>0&&(0,l.jsx)(v.A,{style:{width:"100%",marginTop:8},type:"warning",showIcon:!0,message:"画布显示有取整(下列内容本次未下发;聚合值与节点信息不受影响)",description:(0,l.jsx)("div",{style:{fontSize:12},children:u.map((e,t)=>(0,l.jsxs)("div",{children:["\xb7 ",e]},t))})}),0===o&&S&&(0,l.jsx)(v.A,{style:{width:"100%",marginTop:8},type:"info",showIcon:!0,icon:(0,l.jsx)(eu.A,{}),message:"还没有节点日志:生成侧尚未写入第一个节点(节点日志是唯一真相源,画布不伪造占位节点)"})]})}var eC=n(57481),ez=n(28629),eE=n(52057),eN=n(8665),eM=n(38332),eR=n(58569),eT=n(76506),eL=n(45042);let{Paragraph:eD,Text:eP}=d.A,e_={local:{text:"影响面:局部",color:"blue",hint:"改动只落在该节点自身子树:定点补丁即可。"},propagated:{text:"影响面:传播",color:"orange",hint:'改动会沿依赖传播到同章其余部分:按 11.1,走"变更传播"而不是重跑整个节点。'},contaminated:{text:"影响面:事实/命名类",color:"red",hint:"该节点持有事实 / 命名 / 标题指纹:按 11.1,**要么回滚、要么重新校准**,不能当普通改动提交。"}},eB={error:{color:"red",text:"错误"},warning:{color:"orange",text:"警告"},info:{color:"blue",text:"提示"}};function eH(e){var t,n;let{node:r,impact:i,flatNodes:a,highlighted:s,generating:o,repairPreview:c,onFocusNode:d,onRequestRepair:u,onClose:h,onDraftRepairNote:p,onCancelRepairPreview:f,onMention:v,onLocate:g,onPause:y,onResume:j,nodeEvents:A,t:b}=e,S="skill.load"===r.type||"string"==typeof r.metrics.skillId,I=new Map(a.map(e=>[e.id,e])),C=(0,k.Jy)(r),z=(0,k.dB)(r.metrics,24),E=r.issues.filter(e=>!G(e)),N=r.issues.filter(e=>G(e)),M=E.filter(e=>"error"===e.level).length,R=i?(0,l.jsxs)(m.A,{direction:"vertical",size:8,style:{width:"100%"},children:[(0,l.jsxs)(m.A,{wrap:!0,children:[(0,l.jsx)(w.A,{color:e_[i.kind].color,children:e_[i.kind].text}),(0,l.jsx)(w.A,{color:i.rollbackable?"default":"red",children:i.rollbackable?"可回滚":"需回滚或重新校准"}),(0,l.jsx)(w.A,{color:i.escalate?"red":"default",children:"波及 ".concat(i.affectedNodeIds.length," 节点").concat(i.escalate?"(超阈值)":"")})]}),(0,l.jsx)(eP,{type:"secondary",style:{fontSize:12},children:i.reason}),(0,l.jsx)(eP,{type:"secondary",style:{fontSize:12},children:e_[i.kind].hint}),i.escalate&&(0,l.jsx)(w.A,{color:"red",children:"影响面超出阈值:该改动需**人工确认**后才能提交(自动留痕不再适用)"}),(0,l.jsx)(eM.A,{size:"small",header:(0,l.jsx)(eP,{type:"secondary",style:{fontSize:12},children:"波及节点(点击定位)"}),dataSource:i.affectedNodeIds,renderItem:e=>{let t=I.get(e);return(0,l.jsx)(eM.A.Item,{style:{paddingBlock:4},children:(0,l.jsx)(x.Ay,{type:"link",size:"small",style:{padding:0,height:"auto"},onClick:()=>d(e),children:t?"".concat(t.title,"(").concat((0,k.z9)(t.type),")"):"未知节点 ".concat(e)})})}})]}):(0,l.jsxs)(m.A,{direction:"vertical",size:6,children:[(0,l.jsx)(ew.A,{image:ew.A.PRESENTED_IMAGE_SIMPLE,description:"该节点没有预计算的影响面"}),(0,l.jsx)(eP,{type:"secondary",style:{fontSize:12},children:"聚合接口只对**有问题的节点**与**修复节点**预计算影响面(首屏不做 O(n\xb2))。 这里可以按需触发一次修复请求,服务端会在事务前给出权威判定——**本面板不冒充结论**。"}),(0,l.jsx)(x.Ay,{size:"small",disabled:!u,onClick:()=>null==u?void 0:u(r),children:"按需评估影响面(走修复请求)"})]}),T=c&&c.nodeId===r.id?(0,l.jsx)("div",{className:"nodeInfoRepair",children:(0,l.jsxs)(m.A,{direction:"vertical",size:6,style:{width:"100%"},children:[(0,l.jsxs)(m.A,{wrap:!0,size:6,children:[(0,l.jsx)(eP,{strong:!0,style:{fontSize:13},children:"修复影响面预览"}),(0,l.jsx)(w.A,{color:e_[c.impact.kind].color,children:e_[c.impact.kind].text}),(0,l.jsx)(w.A,{color:c.impact.rollbackable?"default":"red",children:c.impact.rollbackable?"可回滚":"不可回滚"})]}),(0,l.jsxs)(eP,{type:"secondary",style:{fontSize:12},children:["波及 ".concat(c.impact.affectedNodeIds.length," 个节点").concat(c.impact.escalate?",超出阈值需人工确认":"","。"),c.impact.reason]}),!c.impact.rollbackable&&(0,l.jsx)(eP,{style:{fontSize:12,color:"var(--colorError)"},children:"11.1:污染类改动**要么回滚、要么重新校准**,不能当普通改动提交。"}),(0,l.jsxs)(m.A,{wrap:!0,size:6,children:[(0,l.jsx)(x.Ay,{size:"small",type:"primary",onClick:p,children:"把修复意图写进输入框"}),(0,l.jsx)(x.Ay,{size:"small",type:"text",onClick:f,children:"收起"})]})]})}):null;return(0,l.jsxs)("div",{className:"nodeInfoPanel","data-node-id":r.id,children:[(0,l.jsxs)("div",{className:"nodeInfoHeader",children:[(0,l.jsx)("span",{className:"nodeInfoHeaderIcon",children:(0,k.kH)(r.type)}),(0,l.jsx)(eP,{strong:!0,ellipsis:!0,style:{flex:1,minWidth:0,fontSize:14},title:r.title,children:r.title}),r.unknownType&&(0,l.jsx)(w.A,{children:"未知类型"}),(0,l.jsx)(w.A,{color:(0,k.uv)(r.status),children:(0,k.m_)(r.status,b)}),M>0&&(0,l.jsx)(w.A,{color:"red",children:"".concat(M," 个错误")}),o&&"running"===r.status&&(0,l.jsx)(eP,{type:"secondary",style:{fontSize:11},children:"运行中"}),h&&(0,l.jsx)(en.A,{title:"关闭(Esc)",children:(0,l.jsx)(x.Ay,{type:"text",size:"small",className:"nodeInfoClose","aria-label":"关闭信息卡片",onClick:h,children:(0,l.jsx)(eL.A,{})})})]}),(0,l.jsxs)("div",{className:"nodeInfoActions",children:[(0,l.jsx)(x.Ay,{size:"small",onClick:()=>null==v?void 0:v(r),children:"@ 到对话框"}),(0,l.jsx)(x.Ay,{size:"small",onClick:()=>null==g?void 0:g(r),children:"在画布中定位"}),(0,l.jsx)(x.Ay,{size:"small",danger:M>0,onClick:()=>null==u?void 0:u(r),children:"请求修复(预览影响面)"}),o&&"running"===r.status&&y&&(0,l.jsx)(x.Ay,{size:"small",onClick:y,children:"暂停(节点边界)"}),"paused"===r.status&&j&&(0,l.jsx)(x.Ay,{size:"small",onClick:j,children:"继续生成"})]}),T,(0,l.jsx)(eR.A,{size:"small",items:[{key:"overview",label:"概览",children:(0,l.jsxs)(eT.A,{size:"small",column:1,bordered:!0,children:[(0,l.jsx)(eT.A.Item,{label:"状态",children:(0,l.jsx)(w.A,{color:(0,k.uv)(r.status),children:(0,k.m_)(r.status,b)})}),(0,l.jsxs)(eT.A.Item,{label:"类型",children:[(0,k.z9)(r.type),r.unknownType?"(闭集外的类型,按通用卡片渲染)":""]}),(0,l.jsx)(eT.A.Item,{label:"节点 id",children:(0,l.jsx)(eD,{copyable:{text:r.id},style:{margin:0,fontSize:12},children:r.id})}),(0,l.jsx)(eT.A.Item,{label:"稳定序号",children:r.seq}),(0,l.jsx)(eT.A.Item,{label:"父节点",children:r.parentId?(0,l.jsx)(x.Ay,{type:"link",size:"small",style:{padding:0,height:"auto"},onClick:()=>d(r.parentId),children:null!=(n=null==(t=I.get(r.parentId))?void 0:t.title)?n:r.parentId}):"(根节点)"}),(0,l.jsxs)(eT.A.Item,{label:"耗时",children:[(0,k.a3)(C),"running"===r.status?"(运行中)":""]}),(0,l.jsx)(eT.A.Item,{label:"进度",children:r.progress?"".concat(r.progress.label||"进度",":").concat(r.progress.current,"/").concat(r.progress.total):"—"}),(0,l.jsxs)(eT.A.Item,{label:"子节点数",children:[r.children.length,s?"(当前处于影响面高亮)":""]}),(0,l.jsxs)(eT.A.Item,{label:"开始 / 完成",children:[r.startedAt?new Date(r.startedAt).toLocaleString():"—"," / ",r.completedAt?new Date(r.completedAt).toLocaleString():"—"]})]})},{key:"issues",label:"问题".concat(E.length>0?"(".concat(E.length,")"):""),children:0===E.length?(0,l.jsx)(ew.A,{image:ew.A.PRESENTED_IMAGE_SIMPLE,description:"该节点没有记录问题"}):(0,l.jsx)(eM.A,{size:"small",dataSource:E,renderItem:e=>{var t,n;let r=null!=(n=eB[e.level])?n:{color:"default",text:String(e.level)};return(0,l.jsx)(eM.A.Item,{children:(0,l.jsxs)(m.A,{direction:"vertical",size:2,style:{width:"100%"},children:[(0,l.jsxs)(m.A,{wrap:!0,size:4,children:[(0,l.jsx)(w.A,{color:r.color,children:r.text}),e.category&&(0,l.jsx)(w.A,{children:e.category}),e.repairability&&(0,l.jsx)(w.A,{color:"blue",children:e.repairability}),(null==(t=e.provenance)?void 0:t.detectorId)&&(0,l.jsx)(en.A,{title:e.provenance.fingerprint,children:(0,l.jsx)(w.A,{children:e.provenance.detectorId})})]}),(0,l.jsx)(eP,{style:{fontSize:12},children:e.message}),e.suggestion&&(0,l.jsxs)(eP,{type:"secondary",style:{fontSize:12},children:["建议:",e.suggestion]}),(e.chapterId||e.sectionTitle)&&(0,l.jsxs)(eP,{type:"secondary",style:{fontSize:11},children:["位置:",e.chapterId||""," ",e.sectionTitle||""]})]})})}})},...N.length>0?[{key:"details",label:"明细(".concat(N.length,")"),children:(0,l.jsx)(eM.A,{size:"small",dataSource:N,renderItem:e=>(0,l.jsx)(eM.A.Item,{style:{paddingBlock:3},children:(0,l.jsx)(eP,{type:"secondary",style:{fontSize:12},children:e.message})})})}]:[],...A&&A.length>0?[{key:"events",label:"事件(".concat(A.length,")"),children:(0,l.jsx)(eM.A,{size:"small",dataSource:[...A].slice(-40).reverse(),renderItem:e=>(0,l.jsx)(eM.A.Item,{style:{paddingBlock:3},children:(0,l.jsxs)(m.A,{size:6,wrap:!0,children:[(0,l.jsxs)(eP,{type:"secondary",style:{fontSize:11},children:["#",e.seq]}),(0,l.jsx)(w.A,{style:{fontSize:11},children:e.type}),(0,l.jsx)(eP,{type:"secondary",style:{fontSize:11},children:new Date(e.at).toLocaleTimeString()}),e.detail?(0,l.jsx)(eP,{style:{fontSize:11},ellipsis:!0,children:e.detail}):null]})})})}]:[],{key:"impact",label:"影响面",children:R},...S?[{key:"skills",label:"技能",children:(()=>{let e="string"==typeof r.metrics.skillId?r.metrics.skillId:void 0;return r.type,(0,l.jsxs)(eT.A,{size:"small",column:1,bordered:!0,children:[(0,l.jsx)(eT.A.Item,{label:"技能 id",children:null!=e?e:r.id}),(0,l.jsx)(eT.A.Item,{label:"技能名",children:r.title}),(0,l.jsx)(eT.A.Item,{label:"命中章节",children:"string"==typeof r.metrics.chapter?r.metrics.chapter:"—"}),(0,l.jsx)(eT.A.Item,{label:"状态",children:(0,l.jsx)(w.A,{color:(0,k.uv)(r.status),children:(0,k.m_)(r.status,b)})})]})})()}]:[],...z.length>0?[{key:"metrics",label:"指标",children:(0,l.jsx)(eT.A,{size:"small",column:1,bordered:!0,children:z.map(e=>(0,l.jsx)(eT.A.Item,{label:e.key,children:e.text.replace("".concat(e.key,": "),"")},e.key))})}]:[],...r.payloadRef?[{key:"payload",label:"载荷",children:(0,l.jsxs)(m.A,{direction:"vertical",size:6,children:[(0,l.jsx)(eD,{copyable:{text:r.payloadRef},style:{margin:0,fontSize:12},children:r.payloadRef}),(0,l.jsx)(eP,{type:"secondary",style:{fontSize:12},children:"8.6 / 附录 F.2:节点**不得携带载荷**(`agentWorkflow` 已是 p50 2.2 MB / max 94.6 MB)。 prompt / response / 证据快照等明细都在内容寻址的 `artifacts/<sha256>` 里,这里只有引用。"})]})}]:[]]})]})}var eq=n(34038);let{Text:eW}=d.A,eF=["upsert","status","rollup","reset","start","stage","thinking","text","tool_call_preview","progress","error","done","complete","log"];function eG(e,t){var n,l;let r=null!=(n=e.projectRoot)?n:t;return{specId:e.templateId||e.id,promptIds:null!=(l=e.promptIds)?l:[],...e.materialRoot?{materialRoot:e.materialRoot}:{},...r?{projectRoot:r}:{},...e.templateName?{title:e.templateName}:{}}}function eO(e,t){let n=t.node;if(!n||"string"!=typeof n.id)return!0;if("upsert"===t.type)return e.set(n.id,n),!0;let l=e.get(n.id);if(!l){var r,i;return e.set(n.id,{...n,title:null!=(r=n.title)?r:n.id,seq:null!=(i=n.seq)?i:0}),!1}let{startedAt:a,...s}=n;return e.set(n.id,{...l,...s,id:l.id}),!0}function eU(){var e,t,n,i,s,d,w,b,S,I,z,E,N,M,T,L,D,P,H,q,G,U,X,J,V;let Q=(0,c.useRouter)(),Z=(0,j.Vr)(),{message:$}=u.A.useApp(),ee="string"==typeof Q.query.id?Q.query.id:"",en="string"==typeof Q.query.projectRoot?Q.query.projectRoot:void 0,[el,er]=(0,r.useState)(null),[ei,ea]=(0,r.useState)(!0),[es,eo]=(0,r.useState)(null),[ec,ed]=(0,r.useState)(new Map),[eu,eh]=(0,r.useState)("connecting"),[ep,em]=(0,r.useState)(0),[ex,ef]=(0,r.useState)(null),[ev,eg]=(0,r.useState)("all"),[ey,ej]=(0,r.useState)(!0),[eA,ew]=(0,r.useState)(""),[ek,eb]=(0,r.useState)(!1),[eS,eM]=(0,r.useState)([]),[eR,eT]=(0,r.useState)([]),[eL,eD]=(0,r.useState)(null),[eP,e_]=(0,r.useState)(null),{bubbles:eB,push:eU,clear:eJ}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1500,[t,n]=(0,r.useState)([]),l=(0,r.useRef)(null),i=(0,r.useCallback)(t=>{let l=function(e){var t,n;let l=null!=(t=e.now)?t:Date.now(),r=null!=(n=e.freshMs)?n:15e3,{before:i,after:a}=e,s=a.parentId;if(!s)return null;if(!i){if("number"!=typeof a.startedAt||l-a.startedAt>r||l-a.startedAt<-r)return null;let e=W(a,"dispatch");return e?{id:"".concat(s,"->").concat(a.id,":dispatch"),fromId:s,toId:a.id,kind:"dispatch",label:e,at:l}:null}if(!(B.has(a.status)&&!B.has(i.status))||"number"!=typeof a.completedAt||l-a.completedAt>r||l-a.completedAt<-r)return null;let o=W(a,"report");return o?{id:"".concat(a.id,"->").concat(s,":report"),fromId:a.id,toId:s,kind:"report",label:o,at:l}:null}(t);l&&n(t=>(function(e,t,n){let l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1500,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:6,i=[...e.filter(e=>n-e.at<l&&e.id!==t.id),t];return i.length>r?i.slice(i.length-r):i})(t,l,l.at,e))},[e]),a=(0,r.useCallback)(()=>{n(e=>0===e.length?e:[])},[]);return(0,r.useEffect)(()=>{if(0!==t.length)return l.current=setTimeout(()=>{l.current=null,n(t=>(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1500,l=e.filter(e=>t-e.at<n);return l.length===e.length?e:l})(t,Date.now(),e))},Math.max(0,t.reduce((e,t)=>Math.min(e,t.at),1/0)+e-Date.now())),()=>{l.current&&(clearTimeout(l.current),l.current=null)}},[t,e]),{bubbles:t,push:i,clear:a}}(),[eK,eY]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>eY(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let[eV,eQ]=(0,r.useState)(null),[eZ,e$]=(0,r.useState)(()=>new Map),[e0,e1]=(0,r.useState)([]),[e2,e4]=(0,r.useState)(null),[e5,e8]=(0,r.useState)(!1),[e3,e6]=(0,r.useState)([]),[e7,e9]=(0,r.useState)(null),[te,tt]=(0,r.useState)(!1),tn=(0,eE.s_)(),{centerOn:tl,zoomAt:tr,fit:ti,reset:ta}=tn,ts=(0,r.useCallback)(()=>{var e;let t=null==(e=tn.containerRef.current)?void 0:e.getBoundingClientRect();if(!t)return{left:0,top:0,right:0,bottom:0};let n=e=>{let n=document.querySelector(e);if(!n)return null;let l=n.getBoundingClientRect();return{top:l.top-t.top,bottom:l.bottom-t.top}},l=n(".canvasToolbar"),r=n(".canvasInputBar"),i=Math.min(l?l.bottom+8:24,.4*t.height),a=Math.max(r?r.top-8:t.height-24,.6*t.height);return{left:24,top:i,right:t.width-24,bottom:a}},[tn.containerRef]),to=(0,r.useRef)(new Map),tc=(0,r.useRef)(0),td=(0,r.useRef)({nodes:[],events:[],cursor:0}),tu=(0,r.useRef)(null),th=(0,r.useRef)(0),tp=(0,r.useRef)(en),tm=(0,r.useRef)(!1),tx=(0,r.useCallback)(e=>{let t=e.key?Z(e.key):e.text,n=t===e.key?e.text:t;th.current+=1,eT(t=>[{id:th.current,kind:e.kind,text:n,at:Date.now()},...t].slice(0,100)),"error"===e.kind?$.error(n):"warning"===e.kind?$.warning(n):"success"===e.kind&&$.success(n)},[$,Z]),tf=(0,A.tl)({projectRoot:en,documentId:ee||null,onNotice:tx,t:Z}),{refreshDocuments:tv,applyRecord:tg}=tf,ty=function(e,t){let[n,l]=(0,r.useState)({loading:!1,error:null,preview:null}),i=(0,r.useRef)(0),a=(0,r.useCallback)(async()=>{if(!e)return void l({loading:!1,error:"缺少记录 id,无法取回成稿预览",preview:null});let n=i.current+1;i.current=n,l(e=>({...e,loading:!0,error:null}));try{let{preview:r}=await (0,y.sz)(e,t);if(i.current!==n)return;l({loading:!1,error:null,preview:r})}catch(e){if(i.current!==n)return;l({loading:!1,error:e instanceof Error?e.message:"取回成稿预览失败",preview:null})}},[e,t]),s=(0,r.useCallback)(()=>{i.current+=1,l({loading:!1,error:null,preview:null})},[]);return{...n,load:a,reset:s}}(ee,null!=(E=tp.current)?E:en),tj=(0,r.useCallback)(()=>{var e;if(e5){ty.reset(),e8(!1);return}e8(!0),ty.load(),(0,y.f$)(null!=(e=tp.current)?e:en).then(e=>e6(e.assets.filter(e=>e.usedByDocumentIds.includes(ee)))).catch(()=>e6([]))},[e5,ty,ee,en]),tA=(0,r.useCallback)(e=>{var t;let n=null!=(t=tp.current)?t:en;if("image"!==e.type)return void(0,y.oS)(e.id,"file",n).catch(()=>tx({kind:"error",text:"打开资产失败"}));tt(!1),e9(e)},[en,tx]),tw=(0,r.useCallback)(e=>{e1(t=>t.includes(e)?t:[...t,e])},[]),tk=(0,r.useCallback)(()=>{tu.current||(tu.current=setTimeout(()=>{tu.current=null;let e=td.current;if(td.current={nodes:[],events:[],cursor:0},e.nodes.length>0){let n=to.current,l=0;for(let r of e.nodes){var t;let e=null==(t=r.node)?void 0:t.id,i=e?n.get(e):void 0;eO(n,r)||(l+=1);let a=e?n.get(e):void 0;a&&eU({...i?{before:i}:{},after:a})}ed(new Map(n)),l>0&&tw("通道收到 ".concat(l," 条指向未知节点的补丁:已按最小节点收下(说明本客户端漏读了 upsert,或日志存在损坏)"))}if(e.cursor>tc.current&&(tc.current=e.cursor),e.events.length>0){let t=e.events;eM(e=>[...t.reverse(),...e].slice(0,200)),em(e=>t.reduce((e,t)=>Math.max(e,t.seq),e))}},120))},[tw,eU]);(0,r.useEffect)(()=>()=>{tu.current&&clearTimeout(tu.current)},[]);let tb=(0,r.useCallback)((e,t)=>{let n=td.current;t&&n.nodes.push(t),n.events.push(e),(null==t?void 0:t.logT)&&t.logT>n.cursor&&(n.cursor=t.logT),tk()},[tk]),tS=(0,r.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(ee){e.silent||ea(!0);try{var t,n,l,r,i,a;let e=tp.current?"?projectRoot=".concat(encodeURIComponent(tp.current)):"",s=await fetch("/api/documents/canvas/".concat(encodeURIComponent(ee)).concat(e));if(404===s.status)return void eo("记录不存在(可能已被删除)");if(!s.ok)throw Error(await s.text()||"HTTP ".concat(s.status));let o=await s.json();tp.current=null!=(l=o.document.projectRoot)?l:tp.current,er(o),eo(null),e1(null!=(r=o.degraded)?r:[]);let c=function(e){let t=[],n=e=>{for(let l of e){let{children:e,...r}=l;t.push(r),e&&n(e)}};return n(e),t}(null!=(i=null==(t=o.nodes)?void 0:t.tree)?i:[]),d=new Map(c.map(e=>[e.id,e]));to.current=d,ed(d),tc.current=Math.max(tc.current,null!=(a=null==(n=o.nodes)?void 0:n.cursor)?a:0)}catch(e){eo(e instanceof Error?e.message:String(e))}finally{e.silent||ea(!1)}}},[ee]);(0,r.useEffect)(()=>{tS()},[tS]),(0,r.useEffect)(()=>{var e;let t=null==el||null==(e=el.nodes)?void 0:e.depth;null==t||tm.current||eg(t)},[el]),(0,r.useEffect)(()=>{ee&&tv()},[ee,tv]),(0,r.useEffect)(()=>{let e=tf.documents.find(e=>e.id===ee);e&&tg(e)},[tg,ee,tf.documents]);let tI=(0,r.useCallback)(async()=>{if(ee)try{var e,t;let n=new URLSearchParams({since:String(tc.current)});tp.current&&n.set("projectRoot",tp.current);let l=await fetch("/api/documents/generated/".concat(encodeURIComponent(ee),"/nodes?").concat(n.toString()));if(!l.ok)return;let r=await l.json(),i=to.current;for(let t of null!=(e=r.nodes)?e:[])eO(i,{type:"upsert",node:t});(null!=(t=r.nodes)?t:[]).length>0&&ed(new Map(i)),r.cursor&&(tc.current=Math.max(tc.current,r.cursor)),r.downgraded&&tw(r.reason||"增量过大,服务端已降级为全量快照")}catch(e){}},[tw,ee]);(0,r.useEffect)(()=>{if(!ee)return;let e=setInterval(()=>{tI()},1e4);return()=>clearInterval(e)},[ee,tI]),(0,r.useEffect)(()=>{if(!ee||"undefined"==typeof EventSource)return;let e=tp.current?"?projectRoot=".concat(encodeURIComponent(tp.current)):"",t=new EventSource("/api/documents/generated/".concat(encodeURIComponent(ee),"/events").concat(e));eh("connecting");let n=e=>t=>{var n,l,r;let i={};try{i=JSON.parse(t.data)}catch(e){}let a=null!=(r=i.type)?r:e;"reset"===a&&(eJ(),tS({silent:!0}),tw("通道补发不可用(服务端重启或环形覆盖):已重取全量快照"));let s=null==(n=i.node)?void 0:n.title;tb({seq:"number"==typeof i.seq?i.seq:0,type:a,at:"number"==typeof i.at?i.at:Date.now(),...i.nodeId?{nodeId:i.nodeId}:{},...s?{nodeTitle:s}:{},...(null==(l=i.payload)?void 0:l.message)?{detail:i.payload.message}:{}},i.node?{type:a,node:i.node,...i.logT?{logT:i.logT}:{}}:void 0),i.node&&tv()},l=eF.map(e=>[e,n(e)]);for(let[e,n]of(t.onopen=()=>eh("open"),t.onerror=()=>{eh("error"),tI()},l))t.addEventListener(e,n);return t.onmessage=n("message"),()=>{for(let[e,n]of l)t.removeEventListener(e,n);t.close()}},[tw,eJ,ee,tS,tb,tv,tI]),(0,r.useEffect)(()=>{eJ()},[eJ,ee]);let tC=(0,r.useMemo)(()=>(0,k.Jr)([...ec.values()],"all"===ev?void 0:ev),[ec,ev]),tz=(0,r.useMemo)(()=>(0,k.x8)(tC),[tC]),tE=(0,r.useMemo)(()=>(0,k.PI)(tC),[tC]),tN=(0,r.useMemo)(()=>0!==eZ.size||eV?(0,k.bJ)(tE,(0,k.Kq)(eZ,eV)):tE,[tE,eZ,eV]),tM=(0,r.useRef)(1);tM.current=tn.view.k;let tR=(0,r.useRef)(!1);tR.current=null!==eV;let tT=(0,r.useCallback)((e,t,n,l)=>{let{dx:r,dy:i}=(0,k.qj)({dx:t,dy:n},tM.current);if("move"===l)return void eQ({id:e.id,dx:r,dy:i});eQ(null),(0!==t||0!==n)&&e$(t=>{var n;let l=new Map(t),a=null!=(n=l.get(e.id))?n:{dx:0,dy:0};return l.set(e.id,{dx:a.dx+r,dy:a.dy+i}),l})},[]),tL=(0,r.useCallback)(()=>{eQ(null),e$(new Map)},[]),tD=(0,r.useMemo)(()=>new Map(tz.map(e=>[e.id,e])),[tz]),tP=ex&&null!=(N=tD.get(ex))?N:null,t_=(0,r.useMemo)(()=>{if(ex)return R(tz.map(eX),ex)},[tz,ex]),tB=(0,r.useMemo)(()=>{var e;return new Set(null!=(e=null==t_?void 0:t_.affectedNodeIds)?e:[])},[t_]),tH=(0,r.useMemo)(()=>new Set(ex?[...(0,k.II)(tC,ex),ex]:[]),[tC,ex]),tq=(0,r.useMemo)(()=>(0,k.Kg)(tN),[tN]),tW=(0,r.useMemo)(()=>(function(e,t){var n,l;let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=null!=(n=r.limit)?n:6,a=null!=(l=r.recentLimit)?l:3,s=[],o=[],c=(e,n)=>{for(let l of e)O.has(l.status)?s.push(K(l,n,t)):"completed"===l.status&&"number"==typeof l.completedAt&&t-l.completedAt<=9e4&&o.push(K(l,n,t)),l.children.length>0&&c(l.children,n+1)};return c(e,0),s.sort((e,n)=>{var l,r;let i=null!=(l=Y(e,t))?l:0;return(null!=(r=Y(n,t))?r:0)-i||e.id.localeCompare(n.id)}),o.sort((e,t)=>{var n,l;return(null!=(n=t.completedAt)?n:0)-(null!=(l=e.completedAt)?l:0)||e.id.localeCompare(t.id)}),{running:s.slice(0,i),recent:o.slice(0,a),runningTotal:s.length,recentTotal:o.length}})(tC,Date.now()),[tC]),tF=(0,r.useMemo)(()=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,n=[],l=e=>{for(let i of e){if("supervisor"===i.type){var t,r;let e="string"==typeof(null==(t=i.metrics)?void 0:t.action)?i.metrics.action:"unknown",l="string"==typeof(null==(r=i.metrics)?void 0:r.note)?i.metrics.note:void 0;n.push({id:i.id,action:e,title:i.title||"调度决策",...l?{note:l}:{},status:i.status,..."number"==typeof i.completedAt?{at:i.completedAt}:"number"==typeof i.startedAt?{at:i.startedAt}:{}})}i.children.length>0&&l(i.children)}};return l(e),n.sort((e,t)=>{var n,l;return(null!=(n=t.at)?n:0)-(null!=(l=e.at)?l:0)||e.id.localeCompare(t.id)}),n.slice(0,t)})(tC),[tC]),tG=(0,r.useCallback)(e=>{let t=tD.get(e.fromId);return t?tB.has(e.fromId)&&tB.has(e.toId)?"affected":2>=(0,k.vp)(t.status)?"warn":tH.has(e.fromId)&&tH.has(e.toId)?"active":"default":"default"},[tB,tH,tD]),tO=(0,r.useMemo)(()=>{if(0===tz.length)return null;let e=tz.filter(e=>"running"===e.status),t=e.length>0?e:tz;return t.reduce((e,t)=>{var n,l;return(null!=(n=t.seq)?n:0)>=(null!=(l=e.seq)?l:0)?t:e},t[0])},[tz]),tU=null==tO?void 0:tO.id;(0,r.useEffect)(()=>{var e;if(!ey||!tU||tR.current)return;let t=null==(e=tn.containerRef.current)?void 0:e.getBoundingClientRect();if(!t)return;let n=tN.nodes.find(e=>e.node.id===tU);n&&(0,eE.ff)({x:n.x,y:n.y,width:k.zT,height:k.EL},tn.view,{width:t.width,height:t.height})&&tl(n.x,n.y,void 0,ts())},[tl,ey,tN.nodes,tU,ts,tn.containerRef,tn.view]),(0,r.useEffect)(()=>{var e;if(!(null==(e=tn.containerRef.current)?void 0:e.getBoundingClientRect())||0===tN.nodes.length)return;let{dx:t,dy:n}=(0,eE.B)({width:tN.width,height:tN.height},tn.view,ts());tn.panBy(t,n)},[tN.width,tN.height,tN.nodes.length]);let tX=(0,r.useCallback)(e=>{ef(e);let t=tN.nodes.find(t=>t.node.id===e);t&&tl(t.x,t.y,void 0,ts())},[tl,tN.nodes,ts]);(0,r.useEffect)(()=>{if(!ex)return;let e=e=>{"Escape"===e.key&&ef(null)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[ex]);let tJ=(0,r.useCallback)(e=>{ew(t=>""===t||t.endsWith(" ")?"".concat(t,"@").concat(e.title," "):"".concat(t," @").concat(e.title," "))},[]),tK=(0,r.useCallback)(()=>{let e=null==el?void 0:el.document;e&&(eb(!0),tf.startGeneration(eG(e,tp.current),eA.trim()).finally(()=>eb(!1)))},[el,tf,eA]),tY=(0,r.useCallback)(async()=>{let e=null==el?void 0:el.document;if(!e)return;let t=eG(e,tp.current);if(!t.projectRoot)return void tx({kind:"error",text:"未识别当前项目,无法预览结构"});try{let e=await (0,y.dk)({promptIds:t.promptIds,requirement:eA.trim(),...t.materialRoot?{materialRoot:t.materialRoot}:{},...t.title?{title:t.title}:{},projectRoot:t.projectRoot});e4({title:e.title,chapters:e.chapters,outlineSource:e.derivation.outlineSource,materialScope:e.materialScope})}catch(e){tx({kind:"error",text:e instanceof Error?e.message:"结构预览失败"})}},[el,tx,eA]),tV=(0,r.useCallback)(e=>{let t=R(tz.map(eX),e.id);if(!t)return void tx({kind:"warning",text:"该节点不在当前节点集合里,无法评估影响面"});eD({nodeId:e.id,nodeTitle:e.title,nodeType:e.type,impact:t})},[tz,tx]),tQ=(0,r.useCallback)(()=>{if(!eL)return;let e=(0,k.RV)(eL.nodeTitle,eL.impact);ew(t=>t?"".concat(t," ").concat(e):e),eD(null)},[eL]),tZ=(0,r.useCallback)(()=>{tf.pauseDocument(ee).catch(e=>tx({kind:"error",text:e instanceof Error?e.message:"暂停失败"}))},[ee,tf,tx]),t$=(0,r.useCallback)(()=>{tf.resumePausedDocument(ee).catch(e=>tx({kind:"error",text:e instanceof Error?e.message:"继续失败"}))},[ee,tf,tx]),t0=null==el?void 0:el.document.status,t1=tf.loading||"generating"===t0||"queued"===t0,t2=(0,r.useRef)(null),t4=(0,r.useRef)(null),[t5,t8]=(0,r.useState)({width:0,height:0});(0,r.useLayoutEffect)(()=>{let e=t4.current;if(!e)return void t8({width:0,height:0});let t=()=>{let t=e.firstElementChild;if(!t)return;let n=e.offsetWidth,l=Math.max(t.scrollHeight,t.offsetHeight);t8(e=>Math.abs(e.width-n)>2||Math.abs(e.height-l)>2?{width:n,height:l}:e)};t();let n=new ResizeObserver(t);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),()=>n.disconnect()},[ex]);let t3=(0,r.useMemo)(()=>{var e;if(!ex)return null;let t=tN.nodes.find(e=>e.node.id===ex),n=null==(e=tn.containerRef.current)?void 0:e.getBoundingClientRect();if(!t||!n)return null;let l=[".canvasToolbar",".canvasInputBar",".canvasRecordsBall"].map(e=>{var t;return null==(t=document.querySelector(e))?void 0:t.getBoundingClientRect()}).filter(e=>!!e).map(e=>({left:e.left-n.left,top:e.top-n.top,right:e.right-n.left,bottom:e.bottom-n.top})),r="".concat(tn.view.x,",").concat(tn.view.y,",").concat(tn.view.k),i=t2.current,a=i&&i.id===ex&&i.viewKey===r?i:null,s=(0,k.Aq)({node:{x:t.x,y:t.y},view:tn.view,box:n,panelWidth:t5.width>0?t5.width:462,panelHeight:t5.height>0?t5.height:480,obstacles:l,...a?{pin:{left:a.left,top:a.top}}:{}});t2.current={id:ex,viewKey:r,left:s.left,top:s.top};let o=Math.round(.62*n.height);return{left:s.left,top:s.top,maxHeight:Math.max(180,Math.min(s.maxHeight,o))}},[tN.nodes,ex,tn,t5]),t6=(0,r.useCallback)(e=>{tJ(e),requestAnimationFrame(()=>{var e;return null==(e=document.querySelector(".canvasInputBar textarea"))?void 0:e.focus()})},[tJ]),t7=(0,r.useCallback)(e=>{tX(e.id),e_(e.id),window.setTimeout(()=>e_(t=>t===e.id?null:t),1200)},[tX]),t9=(0,r.useCallback)(async e=>{if(ee)try{let{document:t}=await (0,y.v7)(ee,!1,tp.current);if(!t)return void tx({kind:"warning",text:"记录不存在,无法导出"});await tf.export.exportRecord(t,e)}catch(e){tx({kind:"error",text:e instanceof Error?e.message:"导出失败"})}},[ee,tf.export,tx]),ne=tf.boundRecord,nt=tf.canResume;return ee?es?(0,l.jsx)(p.Ay,{status:"warning",title:"画布打不开",subTitle:es,extra:(0,l.jsxs)(m.A,{children:[(0,l.jsx)(x.Ay,{icon:(0,l.jsx)(g.A,{}),onClick:()=>{tS()},children:"重试"}),(0,l.jsx)(o(),{href:"/documents",children:(0,l.jsx)(x.Ay,{type:"primary",children:"回到文档页"})})]})}):(0,l.jsxs)("div",{className:"canvasRoot",children:[(0,l.jsx)(a(),{children:(0,l.jsx)("title",{children:(null==el?void 0:el.document.title)?"".concat(el.document.title," \xb7 画布"):"生成画布"})}),(0,l.jsx)(eI,{title:(null==el?void 0:el.document.title)||"生成画布",...t0?{status:t0}:{},...(null==el?void 0:el.document.updatedAt)!==void 0?{updatedAt:el.document.updatedAt}:{},...(null==el?void 0:el.document.wordCount)!==void 0?{wordCount:el.document.wordCount}:{},agents:tW,supervisorDecisions:tF,agentsActive:t1,...(null==el?void 0:el.document.createdAt)!==void 0?{startedAt:el.document.createdAt}:{},onLocateAgent:e=>{ef(e),e_(e)},nodeCount:null!=(M=null==el?void 0:el.nodes.count)?M:0,visibleCount:tN.nodes.length,hiddenCount:null!=(T=null==el?void 0:el.nodes.hiddenCount)?T:0,degraded:e0,skills:{hits:null!=(L=null==el?void 0:el.skills.hits)?L:[],note:null!=(D=null==el?void 0:el.skills.note)?D:""},gate:null!=(P=null==el?void 0:el.gate)?P:null,connection:eu,lastSeq:ep,zoom:tn.view.k,depth:ev,following:ey,generating:!!t1,resumable:nt,exporting:tf.export.exporting,nonDeliverableExport:tf.export.nonDeliverableExport,onZoomIn:()=>tr(1.2),onZoomOut:()=>tr(1/1.2),onZoomReset:ta,onFit:()=>ti(tN.width,tN.height,ts()),onDepthChange:e=>{tm.current=!0,eg(e)},onToggleFollow:()=>ej(e=>!e),onContinue:()=>{ne&&tf.resumeDocument(ne)},onPause:tZ,onResume:t$,onAbort:()=>{tf.abortGeneration()},onExport:e=>{t9(e)},exportReports:tf.export.exportReports,previewOpen:e5,onTogglePreview:tj,hasNodeOffsets:eZ.size>0,onResetNodeLayout:tL,t:Z}),(0,l.jsxs)("div",{ref:tn.containerRef,className:"canvasStage",style:{backgroundImage:"radial-gradient(var(--canvasGridDot) 1px, transparent 1px)",backgroundSize:"".concat(eE.VF*tn.view.k,"px ").concat(eE.VF*tn.view.k,"px"),backgroundPosition:"".concat(tn.view.x,"px ").concat(tn.view.y,"px"),cursor:"grab"},onWheelCapture:()=>{ey&&ej(!1)},onPointerDown:e=>{var t;let n=e.target;null!=n&&null!=(t=n.closest)&&t.call(n,".nodeInfoLayer, .canvasToolbar, .canvasInputBar")||(ey&&ej(!1),tn.onPointerDown(e))},onPointerMove:tn.onPointerMove,onPointerUp:tn.endDrag,onPointerLeave:tn.endDrag,onClick:()=>ef(null),children:[ei&&(0,l.jsx)("div",{style:{position:"absolute",inset:0,display:"grid",placeItems:"center"},children:(0,l.jsxs)(m.A,{direction:"vertical",align:"center",children:[(0,l.jsx)(h.A,{}),(0,l.jsx)(eW,{type:"secondary",children:"正在读取节点日志…"})]})}),!ei&&0===tN.nodes.length&&(0,l.jsx)("div",{style:{position:"absolute",inset:0,display:"grid",placeItems:"center",pointerEvents:"none"},children:(0,l.jsxs)(m.A,{direction:"vertical",align:"center",size:8,children:[(0,l.jsx)(eW,{type:"secondary",children:"还没有节点日志"}),(0,l.jsx)(eW,{type:"secondary",style:{fontSize:12},children:"节点日志是唯一真相源:这里**不造占位节点**,发起生成后节点会随日志追加而出现。"})]})}),(0,l.jsxs)("div",{style:{position:"absolute",left:0,top:0,transformOrigin:"0 0",transform:"translate(".concat(tn.view.x,"px, ").concat(tn.view.y,"px) scale(").concat(tn.view.k,")"),width:tN.width,height:tN.height},children:[(0,l.jsx)(_,{edges:tN.edges,width:tN.width,height:tN.height,toneOf:tG,flowing:tq}),(0,l.jsx)(F,{bubbles:eB,layout:tN,static:eK}),tN.nodes.map(e=>(0,l.jsx)(et,{node:e.node,x:e.x,y:e.y,selected:e.node.id===ex,affected:tB.has(e.node.id)&&e.node.id!==ex,flashed:eP===e.node.id,onDrag:tT,onSelect:e=>ef(e.id),t:Z},e.node.id))]}),tP&&t3&&(0,l.jsx)("div",{ref:t4,className:"nodeInfoLayer",style:{left:t3.left,top:t3.top,maxHeight:t3.maxHeight},onClick:e=>e.stopPropagation(),onContextMenu:e=>e.stopPropagation(),children:(0,l.jsx)(eH,{node:tP,...t_?{impact:t_}:{},flatNodes:tz,highlighted:!!(ex&&tB.has(ex)),generating:!!t1,repairPreview:eL,onFocusNode:tX,onRequestRepair:tV,onClose:()=>ef(null),onDraftRepairNote:tQ,onCancelRepairPreview:()=>eD(null),onMention:t6,onLocate:t7,onPause:tZ,onResume:t$,nodeEvents:eS.filter(e=>e.nodeId===(null==tP?void 0:tP.id)),t:Z})})]}),(0,l.jsx)(eN._,{value:eA,onChange:ew,onSend:tK,generating:!!t1,submitting:ek,disabled:!el,...el?{}:{disabledReason:"正在读取记录…"},selectedNode:tP,onMentionSelected:()=>{tP&&tJ(tP)},resumable:nt,onContinue:()=>{ne&&tf.resumeDocument(ne)},onPreviewStructure:()=>{tY()}}),(0,l.jsx)(eC._,{currentDocumentId:ee,...en?{projectRoot:en}:{},onSelect:e=>{Q.push((0,ez.p)(e.id,e.projectRoot||en))},onCurrentDeleted:()=>{Q.push("/canvas")}}),(0,l.jsx)(eq.B,{open:!!e2,title:null!=(H=null==e2?void 0:e2.title)?H:"",chapters:null!=(q=null==e2?void 0:e2.chapters)?q:[],...(null==e2?void 0:e2.outlineSource)?{outlineSource:e2.outlineSource}:{},...(null==e2?void 0:e2.materialScope)?{materialScope:e2.materialScope}:{},onClose:()=>e4(null)}),(0,l.jsxs)(f.A,{open:e5,title:"成稿预览",onCancel:()=>{ty.reset(),e8(!1)},footer:(0,l.jsxs)(m.A,{children:[(0,l.jsx)(x.Ay,{onClick:()=>{ty.load()},loading:ty.loading,children:"重新取回"}),(0,l.jsx)(x.Ay,{type:"primary",onClick:()=>{ty.reset(),e8(!1)},children:"关闭"})]}),width:920,styles:{body:{maxHeight:"72vh",overflow:"auto",background:"var(--colorBgLayout)",padding:"16px 20px"}},style:{top:32},children:[(0,l.jsx)(C,{status:null!=(G=null==(e=ty.preview)?void 0:e.status)?G:t0,title:null!=(U=null==(t=ty.preview)?void 0:t.title)?U:null==el?void 0:el.document.title,html:null==(n=ty.preview)?void 0:n.html,source:null==(i=ty.preview)?void 0:i.source,truncated:null==(s=ty.preview)?void 0:s.truncated,totalChars:null==(d=ty.preview)?void 0:d.totalChars,renderedChars:null==(w=ty.preview)?void 0:w.renderedChars,stats:null==(b=ty.preview)?void 0:b.stats,gate:null!=(J=null!=(X=null==(S=ty.preview)?void 0:S.gate)?X:null==el?void 0:el.gate)?J:null,loading:ty.loading,error:ty.error,onRetry:()=>{ty.load()},updatedAt:null==(I=ty.preview)?void 0:I.updatedAt,generatedAt:null==(z=ty.preview)?void 0:z.generatedAt,t:Z}),(0,l.jsxs)("div",{style:{marginTop:16,borderTop:"1px solid var(--colorBorderSecondary)",paddingTop:12},children:[(0,l.jsx)(eW,{strong:!0,style:{fontSize:13},children:"本档用到的资产"}),0===e3.length?(0,l.jsx)("div",{children:(0,l.jsx)(eW,{type:"secondary",style:{fontSize:12},children:"本档暂无资产"})}):(0,l.jsxs)(m.A,{direction:"vertical",size:4,style:{width:"100%",marginTop:6},children:[e3.slice(0,20).map(e=>(0,l.jsxs)(m.A,{size:8,children:[(0,l.jsx)(eW,{style:{fontSize:12},children:e.name}),(0,l.jsx)(x.Ay,{size:"small",type:"link",onClick:()=>tA(e),children:"打开"})]},e.id)),e3.length>20?(0,l.jsxs)(eW,{type:"secondary",style:{fontSize:12},children:["还有 ",e3.length-20," 项未列出"]}):null]})]})]}),(0,l.jsxs)(f.A,{open:!!e7,title:e7?"资产预览:".concat(e7.name):"",onCancel:()=>{e9(null),tt(!1)},footer:(0,l.jsxs)(m.A,{children:[te&&e7?(0,l.jsx)(x.Ay,{onClick:()=>{var e;(0,y.oS)(e7.id,"file",null!=(e=tp.current)?e:en).catch(()=>tx({kind:"error",text:"打开资产失败"}))},children:"用系统程序打开"}):null,(0,l.jsx)(x.Ay,{type:"primary",onClick:()=>{e9(null),tt(!1)},children:"关闭"})]}),width:760,styles:{body:{maxHeight:"68vh",overflow:"auto"}},children:[e7&&!te?(0,l.jsx)("img",{alt:e7.name,src:(0,y.iN)(e7.id,null!=(V=tp.current)?V:en),style:{maxWidth:"100%",display:"block",margin:"0 auto"},onError:()=>tt(!0)}):null,te&&(0,l.jsx)(v.A,{type:"info",showIcon:!0,message:"这个资产不能在应用内渲染",description:"服务端只对图片(PNG / JPEG / WebP,按文件头验证)提供应用内渲染;其它形态请用系统程序打开。"})]})]}):(0,l.jsx)("div",{className:"appShellPlaceholder",children:(0,l.jsx)(h.A,{style:{margin:48}})})}function eX(e){return e}},72210:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/canvas/[id]",function(){return n(29310)}])}},e=>{e.O(0,[310,700,914,174,569,243,506,709,530,636,593,792],()=>e(e.s=72210)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[124],{19135:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>l,Gl:()=>i,ko:()=>c,ye:()=>s});var n=r(97109),a=r(7709),o=r(26047);let s=["xxxl","xxl","xl","lg","md","sm","xs"],i=[].concat(s).reverse(),c=(e,t)=>{if(t){for(let r of s)if(e[r]&&t?.[r]!==void 0)return t[r]}},l=()=>{let[,e]=(0,a.Ay)(),t=(e=>({xs:`(max-width: ${e.screenXSMax}px)`,sm:`(min-width: ${e.screenSM}px)`,md:`(min-width: ${e.screenMD}px)`,lg:`(min-width: ${e.screenLG}px)`,xl:`(min-width: ${e.screenXL}px)`,xxl:`(min-width: ${e.screenXXL}px)`,xxxl:`(min-width: ${e.screenXXXL}px)`}))((e=>{let t=[].concat(s).reverse();return t.forEach((r,n)=>{let a=r.toUpperCase(),o=`screen${a}Min`,s=`screen${a}`;if(!(e[o]<=e[s]))throw Error(`${o}<=${s} fails : !(${e[o]}<=${e[s]})`);if(n<t.length-1){let r=`screen${a}Max`;if(!(e[s]<=e[r]))throw Error(`${s}<=${r} fails : !(${e[s]}<=${e[r]})`);let o=t[n+1].toUpperCase(),i=`screen${o}Min`;if(!(e[r]<=e[i]))throw Error(`${r}<=${i} fails : !(${e[r]}<=${e[i]})`)}}),e})(e));return n.useMemo(()=>{let e=new Map,r=-1,n={};return{responsiveMap:t,matchHandlers:{},dispatch:t=>(n=t,e.forEach(e=>{e(n)}),e.size>=1),subscribe(t){return e.size||this.register(),r+=1,e.set(r,t),t(n),r},unsubscribe(t){e.delete(t),e.size||this.unregister()},register(){Object.entries(t).forEach(([e,t])=>{let r=({matches:t})=>{this.dispatch({...n,[e]:t})},a=window.matchMedia(t);(0,o.Tn)(a.addEventListener)&&a.addEventListener("change",r),this.matchHandlers[t]={mql:a,listener:r},r(a)})},unregister(){Object.values(t).forEach(e=>{let t=this.matchHandlers[e];(0,o.Tn)(t?.mql.removeEventListener)&&t.mql.removeEventListener("change",t?.listener)}),e.clear()}}},[t])}},20241:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(97109),a=r(89857),o=r(88483);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}let i=n.forwardRef((e,t)=>n.createElement(o.A,s({},e,{ref:t,icon:a.A})))},48161:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/canvas",function(){return r(88785)}])},52116:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(97109),a=r(78148),o=r(88483);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}let i=n.forwardRef((e,t)=>n.createElement(o.A,s({},e,{ref:t,icon:a.A})))},54746:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(97109),a=r(71242),o=r(88483);function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}let i=n.forwardRef((e,t)=>n.createElement(o.A,s({},e,{ref:t,icon:a.A})))},59609:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(97109),a=r(42644),o=r(19013),s=r(19135);let i=function(e=!0,t={}){let r=(0,n.useRef)(t),[,i]=(0,o.C)(),c=(0,s.Ay)();return(0,a.Nf)(()=>{let t=c.subscribe(t=>{r.current=t,e&&i()});return()=>c.unsubscribe(t)},[]),r.current}},71242:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"}},78148:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"}},88785:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>f});var n=r(65321),a=r(97109),o=r(3454),s=r.n(o),i=r(86109),c=r(17807),l=r(6578),u=r(85587),d=r(8665),p=r(57481),h=r(28629),v=r(34038),m=r(52057);function f(){var e,t,r;let o=(0,m.s_)(),f=(0,i.useRouter)(),g=(0,u.Vr)(),{message:x}=c.A.useApp(),[b,w]=(0,a.useState)([]),[j,S]=(0,a.useState)([]),[y,E]=(0,a.useState)(""),[$,A]=(0,a.useState)(""),[P,M]=(0,a.useState)([]),[O,C]=(0,a.useState)(""),[_,k]=(0,a.useState)(!1),[N,z]=(0,a.useState)(null);(0,a.useEffect)(()=>{(async()=>{try{let[e,t]=await Promise.all([(0,l.ef)(),(0,l.dx)()]);S(e.groups),E(e.projectRoot),w(t)}catch(e){x.error(e instanceof Error?e.message:"读取项目资料/提示词失败")}})()},[x]);let R=(0,a.useMemo)(()=>j.map(e=>({value:e.root,label:"".concat(e.root,"(").concat(e.fileCount," 份").concat(e.mixedProjectNos?" \xb7 含多个项目编号,需先拆分":"",")")})),[j]),q=(0,a.useMemo)(()=>b.filter(e=>"custom"===e.source||e.projectRoot===y).map(e=>({value:e.id,label:"custom"===e.source?e.projectName:e.customizePath||e.projectName||e.id})),[b,y]),L=(0,a.useMemo)(()=>q.filter(e=>P.includes(e.value)),[q,P]),X=null!=(e=R.find(e=>e.value===$))?e:null,D=(0,a.useCallback)(e=>{A(e)},[]),I=(0,a.useCallback)(async()=>{if(0!==L.length&&X){k(!0);try{let e=await (0,l.OX)({promptIds:P,requirement:O,materialRoot:$,...$?{projectName:$}:{},projectRoot:y});if(!e.documentId)throw Error("服务端未返回 documentId");await f.push("/canvas/".concat(encodeURIComponent(e.documentId),"?projectRoot=").concat(encodeURIComponent(y)))}catch(e){x.error(e instanceof Error?e.message:"创建生成任务失败")}finally{k(!1)}}},[L,X,P,O,y,f,x]),B=(0,a.useCallback)(async()=>{if(0!==L.length&&X)try{let e=await (0,l.dk)({promptIds:P,requirement:O,materialRoot:$,...$?{projectName:$}:{},projectRoot:y});z({title:e.title,chapters:e.chapters,outlineSource:e.derivation.outlineSource,materialScope:e.materialScope})}catch(e){x.error(e instanceof Error?e.message:"结构预览失败")}},[L,X,P,O,y,x]);return(0,n.jsxs)("div",{className:"canvasRoot",children:[(0,n.jsx)(s(),{children:(0,n.jsx)("title",{children:g("nav.canvas")})}),(0,n.jsx)("div",{ref:o.containerRef,className:"canvasStage",style:{backgroundImage:"radial-gradient(var(--canvasGridDot) 1px, transparent 1px)",backgroundSize:"".concat(m.VF*o.view.k,"px ").concat(m.VF*o.view.k,"px"),backgroundPosition:"".concat(o.view.x,"px ").concat(o.view.y,"px"),cursor:"grab"},onPointerDown:o.onPointerDown,onPointerMove:o.onPointerMove,onPointerUp:o.endDrag,onPointerLeave:o.endDrag,children:(0,n.jsx)("div",{style:{position:"absolute",inset:0,display:"grid",placeItems:"center",pointerEvents:"none"},children:(0,n.jsxs)("div",{style:{textAlign:"center",maxWidth:420},children:[(0,n.jsx)("div",{style:{fontSize:15,marginBottom:6},children:"新画布"}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)",lineHeight:1.7},children:["还没有节点日志——节点日志是唯一真相源,这里不造占位节点。",(0,n.jsx)("br",{}),"用下方的「+」选择提示词与项目,写下要求后点「生成」,节点会随日志追加而出现。"]})]})})}),(0,n.jsx)(p._,{...y?{projectRoot:y}:{},onSelect:e=>{f.push((0,h.p)(e.id,e.projectRoot||y))},onCurrentDeleted:()=>void 0}),(0,n.jsx)(d._,{value:O,onChange:C,onSend:()=>{I()},generating:!1,submitting:_,disabled:!1,requireGenerationSetup:!0,promptOptions:q,projectOptions:R,selectedPrompts:L,selectedProject:X,onSelectPrompts:M,onSelectProject:D,selectedNode:null,onMentionSelected:()=>void 0,resumable:!1,onContinue:()=>void 0,onPreviewStructure:()=>{B()}}),(0,n.jsx)(v.B,{open:!!N,title:null!=(t=null==N?void 0:N.title)?t:"",chapters:null!=(r=null==N?void 0:N.chapters)?r:[],...(null==N?void 0:N.outlineSource)?{outlineSource:N.outlineSource}:{},...(null==N?void 0:N.materialScope)?{materialScope:N.materialScope}:{},onClose:()=>z(null)})]})}},89857:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"}}},e=>{e.O(0,[310,700,174,243,530,636,593,792],()=>e(e.s=48161)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298],{16403:(e,o,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/documents",function(){return t(19562)}])},19562:(e,o,t)=>{"use strict";t.r(o),t.d(o,{default:()=>u});var n=t(97109),c=t(86109);function u(){let e=(0,c.useRouter)(),o="string"==typeof e.query.id?e.query.id:"",t="string"==typeof e.query.projectRoot?e.query.projectRoot:"";return(0,n.useEffect)(()=>{e.isReady&&e.replace(o?"/canvas/".concat(encodeURIComponent(o)).concat(t?"?projectRoot=".concat(encodeURIComponent(t)):""):"/canvas")},[o,t,e,e.isReady]),null}}},e=>{e.O(0,[636,593,792],()=>e(e.s=16403)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[920],{2548:(e,s,l)=>{"use strict";l.r(s),l.d(s,{default:()=>A});var r=l(65321),t=l(97109),c=l(48399),o=l(11702),a=l(55122),n=l(80300),i=l(68787),d=l(15622),x=l(26619),m=l(71330),h=l(64068),u=l(84742),v=l(4527),j=l(95118),p=l(33555),g=l(64629),f=l(6578),N=l(85310);let{Paragraph:b,Text:w}=c.A,y=[{icon:(0,r.jsx)(x.A,{}),title:"整理项目资料包",goal:"把同一项目的招标正文、清单、图纸、补疑等资料放进同一个项目文件夹,然后在知识库页上传;解析、切片、入库都在后台跑。",checks:["资料已上传","索引完成","可选择项目文件夹"],href:"/knowledge"},{icon:(0,r.jsx)(m.A,{}),title:"准备提示词",goal:'在提示词页维护"这一篇按什么口径、什么章节结构写"的提示词(章节大纲写在 <OUTLINE> 块里)。',checks:["提示词已保存","提示词里有 <OUTLINE> 大纲"],href:"/prompt"},{icon:(0,r.jsx)(h.A,{}),title:"在画布发起生成",goal:"进入画布,用输入框左侧的「+」选中提示词与项目,写下要求后点「生成」;节点随日志追加出现。",checks:["提示词与项目已选中","生成任务已启动","证据来源可追溯"],href:"/canvas"},{icon:(0,r.jsx)(u.A,{}),title:"审查与导出",goal:"先回画布看这次生成跑到哪、证据来自哪、有没有阻断项——导出门禁也在那里判定。确认无误后到生成记录里打开文档,做人工编辑并导出。",checks:["无阻断问题","正文无后台话术","导出结果可打开"],href:"/canvas",secondary:{href:"/documents",label:"去生成记录导出"}}],k=[{title:"招标文件正文",desc:"确定项目边界、响应要求、工期质量安全目标和评审关注点。",color:"blue"},{title:"工程量清单",desc:"确定主要工程内容、分部分项、项目特征、工程量和资源配置依据。",color:"green"},{title:"图纸/设计资料",desc:"确定施工对象、空间关系、构造做法、专业接口和重点难点。",color:"purple"},{title:"补疑/澄清/答疑",desc:"修正招标正文、清单或图纸口径;与原文件冲突时优先采用。",color:"orange"}],C=[{icon:(0,r.jsx)(v.A,{}),title:"自动资料识别",desc:"根据文件名、目录和内容线索识别资料类型。"},{icon:(0,r.jsx)(j.A,{}),title:"项目理解",desc:"建立项目资料包视角,提炼工程范围、招标要求、清单内容、图纸对象和补疑修正项。"},{icon:(0,r.jsx)(p.A,{}),title:"章节证据计划",desc:"不同章节按不同资料组合召回,减少泛化套话和无来源事实。"}];function T(e){let{n:s}=e;return(0,r.jsx)("span",{className:"w-6 h-6 shrink-0 rounded-full bg-[var(--colorBrand)]/10 text-[var(--colorBrand)] text-xs font-bold flex items-center justify-center",children:s})}function A(){let[e,s]=(0,t.useState)(null);return(0,t.useEffect)(()=>{let e=!1;return(async()=>{try{var l,r,t;let c=await (0,f.dx)(),o=(null==(l=c.find(e=>e.selected))?void 0:l.projectRoot)||(null==(r=c.find(e=>e.isCurrent))?void 0:r.projectRoot)||(null==(t=c[0])?void 0:t.projectRoot)||"",[a,n]=await Promise.all([(0,f.cQ)(o||void 0),(0,f.hc)(o||void 0)]);if(e)return;s({kbFileCount:n.fileCount,promptCount:c.filter(e=>e.projectRoot===o&&!1!==e.hasFile).length,recordCount:a.documents.length,completedRecordCount:a.documents.filter(e=>"completed"===e.status||"completed_with_issues"===e.status||"warning"===e.status).length,exportCount:a.documents.reduce((e,s)=>{var l;return e+((null==(l=s.exportReports)?void 0:l.length)||0)},0)})}catch(e){}})(),()=>{e=!0}},[]),(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(N.Zk,{title:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(p.A,{className:"text-[var(--colorAccent)]"})," 使用指南"]}),description:"生成只需要两样人工输入:提示词(这一篇按什么结构、什么口径写)与项目(资料范围来自项目自己的知识库)。系统自动识别招标正文、工程量清单、图纸、补疑、技术规范等资料类型,并基于项目理解生成专业文档。",extra:(0,r.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,r.jsx)(o.A,{color:"blue",bordered:!1,className:"m-0 px-3 py-1",children:"项目资料包"}),(0,r.jsx)(o.A,{color:"green",bordered:!1,className:"m-0 px-3 py-1",children:"自动识别"}),(0,r.jsx)(o.A,{color:"purple",bordered:!1,className:"m-0 px-3 py-1",children:"项目理解"})]})}),(0,r.jsx)(N.Zk,{title:"推荐操作流程",description:"从资料入库到文档导出,按以下四步完成。每步右下角显示当前项目的完成度。",children:(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4",children:y.map((s,l)=>{let t;return(0,r.jsxs)("div",{className:"flex flex-col h-full p-4 ".concat(N.wD),children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 shrink-0 rounded-xl bg-[var(--colorFillSecondary)] text-[var(--colorPrimary)] flex items-center justify-center text-lg",children:s.icon}),(0,r.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,r.jsx)(T,{n:l+1}),(0,r.jsx)("div",{className:"font-semibold text-[var(--colorText)] truncate",children:s.title})]})]}),(0,r.jsx)(b,{className:"text-sm text-[var(--colorTextSecondary)] min-h-[66px] !mb-4",children:s.goal}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.checks.map(e=>(0,r.jsx)(o.A,{className:"m-0",children:e},e))}),(0,r.jsx)(a.A,{className:"!my-3"}),(0,r.jsxs)("div",{className:"mt-auto flex flex-col gap-2",children:[(t=(s=>{if(!e)return{text:"加载中…",level:"todo"};switch(s){case 0:return e.kbFileCount>0?{text:"已入库 ".concat(e.kbFileCount," 份资料文件"),level:"done"}:{text:"尚未上传项目资料",level:"progress"};case 1:return e.promptCount>0?{text:"".concat(e.promptCount," 份提示词可用"),level:"done"}:{text:"尚未准备提示词",level:"todo"};case 2:return e.recordCount>0?{text:"已生成 ".concat(e.completedRecordCount,"/").concat(e.recordCount," 条有效记录"),level:"done"}:{text:"尚无生成记录",level:"todo"};case 3:return e.exportCount>0?{text:"已导出 ".concat(e.exportCount," 次,报告已归档"),level:"done"}:e.completedRecordCount>0?{text:"有生成记录待导出",level:"progress"}:{text:"等待生成记录后导出",level:"todo"};default:return{text:"",level:"todo"}}})(l),(0,r.jsx)(o.A,{color:"done"===t.level?"success":"progress"===t.level?"processing":"default",icon:null===e?(0,r.jsx)(g.A,{spin:!0}):void 0,className:"border-0 m-0",children:t.text})),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,r.jsx)("a",{className:"text-xs font-medium text-[var(--colorPrimary)] hover:underline",href:s.href,children:"去完成 ›"}),s.secondary&&(0,r.jsxs)("a",{className:"text-xs text-[var(--colorTextSecondary)] hover:text-[var(--colorText)] hover:underline",href:s.secondary.href,children:[s.secondary.label," ›"]})]})]})]},s.title)})})}),(0,r.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-5 gap-6",children:[(0,r.jsx)("div",{className:"lg:col-span-2",children:(0,r.jsx)(N.Zk,{title:"项目资料包如何组织",children:(0,r.jsx)(n.A,{className:"mt-1",items:[{color:"blue",children:(0,r.jsxs)("div",{children:[(0,r.jsx)(w,{strong:!0,children:"一个项目一个文件夹"}),(0,r.jsx)(b,{className:"!mb-0 text-sm text-[var(--colorTextSecondary)]",children:"例如“徽光阁项目/”,在画布上选中它即可。"})]})},{color:"green",children:(0,r.jsxs)("div",{children:[(0,r.jsx)(w,{strong:!0,children:"资料集中放置"}),(0,r.jsx)(b,{className:"!mb-0 text-sm text-[var(--colorTextSecondary)]",children:"招标正文、清单、图纸、补疑、技术规范等资料放在同一个资料包下。"})]})},{color:"purple",children:(0,r.jsxs)("div",{children:[(0,r.jsx)(w,{strong:!0,children:"系统自动理解"}),(0,r.jsx)(b,{className:"!mb-0 text-sm text-[var(--colorTextSecondary)]",children:"生成前构建项目资料画像和项目理解模型。"})]})}]})})}),(0,r.jsx)("div",{className:"lg:col-span-3",children:(0,r.jsx)(N.Zk,{title:"关键资料职责",children:(0,r.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:k.map(e=>(0,r.jsxs)("div",{className:"p-4 ".concat(N.wD),children:[(0,r.jsx)(o.A,{color:e.color,bordered:!1,className:"m-0 mb-2",children:e.title}),(0,r.jsx)(b,{className:"!mb-0 text-sm text-[var(--colorTextSecondary)]",children:e.desc})]},e.title))})})})]}),(0,r.jsx)(N.Zk,{title:"生成链路说明",description:"这三件事在后台把「资料」变成「可写的证据」,是文档不写空话的来源。",children:(0,r.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:C.map((e,s)=>(0,r.jsxs)("div",{className:"p-4 ".concat(N.wD),children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,r.jsx)("div",{className:"w-9 h-9 shrink-0 rounded-xl bg-[var(--colorFillSecondary)] text-[var(--colorPrimary)] flex items-center justify-center",children:e.icon}),(0,r.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,r.jsx)(T,{n:s+1}),(0,r.jsx)(w,{strong:!0,className:"truncate",children:e.title})]})]}),(0,r.jsx)(b,{className:"!mb-0 text-sm text-[var(--colorTextSecondary)]",children:e.desc})]},e.title))})}),(0,r.jsx)(i.A,{className:"rounded-2xl border border-[var(--borderColor)]",styles:{body:{padding:0}},children:(0,r.jsx)(d.A,{ghost:!0,items:[{key:"binding",label:"生成需要准备什么?",children:(0,r.jsxs)(b,{className:"!mb-0",children:["两样:一份带 ",(0,r.jsx)(w,{code:!0,children:"<OUTLINE>"})," 章节大纲的提示词,和一个项目。资料职责由系统自动识别,选中的项目自己的知识库就是本次的资料范围。"]})},{key:"addendum",label:"补疑/澄清如何处理?",children:(0,r.jsx)(b,{className:"!mb-0",children:"补疑、澄清、答疑属于高优先级资料。如与招标正文、清单或图纸存在冲突,生成时优先采用补疑/澄清口径。"})},{key:"quality",label:"专业性如何保证?",children:(0,r.jsx)(b,{className:"!mb-0",children:"生成链路会结合项目理解、章节证据计划、结构化事实、质量审查和导出门禁,减少泛化套话和无来源事实。"})},{key:"review",label:"生成完在哪里看结果、在哪里导出?",children:(0,r.jsxs)(b,{className:"!mb-0",children:["分两处:",(0,r.jsx)(w,{strong:!0,children:"审查在画布"}),"——节点日志、证据来源、阻断项与导出门禁结论都在那里;",(0,r.jsx)(w,{strong:!0,children:"编辑与导出在生成记录"}),"——打开某条记录即可人工修改正文并导出 MD/HTML/DOCX/PDF。"]})}]})})]})}},34899:(e,s,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/guide",function(){return l(2548)}])},85310:(e,s,l)=>{"use strict";l.d(s,{Zk:()=>c,dh:()=>o,wD:()=>t});var r=l(65321);l(97109);let t="rounded-xl bg-[var(--colorBgContainer)] shadow-[var(--shadowSurface)] hover:shadow-[var(--shadowSurfaceHover)] transition-shadow";function c(e){let{title:s,count:l,description:t,extra:c,className:o,children:a}=e;return(0,r.jsxs)("section",{className:"rounded-2xl bg-[var(--colorBgContainer)] shadow-[var(--shadowSurface)] p-6 animateFadeIn ".concat(null!=o?o:""),children:[(0,r.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start justify-between gap-3 mb-5",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("h2",{className:"text-base font-semibold text-[var(--colorText)] tracking-wide flex items-center gap-2 m-0",children:[s,void 0!==l&&(0,r.jsx)("span",{className:"text-[var(--colorTextTertiary)] font-normal text-sm",children:l})]}),t&&(0,r.jsx)("p",{className:"text-xs text-[var(--colorTextTertiary)] mt-1.5 mb-0 leading-relaxed max-w-3xl",children:t})]}),c]}),a]})}function o(e){let{children:s}=e;return(0,r.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wider mb-2 text-[var(--colorTextTertiary)]",children:s})}}},e=>{e.O(0,[914,569,787,269,636,593,792],()=>e(e.s=34899)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[309],{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,l,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/file-detail",function(){return t(48200)}])},45551:(e,l,t)=>{"use strict";function r(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 n(e){let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN",t=Math.max(0,Math.floor(e)),r=Math.floor(t/86400),n=Math.floor(t%86400/3600),a=Math.floor(t%3600/60),o="en-US"===l;return r>0?o?"".concat(r,"d ").concat(n,"h"):"".concat(r," 天 ").concat(n," 小时"):n>0?o?"".concat(n,"h ").concat(a,"m"):"".concat(n," 小时 ").concat(a," 分"):a>0?o?"".concat(a,"m"):"".concat(a," 分"):o?"Just now":"刚刚"}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),r=Math.floor(t/60),n=Math.floor(r/24);return n>30?new Date(e).toLocaleDateString(l):"en-US"===l?n>0?"".concat(n,"d ago"):r>0?"".concat(r,"h ago"):t>0?"".concat(t,"m ago"):"Just now":n>0?"".concat(n," 天前"):r>0?"".concat(r," 小时前"):t>0?"".concat(t," 分钟前"):"刚刚"}t.d(l,{Jm:()=>i,a3:()=>n,fw:()=>a,mc:()=>d,z3:()=>r});let o={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 l;let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(l=("en-US"===t?s:o)[e])?l:e}let d={active:"common.statusIndexed",outdated:"common.statusOutdated",error:"common.statusAbnormal",deleted:"common.statusDeleted",disk:"common.statusNotIndexed"}},48200:(e,l,t)=>{"use strict";t.r(l),t.d(l,{default:()=>M});var r=t(65321),n=t(97109),a=t(1873),o=t.n(a),s=t(86109),i=t(48399),d=t(76506),c=t(33442),u=t(11702),m=t(9137),g=t(21289),h=t(68787),p=t(56985),x=t(49604),w=t(88762),f=t(85493),k=t(84253),y=t(85114),b=t(58569),v=t(7576),_=t(47210),j=t(6578),A=t(85587),C=t(45551),N=t(14569),S=t.n(N),P=t(58690);let{Paragraph:I}=i.A;function z(e){if(!e)return{};try{return JSON.parse(e)}catch(e){return{}}}function T(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).slice(0,30):[]}function F(e,l){let t=l.trim()?[l.trim(),...l.split(/[\s,,。;;::、]+/u)].filter(Boolean).sort((e,l)=>l.length-e.length):[];if(0===t.length)return e;let n=RegExp("(".concat(t.map(e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")).join("|"),")"),"giu");return e.split(n).map((e,l)=>t.some(l=>l.toLowerCase()===e.toLowerCase())?(0,r.jsx)("mark",{children:e},l):e)}function R(e,l,t){return null==l||""===l||Array.isArray(l)&&0===l.length?null:(0,r.jsx)(d.A.Item,{label:e,children:Array.isArray(l)?(0,r.jsx)(c.A,{wrap:!0,children:l.map(e=>(0,r.jsx)(u.A,{className:"cursor-pointer",onClick:()=>null==t?void 0:t(String(e)),children:String(e)},String(e)))}):String(l)})}function L(e){let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value";return e.map((e,t)=>({key:"".concat(l,"-").concat(t),name:e}))}function M(){var e,l,t,a,i;let N=(0,A.Vr)(),M=(0,s.useRouter)(),B="string"==typeof M.query.relativePath?M.query.relativePath:"",[D,E]=(0,n.useState)(),[O,J]=(0,n.useState)(!1),[K,H]=(0,n.useState)(""),[V,U]=(0,n.useState)(!1),[G,W]=(0,n.useState)(""),[X,q]=(0,n.useState)([]);(0,n.useEffect)(()=>{B&&(J(!0),H(""),(0,j.xC)(B).then(E).catch(e=>{E(void 0),H(e instanceof Error?e.message:N("knowledge.fileDetailLoadFailed"))}).finally(()=>J(!1)))},[B,N]);let $=(0,n.useMemo)(()=>(function(e){let l=z(null==e?void 0:e.file.metadataJson);return"object"==typeof l.extraction&&l.extraction?l.extraction:l})(D),[D]),Q=T($.layerNames);(0,n.useEffect)(()=>{q(Q)},[null==D?void 0:D.file.relativePath,Q.join("|")]);let Z=G.trim().toLowerCase(),Y=(0,n.useMemo)(()=>{var e;return D&&Z?D.chunks.filter(e=>{let l=z(e.metadataJson);return[e.content,e.sectionTitle,l.rowRange,l.chunkKind,l.parentId,JSON.stringify(l)].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))}):null!=(e=null==D?void 0:D.chunks)?e:[]},[D,Z]),ee=(0,n.useMemo)(()=>{var e;return D&&Z?D.parents.filter(e=>[e.content,e.sectionTitle,e.parentId,e.metadataJson].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))):null!=(e=null==D?void 0:D.parents)?e:[]},[D,Z]),el=async()=>{if(B){U(!0);try{let e=await (0,j.HC)(B);e.detail&&E(e.detail),m.Ay.success(N("knowledge.fileReindexed"))}finally{U(!1)}}},et=async e=>{e&&(await navigator.clipboard.writeText(e),m.Ay.success(N("knowledge.copied")))},er=async e=>{B&&(await (0,j.tn)(B,e),m.Ay.success("file"===e?N("knowledge.openFileRequested"):N("knowledge.openDirectoryRequested")))},en=(0,n.useMemo)(()=>{var e,l,t,n,a,s;let i=[],m=T($.sheetNames),w=T($.columnNames),f=T($.layerNames),k=T($.blockNames),y=T($.entityTypes),b=T($.productNames),v=T($.materialNames),_=T($.entityNames),j=T($.dataPaths),A=m.length>0||w.length>0||null!=$.rowCount||null!=$.columnCount||null!=$.formulaCount||null!=$.mergeCount,C=L(w,"column"),F=(null!=(e=null==D?void 0:D.chunks)?e:[]).map(e=>z(e.metadataJson).rowRange).filter(e=>"string"==typeof e).map((e,l)=>({key:"row-".concat(l),name:e})),M=(null!=(l=null==D?void 0:D.chunks)?l:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>e.includes("|")).slice(0,80).map((e,l)=>({key:"grid-".concat(l),cells:e.split("|").map(e=>e.trim()).filter(Boolean)}));(A||C.length>0||F.length>0||M.length>0)&&i.push({key:"table",label:N("knowledge.table"),children:(0,r.jsxs)("div",{className:"flex flex-col w-full gap-4",children:[A&&(0,r.jsxs)(d.A,{size:"small",column:2,bordered:!0,children:[R(N("knowledge.sheet"),m,W),R(N("knowledge.header"),w,W),R(N("knowledge.rows"),$.rowCount),R(N("knowledge.columns"),$.columnCount),R(N("knowledge.formulaCount"),$.formulaCount),R(N("knowledge.mergeCount"),$.mergeCount)]}),C.length>0&&(0,r.jsx)(g.A,{size:"small",pagination:(0,P.B)(N),rowKey:"key",dataSource:C,columns:[{title:N("knowledge.columnName"),dataIndex:"name",render:e=>(0,r.jsx)(u.A,{className:"cursor-pointer m-0 border-0 bg-[var(--colorFillSecondary)] hover:bg-[var(--colorFillAlter)]",onClick:()=>W(String(e)),children:String(e)})}],className:"custom-table border border-[var(--borderColor)] rounded-xl overflow-hidden"}),F.length>0&&(0,r.jsx)(g.A,{size:"small",pagination:(0,P.B)(N),rowKey:"key",dataSource:F,columns:[{title:N("knowledge.rowRange"),dataIndex:"name",render:e=>(0,r.jsxs)(u.A,{color:"gold",className:"cursor-pointer m-0 border-0",onClick:()=>W(String(e)),children:[N("knowledge.rowPrefix")," ",String(e)]})}],className:"custom-table border border-[var(--borderColor)] rounded-xl overflow-hidden"}),M.length>0&&(0,r.jsx)(g.A,{size:"small",rowKey:"key",dataSource:M,pagination:{pageSize:10},columns:[{title:N("knowledge.tableGridPreview"),dataIndex:"cells",render:e=>(0,r.jsx)(c.A,{wrap:!0,children:e.map((e,l)=>(0,r.jsx)(u.A,{className:"m-0 border-0 bg-[var(--colorFillSecondary)]",children:e},"".concat(e,"-").concat(l)))})}],className:"custom-table border border-[var(--borderColor)] rounded-xl overflow-hidden"})]})});let B=f.length>0||k.length>0||y.length>0||b.length>0||v.length>0||_.length>0,E=[...L(f,"layer").map(e=>({...e,type:N("knowledge.layer")})),...L(y,"entity").map(e=>({...e,type:N("knowledge.entityType")})),...L(k,"block").map(e=>({...e,type:N("knowledge.blockSymbol")}))];(B||f.length>0||E.length>0)&&i.push({key:"drawing",label:N("knowledge.drawing"),children:(0,r.jsxs)("div",{className:"flex flex-col w-full gap-4",children:[B&&(0,r.jsxs)(d.A,{size:"small",column:2,bordered:!0,children:[R(N("knowledge.layer"),f,W),R(N("knowledge.blockSymbol"),k,W),R(N("knowledge.entityType"),y,W),R(N("knowledge.productPart"),b,W),R(N("knowledge.material"),v,W),R(N("knowledge.entityName"),_,W)]}),f.length>0&&(0,r.jsxs)(h.A,{size:"small",title:N("knowledge.layerTogglePreview"),className:"rounded-xl border-[var(--borderColor)]",children:[(0,r.jsx)(p.A.Group,{value:X,options:f.map(e=>({label:e,value:e})),onChange:e=>q(e.map(String))}),(0,r.jsx)("div",{className:S().drawingPreview,children:X.map(e=>(0,r.jsx)(u.A,{color:"blue",children:e},e))})]}),E.length>0&&(0,r.jsx)(g.A,{size:"small",pagination:(0,P.B)(N),rowKey:"key",dataSource:E,columns:[{title:N("knowledge.type"),dataIndex:"type",width:120},{title:N("knowledge.name"),dataIndex:"name",render:e=>(0,r.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})}],className:"custom-table border border-[var(--borderColor)] rounded-xl overflow-hidden"})]})});let O=(null!=(t=null==D?void 0:D.chunks)?t:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>/^[\w.[\]-]+\s*[:=]/u.test(e)).slice(0,200).map((e,l)=>{var t,r,n,a;let o=/^([^:=]+)\s*[:=]\s*(.*)$/u.exec(e);return{key:"data-".concat(l),path:null!=(n=null==o||null==(t=o[1])?void 0:t.trim())?n:e,value:null!=(a=null==o||null==(r=o[2])?void 0:r.trim())?a:""}});(j.length>0||O.length>0)&&i.push({key:"data",label:N("knowledge.dataPath"),children:(0,r.jsxs)("div",{className:"flex flex-col w-full gap-4",children:[j.length>0&&(0,r.jsx)("div",{className:"bg-[var(--colorFillAlter)] border border-[var(--colorBorderSecondary)] rounded-xl p-3",children:(0,r.jsx)(x.A,{defaultExpandAll:!0,treeData:function(e){let l=new Map;for(let t of e){let e=l;for(let l of t.replace(/\[(\d+)\]/gu,".$1").split(".").filter(Boolean))e.has(l)||e.set(l,new Map),e=e.get(l)}let t=function(e){let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return[...e.entries()].map(e=>{let[r,n]=e;return{title:r,key:l?"".concat(l,".").concat(r):r,children:t(n,l?"".concat(l,".").concat(r):r)}})};return t(l)}(j),onSelect:e=>{var l;return W(String(null!=(l=e[0])?l:""))},className:"bg-transparent"})}),O.length>0&&(0,r.jsx)(g.A,{size:"small",rowKey:"key",dataSource:O,pagination:{pageSize:20},columns:[{title:N("knowledge.path"),dataIndex:"path",width:260,render:e=>(0,r.jsx)(u.A,{className:"cursor-pointer",onClick:()=>W(String(e)),children:String(e)})},{title:N("knowledge.value"),dataIndex:"value",render:e=>(0,r.jsx)("span",{className:"break-all",children:String(e)})}],className:"custom-table border border-[var(--borderColor)] rounded-xl overflow-hidden"})]})});let J=[$.ocrRecommended,$.ocrReason,$.ocrProvider,$.ocrLanguages,$.ocrTextLength,$.pdfPageOcrSupported,$.ocrPageCount,$.pdfOcrPageLimit,$.pdfRenderer,$.pdfPageCount,$.textPages,$.ocrAugmented,$.ocrPages,$.failedPages,$.imagePreprocessor].some(e=>null!=e),K=(null!=(n=null==D?void 0:D.chunks)?n:[]).map(e=>e.content).join("\n\n").split(/PDF OCR 第\s*(\d+)\s*页[::]/u).slice(1).reduce((e,l,t,r)=>{var n,a,o;return t%2==0&&e.push({key:"page-".concat(l),page:l,text:null!=(o=null==(a=r[t+1])||null==(n=a.split(/PDF OCR 第\s*\d+\s*页[::]/u)[0])?void 0:n.trim())?o:""}),e},[]),H=(null==D?void 0:D.file.format)==="pdf";return(J||H||K.length>0)&&i.push({key:"ocr",label:N("knowledge.ocrPdf"),children:(0,r.jsxs)("div",{className:"flex flex-col w-full gap-4",children:[J&&(0,r.jsxs)(d.A,{size:"small",column:2,bordered:!0,children:[R(N("knowledge.ocrRecommended"),$.ocrRecommended),R(N("knowledge.ocrReason"),$.ocrReason),R(N("knowledge.ocrProvider"),$.ocrProvider),R(N("knowledge.ocrLanguages"),$.ocrLanguages),R(N("knowledge.ocrTextLength"),$.ocrTextLength),R(N("knowledge.pdfPageCount"),$.pdfPageCount),R(N("knowledge.pdfTextPages"),$.textPages),R(N("knowledge.pdfOcrAugmented"),$.ocrAugmented),R(N("knowledge.pdfOcrPages"),Array.isArray($.ocrPages)?$.ocrPages.join(", "):$.ocrPages),R(N("knowledge.pdfFailedPages"),Array.isArray($.failedPages)?$.failedPages.map(e=>JSON.stringify(e)).join("; "):$.failedPages),R(N("knowledge.pdfPageOcrSupported"),$.pdfPageOcrSupported),R(N("knowledge.pdfOcrPageCount"),$.ocrPageCount),R(N("knowledge.pdfOcrPageLimit"),$.pdfOcrPageLimit),R(N("knowledge.pdfRenderer"),$.pdfRenderer),R(N("knowledge.imagePreprocessor"),$.imagePreprocessor)]}),H&&(0,r.jsx)("div",{className:S().pdfPreviewStrip,children:Array.from({length:Math.min(Number(null!=(s=null!=(a=$.pdfPageCount)?a:$.ocrPageCount)?s:1)||1,6)},(e,l)=>(0,r.jsx)(o(),{width:220,height:320,src:"/api/kb/files/preview-pdf-page?relativePath=".concat(encodeURIComponent(D.file.relativePath),"&page=").concat(l+1),alt:"PDF ".concat(N("knowledge.pageNumber")," ").concat(l+1),unoptimized:!0,className:"border border-[var(--borderColor)] rounded object-cover"},l))}),K.length>0&&(0,r.jsx)(g.A,{size:"small",rowKey:"key",dataSource:K,pagination:{pageSize:10},columns:[{title:N("knowledge.pageNumber"),dataIndex:"page",width:90},{title:N("knowledge.ocrText"),dataIndex:"text",render:e=>(0,r.jsx)(I,{ellipsis:{rows:4,expandable:!0,symbol:N("knowledge.openExpand")},children:String(e)})}],className:"custom-table border border-[var(--borderColor)] rounded-xl overflow-hidden"})]})}),i},[$,D,X]),ea=[{title:N("knowledge.index"),key:"index",width:70,render:(e,l,t)=>t+1},{title:N("knowledge.chunkIndex"),dataIndex:"chunkIndex",width:90,render:e=>String(e)},{title:N("knowledge.chunkType"),width:110,render:(e,l)=>{var t;return(0,r.jsx)(u.A,{children:String(null!=(t=z(l.metadataJson).chunkKind)?t:l.category)})}},{title:N("knowledge.sectionOrRange"),width:220,render:(e,l)=>{let t=z(l.metadataJson),n="string"==typeof t.rowRange?t.rowRange:void 0;return(0,r.jsxs)(c.A,{wrap:!0,children:[l.sectionTitle?(0,r.jsx)(u.A,{color:"cyan",children:l.sectionTitle}):null,n?(0,r.jsxs)(u.A,{color:"gold",children:[N("knowledge.rowPrefix")," ",n]}):null]})}},{title:N("knowledge.tokens"),dataIndex:"tokenCount",width:90},{title:N("knowledge.chunkContent"),render:(e,l)=>(0,r.jsx)(I,{ellipsis:{rows:3,expandable:!0,symbol:N("knowledge.openExpand")},className:S().searchContent,children:F(l.content,G)})}],eo=[{title:N("knowledge.index"),key:"index",width:70,render:(e,l,t)=>t+1},{title:N("knowledge.parentChunkId"),dataIndex:"parentId",width:260,render:e=>(0,r.jsx)("span",{className:"break-all",children:e})},{title:N("knowledge.chunkCount"),dataIndex:"chunkCount",width:90},{title:N("knowledge.section"),dataIndex:"sectionTitle",width:220},{title:N("knowledge.chunkContent"),render:(e,l)=>(0,r.jsx)(I,{ellipsis:{rows:3,expandable:!0,symbol:N("knowledge.openExpand")},className:S().searchContent,children:F(l.content,G)})}];return O?(0,r.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,r.jsx)(w.A,{active:!0,paragraph:{rows:1}}),(0,r.jsx)(h.A,{size:"small",children:(0,r.jsx)(w.A,{active:!0,paragraph:{rows:6}})}),(0,r.jsx)(h.A,{size:"small",children:(0,r.jsx)(w.A,{active:!0,paragraph:{rows:4}})})]}):K?(0,r.jsx)(f.A,{type:"error",showIcon:!0,description:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{children:N("knowledge.fileDetailLoadFailed")}),(0,r.jsx)("div",{children:K})]})}):D?(0,r.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,r.jsx)("div",{className:"bg-[var(--colorBgContainer)] rounded-2xl overflow-hidden border border-[var(--borderColor)] p-6 mb-6",children:(0,r.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-6",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(y.Ay,{icon:(0,r.jsx)(_.A,{}),href:"/knowledge",type:"link",className:"p-0 mr-4 text-[var(--colorTextSecondary)] hover:text-[var(--colorText)] flex items-center h-auto",children:N("knowledge.backToFileList")}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-[var(--colorText)] mb-1 flex items-center gap-2",children:N("knowledge.fileDetailTitle")}),(0,r.jsx)("p",{className:"text-sm text-[var(--colorTextSecondary)] m-0",children:N("knowledge.fileDetailDesc")})]})]}),(0,r.jsxs)(c.A,{wrap:!0,className:"shrink-0",children:[(0,r.jsx)(y.Ay,{size:"small",onClick:()=>{et(null==D?void 0:D.absolutePath)},children:N("knowledge.copySourcePath")}),(0,r.jsx)(y.Ay,{size:"small",onClick:()=>{et(null==D?void 0:D.directory)},children:N("knowledge.copyDirectory")}),(0,r.jsx)(y.Ay,{size:"small",onClick:()=>{er("file")},children:N("assets.openFile")}),(0,r.jsx)(y.Ay,{size:"small",onClick:()=>{er("directory")},children:N("assets.openDirectory")}),"pdf"===D.file.format?(0,r.jsx)(y.Ay,{size:"small",loading:V,onClick:()=>{el()},children:N("knowledge.reOcr")}):null,(0,r.jsx)(y.Ay,{size:"small",type:"primary",loading:V,onClick:()=>{el()},children:N("knowledge.reindexFile")})]})]})}),(0,r.jsx)(h.A,{size:"small",className:"rounded-2xl border-[var(--borderColor)]",title:(0,r.jsx)("span",{className:"font-semibold",children:N("knowledge.basicInfo")}),children:(0,r.jsxs)(d.A,{size:"small",column:{xxl:3,xl:2,lg:2,md:1,sm:1,xs:1},bordered:!0,styles:{label:{width:"120px",background:"var(--colorFillAlter)",color:"var(--colorTextSecondary)"}},children:[(0,r.jsx)(d.A.Item,{label:N("knowledge.path"),span:3,children:(0,r.jsx)("span",{className:"break-all",children:D.file.relativePath})}),(0,r.jsx)(d.A.Item,{label:N("knowledge.originalFile"),span:3,children:(0,r.jsx)("span",{className:"break-all",children:null!=(e=D.absolutePath)?e:"-"})}),(0,r.jsx)(d.A.Item,{label:N("knowledge.directory"),span:3,children:(0,r.jsx)("span",{className:"break-all",children:null!=(l=D.directory)?l:"-"})}),(0,r.jsx)(d.A.Item,{label:N("knowledge.fileCategory"),children:(0,r.jsxs)(c.A,{size:4,children:[(0,r.jsx)(u.A,{className:"m-0 border-0 bg-[var(--colorFillSecondary)]",children:(0,C.Jm)(D.file.category)})," ",(0,r.jsx)(u.A,{className:"m-0 border-0 bg-[var(--colorFillSecondary)]",children:D.file.format})]})}),(0,r.jsx)(d.A.Item,{label:N("knowledge.fileSize"),children:(0,C.z3)(D.file.fileSize)}),(0,r.jsx)(d.A.Item,{label:N("knowledge.chunkCount"),children:D.file.chunkCount}),(0,r.jsx)(d.A.Item,{label:N("knowledge.status"),children:(0,r.jsx)(u.A,{color:"active"===D.file.status?"success":"error"===D.file.status?"error":"outdated"===D.file.status?"warning":"disk"===D.file.status||"deleted"===D.file.status?"default":"processing",className:"m-0",children:N(C.mc[D.file.status]||"common.unknown")})}),(0,r.jsx)(d.A.Item,{label:N("knowledge.extractionMode"),children:String(null!=(t=$.extractionMode)?t:"-")}),(0,r.jsx)(d.A.Item,{label:N("knowledge.contentCoverage"),children:String(null!=(a=$.contentCoverage)?a:"-")}),(0,r.jsx)(d.A.Item,{label:N("knowledge.textLength"),children:String(null!=(i=$.textLength)?i:"-")})]})}),en.length>0&&(0,r.jsx)(h.A,{size:"small",className:"rounded-2xl border-[var(--borderColor)]",title:(0,r.jsx)("span",{className:"font-semibold",children:N("knowledge.structuredInfo")}),children:(0,r.jsx)(b.A,{items:en,className:"documents-tabs"})}),(0,r.jsx)(h.A,{size:"small",className:"rounded-2xl border-[var(--borderColor)]",title:(0,r.jsx)("span",{className:"font-semibold",children:N("knowledge.detailFilter")}),children:(0,r.jsxs)("div",{className:"flex flex-col w-full gap-4",children:[(0,r.jsx)(v.A,{allowClear:!0,size:"large",value:G,onChange:e=>W(e.target.value),placeholder:N("knowledge.detailFilterPlaceholder"),className:"rounded-xl bg-[var(--colorBgHover)] border-[var(--borderColor)] focus:bg-[var(--colorBgContainer)] hover:bg-[var(--colorBgContainer)] w-full"}),G?(0,r.jsxs)("div",{className:"flex flex-wrap gap-2 items-center bg-[var(--colorFillAlter)] p-3 rounded-xl border border-[var(--colorBorderSecondary)]",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-[var(--colorTextSecondary)] mr-2",children:"过滤结果:"}),(0,r.jsxs)(u.A,{color:"blue",className:"m-0 border-0",children:[N("knowledge.parentMatches")," ",ee.length]}),(0,r.jsxs)(u.A,{color:"green",className:"m-0 border-0",children:[N("knowledge.childMatches")," ",Y.length]}),(0,r.jsx)("div",{className:"w-[1px] h-3 bg-[var(--colorBorderSecondary)] mx-1"}),(0,r.jsxs)("span",{className:"text-xs text-[var(--colorTextTertiary)]",children:[N("knowledge.filterTerm")," ",(0,r.jsx)("strong",{className:"text-[var(--colorText)]",children:G})]})]}):null]})}),(0,r.jsxs)(h.A,{size:"small",className:"rounded-2xl border-[var(--borderColor)]",title:(0,r.jsxs)("span",{className:"font-semibold",children:[N("knowledge.parentChunks")," ",(0,r.jsxs)(u.A,{className:"ml-2 border-0 bg-[var(--colorFillSecondary)] text-xs font-normal",children:[ee.length," / ",D.parents.length]})]}),children:[(0,r.jsx)(f.A,{type:"info",showIcon:!0,description:N("knowledge.parentChunkHint"),className:"mb-4 rounded-xl border-blue-200 bg-blue-50/50"}),(0,r.jsx)(g.A,{rowKey:"id",columns:eo,dataSource:ee,pagination:{pageSize:10},size:"small",className:"custom-table"})]}),(0,r.jsx)(h.A,{size:"small",className:"rounded-2xl border-[var(--borderColor)]",title:(0,r.jsxs)("span",{className:"font-semibold",children:[N("knowledge.childChunks")," ",(0,r.jsxs)(u.A,{className:"ml-2 border-0 bg-[var(--colorFillSecondary)] text-xs font-normal",children:[Y.length," / ",D.chunks.length]})]}),children:(0,r.jsx)(g.A,{rowKey:"id",columns:ea,dataSource:Y,pagination:{pageSize:20},size:"small",className:"custom-table"})})]}):(0,r.jsx)(k.A,{description:N("knowledge.selectFile")})}},58690:(e,l,t)=>{"use strict";function r(e){var l,t,r;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{pageSize:null!=(l=n.pageSize)?l:10,pageSizeOptions:null!=(t=n.pageSizeOptions)?t:[10,20,50,100],showSizeChanger:!0,showTotal:l=>{var t,r;return e(null!=(t=n.totalLabelKey)?t:"common.totalRows",null!=(r=n.totalLabelFallback)?r:"共 {count} 条").replace("{count}",String(l))},hideOnSinglePage:null!=(r=n.hideOnSinglePage)&&r,showQuickJumper:!1}}t.d(l,{B:()=>r})}},e=>{e.O(0,[310,700,914,174,189,289,569,787,506,850,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],{45505:(e,u,n)=>{"use strict";n.r(u),n.d(u,{default:()=>s});var _=n(97109),l=n(86109);function s(){let e=(0,l.useRouter)();return(0,_.useEffect)(()=>{e.replace("/knowledge")},[e]),null}},90426:(e,u,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/files",function(){return n(45505)}])}},e=>{e.O(0,[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],{54178:(e,n,u)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/manage",function(){return u(87277)}])},87277:(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")},[e]),null}}},e=>{e.O(0,[636,593,792],()=>e(e.s=54178)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[12],{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"}},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"}},26619:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var a=r(97109),l=r(1611),n=r(88483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let s=a.forwardRef((e,t)=>a.createElement(n.A,i({},e,{ref:t,icon:l.A})))},26631:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var a=r(97109),l=r(12887),n=r(88483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let s=a.forwardRef((e,t)=>a.createElement(n.A,i({},e,{ref:t,icon:l.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"}},35311:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M456 231a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"more",theme:"outlined"}},45551:(e,t,r)=>{"use strict";function a(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),r=e/Math.pow(1024,t);return"".concat(r.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN",r=Math.max(0,Math.floor(e)),a=Math.floor(r/86400),l=Math.floor(r%86400/3600),n=Math.floor(r%3600/60),i="en-US"===t;return a>0?i?"".concat(a,"d ").concat(l,"h"):"".concat(a," 天 ").concat(l," 小时"):l>0?i?"".concat(l,"h ").concat(n,"m"):"".concat(l," 小时 ").concat(n," 分"):n>0?i?"".concat(n,"m"):"".concat(n," 分"):i?"Just now":"刚刚"}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 r=Math.floor(Math.floor((Date.now()-e)/1e3)/60),a=Math.floor(r/60),l=Math.floor(a/24);return l>30?new Date(e).toLocaleDateString(t):"en-US"===t?l>0?"".concat(l,"d ago"):a>0?"".concat(a,"h ago"):r>0?"".concat(r,"m ago"):"Just now":l>0?"".concat(l," 天前"):a>0?"".concat(a," 小时前"):r>0?"".concat(r," 分钟前"):"刚刚"}r.d(t,{Jm:()=>o,a3:()=>l,fw:()=>n,mc:()=>c,z3:()=>a});let i={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 t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===r?s:i)[e])?t:e}let c={active:"common.statusIndexed",outdated:"common.statusOutdated",error:"common.statusAbnormal",deleted:"common.statusDeleted",disk:"common.statusNotIndexed"}},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"}},54746:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var a=r(97109),l=r(71242),n=r(88483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let s=a.forwardRef((e,t)=>a.createElement(n.A,i({},e,{ref:t,icon:l.A})))},56398:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 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:"download",theme:"outlined"}},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"}},58690:(e,t,r)=>{"use strict";function a(e){var t,r,a;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{pageSize:null!=(t=l.pageSize)?t:10,pageSizeOptions:null!=(r=l.pageSizeOptions)?r:[10,20,50,100],showSizeChanger:!0,showTotal:t=>{var r,a;return e(null!=(r=l.totalLabelKey)?r:"common.totalRows",null!=(a=l.totalLabelFallback)?a:"共 {count} 条").replace("{count}",String(t))},hideOnSinglePage:null!=(a=l.hideOnSinglePage)&&a,showQuickJumper:!1}}r.d(t,{B:()=>a})},61825:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var a=r(97109),l=r(30289),n=r(88483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let s=a.forwardRef((e,t)=>a.createElement(n.A,i({},e,{ref:t,icon:l.A})))},71242:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"}},74183:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge",function(){return r(84607)}])},76830:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var a=r(97109),l=r(56398),n=r(88483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let s=a.forwardRef((e,t)=>a.createElement(n.A,i({},e,{ref:t,icon:l.A})))},84607:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>ei});var a=r(65321),l=r(97109),n=r(85587),i=r(43220),s=r.n(i),o=r(86109),c=r(17807),d=r(25258),u=r(11702),h=r(71102),f=r(85114),m=r(7576),p=r(57271),g=r(33442),v=r(21289),x=r(56768),y=r(48893),b=r(88483);function w(){return(w=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let j=l.forwardRef((e,t)=>l.createElement(b.A,w({},e,{ref:t,icon:y.A})));var _=r(13067);function z(){return(z=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let A=l.forwardRef((e,t)=>l.createElement(b.A,z({},e,{ref:t,icon:_.A})));var k=r(58520);function C(){return(C=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let S=l.forwardRef((e,t)=>l.createElement(b.A,C({},e,{ref:t,icon:k.A})));var M=r(90939);function P(){return(P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let O=l.forwardRef((e,t)=>l.createElement(b.A,P({},e,{ref:t,icon:M.A})));var H=r(53234);function N(){return(N=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let E=l.forwardRef((e,t)=>l.createElement(b.A,N({},e,{ref:t,icon:H.A})));var V=r(61825),B=r(26619),F=r(7225),I=r(26631),L=r(64254),T=r(64629),R=r(58209),D=r(35311);function q(){return(q=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}let U=l.forwardRef((e,t)=>l.createElement(b.A,q({},e,{ref:t,icon:D.A})));var J=r(30486),Q=r(54746),X=r(58740),W=r(38762),K=r(76830),G=r(39219),$=r(22931),Z=r(6578),Y=r(45551),ee=r(14569),et=r.n(ee),er=r(58690);let ea=["document","spreadsheet","image","cad","code","data","web","diagram","archive","other"],el=/\.(zip|jar|war|apk|tar|gz|tgz|bz2|rar|7z)$/iu,en=/(^|\/)\.DS_Store$|(^|\/)Thumbs\.db$|(^|\/)__MACOSX\/|\.bak$/iu;function ei(){var e,t,r;let i=(0,n.Vr)("knowledge"),{locale:y}=(0,n.x_)(),{message:b}=c.A.useApp(),w=(0,o.useRouter)(),_="string"==typeof w.query.category?w.query.category:"",{stats:z,reload:k}=function(){let[e,t]=(0,l.useState)(null),[r,a]=(0,l.useState)(!1),n=(0,l.useCallback)(async()=>{a(!0);try{t(await (0,Z.hc)())}catch(e){}finally{a(!1)}},[]);return(0,l.useEffect)(()=>{n()},[n]),{stats:e,loading:r,reload:n}}(),[C,M]=(0,l.useState)([]),[P,H]=(0,l.useState)(!1),[N,D]=(0,l.useState)(""),[q,ee]=(0,l.useState)(""),[ei,es]=(0,l.useState)(_),[eo,ec]=(0,l.useState)(!1),[ed,eu]=(0,l.useState)(!1),[eh,ef]=(0,l.useState)([]),[em,ep]=(0,l.useState)([]),[eg,ev]=(0,l.useState)([]),[ex,ey]=(0,l.useState)({}),eb=(0,l.useRef)(ei),ew=(0,l.useRef)(new Set),ej=(0,l.useRef)(new Map);(0,l.useEffect)(()=>{eb.current=ei},[ei]),(0,l.useEffect)(()=>{es("string"==typeof w.query.category?w.query.category:"")},[w.query.category]);let e_=(0,l.useCallback)(async()=>{try{let e=await (0,Z.BO)(),t={};for(let r of e)t[r.category]=r.fileCount;ey(t)}catch(e){}},[]);(0,l.useEffect)(()=>{e_()},[e_]);let ez=(0,l.useCallback)(async(e,t)=>{let r=null!=e?e:eb.current;(null==t?void 0:t.silent)||(H(!0),D(""));try{let e=await (0,Z.HT)({category:r||void 0,limit:5e3});M(e.files||[]),e.initializing&&window.setTimeout(()=>{ez(r,{silent:!0})},3e3)}catch(e){(null==t?void 0:t.silent)||(M([]),D(e instanceof Error?e.message:"文件列表加载失败"))}finally{(null==t?void 0:t.silent)||H(!1)}},[]);(0,l.useEffect)(()=>{ez(ei)},[ei,ez]);let eA=(0,l.useCallback)(async e=>{await ez(void 0,e),k(),e_()},[e_,ez,k]),ek=e=>"document"===e.type?null:{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},eC=(0,l.useCallback)(async()=>{try{let t=await (0,Z.Qx)(),r=t.operations.map(ek).filter(e=>!!e);for(let r of[...ew.current]){var e;let a=t.operations.find(e=>e.id===r);if(!a)continue;let l="".concat(a.status,":").concat(a.stage),n=null!=(e=ej.current.get(r))?e:"";"success"===a.status||"error"===a.status?(ew.current.delete(r),ej.current.delete(r),eA({silent:!0})):l!==n&&(ej.current.set(r,l),eA({silent:!0}))}ef(e=>{let t=new Set(r.map(e=>e.id).filter(Boolean)),a=r.map(t=>{var r;let a=e.find(e=>e.id===t.id);return a?{...a,...t,createdAt:null!=(r=a.createdAt)?r:t.createdAt}:t}),l=e.filter(e=>e.id&&!t.has(e.id)&&"processing"===e.status);return[...a,...l].slice(0,50)})}catch(e){}},[eA]),eS=(0,l.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];ef(r=>{let a=r.findIndex(r=>e.id&&r.id===e.id||t.includes(r.title));if(a>=0){var l;let t=[...r];return t[a]={...r[a],...e,createdAt:null!=(l=r[a].createdAt)?l:e.createdAt},t}return[e,...r].slice(0,50)})},[]);(0,l.useEffect)(()=>{eC()},[eC]);let eM=(0,l.useMemo)(()=>{let e=0,t=0,r=0;for(let a of eh)"processing"===a.status?e++:"success"===a.status?t++:("error"===a.status||"warning"===a.status)&&r++;return{processing:e,success:t,error:r}},[eh]);(0,l.useEffect)(()=>{if(0===eM.processing)return;let e=window.setInterval(()=>{eC()},2e3),t=window.setInterval(()=>{eA({silent:!0})},8e3);return()=>{window.clearInterval(e),window.clearInterval(t)}},[eC,eA,eM.processing]);let eP=async e=>{let t=e.filter(e=>{let t=e.webkitRelativePath||e.name;return e.size>0&&!el.test(e.name)&&!en.test(t)}),r=e.length-t.length;if(r>0&&b.warning("已跳过 ".concat(r," 个空文件、系统文件、备份文件或压缩包")),0===t.length)return;let a=1===t.length?t[0].name:"".concat(t.length," 个文件");ec(!0);let l="".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2));ew.current.add(l),ej.current.set(l,""),eS({id:l,type:"upload",title:"上传 ".concat(a),description:"等待上传、解析、切片和入库;同路径文件会更新,其他已有文件不会清除",status:"processing",percent:5});try{await (0,Z.c1)(t,void 0,l,e=>{eS({id:l,type:"upload",title:"上传 ".concat(a),description:"正在上传文件:".concat(e.uploadedFiles,"/").concat(e.totalFiles,",批次 ").concat(e.batchIndex+1,"/").concat(e.totalBatches),status:"processing",percent:Math.min(5,Math.max(1,Math.round(e.uploadedFiles/Math.max(1,e.totalFiles)*5)))})});let e=q||ei?"当前筛选(".concat([q?"搜索「".concat(q,"」"):"",ei?"分类「".concat(ei,"」"):""].filter(Boolean).join(" + "),")不会自动清空——新文件若未出现在列表里,调整筛选即可看到"):"新文件会随解析进度出现在列表里";b.info("文件已上传,正在后台解析、切片和入库;同路径文件会更新,其他已有文件不会清除,可在顶部“后台任务”查看进度。".concat(e)),await eC()}catch(e){if(e instanceof Z.NH){let t=e.failures.slice(0,3).map(e=>"批次 ".concat(e.batchIndex+1,"(").concat(e.files.join("、")).concat(e.files.length<5?"":" 等","):").concat(e.message)).join(";");b.warning("".concat(e.message,",失败文件可重新选择上传")),eS({id:l,type:"upload",title:"部分文件上传失败 ".concat(a),description:t||e.message,status:"warning",percent:100,error:t||e.message})}else{ew.current.delete(l),ej.current.delete(l);let t=e instanceof Error?e.message:"请重试或检查文件格式";b.error(t||"上传失败"),eS({id:l,type:"error",title:"上传失败 ".concat(a),description:t,status:"error",percent:100})}}finally{ec(!1),eA({silent:!0})}},eO=async()=>{eu(!0);let e="reindex-ui-".concat(Date.now());eS({id:e,type:"reindex",title:"重新解析入库",description:"正在提交后台任务",status:"processing",percent:5});try{var t;let r=await (0,Z.H1)(),a=r.operationId||e,l=r.job;b.info(r.alreadyRunning?"已有重新解析任务正在后台执行":"已提交重新解析入库任务,可在顶部“后台任务”查看进度"),eS({id:a,type:"reindex",title:(null==l?void 0:l.title)||"重新解析入库",description:(null==l?void 0:l.message)||"后台将重新扫描文件、解析、切片并重建索引",status:(null==l?void 0:l.status)||"processing",percent:null!=(t=null==l?void 0:l.percent)?t:10,error:null==l?void 0:l.error},["重新解析入库"]);for(let e=0;e<360;e++){let e=await (0,Z.ax)(a).then(e=>e.job).catch(async()=>(await (0,Z.Qx)()).operations.find(e=>e.id===a));if(e){let t="success"===e.status||"error"===e.status;if(eS({id:a,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?b.success(e.message||"重新解析入库完成"):b.error(e.error||e.message||"重新解析入库失败");break}}await new Promise(e=>setTimeout(e,1e3))}await eA(),await eC()}catch(r){let t=r instanceof Error?r.message:"重新解析入库失败";b.error(t),eS({id:e,type:"error",title:"重新解析入库失败",description:t,status:"error",percent:100},["重新解析入库","重新解析入库完成","重新解析入库失败"])}finally{eu(!1)}},eH=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r="file-reindex-ui-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2));eS({id:r,type:"reindex",title:"".concat(t?"重新解析文件夹":"重新解析"," ").concat(e),description:t?"正在提交文件夹后台任务":"正在提交单文件后台任务",status:"processing",percent:5,filePath:e});try{var a;let t=await (0,Z.HC)(e),l=t.operationId||r,n=t.job;b.info(t.alreadyRunning?"已有知识库任务正在后台执行":"已提交单文件重新解析任务"),eS({id:l,type:"reindex",title:(null==n?void 0:n.title)||"重新解析 ".concat(e),description:(null==n?void 0:n.message)||"后台将重新解析、分块并入库该文件",status:(null==n?void 0:n.status)||"processing",percent:null!=(a=null==n?void 0:n.percent)?a:10,filePath:(null==n?void 0:n.filePath)||e,chunkCount:null==n?void 0:n.chunkCount,error:null==n?void 0:n.error},["重新解析 ".concat(e)]);for(let t=0;t<240;t++){let t=await (0,Z.ax)(l).then(e=>e.job).catch(async()=>(await (0,Z.Qx)()).operations.find(e=>e.id===l));if(t){let r="success"===t.status||"error"===t.status;if(eS({id:l,type:"error"===t.status?"error":"reindex",title:"success"===t.status?"重新解析完成 ".concat(e):"error"===t.status?"重新解析失败 ".concat(e):t.title,description:t.error||t.message,status:t.status,percent:t.percent,filePath:t.filePath||e,chunkCount:t.chunkCount,error:t.error}),await ez(),r){"success"===t.status?b.success(t.message||"单文件重新解析完成"):b.error(t.error||t.message||"单文件重新解析失败");break}}await new Promise(e=>setTimeout(e,1e3))}await eA(),await eC()}catch(a){let t=a instanceof Error?a.message:"单文件重新解析失败";b.error(t),eS({id:r,type:"error",title:"重新解析失败 ".concat(e),description:t,status:"error",percent:100,filePath:e},["重新解析 ".concat(e)])}},eN=e=>{let t="selected"===e?eU:"filtered"===e?eV.map(e=>e.relativePath):[],r=C.length;if("all"!==e&&0===t.length||"all"===e&&0===r)return void b.info("没有可删除的文件");let a="all"===e?"删除全部文件 ".concat(r," 个?"):"filtered"===e?"删除当前筛选结果中的文件 ".concat(t.length," 个?"):"删除已选文件 ".concat(t.length," 个?");d.A.confirm({title:a,content:"将同时删除文件、切片、索引和向量记录。此操作不可撤销。",okText:i("common.delete"),cancelText:i("common.cancel"),okButtonProps:{danger:!0},onOk:async()=>{ef(e=>[{type:"delete",title:a,description:"正在批量删除文件和索引",status:"processing",percent:10},...e].slice(0,50));try{var l;let a=null!=(l=("all"===e?await (0,Z.X8)():"selected"===e?await (0,Z.tZ)(eq,eD):await (0,Z.SJ)(t)).deleted)?l:"all"===e?r:t.length;b.success("已删除 ".concat(a," 个文件")),ep([]),ef(e=>[{type:"delete",title:"批量删除完成",description:"已删除 ".concat(a," 个文件、切片和索引"),status:"success"},...e].slice(0,50)),await eA(),await eC()}catch(e){b.error("批量删除失败"),ef(e=>[{type:"error",title:"批量删除失败",description:"请重试",status:"error"},...e].slice(0,50))}}})},eE=async()=>{if(0===eq.length&&0===eD.length)return;let e=b.loading(i("exporting"),0);try{let{blob:e,fileName:t,exported:r,skipped:a}=await (0,Z.G8)({relativePaths:eq,folderPaths:eD}),l=URL.createObjectURL(e),n=document.createElement("a");n.href=l,n.download=t,document.body.appendChild(n),n.click(),n.remove(),URL.revokeObjectURL(l),a>0?b.warning(i("exportParsedSkipped").replace("{count}",String(a))):b.success(i("exportParsedSuccess").replace("{count}",String(r)))}catch(e){b.error(e instanceof Error&&e.message?e.message:i("exportParsedFailed"))}finally{e()}},eV=(0,l.useMemo)(()=>q?C.filter(e=>e.relativePath.toLowerCase().includes(q.toLowerCase())):C,[q,C]),eB=(0,l.useMemo)(()=>new Set(eV.map(e=>e.relativePath)),[eV]),eF=(0,l.useMemo)(()=>C.filter(e=>"error"===e.status).length,[C]),eI=(0,l.useMemo)(()=>{let e=ea.filter(e=>"other"!==e),t=Object.keys(ex).filter(t=>!e.includes(t)&&"other"!==t);return[{label:i("allCategories"),value:""},...[...e,...t,"other"].map(e=>{var t;let r=null!=(t=ex[e])?t:0,a=(0,Y.Jm)(e,y);return{label:r>0?"".concat(a," (").concat(r,")"):a,value:e}})]},[ex,y,i]),eL=(0,l.useMemo)(()=>{let e={};for(let r of[...eV].sort((e,t)=>e.relativePath.localeCompare(t.relativePath))){let a=r.relativePath.split("/"),l="";for(let n=0;n<a.length;n++){let i=a[n],s=l;l=l?"".concat(l,"/").concat(i):i;let o=n===a.length-1;if(e[l])o||e[l].isFolder?o&&(e[l].isFolder=!1,e[l].file=r,e[l].fileCount=1,e[l].totalSize=r.fileSize,e[l].totalChunks=r.chunkCount):(e[l].isFolder=!0,e[l].children=[],e[l].fileCount=0,e[l].totalSize=0,e[l].totalChunks=0);else{var t;e[l]={key:l,name:i,isFolder:!o,...o?{file:r,fileCount:1,totalSize:r.fileSize,totalChunks:r.chunkCount}:{children:[],fileCount:0,totalSize:0,totalChunks:0}},s&&(null==(t=e[s])?void 0:t.children)&&e[s].children.push(e[l])}}}let r=e=>{for(let n of e)if(n.children){r(n.children);let e=0,i=0,s=0;for(let r of n.children){var t,a,l;e+=null!=(t=r.fileCount)?t:0,i+=null!=(a=r.totalSize)?a:0,s+=null!=(l=r.totalChunks)?l:0}n.fileCount=e,n.totalSize=i,n.totalChunks=s}},a=e=>e.map(e=>e.children?{...e,children:a(e.children)}:e).filter(e=>{var t,r,a;return!e.isFolder||(null!=(r=e.fileCount)?r:0)>0&&(null!=(a=null==(t=e.children)?void 0:t.length)?a:0)>0}),l=Object.values(e).filter(e=>!e.key.includes("/"));return r(l),a(l)},[eV]),eT=(0,l.useMemo)(()=>{let e=[],t=r=>{for(let a of r)e.push(a.key),a.children&&t(a.children)};return t(eL),e},[eL]),eR=(0,l.useMemo)(()=>new Set([...eB,...eT]),[eT,eB]),eD=(0,l.useMemo)(()=>em.map(String).filter(e=>!eB.has(e)&&eT.includes(e)),[eT,em,eB]),eq=(0,l.useMemo)(()=>em.map(String).filter(e=>eB.has(e)),[em,eB]),eU=(0,l.useMemo)(()=>{let e=new Set;for(let t of eq){let r=C.find(e=>e.relativePath===t);r&&e.add(r.relativePath)}for(let t of eD){let r="".concat(t,"/");for(let t of C)t.relativePath.startsWith(r)&&e.add(t.relativePath)}return Array.from(e)},[C,eq,eD]),eJ=eU.length;(0,l.useEffect)(()=>{ep(e=>e.filter(e=>eR.has(String(e))))},[eR]);let eQ=(0,l.useMemo)(()=>q?eT:[],[q,eT]);(0,l.useEffect)(()=>{ev(eQ)},[eQ]);let eX=(e,t)=>{ev(r=>e?[...r,t.key]:r.filter(e=>e!==t.key))},eW=[{title:i("fileName"),dataIndex:"name",key:"name",render:(e,t)=>(0,a.jsxs)("span",{className:et().fileNameCell,children:[t.isFolder?(0,a.jsx)("span",{style:{cursor:"pointer"},onClick:e=>{e.stopPropagation(),eX(!eg.includes(t.key),t)},children:(e=>{let t=e.children;return t&&0!==t.length?(0,a.jsx)(L.A,{style:{color:"#fa8c16",fontSize:15}}):(0,a.jsx)(F.A,{style:{color:"#fa8c16",fontSize:15}})})(t)}):(e=>{if(!e)return(0,a.jsx)(x.A,{style:{fontSize:15}});let t=e.category;return"image"===t?(0,a.jsx)(j,{style:{color:"#eb2f96",fontSize:15}}):"spreadsheet"===t?(0,a.jsx)(A,{style:{color:"#52c41a",fontSize:15}}):"document"===t?(0,a.jsx)(S,{style:{color:"#1677ff",fontSize:15}}):"code"===t?(0,a.jsx)(O,{style:{color:"#fa8c16",fontSize:15}}):"archive"===t?(0,a.jsx)(E,{style:{color:"#8c8c8c",fontSize:15}}):"web"===t?(0,a.jsx)(V.A,{style:{color:"#13c2c2",fontSize:15}}):"data"===t?(0,a.jsx)(B.A,{style:{color:"#722ed1",fontSize:15}}):"cad"===t?(0,a.jsx)(F.A,{style:{color:"#fa541c",fontSize:15}}):"diagram"===t?(0,a.jsx)(j,{style:{color:"#a0d911",fontSize:15}}):(0,a.jsx)(I.A,{style:{fontSize:15}})})(t.file),t.isFolder?(0,a.jsx)("span",{className:et().folderName,onClick:e=>{e.stopPropagation(),eX(!eg.includes(t.key),t)},children:t.name}):(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(s(),{className:"min-w-0 max-w-[520px] whitespace-normal break-words leading-relaxed",href:"/knowledge/file-detail?relativePath=".concat(encodeURIComponent(t.key)),children:t.name})})]})},{title:i("fileCategory"),dataIndex:"category",key:"cat",width:110,render:(e,t)=>{var r,l;return t.isFolder?(0,a.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"—"}):(0,a.jsx)(u.A,{children:(0,Y.Jm)(null!=(l=null==(r=t.file)?void 0:r.category)?l:"",y)})}},{title:i("fileSize"),dataIndex:"fileSize",key:"size",width:90,render:(e,t)=>{var r,a,l;return(0,Y.z3)(t.isFolder?null!=(a=t.totalSize)?a:0:null!=(l=null==(r=t.file)?void 0:r.fileSize)?l:0)}},{title:i("chunksCount"),dataIndex:"chunkCount",key:"chunks",width:80,render:(e,t)=>{var r,l,n;let i=t.isFolder?null!=(l=t.totalChunks)?l:0:null!=(n=null==(r=t.file)?void 0:r.chunkCount)?n:0;return(0,a.jsx)(u.A,{color:i>1?"green":"orange",children:i})}},{title:i("parsingStatus"),dataIndex:"status",key:"status",width:100,render:(e,t)=>{var r,l,n,i;return t.isFolder?(0,a.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"—"}):(0,a.jsx)(u.A,{color:"active"===(i=null==(r=t.file)?void 0:r.status)?"green":"processing"===i||"indexing"===i?"blue":"error"===i?"red":"orange",children:(null==(l=t.file)?void 0:l.errorMessage)||(null==(n=t.file)?void 0:n.status)||"—"})}},{title:i("fileDate"),dataIndex:"mtime",key:"date",width:130,render:(e,t)=>{var r;return t.isFolder?(0,a.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"—"}):(null==(r=t.file)?void 0:r.mtime)?new Date(t.file.mtime).toLocaleDateString(y):"—"}},{title:i("source"),key:"source",width:100,render:(e,t)=>t.isFolder?(0,a.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"—"}):(0,a.jsx)(u.A,{color:"cyan",children:i("fileSource")})},{title:"",key:"act",width:80,align:"center",render:(e,t)=>{var r;return(0,a.jsx)(h.A,{menu:{items:t.isFolder?[{key:"reindex-folder",label:"重新索引文件夹",icon:(0,a.jsx)(T.A,{}),disabled:(null!=(r=t.fileCount)?r:0)===0,onClick:()=>{eH(t.key,!0)}}]:[{key:"reindex",label:i("reindex"),icon:(0,a.jsx)(T.A,{}),onClick:()=>{eH(t.file.relativePath)}},{type:"divider"},{key:"delete",label:i("delete"),icon:(0,a.jsx)(R.A,{}),danger:!0,onClick:()=>{var e;return e=t.file,void d.A.confirm({title:i("delete"),content:i("deleteConfirm"),okText:i("common.confirm"),cancelText:i("common.cancel"),okButtonProps:{danger:!0},onOk:async()=>{ef(t=>[{type:"delete",title:"删除 ".concat(e.relativePath),description:"正在删除文件记录",status:"processing"},...t].slice(0,50));try{await (0,Z.xq)(e.relativePath),b.success("已删除"),ef(t=>[{type:"delete",title:"删除完成 ".concat(e.relativePath),description:"文件和索引记录已移除",status:"success"},...t].slice(0,50)),ep([]),await eA(),await eC()}catch(t){b.error("删除失败"),ef(t=>[{type:"error",title:"删除失败 ".concat(e.relativePath),description:"请重试",status:"error"},...t].slice(0,50))}}})}}]},trigger:["click"],children:(0,a.jsx)(f.Ay,{type:"text",size:"small",icon:(0,a.jsx)(U,{})})})}}],eK=(0,a.jsxs)("div",{className:"flex flex-1 md:flex-none w-full md:w-auto items-center gap-3",children:[(0,a.jsx)(m.A,{placeholder:i("searchPlaceholder"),prefix:(0,a.jsx)(J.A,{className:"text-[var(--colorTextTertiary)]"}),value:q,onChange:e=>{ee(e.target.value)},allowClear:!0,variant:"borderless",className:"max-w-[300px] flex-1 bg-transparent hover:bg-transparent focus:bg-transparent",style:{borderBottom:"1px solid var(--borderColor)",borderRadius:0,paddingLeft:0,paddingRight:0}}),(0,a.jsx)(p.A,{value:ei||void 0,onChange:e=>{es(e||"")},placeholder:i("filterCategory"),allowClear:!0,style:{width:170},variant:"borderless",options:eI}),(0,a.jsx)("div",{className:"w-[1px] h-6 bg-[var(--borderColor)] mx-1"}),(0,a.jsx)(h.A,{menu:{items:[{key:"file",label:i("uploadFiles"),icon:(0,a.jsx)(x.A,{}),onClick:()=>{var e;return null==(e=document.getElementById("kb-file-upload-input"))?void 0:e.click()}},{key:"folder",label:i("uploadFolder"),icon:(0,a.jsx)(F.A,{}),onClick:()=>{var e;return null==(e=document.getElementById("kb-folder-upload-input"))?void 0:e.click()}},{type:"divider"},{key:"reindex",label:i("reindexAll"),icon:(0,a.jsx)(T.A,{}),onClick:()=>{eO()},danger:!0}]},trigger:["click"],children:(0,a.jsx)(f.Ay,{type:"primary",icon:(0,a.jsx)(Q.A,{}),loading:eo||ed,className:"rounded-md px-4",children:i("new")})}),(0,a.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 r=Array.from(null!=(t=e.target.files)?t:[]);e.target.value="",eP(r)}}),(0,a.jsx)("input",{id:"kb-folder-upload-input",type:"file",multiple:!0,hidden:!0,webkitdirectory:"",onChange:e=>{var t;let r=Array.from(null!=(t=e.target.files)?t:[]);e.target.value="",eP(r)}})]}),eG=[{icon:(0,a.jsx)(x.A,{}),label:i("totalFiles"),value:String(null!=(e=null==z?void 0:z.fileCount)?e:0)},{icon:(0,a.jsx)(B.A,{}),label:i("totalChunks"),value:String(null!=(t=null==z?void 0:z.chunkCount)?t:0)},{icon:(0,a.jsx)(E,{}),label:i("totalSize"),value:(0,Y.z3)(null!=(r=null==z?void 0:z.totalSizeBytes)?r:0)},{icon:(0,a.jsx)(X.A,{}),label:i("lastIndexed"),value:(null==z?void 0:z.lastIndexedAt)?(0,Y.fw)(z.lastIndexedAt,y):i("common.never")}];return(0,a.jsxs)("div",{className:"h-[calc(100vh_-_140px)] flex flex-col",children:[(0,a.jsxs)("div",{className:"bg-[var(--colorBgContainer)] rounded-2xl border border-[var(--borderColor)] p-6 mb-4 shrink-0 animateFadeIn",children:[(0,a.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-6 pb-6 border-b border-[var(--borderColor)]",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h1",{className:"text-2xl font-bold tracking-tight text-[var(--colorText)] mb-1 flex items-center gap-2",children:[(0,a.jsx)(B.A,{className:"text-[var(--colorAccent)]"}),i("title")]}),(0,a.jsx)("p",{className:"text-sm text-[var(--colorTextSecondary)] m-0",children:i("description")})]}),eK]}),(0,a.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-6 pt-6 stagger-1",children:eG.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)("div",{className:"w-12 h-12 rounded-xl bg-[var(--colorBgHover)] flex items-center justify-center text-xl text-[var(--colorTextSecondary)]",children:e.icon}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("div",{className:"text-[11px] font-semibold text-[var(--colorTextTertiary)] uppercase tracking-wider mb-1",children:e.label}),(0,a.jsx)("div",{className:"text-xl font-bold text-[var(--colorText)] leading-none truncate",children:e.value})]})]},e.label))})]}),N&&(0,a.jsx)("div",{className:"p-4 mb-4 bg-[var(--colorDanger)]/10 text-[var(--colorDanger)] rounded-xl border border-[var(--colorDanger)]/20",children:N}),(0,a.jsxs)("div",{className:"flex-1 min-h-0 bg-[var(--colorBgContainer)] rounded-2xl border border-[var(--borderColor)] overflow-hidden flex flex-col animateFadeIn stagger-3",style:{opacity:0},children:[(0,a.jsxs)("div",{className:"flex flex-wrap justify-between items-center gap-3 p-4 bg-[var(--colorBgHover)] border-b border-[var(--borderColor)] shrink-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 text-xs text-[var(--colorTextSecondary)] font-medium",children:[(0,a.jsx)("span",{children:i("showingMatchingFiles").replace("{count}",String(eV.length))}),eF>0&&(0,a.jsxs)(u.A,{color:"red",icon:(0,a.jsx)(W.A,{}),className:"m-0 border-0",children:[i("parsingErrors")," ",eF]})]}),(0,a.jsxs)(g.A,{size:8,children:[eJ>0&&(0,a.jsxs)(f.Ay,{size:"small",icon:(0,a.jsx)(K.A,{}),onClick:()=>void eE(),className:"rounded-lg",children:[i("exportParsed")," (",eJ,")"]}),eJ>0&&(0,a.jsxs)(f.Ay,{danger:!0,size:"small",icon:(0,a.jsx)(R.A,{}),onClick:()=>eN("selected"),className:"rounded-lg",children:[i("deleteSelected")," (",eJ,")"]}),(0,a.jsx)(f.Ay,{danger:!0,size:"small",disabled:0===C.length,onClick:()=>eN("all"),className:"rounded-lg",children:i("deleteAll")})]})]}),(0,a.jsx)(v.A,{rowKey:"key",columns:eW,dataSource:eL,loading:P&&!eo&&!ed,size:"middle",className:"flex-1 border-0 tableFillHeight",expandable:{expandedRowKeys:eg,onExpand:eX,expandIcon:e=>{let{expanded:t,onExpand:r,record:l}=e;return l.isFolder?(0,a.jsx)("button",{type:"button",onClick:e=>r(l,e),className:"w-6 h-6 mr-1 inline-flex items-center justify-center align-middle text-[var(--colorTextTertiary)] hover:text-[var(--colorText)] transition-colors bg-transparent border-0 p-0 leading-none",children:t?(0,a.jsx)(G.A,{size:16}):(0,a.jsx)($.A,{size:16})}):(0,a.jsx)("span",{className:"w-6 h-6 inline-flex"})}},locale:{emptyText:P?i("common.loading"):q?i("emptySearch"):i("noFiles")},pagination:(0,er.B)(i,{totalLabelKey:"knowledge.topLevelCount",totalLabelFallback:"共 {count} 个顶层项目"}),rowClassName:e=>"hover:bg-[var(--colorBgHover)] transition-colors ".concat(e.isFolder?"font-medium bg-[var(--colorBgSecondary)]/30":""),rowSelection:{selectedRowKeys:em,onChange:ep,checkStrictly:!1,getCheckboxProps:e=>{var t;return{disabled:!!e.isFolder&&(null!=(t=e.fileCount)?t:0)===0}}}})]})]})}},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"}}},e=>{e.O(0,[310,700,914,174,189,289,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],{22708:(e,l,a)=>{"use strict";a.r(l),a.d(l,{default:()=>D});var s=a(65321),r=a(97109),o=a(85587),t=a(93360),i=a(17807),n=a(88762),c=a(85114),d=a(84253),m=a(33442),x=a(32965),p=a(11702),v=a(57271),h=a(7576),u=a(94992),g=a(34052),b=a(63455),j=a(56985),y=a(44534),f=a(54746),A=a(29071),N=a(59188),w=a(4216),k=a(13114),C=a(99650),S=a(58209),T=a(76981),K=a(61825),B=a(6578),E=a(85310);let I=[{labelKey:"models.openAICompatible",value:"openai"},{labelKey:"models.anthropic",value:"anthropic"},{labelKey:"models.google",value:"google"},{labelKey:"models.ollama",value:"ollama"},{labelKey:"models.openRouter",value:"openrouter"}],P=[{key:"reader",labelKey:"models.tierReader",descKey:"models.tierReaderDesc"},{key:"reasoning",labelKey:"models.tierReasoning",descKey:"models.tierReasoningDesc"},{key:"action",labelKey:"models.tierAction",descKey:"models.tierActionDesc"}],z=[{key:"imageGeneration",labelKey:"models.imageGeneration"},{key:"imageUnderstanding",labelKey:"models.imageUnderstanding"},{key:"fileUnderstanding",labelKey:"models.fileUnderstanding"},{key:"audio",labelKey:"models.audioCapability"},{key:"video",labelKey:"models.videoCapability"}],U="••••••••",_=e=>e.includes("•");function D(){let e=(0,o.Vr)(),{message:l}=i.A.useApp(),[a,D]=(0,r.useState)(!0),[H,F]=(0,r.useState)([]),[R,M]=(0,r.useState)(null),[Z,G]=(0,r.useState)({provider:"transformers-local",model:"BAAI/bge-small-zh-v1.5",dimensions:512}),[L,O]=(0,r.useState)(!1),[q,X]=(0,r.useState)(!1),[V,W]=(0,r.useState)(null),[J,Q]=(0,r.useState)(null),[Y,$]=(0,r.useState)({}),[ee,el]=(0,r.useState)(!1),[ea,es]=(0,r.useState)(!1),[er,eo]=(0,r.useState)(""),[et,ei]=(0,r.useState)(""),[en,ec]=(0,r.useState)(""),[ed,em]=(0,r.useState)(""),[ex,ep]=(0,r.useState)("openai"),[ev,eh]=(0,r.useState)(!1),[eu,eg]=(0,r.useState)({}),[eb,ej]=(0,r.useState)(!1),[ey,ef]=(0,r.useState)(!1),eA=async()=>{D(!0);try{let[e,l,a]=await Promise.all([(0,B.Z3)().catch(()=>[]),(0,B.zr)().catch(()=>null),(0,B.II)().catch(()=>({provider:"transformers-local",model:"BAAI/bge-small-zh-v1.5",dimensions:512}))]);F(e),M(l),G(a)}catch(a){l.error(e("common.error"))}finally{D(!1)}};(0,r.useEffect)(()=>{eA()},[]);let eN=async e=>{var l,a;es(!0),eo(e.name),ei(e.name),ec(""),em(e.baseUrl||""),ep(e.protocol||e.detectedProtocol||"openai"),eg(e.capabilities||{}),ej(!!(null==(l=e.capabilities)?void 0:l.webSearch));try{let l=await (0,B.Bh)(e.name);ec(l.apiKey?U:""),em(l.baseUrl||""),eg(l.capabilities||{}),ej(!!(null==(a=l.capabilities)?void 0:a.webSearch))}catch(e){}el(!0)},ew=async()=>{if(et.trim()){ef(!0);try{let a=ea&&_(en)?void 0:en||void 0,s={...eu,webSearch:eb};await (0,B._m)(et.trim(),{oldName:ea?er:void 0,apiKey:a,baseUrl:ed||void 0,protocol:ex,directEndpoint:ev,capabilities:s}),el(!1),await eA(),l.success(e("common.success"))}catch(a){l.error(e("common.error"))}finally{ef(!1)}}},ek=async a=>{try{await (0,B.h1)(a),await eA(),l.success(e("common.success"))}catch(a){l.error(e("common.error"))}},eC=async a=>{Q(a);try{let s=await (0,B.bZ)(a);$(e=>({...e,[a]:s.success}));let r=s.success?e("models.connected"):"".concat(e("models.connectionFailed")).concat(s.message?":".concat(s.message):"").concat(s.requestId?" (".concat(s.requestId,")"):"");l[s.success?"success":"error"](r)}catch(s){$(e=>({...e,[a]:!1})),l.error(s instanceof Error?s.message:e("models.connectionFailed"))}finally{Q(null)}},eS=async(a,s)=>{let r;if(!R)return;let o=R[a];if(s){let[e,l]=s.includes(":")?s.split(":"):[s,s],a=o.list.some(a=>a.name===l&&a.provider===e)?o.list:[...o.list,{name:l,provider:e,thinking:"follow-task"}];r={...o,active:l,list:a}}else r={...o,active:""};let t={...R,[a]:r};M(t);try{await (0,B.aP)(t)}catch(a){l.error(e("common.error"))}},eT=async(a,s)=>{if(!R)return;let r=R[a],o=r.list.findIndex(e=>e.name===r.active);if(o<0)return;let t=r.list.map((e,l)=>l===o?{...e,thinking:s}:e),i={...R,[a]:{...r,list:t}};M(i);try{await (0,B.aP)(i)}catch(a){l.error(e("common.error"))}},eK=async()=>{O(!0);try{let a=await (0,B.dd)(Z);G(a),W(null),l.success(e("common.success"))}catch(a){l.error(e("common.error"))}finally{O(!1)}},eB=async()=>{X(!0);try{let a=await (0,B.u6)();W(a.success),l[a.success?"success":"error"](a.message||(a.success?e("models.connected"):e("models.connectionFailed")))}catch(e){W(!1)}finally{X(!1)}};return a?(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)(n.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,s.jsx)("div",{className:"p-4 bg-[var(--colorBgHover)] rounded-xl border border-[var(--borderColor)]",children:(0,s.jsx)(n.A,{active:!0,paragraph:{rows:6}})}),(0,s.jsx)("div",{className:"p-4 bg-[var(--colorBgHover)] rounded-xl border border-[var(--borderColor)]",children:(0,s.jsx)(n.A,{active:!0,paragraph:{rows:4}})}),(0,s.jsx)("div",{className:"p-4 bg-[var(--colorBgHover)] rounded-xl border border-[var(--borderColor)]",children:(0,s.jsx)(n.A,{active:!0,paragraph:{rows:3}})})]}):(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)(t.z,{title:e("models.title"),description:e("models.description"),extra:(0,s.jsx)(c.Ay,{type:"primary",icon:(0,s.jsx)(f.A,{}),onClick:()=>{es(!1),eo(""),ei(""),ec(""),em(""),ep("openai"),eh(!1),eg({}),ej(!1),el(!0)},children:e("models.addModel")})}),(0,s.jsx)(E.Zk,{title:e("models.modelList"),count:H.length,description:e("models.modelListDesc"),children:0===H.length?(0,s.jsx)("div",{className:"py-10 rounded-xl border border-dashed border-[var(--borderColorStrong)] bg-[var(--colorBgHover)]",children:(0,s.jsx)(d.A,{image:d.A.PRESENTED_IMAGE_SIMPLE,description:(0,s.jsx)("span",{className:"text-[var(--colorTextTertiary)] text-sm",children:e("models.noProviders")})})}):(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5",children:H.map(l=>{var a;return(0,s.jsxs)("div",{className:"group p-5 ".concat(E.wD," flex flex-col"),children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3 mb-4 min-w-0",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("div",{className:"font-bold text-base text-[var(--colorText)] truncate mb-1",children:l.name}),(0,s.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)] flex items-center gap-1 uppercase tracking-wider font-semibold",children:[(0,s.jsx)(A.A,{})," ",l.protocol||l.detectedProtocol||"openai"]})]}),(0,s.jsxs)(m.A,{size:0,className:"-mr-2 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",children:[(0,s.jsx)(c.Ay,{type:"text",size:"small",loading:J===l.name,title:e("models.testConnection"),onClick:e=>{e.stopPropagation(),eC(l.name)},icon:!0===Y[l.name]?(0,s.jsx)(N.A,{className:"text-[var(--colorOk)]"}):!1===Y[l.name]?(0,s.jsx)(w.A,{className:"text-[var(--colorDanger)]"}):(0,s.jsx)(k.A,{className:"text-[var(--colorTextSecondary)]"})}),(0,s.jsx)(c.Ay,{type:"text",size:"small",title:e("common.edit"),icon:(0,s.jsx)(C.A,{className:"text-[var(--colorTextSecondary)]"}),onClick:e=>{e.stopPropagation(),eN(l)}}),(0,s.jsx)(x.A,{title:e("models.deleteProviderConfirm"),onConfirm:e=>{null==e||e.stopPropagation(),ek(l.name)},onCancel:e=>null==e?void 0:e.stopPropagation(),children:(0,s.jsx)(c.Ay,{type:"text",size:"small",danger:!0,title:e("common.delete"),icon:(0,s.jsx)(S.A,{}),onClick:e=>e.stopPropagation()})})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-3 mt-auto pt-4 border-t border-[var(--borderColor)]",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between text-xs text-[var(--colorTextSecondary)]",children:[(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)(T.A,{})," ",e("models.apiKey")]}),(0,s.jsx)("span",{className:"font-mono text-[var(--colorTextTertiary)]",children:l.hasApiKey?U:e("models.none")})]}),l.baseUrl&&(0,s.jsxs)("div",{className:"flex items-center justify-between text-xs text-[var(--colorTextSecondary)]",children:[(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)(K.A,{})," URL"]}),(0,s.jsx)("span",{className:"truncate max-w-[120px] font-mono text-[var(--colorTextTertiary)]",title:l.baseUrl,children:l.baseUrl.replace(/^https?:\/\//,"")})]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-1 mt-2",children:[z.filter(e=>{var a;return null==(a=l.capabilities)?void 0:a[e.key]}).map(l=>(0,s.jsx)(p.A,{color:"blue",bordered:!1,className:"m-0 text-[10px] bg-[var(--colorBrand)]/5 text-[var(--colorBrand)] leading-[18px]",children:e(l.labelKey)},l.key)),(null==(a=l.capabilities)?void 0:a.webSearch)&&(0,s.jsx)(p.A,{color:"green",bordered:!1,className:"m-0 text-[10px] leading-[18px]",children:e("models.webEnhancement")})]})]})]},l.name)})})}),(0,s.jsxs)(E.Zk,{title:e("models.embeddingConfig"),description:e("models.embeddingConfigDesc"),extra:(0,s.jsxs)(m.A,{size:6,children:[(0,s.jsx)(p.A,{color:"blue",bordered:!1,className:"m-0",children:"transformers-local"===Z.provider?e("models.localEmbedding"):e("models.openAICompatible")}),!0===V&&(0,s.jsx)(p.A,{color:"success",bordered:!1,className:"m-0",icon:(0,s.jsx)(N.A,{}),children:e("models.connected")}),!1===V&&(0,s.jsx)(p.A,{color:"error",bordered:!1,className:"m-0",icon:(0,s.jsx)(w.A,{}),children:e("models.connectionFailed")})]}),children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(E.dh,{children:e("models.embeddingProvider")}),(0,s.jsx)(v.A,{value:Z.provider,className:"w-full h-10",variant:"borderless",style:{background:"var(--colorBgHover)",borderRadius:"8px"},options:[{label:e("models.localRecommended"),value:"transformers-local"},{label:e("models.externalAdvanced"),value:"openai-compatible"}],onChange:e=>G(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"===Z.provider&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(E.dh,{children:e("models.baseUrl")}),(0,s.jsx)(h.A,{className:"h-10 px-4 bg-[var(--colorBgHover)]",value:Z.baseUrl,onChange:e=>G(l=>({...l,baseUrl:e.target.value})),placeholder:"http://localhost:11434/v1"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(E.dh,{children:e("models.model")}),(0,s.jsx)(h.A,{className:"h-10 px-4 bg-[var(--colorBgHover)]",value:Z.model,onChange:e=>G(l=>({...l,model:e.target.value})),placeholder:"bge-m3"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(E.dh,{children:e("models.apiKey")}),(0,s.jsx)(h.A.Password,{className:"h-10 px-4 bg-[var(--colorBgHover)]",value:Z.apiKey,onFocus:()=>{Z.apiKey&&_(Z.apiKey)&&G(e=>({...e,apiKey:""}))},onChange:e=>G(l=>({...l,apiKey:e.target.value})),placeholder:e("models.optional")})]})]}),"transformers-local"===Z.provider&&(0,s.jsxs)("div",{children:[(0,s.jsx)(E.dh,{children:e("models.model")}),(0,s.jsx)(h.A,{className:"h-10 px-4 bg-[var(--colorBgHover)]",value:Z.model,onChange:e=>G(l=>({...l,model:e.target.value})),placeholder:"BAAI/bge-small-zh-v1.5"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)(E.dh,{children:e("models.dimensions")}),(0,s.jsx)(u.A,{className:"w-full h-10 px-2 bg-[var(--colorBgHover)] border-transparent flex items-center",min:1,value:Z.dimensions,onChange:e=>G(l=>({...l,dimensions:Number(e||("transformers-local"===l.provider?512:1024))}))})]})]}),(0,s.jsxs)("div",{className:"mt-6 flex flex-wrap gap-3",children:[(0,s.jsx)(c.Ay,{type:"primary",className:"h-10 px-6 font-medium shadow-none",loading:L,onClick:()=>{eK()},children:e("models.saveEmbedding")}),(0,s.jsx)(c.Ay,{className:"h-10 px-6 font-medium shadow-none bg-[var(--colorBgHover)] border-transparent hover:border-[var(--borderColorStrong)]",loading:q,onClick:()=>{eB()},children:e("models.testEmbedding")})]})]}),R&&(0,s.jsx)(E.Zk,{title:e("models.modelTiers"),description:e("models.modelTiersDesc"),children:(0,s.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-5",children:P.map(l=>{let{key:a,labelKey:r,descKey:o}=l,t=R[a],i=t.list.map(e=>({label:"".concat(e.provider," / ").concat(e.name),value:"".concat(e.provider,":").concat(e.name)})),n=H.filter(e=>!t.list.some(l=>l.provider===e.name)).map(e=>({label:e.name,value:"".concat(e.name,":").concat(e.name)})),c=t.active?t.list.find(e=>e.name===t.active):null;return(0,s.jsxs)("div",{className:"p-6 ".concat(E.wD," flex flex-col"),children:[(0,s.jsx)("div",{className:"text-sm font-semibold text-[var(--colorText)] uppercase tracking-wider mb-2",children:e(r)}),(0,s.jsx)("div",{className:"text-xs text-[var(--colorTextTertiary)] mb-5 leading-relaxed flex-1",children:e(o)}),(0,s.jsx)(v.A,{value:t.active?"".concat((null==c?void 0:c.provider)||"",":").concat(t.active):void 0,onChange:e=>{eS(a,e)},allowClear:!0,placeholder:e("models.selectModelPlaceholder"),className:"w-full h-10",variant:"borderless",style:{background:"var(--colorBgElevated)",borderRadius:"8px"},options:[...i,...n]}),c&&(()=>{var l;let r=H.find(e=>e.name===c.provider),o=null==r?void 0:r.capabilities,t=o?z.filter(e=>o[e.key]):[];return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"mt-4 px-4 py-3 bg-[var(--colorBgElevated)] rounded-lg border border-[var(--borderColor)] flex items-center gap-3 transition-colors",children:[(0,s.jsx)(k.A,{className:"text-[var(--colorBrand)] text-base shrink-0"}),(0,s.jsx)("span",{className:"text-sm font-medium flex-1 min-w-0 truncate text-[var(--colorText)]",children:c.provider}),t.length>0&&(0,s.jsx)("div",{className:"flex gap-1 shrink-0",children:t.slice(0,2).map(l=>(0,s.jsx)(p.A,{color:"blue",bordered:!1,className:"m-0 text-[10px] bg-[var(--colorBrand)]/5 text-[var(--colorBrand)] leading-[18px]",children:e(l.labelKey)},l.key))}),(0,s.jsx)(p.A,{color:"success",bordered:!1,className:"m-0 text-[10px] leading-[18px] shrink-0 uppercase",children:e("models.active")})]}),(0,s.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"text-xs text-[var(--colorTextTertiary)] shrink-0",children:e("models.thinkingMode")}),(0,s.jsx)(v.A,{value:null!=(l=c.thinking)?l:"follow-task",size:"small",style:{flex:1},onChange:e=>{eT(a,e)},options:[{label:e("models.thinkingFollowTask"),value:"follow-task"},{label:e("models.thinkingEnabled"),value:"enabled"},{label:e("models.thinkingDisabled"),value:"disabled"}]})]})]})})()]},a)})})}),(0,s.jsx)(g.A,{title:ea?e("models.editModel"):e("models.addModel"),open:ee,onClose:()=>el(!1),size:"large",styles:{body:{padding:"24px 32px"},header:{padding:"16px 32px",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,s.jsxs)(m.A,{children:[(0,s.jsx)(c.Ay,{onClick:()=>el(!1),children:e("models.cancel")}),(0,s.jsx)(c.Ay,{type:"primary",loading:ey,onClick:()=>{ew()},children:e("common.save")})]}),children:(0,s.jsxs)(b.A,{layout:"vertical",children:[(0,s.jsx)(b.A.Item,{label:e("models.modelName"),children:(0,s.jsx)(h.A,{value:et,onChange:e=>ei(e.target.value),placeholder:e("models.modelNamePlaceholder")})}),(0,s.jsx)(b.A.Item,{label:e("models.apiKey"),help:ea?e("models.apiKeyEditHint"):void 0,children:(0,s.jsx)(h.A.Password,{value:en,onFocus:()=>{ea&&_(en)&&ec("")},onChange:e=>ec(e.target.value),placeholder:ea?e("models.apiKeyEditPlaceholder"):"sk-..."})}),(0,s.jsx)(b.A.Item,{label:e("models.baseUrl"),children:(0,s.jsx)(h.A,{value:ed,onChange:e=>em(e.target.value),placeholder:"https://api.openai.com/v1"})}),(0,s.jsx)(b.A.Item,{label:e("models.protocol"),children:(0,s.jsx)(v.A,{value:ex,onChange:ep,options:I.map(l=>({label:e(l.labelKey),value:l.value}))})}),(0,s.jsx)(b.A.Item,{label:e("models.directEndpoint"),children:(0,s.jsx)(j.A,{checked:ev,onChange:e=>eh(e.target.checked),children:e("models.directEndpointDesc")})}),(0,s.jsxs)(b.A.Item,{label:e("models.webEnhancement"),children:[(0,s.jsx)(y.A,{checked:eb,onChange:ej}),(0,s.jsx)("span",{className:"ml-3 text-xs text-[var(--colorTextSecondary)]",children:e("models.webEnhancementDesc")})]}),(0,s.jsx)(b.A.Item,{label:e("models.capabilities"),children:(0,s.jsx)(j.A.Group,{value:z.filter(e=>eu[e.key]).map(e=>e.key),options:z.map(l=>({label:e(l.labelKey),value:l.key})),onChange:e=>eg(Object.fromEntries(z.map(l=>[l.key,e.includes(l.key)])))})})]})})]})}},77305:(e,l,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/models",function(){return a(22708)}])},85310:(e,l,a)=>{"use strict";a.d(l,{Zk:()=>o,dh:()=>t,wD:()=>r});var s=a(65321);a(97109);let r="rounded-xl bg-[var(--colorBgContainer)] shadow-[var(--shadowSurface)] hover:shadow-[var(--shadowSurfaceHover)] transition-shadow";function o(e){let{title:l,count:a,description:r,extra:o,className:t,children:i}=e;return(0,s.jsxs)("section",{className:"rounded-2xl bg-[var(--colorBgContainer)] shadow-[var(--shadowSurface)] p-6 animateFadeIn ".concat(null!=t?t:""),children:[(0,s.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start justify-between gap-3 mb-5",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("h2",{className:"text-base font-semibold text-[var(--colorText)] tracking-wide flex items-center gap-2 m-0",children:[l,void 0!==a&&(0,s.jsx)("span",{className:"text-[var(--colorTextTertiary)] font-normal text-sm",children:a})]}),r&&(0,s.jsx)("p",{className:"text-xs text-[var(--colorTextTertiary)] mt-1.5 mb-0 leading-relaxed max-w-3xl",children:r})]}),o]}),i]})}function t(e){let{children:l}=e;return(0,s.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wider mb-2 text-[var(--colorTextTertiary)]",children:l})}},93360:(e,l,a)=>{"use strict";a.d(l,{z:()=>n});var s=a(65321);a(97109);var r=a(48399),o=a(33442);let{Title:t,Text:i}=r.A;function n(e){let{title:l,description:a,extra:r,bottomContent:n}=e;return(0,s.jsxs)("div",{className:"mb-6 animateFadeIn",children:[(0,s.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end justify-between gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(t,{level:4,style:{margin:0,fontWeight:700,letterSpacing:"-0.01em"},children:l}),a&&(0,s.jsx)(i,{type:"secondary",className:"mt-1 block text-sm",children:a})]}),r&&(0,s.jsx)(o.A,{className:"w-full sm:w-auto overflow-x-auto pb-1 sm:pb-0",size:"middle",wrap:!1,children:r})]}),n&&(0,s.jsx)("div",{className:"mt-4",children:n})]})}}},e=>{e.O(0,[310,189,445,422,636,593,792],()=>e(e.s=77305)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26],{27549:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/prompt",function(){return r(34508)}])},34508:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>et});var o=r(65321),a=r(97109),s=r(85587),l=r(45551),c=r(17807),n=r(33442),i=r(11702),d=r(56985),m=r(85114),p=r(32965),u=r(88762),x=r(45759),h=r(7576),g=r(57271),f=r(49292),j=r(84253),v=r(34052),y=r(42700),b=r(55122),w=r(93360),N=r(54746),S=r(99650),A=r(81668),C=r(58209),k=r(26631),T=r(7225),P=r(96091),F=r(30486),z=r(46082),E=r(42758),B=r(7851),O=r(84742),M=r(24810),R=r(7492);async function I(){let e=await fetch("/api/prompt");if(!e.ok)throw Error("Failed");return e.json()}async function D(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 _(e){let t=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"previewRules",content:e})});return t.ok&&(await t.json()).preview||null}async function J(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 L(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 U(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()}async function H(e){let t=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"import",...e&&"object"==typeof e?e:{prompts:[]}})});if(!t.ok)throw Error(await t.text());return t.json()}async function K(){return W("",!1,60)}async function G(e){let t=await fetch("/api/kb/files/detail?relativePath=".concat(encodeURIComponent(e)));if(!t.ok)throw Error("Failed");return((await t.json()).chunks||[]).map(e=>e.content||"").filter(Boolean).join("\n\n").slice(0,12e3)}async function W(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,o=new URLSearchParams({limit:String(r)});e.trim()&&o.set("q",e.trim()),t||o.set("includeContent","0");let a=await fetch("/api/kb/files/search?".concat(o));return a.ok&&(await a.json()).files||[]}async function $(e,t){let r=await fetch("/api/prompt/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!r.ok){let e=await r.text();try{let r=JSON.parse(e);throw Error(r.error||r.message||e||t)}catch(r){throw Error(e||t)}}return r.json()}function q(e,t){let r=new Blob([JSON.stringify(t,null,2)],{type:"application/json;charset=utf-8"}),o=URL.createObjectURL(r),a=document.createElement("a");a.href=o,a.download=e,a.click(),URL.revokeObjectURL(o)}function X(e){return e.id.startsWith("custom:")}function V(e){return X(e)?"custom":e.isCurrent?"current":"project"}function Z(e,t,r){return e?"customize-agent:prompt-chat:".concat(e.id,":").concat(e.customizePath||e.projectName):"customize-agent:prompt-chat:draft:".concat(r||t||"new")}function Q(e){let t=Date.parse(e);return Number.isNaN(t)?"-":new Date(t).toLocaleString()}function Y(e){return{type:"customize-agent.prompts",version:1,exportedAt:new Date().toISOString(),prompts:e.map(e=>({name:e.projectName,content:e.content||"",selected:e.selected,source:V(e)}))}}function ee(e){let t=e.match(/(^|\s)@([^\s@]*)$/);return t?t[2]:null}function et(){let e=(0,s.Vr)(),{message:t}=c.A.useApp(),[r,et]=(0,a.useState)(!0),[er,eo]=(0,a.useState)([]),[ea,es]=(0,a.useState)(!1),[el,ec]=(0,a.useState)(null),[en,ei]=(0,a.useState)(""),[ed,em]=(0,a.useState)(""),[ep,eu]=(0,a.useState)(!1),[ex,eh]=(0,a.useState)(!1),[eg,ef]=(0,a.useState)("custom"),[ej,ev]=(0,a.useState)("all"),[ey,eb]=(0,a.useState)("mtime"),[ew,eN]=(0,a.useState)("list"),[eS,eA]=(0,a.useState)(""),[eC,ek]=(0,a.useState)(null),[eT,eP]=(0,a.useState)([]),[eF,ez]=(0,a.useState)(!1),[eE,eB]=(0,a.useState)([]),[eO,eM]=(0,a.useState)(""),[eR,eI]=(0,a.useState)(""),[eD,e_]=(0,a.useState)(!1),[eJ,eL]=(0,a.useState)([]),[eU,eH]=(0,a.useState)([]),[eK,eG]=(0,a.useState)([]),[eW,e$]=(0,a.useState)(!1),[eq,eX]=(0,a.useState)(!1),[eV,eZ]=(0,a.useState)(!1),[eQ,eY]=(0,a.useState)(null),[e0,e1]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!ea||!en.trim()){eY(null),e1(!1);return}e1(!0);let e=setTimeout(()=>{_(en).then(e=>{eY(e),e1(!1)})},500);return()=>clearTimeout(e)},[en,ea]);let e2=(0,a.useRef)(null),e3=ee(eR),e5=async()=>{et(!0);try{eo(await I())}catch(r){t.error(e("common.error"))}finally{et(!1)}};(0,a.useEffect)(()=>{e5()},[]),(0,a.useEffect)(()=>{let e=window.localStorage.getItem("customize-agent:prompt-view-mode");("list"===e||"card"===e)&&eN(e)},[]),(0,a.useEffect)(()=>{window.localStorage.setItem("customize-agent:prompt-view-mode",ew)},[ew]),(0,a.useEffect)(()=>{let e=e2.current;e&&e.scrollTo({top:e.scrollHeight,behavior:"smooth"}),eO&&window.localStorage.setItem(eO,JSON.stringify(eE.slice(-30)))},[eE,eD,eO]),(0,a.useEffect)(()=>{!ea||eJ.length>0||eW||(e$(!0),K().then(eL).catch(()=>void 0).finally(()=>e$(!1)))},[ea,eJ.length,eW]),(0,a.useEffect)(()=>{let e=null==e3?void 0:e3.trim();if(!ea||!e){eH([]),eX(!1);return}let t=!1;eX(!0);let r=window.setTimeout(()=>{W(e).then(e=>{t||eH(e)}).catch(()=>{t||eH([])}).finally(()=>{t||eX(!1)})},250);return()=>{t=!0,window.clearTimeout(r)}},[ea,e3]);let e4=er.find(e=>e.isCurrent),e6=er.filter(X),e8={all:er.length,custom:er.filter(e=>"custom"===V(e)).length,current:er.filter(e=>"current"===V(e)).length,project:er.filter(e=>"project"===V(e)).length,selected:er.filter(e=>e.selected).length,unselected:er.filter(e=>!e.selected).length,hasFile:er.filter(e=>e.hasFile).length,missingFile:er.filter(e=>!e.hasFile).length},e7=er.filter(e=>{var t;let r=V(e);return("all"===eg||r===eg)&&("selected"!==ej||!!e.selected)&&("unselected"!==ej||!e.selected)&&("hasFile"!==ej||!!e.hasFile)&&("missingFile"!==ej||!e.hasFile)&&(!eS.trim()||(t=eS.trim(),!!"".concat(e.projectName,"\n").concat(e.projectRoot||"","\n").concat(e.customizePath||"","\n").concat(e.content||"").toLowerCase().includes(t.toLowerCase())))}).sort((e,t)=>"name"===ey?e.projectName.localeCompare(t.projectName):"source"===ey?["custom","current","project"].indexOf(V(e))-["custom","current","project"].indexOf(V(t)):"selected"===ey&&Number(t.selected)-Number(e.selected)||Date.parse(t.mtime||"")-Date.parse(e.mtime||"")),e9=e7.find(e=>e.id===eC)||e7[0]||null,te=eT.filter(e=>e7.some(t=>t.id===e)),tt=(null==e3?void 0:e3.trim())?eU:eJ,tr=(e,t,r)=>{let o=Z(e,t,r);eM(o),eB(function(e){try{let t=JSON.parse(window.localStorage.getItem(e)||"[]");return Array.isArray(t)?t.filter(e=>("user"===e.role||"assistant"===e.role)&&"string"==typeof e.content).slice(-30):[]}catch(e){return[]}}(o)),eI(""),e_(!1),eG([]),eZ(!1)},to=r=>{if(null==r?void 0:r.projectRoot)return void J(r.projectRoot).then(()=>{t.success(e("common.success")),e5()}).catch(()=>t.error(e("common.error")));let o="new:".concat(Date.now());ec(null),eh(!0),em(""),ei(""),tr(null,"new",o),es(!0)},ta=async()=>{if(!ed.trim())return void t.error(e("prompt.nameRequired"));eu(!0);try{if(el)await D(el.customizePath,en,X(el)?ed.trim():void 0),t.success(e("common.success"));else{let r=await L(ed.trim(),en||"# ".concat(ed.trim(),"\n"));!function(e,t){if(!e||!t||e===t)return;let r=window.localStorage.getItem(e);r&&!window.localStorage.getItem(t)&&window.localStorage.setItem(t,r)}(eO,Z({id:r.id,projectId:r.id,projectName:ed.trim(),customizePath:r.id,content:en,mtime:"",hasFile:!0,isCurrent:!1,selected:!1,source:"custom"},ed.trim())),t.success(e("common.success"))}es(!1),await e5()}catch(r){t.error(e("common.error"))}finally{eu(!1)}},ts=async e=>{let t=Array.from(new Set([...eK,...eJ.filter(t=>e.includes("@".concat(t.relativePath))).map(e=>e.relativePath)])).slice(0,3),r=[];for(let e of t){let t=await G(e);t&&r.push({relativePath:e,content:t})}return r},tl=async()=>{let r=eR.trim();if(!r||eD)return;let o=[...eE,{role:"user",content:r}];eB(o),eI(""),eZ(!1),e_(!0);try{let t=await ts(r),a=await $({name:ed||(null==el?void 0:el.projectName)||e("prompt.untitled"),content:en,message:r,history:eE,references:t},e("prompt.chatFailed"));eB([...o,{role:"assistant",content:a.content||e("prompt.chatEmptyReply")}])}catch(r){t.error(r instanceof Error?r.message:e("prompt.chatFailed")),eB(o)}finally{e_(!1)}},tc=async(r,o)=>{let a=o?Array.from(new Set([...er.filter(e=>e.selected).map(e=>e.id),r.id])):er.filter(e=>e.selected&&e.id!==r.id).map(e=>e.id);try{await U(a),eo(e=>e.map(e=>({...e,selected:a.includes(e.id)})))}catch(r){t.error(e("common.error"))}},tn=async r=>{let o=er.filter(e=>e.selected).map(e=>e.id),a=r?Array.from(new Set([...o,...te])):o.filter(e=>!te.includes(e));try{await U(a),eo(e=>e.map(e=>({...e,selected:a.includes(e.id)}))),eP([]),t.success(e("common.success"))}catch(r){t.error(e("common.error"))}},ti=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")),eP(e=>e.filter(e=>e!==r.id)),await e5()}catch(r){t.error(e("common.error"))}},td=function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"custom",o="checked"===r?er.filter(e=>te.includes(e.id)):"filtered"===r?e7:e6;q("customize-prompts-".concat(new Date().toISOString().slice(0,10),".json"),Y(o)),t.success(e("prompt.exportedCount").replace("{count}",String(o.length)))},tm=async r=>{if(r){ez(!0);try{let o=await r.text(),a=JSON.parse(o),s=await H(a);t.success(e("prompt.importedCount").replace("{count}",String(s.imported))),await e5()}catch(r){t.error(e("prompt.importFailed"))}finally{ez(!1)}}},tp=t=>{let r=V(t);return(0,o.jsxs)(n.A,{size:4,wrap:!0,children:[(0,o.jsx)(i.A,{color:"custom"===r?"cyan":"current"===r?"green":"project"===r?"blue":"default",style:{margin:0},children:e("custom"===r?"prompt.customPrompt":"current"===r?"prompt.currentProject":"project"===r?"prompt.otherProjects":"prompt.allPrompts")}),t.selected&&(0,o.jsx)(i.A,{color:"purple",style:{margin:0},children:e("prompt.selected")}),!t.hasFile&&(0,o.jsx)(i.A,{style:{margin:0},children:e("prompt.missingFileStatus")})]})},tu=r=>(0,o.jsxs)("div",{className:"flex items-center gap-1.5",children:[r.hasFile&&(0,o.jsx)(d.A,{checked:r.selected,onChange:e=>{tc(r,e.target.checked)},className:"mr-1",children:e("prompt.selected")}),!r.hasFile&&r.projectRoot&&(0,o.jsx)(m.Ay,{size:"small",icon:(0,o.jsx)(N.A,{}),onClick:()=>to(r),children:e("common.add")}),r.hasFile&&(0,o.jsx)(m.Ay,{size:"small",icon:(0,o.jsx)(S.A,{}),onClick:()=>{ec(r),eh(!1),em(r.projectName),ei(r.content||""),tr(r,r.projectName),es(!0)},children:e("common.edit")}),r.hasFile&&(0,o.jsx)(m.Ay,{size:"small",icon:(0,o.jsx)(A.A,{}),onClick:()=>{var o;return o=r,void(q("customize-prompt-".concat(o.projectName.trim().replace(/[\\/:*?"<>|]/g,"-").slice(0,80)||"untitled","-").concat(new Date().toISOString().slice(0,10),".json"),Y([o])),t.success(e("prompt.exportedCount").replace("{count}","1")))},children:e("prompt.exportOne")}),(0,o.jsx)(p.A,{title:X(r)?e("prompt.deleteCustomConfirm"):e("prompt.deleteProjectConfirm"),onConfirm:()=>{ti(r)},children:(0,o.jsx)(m.Ay,{size:"small",danger:!0,icon:(0,o.jsx)(C.A,{})})})]});return r?(0,o.jsxs)("div",{className:"space-y-12",children:[(0,o.jsx)(u.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,o.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6",children:Array.from({length:4}).map((e,t)=>(0,o.jsx)("div",{className:"p-4 border border-[var(--borderColor)]",children:(0,o.jsx)(u.A,{active:!0,paragraph:{rows:4}})},t))})]}):(0,o.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,o.jsx)(w.z,{title:e("nav.promptManagement"),description:e("prompt.description"),extra:(0,o.jsxs)(o.Fragment,{children:[e4&&(0,o.jsxs)(i.A,{color:"green",bordered:!1,className:"m-0 max-w-[280px] truncate",title:e4.projectRoot,children:[(0,o.jsx)(T.A,{})," ",e4.projectRoot]}),(0,o.jsx)(x.A,{accept:"application/json,.json",showUploadList:!1,beforeUpload:e=>(tm(e),!1),children:(0,o.jsx)(m.Ay,{icon:(0,o.jsx)(P.A,{}),loading:eF,className:"rounded-lg",children:e("prompt.import")})}),(0,o.jsx)(m.Ay,{icon:(0,o.jsx)(A.A,{}),disabled:0===e7.length,onClick:()=>td("filtered"),className:"rounded-lg",children:e("prompt.exportFiltered")}),(0,o.jsx)(m.Ay,{type:"primary",icon:(0,o.jsx)(N.A,{}),onClick:()=>to(),className:"shadow-none rounded-lg",children:e("prompt.createPrompt")})]})}),(0,o.jsxs)("div",{className:"flex flex-wrap items-center gap-3 bg-[var(--colorBgContainer)] border border-[var(--borderColor)] p-3 rounded-2xl",children:[(0,o.jsx)(h.A,{prefix:(0,o.jsx)(F.A,{className:"text-[var(--colorTextTertiary)]"}),allowClear:!0,placeholder:e("prompt.searchPrompt"),value:eS,onChange:e=>eA(e.target.value),style:{width:260},className:"rounded-lg"}),(0,o.jsx)("div",{className:"h-6 w-[1px] bg-[var(--borderColor)] mx-1","aria-hidden":!0}),(0,o.jsx)(g.A,{value:eg,onChange:ef,style:{width:150},className:"rounded-lg",options:[{label:"".concat(e("prompt.allPrompts")," (").concat(e8.all,")"),value:"all"},{label:"".concat(e("prompt.customPrompt")," (").concat(e8.custom,")"),value:"custom"},{label:"".concat(e("prompt.currentProject")," (").concat(e8.current,")"),value:"current"},{label:"".concat(e("prompt.otherProjects")," (").concat(e8.project,")"),value:"project"}]}),(0,o.jsx)(g.A,{value:ej,onChange:ev,style:{width:130},className:"rounded-lg",options:[{label:e("prompt.promptStatus"),value:"all"},{label:"".concat(e("prompt.selected")," (").concat(e8.selected,")"),value:"selected"},{label:"".concat(e("prompt.unselected")," (").concat(e8.unselected,")"),value:"unselected"},{label:"".concat(e("prompt.hasFileStatus")," (").concat(e8.hasFile,")"),value:"hasFile"},{label:"".concat(e("prompt.missingFileStatus")," (").concat(e8.missingFile,")"),value:"missingFile"}]}),(0,o.jsx)(g.A,{value:ey,onChange:eb,style:{width:140},className:"rounded-lg",options:[{label:e("prompt.sortByMtime"),value:"mtime"},{label:e("prompt.sortByName"),value:"name"},{label:e("prompt.sortBySource"),value:"source"},{label:e("prompt.sortBySelected"),value:"selected"}]}),(0,o.jsx)("div",{className:"flex-1 min-w-4"}),(0,o.jsx)(f.A,{value:ew,onChange:e=>eN(e),options:[{label:(0,o.jsx)(z.A,{}),value:"list"},{label:(0,o.jsx)(E.A,{}),value:"card"}],className:"bg-[var(--colorBgHover)] p-1 rounded-lg"})]}),(0,o.jsxs)("div",{className:"min-w-0",children:[te.length>0&&(0,o.jsxs)("div",{className:"flex items-center gap-3 flex-wrap p-3 px-4 mb-4 bg-[var(--colorBgHover)] border border-[var(--borderColor)] rounded-2xl",children:[(0,o.jsx)("span",{className:"font-semibold text-sm",children:e("prompt.selectedCount").replace("{count}",String(te.length))}),(0,o.jsx)("div",{className:"h-6 w-[1px] bg-[var(--borderColor)] mx-1","aria-hidden":!0}),(0,o.jsx)(m.Ay,{size:"small",onClick:()=>{tn(!0)},children:e("prompt.batchSelect")}),(0,o.jsx)(m.Ay,{size:"small",onClick:()=>{tn(!1)},children:e("prompt.cancelSelect")}),(0,o.jsx)(m.Ay,{size:"small",icon:(0,o.jsx)(A.A,{}),onClick:()=>td("checked"),children:e("prompt.exportSelected")}),(0,o.jsx)(m.Ay,{size:"small",danger:!0,onClick:()=>eP([]),children:e("prompt.clearSelect")})]}),0===e7.length?(0,o.jsx)("div",{className:"py-32 text-center border border-dashed border-[var(--borderColor)] rounded-2xl bg-[var(--colorBgHover)]",children:(0,o.jsx)(j.A,{image:j.A.PRESENTED_IMAGE_SIMPLE,description:(0,o.jsx)("span",{className:"text-[var(--colorTextSecondary)]",children:eS||"all"!==ej?e("prompt.noMatchDesc"):e("prompt.noPromptInGroup")})})}):"list"===ew?(0,o.jsx)("div",{className:"flex flex-col gap-3",children:e7.map(t=>{let r=(null==e9?void 0:e9.id)===t.id;return(0,o.jsxs)("div",{onClick:()=>ek(t.id),className:"group grid grid-cols-[28px_1fr_auto] gap-4 items-center p-4 rounded-xl transition-all cursor-pointer ".concat(r?"bg-[var(--colorBgSelected)] shadow-md":"bg-transparent hover:bg-[var(--colorBgHover)] hover:shadow-sm"),children:[(0,o.jsx)(d.A,{checked:eT.includes(t.id),onClick:e=>e.stopPropagation(),onChange:e=>eP(r=>e.target.checked?Array.from(new Set([...r,t.id])):r.filter(e=>e!==t.id))}),(0,o.jsxs)("div",{className:"min-w-0",children:[(0,o.jsxs)("div",{className:"flex items-center gap-3 mb-1.5",children:[(0,o.jsx)(k.A,{className:t.isCurrent?"text-[var(--colorOk)] text-lg":"text-[var(--colorTextSecondary)] text-lg"}),(0,o.jsx)("span",{className:"font-semibold truncate text-[var(--colorText)] text-base",children:t.projectName}),tp(t)]}),(0,o.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)] truncate flex items-center gap-1.5 font-medium",children:[(0,o.jsx)(T.A,{})," ",t.projectRoot||t.customizePath||e("prompt.localPrompt"),(0,o.jsx)("span",{className:"text-[var(--colorBorderSecondary)]",children:"|"}),Q(t.mtime)]})]}),(0,o.jsx)("div",{onClick:e=>e.stopPropagation(),className:"transition-opacity flex items-center ".concat(r?"opacity-100":"opacity-0 group-hover:opacity-100"),children:tu(t)})]},t.id)})}):(0,o.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5",children:e7.map(t=>{let r=(null==e9?void 0:e9.id)===t.id;return(0,o.jsxs)("div",{onClick:()=>ek(t.id),className:"group flex flex-col p-5 rounded-2xl transition-all cursor-pointer ".concat(r?"bg-[var(--colorBgSelected)] shadow-md":"bg-[var(--colorBgContainer)] hover:bg-[var(--colorBgHover)] shadow-sm hover:shadow-md"),children:[(0,o.jsx)("div",{className:"flex items-start justify-between gap-3 mb-4 min-w-0",children:(0,o.jsxs)("div",{className:"flex items-center gap-3 min-w-0 flex-1",children:[(0,o.jsx)(d.A,{checked:eT.includes(t.id),onClick:e=>e.stopPropagation(),onChange:e=>eP(r=>e.target.checked?Array.from(new Set([...r,t.id])):r.filter(e=>e!==t.id))}),(0,o.jsx)(k.A,{className:t.isCurrent?"text-[var(--colorOk)] text-lg":"text-[var(--colorTextSecondary)] text-lg"}),(0,o.jsx)("span",{className:"font-bold text-base text-[var(--colorText)] truncate mb-1",children:t.projectName})]})}),(0,o.jsx)("div",{className:"mb-3",children:tp(t)}),(0,o.jsxs)("div",{className:"text-xs text-[var(--colorTextTertiary)] truncate flex items-center gap-1.5 mb-4 bg-[var(--colorFillAlter)] p-1.5 rounded inline-flex self-start",children:[(0,o.jsx)(T.A,{}),t.projectRoot||t.customizePath||e("prompt.localPrompt")]}),(0,o.jsxs)("div",{className:"mt-auto pt-4 flex justify-between items-center",onClick:e=>e.stopPropagation(),children:[(0,o.jsx)("span",{className:"text-xs font-medium text-[var(--colorTextTertiary)] bg-[var(--colorFillSecondary)] px-2 py-1 rounded",children:Q(t.mtime)}),(0,o.jsx)("div",{className:"transition-opacity ".concat(r?"opacity-100":"opacity-0 group-hover:opacity-100"),children:tu(t)})]})]},t.id)})})]}),(0,o.jsxs)(v.A,{title:ex?e("prompt.createPrompt"):el&&X(el)?"".concat(e("prompt.customPrompt")," — ").concat(ed||el.projectName):"".concat(e("prompt.currentProject")," — ").concat((null==el?void 0:el.projectName)||""),open:ea,onClose:()=>es(!1),styles:{mask:{pointerEvents:"none"},body:{padding:"24px 32px",display:"grid",gridTemplateRows:"minmax(320px, 1fr) 420px",gap:24,height:"100%"},header:{borderBottom:"1px solid var(--colorBorderSecondary)",padding:"16px 32px"}},extra:(0,o.jsxs)(n.A,{children:[(0,o.jsx)(m.Ay,{onClick:()=>es(!1),children:e("common.cancel")}),(0,o.jsx)(m.Ay,{type:"primary",loading:ep,onClick:()=>{ta()},children:e("common.save")})]}),children:[(0,o.jsxs)("div",{className:"min-h-0 flex flex-col",children:[ex||el&&X(el)?(0,o.jsx)(h.A,{size:"large",placeholder:e("prompt.promptName"),value:ed,onChange:e=>em(e.target.value),className:"mb-4 font-medium"}):null,(0,o.jsx)(h.A.TextArea,{value:en,onChange:e=>ei(e.target.value),className:"flex-1 min-h-[140px] resize-none font-mono text-[13px]"}),(0,o.jsxs)("div",{className:"mt-3 rounded-xl border border-[var(--borderColor)] bg-[var(--colorBgContainer)] px-3 py-2.5 max-h-[170px] overflow-y-auto",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,o.jsxs)(n.A,{size:6,children:[(0,o.jsx)(B.A,{className:"text-[var(--colorAccent)]"}),(0,o.jsx)("span",{className:"font-semibold text-xs",children:e("prompt.rulePreviewTitle")})]}),e0&&(0,o.jsx)(y.A,{size:"small"})]}),eQ?eQ.recognized?(0,o.jsx)("div",{className:"flex flex-col gap-1",children:eQ.summary.map((e,t)=>(0,o.jsxs)("div",{className:"text-xs text-[var(--colorText)] flex gap-1.5 leading-relaxed",children:[(0,o.jsx)(O.A,{className:"text-[var(--colorSuccess)] mt-1"}),(0,o.jsx)("span",{children:e})]},t))}):(0,o.jsx)("div",{className:"text-xs text-[var(--colorTextSecondary)]",children:e("prompt.rulePreviewNone")}):(0,o.jsx)("div",{className:"text-xs text-[var(--colorTextSecondary)]",children:en.trim()?e("prompt.rulePreviewAnalyzing"):e("prompt.rulePreviewHint")})]})]}),(0,o.jsxs)("div",{className:"min-h-0 rounded-xl border border-[var(--borderColor)] bg-[var(--colorBgContainer)] flex flex-col overflow-hidden",children:[(0,o.jsxs)("div",{className:"px-3 py-2.5 border-b border-[var(--borderColor)] flex items-center justify-between gap-2",children:[(0,o.jsxs)(n.A,{size:6,children:[(0,o.jsx)(M.A,{className:"text-[var(--colorAccent)]"}),(0,o.jsx)("span",{className:"font-semibold",children:e("prompt.aiPromptAssistant")})]}),(0,o.jsxs)(n.A,{size:6,children:[eE.length>0&&(0,o.jsx)(m.Ay,{size:"small",onClick:()=>eB([]),children:e("prompt.clearHistory")}),eD?(0,o.jsx)(i.A,{color:"processing",className:"m-0",children:e("prompt.generating")}):(0,o.jsx)(i.A,{color:"blue",className:"m-0",children:e("prompt.canConverse")})]})]}),(0,o.jsx)("div",{ref:e2,className:"flex-1 min-h-0 overflow-y-auto p-3.5 bg-[var(--colorFillAlter)]",children:0!==eE.length||eD?(0,o.jsxs)("div",{className:"flex flex-col gap-3 w-full",children:[eE.map((r,a)=>{let s="user"===r.role;return(0,o.jsx)("div",{className:"flex ".concat(s?"justify-end":"justify-start"),children:(0,o.jsxs)("div",{className:"max-w-[78%] px-3 py-2.5 rounded-xl border border-[var(--borderColor)] whitespace-pre-wrap leading-relaxed text-[13px] transition-colors ".concat(s?"bg-[var(--colorFillSecondary)]":"bg-[var(--colorBgContainer)]"),children:[r.content,!s&&(0,o.jsx)("div",{className:"flex justify-end mt-2",children:(0,o.jsx)(m.Ay,{size:"small",type:"primary",onClick:()=>{ei(r.content),t.success(e("prompt.appliedToEditor"))},children:e("prompt.apply")})})]})},"".concat(r.role,"-").concat(a))}),eD&&(0,o.jsx)("div",{className:"flex justify-start",children:(0,o.jsxs)("div",{className:"px-3 py-2.5 rounded-xl bg-[var(--colorBgContainer)] border border-[var(--borderColor)] text-[var(--colorTextSecondary)] text-[13px]",children:[(0,o.jsx)(y.A,{size:"small",className:"mr-2"}),e("prompt.aiAnalyzing")]})})]}):(0,o.jsx)(j.A,{image:j.A.PRESENTED_IMAGE_SIMPLE,description:e("prompt.mentionRecallHint")})}),(0,o.jsx)(b.A,{className:"!m-0"}),(0,o.jsxs)("div",{className:"p-3",children:[eK.length>0&&(0,o.jsx)("div",{className:"flex flex-wrap gap-1 mb-2",children:eK.map(e=>(0,o.jsxs)(i.A,{closable:!0,onClose:()=>eG(t=>t.filter(t=>t!==e)),className:"m-0 max-w-[360px] overflow-hidden text-ellipsis",children:["@",e]},e))}),eV&&(0,o.jsxs)("div",{className:"max-h-[260px] overflow-y-auto mb-2 rounded-xl border border-[var(--borderColor)] bg-[var(--colorBgElevated)] shadow-lg",children:[(0,o.jsxs)("div",{className:"sticky top-0 z-[1] px-3 py-2.5 border-b border-[var(--borderColor)] bg-[var(--colorBgElevated)] flex justify-between gap-3 items-center",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"text-[var(--colorText)] text-[13px] font-bold",children:e("prompt.recallKbFiles")}),(0,o.jsx)("div",{className:"text-[var(--colorTextSecondary)] text-[11px]",children:e("prompt.recallLimitHint")})]}),(0,o.jsx)(i.A,{color:e3?"blue":"default",className:"m-0 max-w-[240px] overflow-hidden text-ellipsis",children:e3?"@".concat(e3):e("prompt.inputAtKeyword")})]}),eW?(0,o.jsxs)("div",{className:"p-3.5 text-[var(--colorTextSecondary)] text-xs",children:[(0,o.jsx)(y.A,{size:"small",className:"mr-2"}),e("prompt.loadingKbFiles")]}):0===eJ.length?(0,o.jsx)("div",{className:"p-3.5 text-[var(--colorTextSecondary)] text-xs",children:e("prompt.noRecallableKbFiles")}):0===tt.length?(0,o.jsx)("div",{className:"p-3.5 text-[var(--colorTextSecondary)] text-xs",children:eq?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(y.A,{size:"small",className:"mr-2"}),e("prompt.searchingKbContent")]}):e("prompt.noMatchingKbFiles")}):(0,o.jsxs)(o.Fragment,{children:[eq&&(0,o.jsxs)("div",{className:"px-3 py-2 text-[var(--colorTextSecondary)] text-xs border-b border-[var(--borderColor)]",children:[(0,o.jsx)(y.A,{size:"small",className:"mr-2"}),e("prompt.continueSearchingKb")]}),tt.slice(0,30).map(t=>(0,o.jsxs)("div",{onMouseDown:e=>{var r;e.preventDefault(),r=t.relativePath,eG(e=>e.includes(r)?e:[...e,r]),eI(e=>e.replace(/(^|\s)@([^\s@]*)$/,"$1@".concat(r," "))),eZ(!1)},className:"px-3 py-2.5 cursor-pointer border-b border-[var(--borderColor)] text-xs grid grid-cols-[22px_minmax(0,1fr)_auto] gap-2.5 items-center hover:bg-[var(--colorBgHover)] transition-colors",children:[(0,o.jsx)("div",{className:"w-[22px] h-[22px] rounded-lg bg-[var(--colorFillSecondary)] flex items-center justify-center",children:(0,o.jsx)(k.A,{className:"text-[var(--colorAccent)]"})}),(0,o.jsxs)("div",{className:"min-w-0",children:[(0,o.jsx)("div",{className:"text-[var(--colorText)] truncate font-bold",children:t.relativePath}),(0,o.jsxs)("div",{className:"text-[var(--colorTextSecondary)] text-[11px] truncate",children:[t.category||e("prompt.unclassified")," \xb7 ",t.format||e("prompt.unknownFormat"),"number"==typeof t.score?" \xb7 score ".concat(t.score.toFixed(2)):""]})]}),(0,o.jsxs)(n.A,{size:4,children:[(0,o.jsx)(i.A,{color:"content"===t.matchedBy?"purple":"disk"===t.matchedBy?"orange":"blue",className:"m-0",children:"content"===t.matchedBy?e("prompt.contentMatch"):"disk"===t.matchedBy?e("prompt.diskFile"):e("prompt.fileMatch")}),(0,o.jsx)(i.A,{className:"m-0",children:e(l.mc[t.status]||"common.unknown")})]})]},t.relativePath))]})]}),(0,o.jsxs)("div",{className:"flex gap-2 items-end",children:[(0,o.jsx)(h.A.TextArea,{value:eR,onChange:e=>{let t=e.target.value;eI(t),eZ(null!==ee(t))},onFocus:()=>eZ(null!==ee(eR)),onPressEnter:e=>{e.shiftKey||(e.preventDefault(),tl())},disabled:eD,placeholder:e("prompt.mentionRecallPlaceholder"),autoSize:{minRows:2,maxRows:5},className:"text-[13px] leading-relaxed"}),(0,o.jsx)(m.Ay,{type:"primary",icon:(0,o.jsx)(R.A,{}),loading:eD,disabled:!eR.trim(),onClick:()=>{tl()},children:e("prompt.send")})]})]})]})]})]})}},45551:(e,t,r)=>{"use strict";function o(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),r=e/Math.pow(1024,t);return"".concat(r.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN",r=Math.max(0,Math.floor(e)),o=Math.floor(r/86400),a=Math.floor(r%86400/3600),s=Math.floor(r%3600/60),l="en-US"===t;return o>0?l?"".concat(o,"d ").concat(a,"h"):"".concat(o," 天 ").concat(a," 小时"):a>0?l?"".concat(a,"h ").concat(s,"m"):"".concat(a," 小时 ").concat(s," 分"):s>0?l?"".concat(s,"m"):"".concat(s," 分"):l?"Just now":"刚刚"}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let r=Math.floor(Math.floor((Date.now()-e)/1e3)/60),o=Math.floor(r/60),a=Math.floor(o/24);return a>30?new Date(e).toLocaleDateString(t):"en-US"===t?a>0?"".concat(a,"d ago"):o>0?"".concat(o,"h ago"):r>0?"".concat(r,"m ago"):"Just now":a>0?"".concat(a," 天前"):o>0?"".concat(o," 小时前"):r>0?"".concat(r," 分钟前"):"刚刚"}r.d(t,{Jm:()=>n,a3:()=>a,fw:()=>s,mc:()=>i,z3:()=>o});let l={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},c={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function n(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===r?c:l)[e])?t:e}let i={active:"common.statusIndexed",outdated:"common.statusOutdated",error:"common.statusAbnormal",deleted:"common.statusDeleted",disk:"common.statusNotIndexed"}},93360:(e,t,r)=>{"use strict";r.d(t,{z:()=>n});var o=r(65321);r(97109);var a=r(48399),s=r(33442);let{Title:l,Text:c}=a.A;function n(e){let{title:t,description:r,extra:a,bottomContent:n}=e;return(0,o.jsxs)("div",{className:"mb-6 animateFadeIn",children:[(0,o.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end justify-between gap-4",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)(l,{level:4,style:{margin:0,fontWeight:700,letterSpacing:"-0.01em"},children:t}),r&&(0,o.jsx)(c,{type:"secondary",className:"mt-1 block text-sm",children:r})]}),a&&(0,o.jsx)(s.A,{className:"w-full sm:w-auto overflow-x-auto pb-1 sm:pb-0",size:"middle",wrap:!1,children:a})]}),n&&(0,o.jsx)("div",{className:"mt-4",children:n})]})}}},e=>{e.O(0,[310,700,189,426,636,593,792],()=>e(e.s=27549)),_N_E=e.O()}]);
|