@customize-agent/server 4.60.32 → 4.60.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +8 -8
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/required-server-files.json +1 -1
  5. package/.next/server/chunks/6321.js +1 -1
  6. package/.next/server/chunks/7848.js +21 -21
  7. package/.next/server/chunks/8204.js +1 -1
  8. package/.next/server/chunks/9666.js +7 -7
  9. package/.next/server/middleware-build-manifest.js +1 -1
  10. package/.next/server/pages/404.html +1 -1
  11. package/.next/server/pages/500.html +1 -1
  12. package/.next/server/pages/api/config/healthCheck.js +1 -1
  13. package/.next/server/pages/api/config/providers.js +1 -1
  14. package/.next/server/pages/api/health.js +1 -1
  15. package/.next/server/pages/api/prompt/chat.js +3 -3
  16. package/.next/server/pages/canvas/[id].html +1 -1
  17. package/.next/server/pages/canvas.html +1 -1
  18. package/.next/server/pages/documents.html +1 -1
  19. package/.next/server/pages/guide.html +1 -1
  20. package/.next/server/pages/index.html +1 -1
  21. package/.next/server/pages/jobs.html +1 -1
  22. package/.next/server/pages/knowledge/file-detail.html +1 -1
  23. package/.next/server/pages/knowledge/files.html +1 -1
  24. package/.next/server/pages/knowledge/manage.html +1 -1
  25. package/.next/server/pages/knowledge/source-preview.html +1 -1
  26. package/.next/server/pages/knowledge.html +1 -1
  27. package/.next/server/pages/models.html +1 -1
  28. package/.next/server/pages/overview.html +1 -1
  29. package/.next/server/pages/prompt.html +1 -1
  30. package/.next/server/pages/settings.html +1 -1
  31. package/.next/server/pages/skills/[id]/edit.html +1 -1
  32. package/.next/server/pages/skills/[id].html +1 -1
  33. package/.next/server/pages/skills/new.html +1 -1
  34. package/.next/server/pages/skills.html +1 -1
  35. package/.next/server/pages/system/logs.html +1 -1
  36. package/.next/server/pages-manifest.json +39 -39
  37. package/.next/static/{279fd5e41d98af82751903f8ea0267af84a75c794a35915a6e294777024190f8 → 84adacede7ff442362a497aa3e621351f0c7ab051b72c5c491f09a03bf4751e3}/_buildManifest.js +1 -1
  38. package/.next/static/chunks/4530-8b9788da40548ec6.js +1 -0
  39. package/.next/static/chunks/pages/{_app-646f249ed0cc363f.js → _app-51c48c5efcf5c721.js} +1 -1
  40. package/.next/static/chunks/pages/{canvas-47a86f1679c159af.js → canvas-1d3589790493e955.js} +1 -1
  41. package/.next/static/chunks/pages/models-8a89dd5bf0f81242.js +1 -0
  42. package/.next/static/css/{808682ca3875966b.css → 9eb02c1a401fd278.css} +1 -1
  43. package/messages/en-US.json +4 -3
  44. package/messages/zh-CN.json +4 -3
  45. package/package.json +2 -2
  46. package/.next/static/chunks/4530-e73bdd645bb7a953.js +0 -1
  47. package/.next/static/chunks/pages/models-e679c45d71631078.js +0 -1
  48. /package/.next/static/{279fd5e41d98af82751903f8ea0267af84a75c794a35915a6e294777024190f8 → 84adacede7ff442362a497aa3e621351f0c7ab051b72c5c491f09a03bf4751e3}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">Customize Agent</title><link rel="preload" href="/_next/static/css/808682ca3875966b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/808682ca3875966b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-2da1769ff35eb1ed.js" defer=""></script><script src="/_next/static/chunks/framework-9cde5013cd555765.js" defer=""></script><script src="/_next/static/chunks/main-b313efde54fa6d2e.js" defer=""></script><script src="/_next/static/chunks/pages/_app-646f249ed0cc363f.js" defer=""></script><script src="/_next/static/chunks/6409-5a3bb0fbad4f64b1.js" defer=""></script><script src="/_next/static/chunks/1210-703ad87eaeee1e4e.js" defer=""></script><script src="/_next/static/chunks/1702-f5e99af7aface475.js" defer=""></script><script src="/_next/static/chunks/5544-d77b8289662b4c28.js" defer=""></script><script src="/_next/static/chunks/9551-f4b09bf2213ad571.js" defer=""></script><script src="/_next/static/chunks/4665-1984a3d8b0573fa1.js" defer=""></script><script src="/_next/static/chunks/8399-a001bb2a0cb1640b.js" defer=""></script><script src="/_next/static/chunks/7576-ba6fc03060415b0e.js" defer=""></script><script src="/_next/static/chunks/1499-ff8f02f6bb6f3d45.js" defer=""></script><script src="/_next/static/chunks/8338-b2ea00050048ba9f.js" defer=""></script><script src="/_next/static/chunks/5061-80765d4a612286e0.js" defer=""></script><script src="/_next/static/chunks/8964-e959915ecfae86b2.js" defer=""></script><script src="/_next/static/chunks/pages/system/logs-0856f7c65432befb.js" defer=""></script><script src="/_next/static/279fd5e41d98af82751903f8ea0267af84a75c794a35915a6e294777024190f8/_buildManifest.js" defer=""></script><script src="/_next/static/279fd5e41d98af82751903f8ea0267af84a75c794a35915a6e294777024190f8/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_56_"><aside class="sidebar sidebarCollapsedSelf"><div class="sidebarLogoRow"><a class="min-w-0 flex-1" href="/overview"><div class="sidebarLogo"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg width="26" height="26" viewBox="0 0 24 24" class="text-white dark:text-black" aria-hidden="true" focusable="false"><g transform="translate(12.2475 11.7525) scale(1.0500) translate(0.9636 0.0000) rotate(5.00)"><path d="M8.561 5.168 A10 10 0 1 1 1.544 -9.880 A8.5 8.5 0 1 0 8.561 5.168 Z" fill="currentColor"></path></g></svg></div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div></div></a></div><nav class="sidebarNav mt-2"><a href="/overview"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span class="sidebarLabel">总览</span></div></a><a href="/knowledge"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="sidebarLabel">知识库</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel">模型配置</span></div></a><a href="/prompt"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="sidebarLabel">提示词管理</span></div></a><a href="/skills"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span class="sidebarLabel">技能库</span></div></a><a href="/canvas"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg><span class="sidebarLabel">生成画布</span></div></a><a href="/guide"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg><span class="sidebarLabel">指引</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><a class="shrink-0" href="/jobs"><span class="ant-badge css-1pi45l5 css-var-_R_56_"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_56_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined topbarBtn"><span class="ant-btn-icon"><span role="img" aria-label="clock-circle" class="anticon anticon-clock-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="clock-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"></path></svg></span></span><span>后台任务</span></button></span></a><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span>深色</span></button><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>English</span></button></header><main class="mainInner"><div class="space-y-8 animateFadeIn"><div class="ant-skeleton ant-skeleton-active css-1pi45l5 css-var-_R_56_"><div class="ant-skeleton-section"><h3 class="ant-skeleton-title" style="width:38%"></h3><ul class="ant-skeleton-paragraph"><li style="width:61%"></li></ul></div></div><div class="ant-skeleton ant-skeleton-active css-1pi45l5 css-var-_R_56_"><div class="ant-skeleton-section"><h3 class="ant-skeleton-title" style="width:38%"></h3><ul class="ant-skeleton-paragraph"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li style="width:61%"></li></ul></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/system/logs","query":{},"buildId":"279fd5e41d98af82751903f8ea0267af84a75c794a35915a6e294777024190f8","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" data-next-head=""/><link rel="icon" type="image/svg+xml" href="/favicon.svg" data-next-head=""/><link rel="icon" href="/favicon.ico" sizes="any" data-next-head=""/><link rel="apple-touch-icon" href="/apple-touch-icon.png" data-next-head=""/><title data-next-head="">Customize Agent</title><link rel="preload" href="/_next/static/css/9eb02c1a401fd278.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9eb02c1a401fd278.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-2da1769ff35eb1ed.js" defer=""></script><script src="/_next/static/chunks/framework-9cde5013cd555765.js" defer=""></script><script src="/_next/static/chunks/main-b313efde54fa6d2e.js" defer=""></script><script src="/_next/static/chunks/pages/_app-51c48c5efcf5c721.js" defer=""></script><script src="/_next/static/chunks/6409-5a3bb0fbad4f64b1.js" defer=""></script><script src="/_next/static/chunks/1210-703ad87eaeee1e4e.js" defer=""></script><script src="/_next/static/chunks/1702-f5e99af7aface475.js" defer=""></script><script src="/_next/static/chunks/5544-d77b8289662b4c28.js" defer=""></script><script src="/_next/static/chunks/9551-f4b09bf2213ad571.js" defer=""></script><script src="/_next/static/chunks/4665-1984a3d8b0573fa1.js" defer=""></script><script src="/_next/static/chunks/8399-a001bb2a0cb1640b.js" defer=""></script><script src="/_next/static/chunks/7576-ba6fc03060415b0e.js" defer=""></script><script src="/_next/static/chunks/1499-ff8f02f6bb6f3d45.js" defer=""></script><script src="/_next/static/chunks/8338-b2ea00050048ba9f.js" defer=""></script><script src="/_next/static/chunks/5061-80765d4a612286e0.js" defer=""></script><script src="/_next/static/chunks/8964-e959915ecfae86b2.js" defer=""></script><script src="/_next/static/chunks/pages/system/logs-0856f7c65432befb.js" defer=""></script><script src="/_next/static/84adacede7ff442362a497aa3e621351f0c7ab051b72c5c491f09a03bf4751e3/_buildManifest.js" defer=""></script><script src="/_next/static/84adacede7ff442362a497aa3e621351f0c7ab051b72c5c491f09a03bf4751e3/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>((e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=["light","dark"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y==="class",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n==="system"?c():n;p(y)}catch(n){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div class="css-1pi45l5 ant-app css-var-_R_56_"><aside class="sidebar sidebarCollapsedSelf"><div class="sidebarLogoRow"><a class="min-w-0 flex-1" href="/overview"><div class="sidebarLogo"><div class="w-8 h-8 rounded-lg bg-black dark:bg-white flex items-center justify-center shrink-0"><svg width="26" height="26" viewBox="0 0 24 24" class="text-white dark:text-black" aria-hidden="true" focusable="false"><g transform="translate(12.2475 11.7525) scale(1.0500) translate(0.9636 0.0000) rotate(5.00)"><path d="M8.561 5.168 A10 10 0 1 1 1.544 -9.880 A8.5 8.5 0 1 0 8.561 5.168 Z" fill="currentColor"></path></g></svg></div><div class="sidebarLogoTitle"><span class="logoGradient">Customize Agent</span></div></div></a></div><nav class="sidebarNav mt-2"><a href="/overview"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span class="sidebarLabel">总览</span></div></a><a href="/knowledge"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="sidebarLabel">知识库</span></div></a><a href="/models"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg><span class="sidebarLabel">模型配置</span></div></a><a href="/prompt"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="sidebarLabel">提示词管理</span></div></a><a href="/skills"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><span class="sidebarLabel">技能库</span></div></a><a href="/canvas"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg><span class="sidebarLabel">生成画布</span></div></a><a href="/guide"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg><span class="sidebarLabel">指引</span></div></a><a href="/settings"><div class="sidebarItem"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="sidebarLabel">设置</span></div></a></nav></aside><div class="mainContent"><header class="topbar"><div class="flex-1"></div><a class="shrink-0" href="/jobs"><span class="ant-badge css-1pi45l5 css-var-_R_56_"><button type="button" class="ant-btn css-1pi45l5 css-var-_R_56_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined topbarBtn"><span class="ant-btn-icon"><span role="img" aria-label="clock-circle" class="anticon anticon-clock-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="clock-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"></path></svg></span></span><span>后台任务</span></button></span></a><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span>深色</span></button><button class="topbarBtn"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span>English</span></button></header><main class="mainInner"><div class="space-y-8 animateFadeIn"><div class="ant-skeleton ant-skeleton-active css-1pi45l5 css-var-_R_56_"><div class="ant-skeleton-section"><h3 class="ant-skeleton-title" style="width:38%"></h3><ul class="ant-skeleton-paragraph"><li style="width:61%"></li></ul></div></div><div class="ant-skeleton ant-skeleton-active css-1pi45l5 css-var-_R_56_"><div class="ant-skeleton-section"><h3 class="ant-skeleton-title" style="width:38%"></h3><ul class="ant-skeleton-paragraph"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li style="width:61%"></li></ul></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/system/logs","query":{},"buildId":"84adacede7ff442362a497aa3e621351f0c7ab051b72c5c491f09a03bf4751e3","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1,83 +1,83 @@
1
1
  {
2
2
  "/_app": "pages/_app.js",
3
3
  "/api/assets/generated": "pages/api/assets/generated.js",
4
- "/api/assets/generated/preview": "pages/api/assets/generated/preview.js",
5
4
  "/api/config/reset": "pages/api/config/reset.js",
5
+ "/api/config/embedding/healthCheck": "pages/api/config/embedding/healthCheck.js",
6
+ "/api/config/web-access": "pages/api/config/web-access.js",
7
+ "/api/config/healthCheck": "pages/api/config/healthCheck.js",
8
+ "/api/assets/generated/preview": "pages/api/assets/generated/preview.js",
6
9
  "/api/documents/generate": "pages/api/documents/generate.js",
7
10
  "/api/documents/generate/preview": "pages/api/documents/generate/preview.js",
8
- "/api/config/web-access": "pages/api/config/web-access.js",
9
- "/api/config/embedding/healthCheck": "pages/api/config/embedding/healthCheck.js",
10
- "/api/documents/generated/[id]/nodes/[nodeId]": "pages/api/documents/generated/[id]/nodes/[nodeId].js",
11
+ "/api/documents/generated/[id]/nodes": "pages/api/documents/generated/[id]/nodes.js",
12
+ "/api/documents/generated/[id]/instruction": "pages/api/documents/generated/[id]/instruction.js",
11
13
  "/api/documents/generated/[id]/pause": "pages/api/documents/generated/[id]/pause.js",
14
+ "/api/documents/generated/[id]/nodes/[nodeId]": "pages/api/documents/generated/[id]/nodes/[nodeId].js",
12
15
  "/api/documents/generated/[id]/preview": "pages/api/documents/generated/[id]/preview.js",
13
16
  "/api/documents/generated/[id]/repair/[rid]/confirm": "pages/api/documents/generated/[id]/repair/[rid]/confirm.js",
14
- "/api/documents/generated/[id]/report": "pages/api/documents/generated/[id]/report.js",
15
- "/api/documents/generated/[id]/repair/[rid]/rollback": "pages/api/documents/generated/[id]/repair/[rid]/rollback.js",
16
17
  "/api/documents/generated/[id]/repair": "pages/api/documents/generated/[id]/repair.js",
17
- "/api/documents/generated/[id]/instruction": "pages/api/documents/generated/[id]/instruction.js",
18
- "/api/health": "pages/api/health.js",
18
+ "/api/documents/generated/[id]/repair/[rid]/rollback": "pages/api/documents/generated/[id]/repair/[rid]/rollback.js",
19
19
  "/api/documents/generated/[id]/resume-generate": "pages/api/documents/generated/[id]/resume-generate.js",
20
+ "/api/documents/generated": "pages/api/documents/generated.js",
21
+ "/api/documents/generated/[id]/report": "pages/api/documents/generated/[id]/report.js",
22
+ "/api/health": "pages/api/health.js",
20
23
  "/api/kb/duplicates": "pages/api/kb/duplicates.js",
21
- "/api/jobs/[id]": "pages/api/jobs/[id].js",
22
24
  "/api/kb/categories": "pages/api/kb/categories.js",
25
+ "/api/jobs/[id]": "pages/api/jobs/[id].js",
23
26
  "/api/kb/features": "pages/api/kb/features.js",
24
- "/api/documents/generated/[id]/nodes": "pages/api/documents/generated/[id]/nodes.js",
25
27
  "/api/kb/files/detail": "pages/api/kb/files/detail.js",
26
- "/api/documents/generated": "pages/api/documents/generated.js",
27
28
  "/api/kb/files": "pages/api/kb/files.js",
28
- "/api/kb/files/reindex": "pages/api/kb/files/reindex.js",
29
+ "/api/kb/files/open": "pages/api/kb/files/open.js",
29
30
  "/api/kb/files/search": "pages/api/kb/files/search.js",
31
+ "/api/kb/files/reindex": "pages/api/kb/files/reindex.js",
30
32
  "/api/kb/ignore": "pages/api/kb/ignore.js",
31
- "/api/kb/files/open": "pages/api/kb/files/open.js",
32
33
  "/api/kb/operations": "pages/api/kb/operations.js",
33
34
  "/api/kb/material-groups": "pages/api/kb/material-groups.js",
34
35
  "/api/kb/stats": "pages/api/kb/stats.js",
35
36
  "/api/kb/tags": "pages/api/kb/tags.js",
36
37
  "/api/kb/reindex": "pages/api/kb/reindex.js",
37
38
  "/api/kb/upload/complete": "pages/api/kb/upload/complete.js",
38
- "/api/prompt": "pages/api/prompt.js",
39
39
  "/api/skills": "pages/api/skills.js",
40
- "/api/skills/[id]": "pages/api/skills/[id].js",
41
- "/_error": "pages/_error.js",
40
+ "/api/prompt/chat": "pages/api/prompt/chat.js",
41
+ "/api/prompt": "pages/api/prompt.js",
42
+ "/api/system/logs": "pages/api/system/logs.js",
42
43
  "/api/skills/validate": "pages/api/skills/validate.js",
43
- "/api/system/reset": "pages/api/system/reset.js",
44
- "/canvas/[id]": "pages/canvas/[id].html",
44
+ "/api/skills/[id]": "pages/api/skills/[id].js",
45
45
  "/api/system/data-health": "pages/api/system/data-health.js",
46
- "/canvas": "pages/canvas.html",
47
46
  "/api/system/stats": "pages/api/system/stats.js",
47
+ "/canvas": "pages/canvas.html",
48
48
  "/documents": "pages/documents.html",
49
- "/knowledge/file-detail": "pages/knowledge/file-detail.html",
50
- "/api/system/logs": "pages/api/system/logs.js",
51
- "/jobs": "pages/jobs.html",
52
- "/knowledge": "pages/knowledge.html",
53
- "/knowledge/files": "pages/knowledge/files.html",
49
+ "/guide": "pages/guide.html",
50
+ "/_error": "pages/_error.js",
54
51
  "/": "pages/index.html",
52
+ "/api/system/reset": "pages/api/system/reset.js",
53
+ "/knowledge/files": "pages/knowledge/files.html",
54
+ "/canvas/[id]": "pages/canvas/[id].html",
55
+ "/knowledge/source-preview": "pages/knowledge/source-preview.html",
56
+ "/knowledge": "pages/knowledge.html",
57
+ "/jobs": "pages/jobs.html",
55
58
  "/knowledge/manage": "pages/knowledge/manage.html",
56
- "/guide": "pages/guide.html",
57
59
  "/overview": "pages/overview.html",
58
- "/knowledge/source-preview": "pages/knowledge/source-preview.html",
59
- "/skills/[id]/edit": "pages/skills/[id]/edit.html",
60
- "/models": "pages/models.html",
60
+ "/knowledge/file-detail": "pages/knowledge/file-detail.html",
61
+ "/settings": "pages/settings.html",
61
62
  "/prompt": "pages/prompt.html",
63
+ "/skills/[id]/edit": "pages/skills/[id]/edit.html",
62
64
  "/skills": "pages/skills.html",
63
- "/skills/[id]": "pages/skills/[id].html",
64
- "/settings": "pages/settings.html",
65
- "/api/config/embedding": "pages/api/config/embedding.js",
66
- "/system/logs": "pages/system/logs.html",
67
- "/api/config/healthCheck": "pages/api/config/healthCheck.js",
68
- "/api/config/providers/[provider]": "pages/api/config/providers/[provider].js",
65
+ "/skills/new": "pages/skills/new.html",
66
+ "/models": "pages/models.html",
69
67
  "/api/config/models": "pages/api/config/models.js",
68
+ "/skills/[id]": "pages/skills/[id].html",
70
69
  "/api/config/providers": "pages/api/config/providers.js",
71
- "/skills/new": "pages/skills/new.html",
72
- "/api/documents/canvas/[id]": "pages/api/documents/canvas/[id].js",
70
+ "/api/config/providers/[provider]": "pages/api/config/providers/[provider].js",
71
+ "/api/config/embedding": "pages/api/config/embedding.js",
73
72
  "/api/documents/generated/[id]": "pages/api/documents/generated/[id].js",
74
73
  "/api/documents/generated/[id]/figure/[name]": "pages/api/documents/generated/[id]/figure/[name].js",
75
74
  "/api/documents/generated/[id]/events": "pages/api/documents/generated/[id]/events.js",
76
- "/api/kb/files/preview-pdf-page": "pages/api/kb/files/preview-pdf-page.js",
75
+ "/system/logs": "pages/system/logs.html",
76
+ "/api/documents/canvas/[id]": "pages/api/documents/canvas/[id].js",
77
77
  "/api/kb/files/export": "pages/api/kb/files/export.js",
78
- "/api/kb/upload": "pages/api/kb/upload.js",
79
- "/api/prompt/chat": "pages/api/prompt/chat.js",
78
+ "/api/kb/files/preview-pdf-page": "pages/api/kb/files/preview-pdf-page.js",
80
79
  "/api/kb/files/source-preview": "pages/api/kb/files/source-preview.js",
80
+ "/api/kb/upload": "pages/api/kb/upload.js",
81
81
  "/_document": "pages/_document.js",
82
82
  "/api/documents/export": "pages/api/documents/export.js",
83
83
  "/404": "pages/404.html"
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST=function(s,c,e,a,t,i,n,d,k,u,f,b,l,j,h,g,o,r,p,w,m,_,v,I,B,F,y,A,N,D,S){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:v,bitArray:[]},__routerFilterDynamic:{numItems:o,errorRate:1e-4,numBits:o,numHashes:v,bitArray:[]},"/":[s,c,e,t,j,I,B,"static/chunks/pages/index-c572e9caa60cb278.js"],"/_error":["static/chunks/pages/_error-c01b6fb772028676.js"],"/canvas":[s,c,e,a,i,t,d,k,f,g,F,y,"static/chunks/pages/canvas-47a86f1679c159af.js"],"/canvas/[id]":[s,c,e,a,i,n,t,d,k,u,f,j,g,r,p,F,"static/chunks/8750-a3c55a576effb3a6.js",y,"static/chunks/pages/canvas/[id]-18865f1b7e3a4696.js"],"/documents":["static/chunks/pages/documents-a1af5c6be26daed2.js"],"/guide":[s,c,e,n,t,u,b,"static/chunks/5760-f4191aac081b12d4.js","static/chunks/pages/guide-fdf0822dc1d28813.js"],"/jobs":[s,c,e,a,i,n,t,d,k,l,f,h,j,A,"static/chunks/pages/jobs-ebd1877dbf788a83.js"],"/knowledge":[s,c,e,a,i,n,d,k,l,h,N,"static/chunks/pages/knowledge-2a776c1740386874.js"],"/knowledge/file-detail":[s,c,e,a,i,n,t,d,k,u,l,b,h,p,N,"static/chunks/pages/knowledge/file-detail-3d1ffd43f4f0e47b.js"],"/knowledge/files":["static/chunks/pages/knowledge/files-b796702bb5f8ac50.js"],"/knowledge/manage":["static/chunks/pages/knowledge/manage-6d7b21cdca1255f2.js"],"/knowledge/source-preview":[s,e,a,i,n,k,u,b,p,D,"static/chunks/1141-d420a7685bc3623c.js","static/chunks/pages/knowledge/source-preview-24936b9a746ed07f.js"],"/models":[s,c,e,a,i,d,l,f,g,w,r,D,"static/chunks/4337-a670a1a94ab505d9.js","static/chunks/pages/models-e679c45d71631078.js"],"/overview":[s,c,e,t,j,I,B,"static/chunks/pages/overview-7e8018014009682e.js"],"/prompt":[s,c,e,a,i,n,d,k,l,f,h,j,r,A,"static/chunks/4565-3c5ff667062ccec9.js","static/chunks/pages/prompt-11f87694feb6514c.js"],"/settings":[j,"static/chunks/7646-159733564c7eb8dc.js","static/chunks/pages/settings-e8dcaba1551a0b2b.js"],"/skills":[s,c,e,a,i,n,t,k,u,l,f,b,h,"static/chunks/8715-ee013bd7f5ba38e8.js","static/chunks/pages/skills-8ad2577b4aa17f3b.js"],"/skills/new":[s,c,a,i,n,t,d,u,b,g,w,m,S,"static/chunks/pages/skills/new-00886ea4c676f927.js"],"/skills/[id]":[s,c,e,a,n,t,u,b,m,"static/chunks/pages/skills/[id]-71f696be252bbf0d.js"],"/skills/[id]/edit":[s,c,a,i,n,t,d,u,b,g,w,m,S,"static/chunks/pages/skills/[id]/edit-99e616d5019e80b1.js"],"/system/logs":[s,c,e,a,i,n,t,d,k,l,f,h,"static/chunks/pages/system/logs-0856f7c65432befb.js"],sortedPages:["/","/_app","/_error","/canvas","/canvas/[id]","/documents","/guide","/jobs","/knowledge","/knowledge/file-detail","/knowledge/files","/knowledge/manage","/knowledge/source-preview","/models","/overview","/prompt","/settings","/skills","/skills/new","/skills/[id]","/skills/[id]/edit","/system/logs"]}}("static/chunks/6409-5a3bb0fbad4f64b1.js","static/chunks/1210-703ad87eaeee1e4e.js","static/chunks/1702-f5e99af7aface475.js","static/chunks/5544-d77b8289662b4c28.js","static/chunks/8399-a001bb2a0cb1640b.js","static/chunks/9551-f4b09bf2213ad571.js","static/chunks/4665-1984a3d8b0573fa1.js","static/chunks/7576-ba6fc03060415b0e.js","static/chunks/1499-ff8f02f6bb6f3d45.js","static/chunks/8569-1d5c61a3f4fa0e26.js","static/chunks/5061-80765d4a612286e0.js","static/chunks/8787-49b1f35eb4acfac9.js","static/chunks/8338-b2ea00050048ba9f.js","static/chunks/9605-3dee531f8a7ecbe0.js","static/chunks/8964-e959915ecfae86b2.js","static/chunks/3980-73841c40d55ddfa1.js",0,"static/chunks/4052-199e61ca9e6a33e7.js","static/chunks/6506-ac0ba7338cc84b7d.js","static/chunks/2864-b040f2bffa08c139.js","static/chunks/6748-07b0b05bf03c72f0.js",1e-4,NaN,"static/chunks/8564-ac3e2f1bf87765b3.js","static/chunks/7795-c11ff1a81c67c5aa.js","static/chunks/3456-70bb03a39473f693.js","static/chunks/4530-e73bdd645bb7a953.js","static/chunks/7217-416b8488e0d2d498.js","static/css/2da1c822e3bdb4bb.css","static/chunks/8318-cb3a94de1617f983.js","static/chunks/9937-e4b2deadd24e3962.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
1
+ self.__BUILD_MANIFEST=function(s,c,e,a,t,i,n,d,f,k,u,b,l,j,h,g,o,r,p,w,m,_,v,I,B,F,y,A,N,D,S){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:0,errorRate:1e-4,numBits:0,numHashes:v,bitArray:[]},__routerFilterDynamic:{numItems:o,errorRate:1e-4,numBits:o,numHashes:v,bitArray:[]},"/":[s,c,e,t,j,I,B,"static/chunks/pages/index-c572e9caa60cb278.js"],"/_error":["static/chunks/pages/_error-c01b6fb772028676.js"],"/canvas":[s,c,e,a,i,t,d,f,u,g,F,y,"static/chunks/pages/canvas-1d3589790493e955.js"],"/canvas/[id]":[s,c,e,a,i,n,t,d,f,k,u,j,g,r,p,F,"static/chunks/8750-a3c55a576effb3a6.js",y,"static/chunks/pages/canvas/[id]-18865f1b7e3a4696.js"],"/documents":["static/chunks/pages/documents-a1af5c6be26daed2.js"],"/guide":[s,c,e,n,t,k,b,"static/chunks/5760-f4191aac081b12d4.js","static/chunks/pages/guide-fdf0822dc1d28813.js"],"/jobs":[s,c,e,a,i,n,t,d,f,l,u,h,j,A,"static/chunks/pages/jobs-ebd1877dbf788a83.js"],"/knowledge":[s,c,e,a,i,n,d,f,l,h,N,"static/chunks/pages/knowledge-2a776c1740386874.js"],"/knowledge/file-detail":[s,c,e,a,i,n,t,d,f,k,l,b,h,p,N,"static/chunks/pages/knowledge/file-detail-3d1ffd43f4f0e47b.js"],"/knowledge/files":["static/chunks/pages/knowledge/files-b796702bb5f8ac50.js"],"/knowledge/manage":["static/chunks/pages/knowledge/manage-6d7b21cdca1255f2.js"],"/knowledge/source-preview":[s,e,a,i,n,f,k,b,p,D,"static/chunks/1141-d420a7685bc3623c.js","static/chunks/pages/knowledge/source-preview-24936b9a746ed07f.js"],"/models":[s,c,e,a,i,d,l,u,g,w,r,D,"static/chunks/4337-a670a1a94ab505d9.js","static/chunks/pages/models-8a89dd5bf0f81242.js"],"/overview":[s,c,e,t,j,I,B,"static/chunks/pages/overview-7e8018014009682e.js"],"/prompt":[s,c,e,a,i,n,d,f,l,u,h,j,r,A,"static/chunks/4565-3c5ff667062ccec9.js","static/chunks/pages/prompt-11f87694feb6514c.js"],"/settings":[j,"static/chunks/7646-159733564c7eb8dc.js","static/chunks/pages/settings-e8dcaba1551a0b2b.js"],"/skills":[s,c,e,a,i,n,t,f,k,l,u,b,h,"static/chunks/8715-ee013bd7f5ba38e8.js","static/chunks/pages/skills-8ad2577b4aa17f3b.js"],"/skills/new":[s,c,a,i,n,t,d,k,b,g,w,m,S,"static/chunks/pages/skills/new-00886ea4c676f927.js"],"/skills/[id]":[s,c,e,a,n,t,k,b,m,"static/chunks/pages/skills/[id]-71f696be252bbf0d.js"],"/skills/[id]/edit":[s,c,a,i,n,t,d,k,b,g,w,m,S,"static/chunks/pages/skills/[id]/edit-99e616d5019e80b1.js"],"/system/logs":[s,c,e,a,i,n,t,d,f,l,u,h,"static/chunks/pages/system/logs-0856f7c65432befb.js"],sortedPages:["/","/_app","/_error","/canvas","/canvas/[id]","/documents","/guide","/jobs","/knowledge","/knowledge/file-detail","/knowledge/files","/knowledge/manage","/knowledge/source-preview","/models","/overview","/prompt","/settings","/skills","/skills/new","/skills/[id]","/skills/[id]/edit","/system/logs"]}}("static/chunks/6409-5a3bb0fbad4f64b1.js","static/chunks/1210-703ad87eaeee1e4e.js","static/chunks/1702-f5e99af7aface475.js","static/chunks/5544-d77b8289662b4c28.js","static/chunks/8399-a001bb2a0cb1640b.js","static/chunks/9551-f4b09bf2213ad571.js","static/chunks/4665-1984a3d8b0573fa1.js","static/chunks/7576-ba6fc03060415b0e.js","static/chunks/1499-ff8f02f6bb6f3d45.js","static/chunks/8569-1d5c61a3f4fa0e26.js","static/chunks/5061-80765d4a612286e0.js","static/chunks/8787-49b1f35eb4acfac9.js","static/chunks/8338-b2ea00050048ba9f.js","static/chunks/9605-3dee531f8a7ecbe0.js","static/chunks/8964-e959915ecfae86b2.js","static/chunks/3980-73841c40d55ddfa1.js",0,"static/chunks/4052-199e61ca9e6a33e7.js","static/chunks/6506-ac0ba7338cc84b7d.js","static/chunks/2864-b040f2bffa08c139.js","static/chunks/6748-07b0b05bf03c72f0.js",1e-4,NaN,"static/chunks/8564-ac3e2f1bf87765b3.js","static/chunks/7795-c11ff1a81c67c5aa.js","static/chunks/3456-70bb03a39473f693.js","static/chunks/4530-8b9788da40548ec6.js","static/chunks/7217-416b8488e0d2d498.js","static/css/2da1c822e3bdb4bb.css","static/chunks/8318-cb3a94de1617f983.js","static/chunks/9937-e4b2deadd24e3962.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4530],{8090:(e,t,n)=>{n.d(t,{EL:()=>et,zT:()=>ee,II:()=>$,bJ:()=>eo,Jr:()=>V,O0:()=>eh,uj:()=>H,GC:()=>U,qj:()=>es,x8:()=>Z,Kg:()=>ea,uH:()=>ep,Qs:()=>J,PI:()=>ei,dB:()=>ev,Jy:()=>em,uv:()=>O,vp:()=>Q,m_:()=>P,kH:()=>K,z9:()=>X,Aq:()=>ed,RV:()=>ec,Kq:()=>en});var r=n(97109),a=n(84662),l=n(30486),o=n(4527),i=n(80042),c=n(99650),s=n(25345),u=n(7851),d=n(33555),m=n(43240),p=n(26619),f=n(23216),h=n(46791),v=n(8579),g=n(26631),x=n(35459),y=n(64629),w=n(76824),b=n(83374),k=n(81668),j=n(39356),I=n(8263),A=n(61024),S=n(32919),M=n(96538);let C=["failed","paused","repairing","blocked","running","pending","completed"],E=["chars","costUsd"];function R(e,t){return e.seq!==t.seq?e.seq-t.seq:e.id===t.id?0:e.id<t.id?-1:1}function N(e){let t=new Map;for(let n of e){if(void 0===n.parentId)continue;let e=t.get(n.parentId);e?e.push(n):t.set(n.parentId,[n])}for(let e of t.values())e.sort(R);return t}function _(e){let t=new Map(e.map(e=>[e.id,e])),n=new Map;for(let r of e){let e=0,a=r,l=new Set([r.id]);for(;(null==a?void 0:a.parentId)!==void 0;){let n=t.get(a.parentId);if(!n||l.has(n.id))break;l.add(n.id),e+=1,a=n}n.set(r.id,e)}return n}let T=new Set(["prepare","understand","plan","blueprint","write","close","deliver","chapter","block","turn","round","round.decide","round.fix","repair.request","repair.localize","repair.impact","repair.transaction","repair.recheck","supervisor","resume.plan","skill.load"]),B=new Set(["failed","paused","repairing","blocked","running","pending","completed"]);var D=n(94394);let q={pending:{key:"common.statusWaiting",text:"等待中",color:"default"},running:{key:"common.statusRunning",text:D.uh.running,color:"processing"},completed:{key:"common.statusCompleted",text:D.uh.success,color:"success"},paused:{key:"common.statusPaused",text:"已暂停",color:"gold"},repairing:{key:"common.statusRepairing",text:"修复中",color:"warning"},blocked:{key:"common.statusBlocked",text:"已放弃(阻塞)",color:"warning"},failed:{key:"common.statusAbnormal",text:"异常",color:"error"}};function z(e,t,n,r){let a=e[t];if(!a)return"未知".concat(n,"(").concat(t||"空",")");if(a.key&&r){let e=r(a.key);if(e&&e!==a.key)return e}return a.text}function P(e,t){return z(q,e,"状态",t)}function O(e){var t,n;return null!=(n=null==(t=q[e])?void 0:t.color)?n:"default"}let F={queued:{key:"common.statusWaiting",text:"排队中",color:"default"},generating:{key:"common.statusRunning",text:"生成中",color:"processing"},paused:{key:"common.statusPaused",text:"已暂停",color:"gold"},completed:{key:"common.statusCompleted",text:"已完成",color:"success"},completed_with_issues:{key:"common.statusReview",text:"完成(有需复核项)",color:"warning"},warning:{key:"common.statusReview",text:"需复核",color:"warning"},failed:{key:"common.statusAbnormal",text:"失败",color:"error"},aborted:{key:"common.statusAbnormal",text:"已中止",color:"default"}};function U(e,t){return z(F,e,"记录状态",t)}function H(e){var t,n;return null!=(n=null==(t=F[e])?void 0:t.color)?n:"default"}let L=["failed","paused","repairing","blocked","running","pending","completed"];function Q(e){let t=L.indexOf(e);return t>=0?t:L.length}let Y={prepare:"生成准备",understand:"资料理解",plan:"规划",blueprint:"蓝图",write:"正文撰写",close:"收口",deliver:"交付",chapter:"章节",block:"块",turn:"轮次",round:"收口轮","round.decide":"收口\xb7判定","round.fix":"收口\xb7修复","repair.request":"修复\xb7请求","repair.localize":"修复\xb7定位","repair.impact":"修复\xb7影响面","repair.transaction":"修复\xb7事务","repair.recheck":"修复\xb7复检","skill.load":"技能命中",supervisor:"调度决策","resume.plan":"续跑任务书"};function X(e){var t;return e?null!=(t=Y[e])?t:e:"未知节点"}let G={role_binding:(0,r.createElement)(a.A),knowledge_retrieval:(0,r.createElement)(l.A),file_understanding:(0,r.createElement)(o.A),fact_extraction:(0,r.createElement)(i.A),chapter_generation:(0,r.createElement)(c.A),llm_review:(0,r.createElement)(s.A),validation:(0,r.createElement)(u.A),reference:(0,r.createElement)(d.A),prepare:(0,r.createElement)(m.A),understand:(0,r.createElement)(p.A),plan:(0,r.createElement)(f.A),blueprint:(0,r.createElement)(h.A),write:(0,r.createElement)(v.A),chapter:(0,r.createElement)(g.A),block:(0,r.createElement)(x.A),turn:(0,r.createElement)(y.A),round:(0,r.createElement)(w.A),close:(0,r.createElement)(b.A),deliver:(0,r.createElement)(k.A),repair:(0,r.createElement)(j.A),skill:(0,r.createElement)(I.A),supervisor:(0,r.createElement)(A.A),resume:(0,r.createElement)(S.A),default:(0,r.createElement)(m.A)};function K(e){var t;return null!=(t=G[e.split(".")[0]||e])?t:G.default}function J(e){var t;return null!=(t=G[e])?t:G.default}function W(e){var t,n;let r=e.issues;return{id:e.id,...void 0!==e.parentId?{parentId:e.parentId}:{},type:e.type||"block",title:null!=(t=e.title)?t:"",seq:"number"==typeof e.seq&&Number.isFinite(e.seq)?e.seq:0,status:"string"==typeof(n=e.status)&&B.has(n)?e.status:"failed",startedAt:"number"==typeof e.startedAt&&Number.isFinite(e.startedAt)&&e.startedAt>0?e.startedAt:0,...void 0!==e.completedAt?{completedAt:e.completedAt}:{},...e.progress?{progress:e.progress}:{},...e.metrics?{metrics:e.metrics}:{},...Array.isArray(r)&&r.length>0?{issues:r}:{},...void 0!==e.payloadRef?{payloadRef:e.payloadRef}:{}}}function V(e,t){let n=new Map(e.map(e=>[e.id,e]));return(function(e,t){let n=function(e){let t=N(e),n=_(e),r=[...e].sort((e,t)=>{var r,a;return(null!=(r=n.get(t.id))?r:0)-(null!=(a=n.get(e.id))?a:0)||R(e,t)}),a=new Map(e.map(e=>[e.id,e]));for(let e of r){let n=t.get(e.id);if(!n||0===n.length)continue;let r=n.map(e=>{var t;return null!=(t=a.get(e.id))?t:e});a.set(e.id,function(e,t){var n,r,a;if(0===t.length)return{...e};let l=[...t].sort(R),o={...null!=(r=e.metrics)?r:{}};for(let t of E){let n=function(e,t,n){var r,a;let l=0,o=!1,i=null==(r=e.metrics)?void 0:r[n];for(let e of("number"==typeof i&&Number.isFinite(i)&&(l+=i,o=!0),t)){let t=null==(a=e.metrics)?void 0:a[n];"number"==typeof t&&Number.isFinite(t)&&(l+=t,o=!0)}return o?l:void 0}(e,l,t);void 0===n?delete o[t]:o[t]=n}let i=null==(n=e.progress)?void 0:n.label,c={current:l.filter(e=>"completed"===e.status).length,total:l.length,...void 0!==i?{label:i}:{}},s=function(e){let t=new Set,n=[];for(let a of e){var r;let e=null==(r=a.provenance)?void 0:r.fingerprint;if("string"==typeof e&&e.length>0){if(t.has(e))continue;t.add(e)}n.push(a)}return n}(l.flatMap(e=>{var t;return null!=(t=e.issues)?t:[]})),u=null!=(a=function(e){let t,n=1/0;for(let r of e){let e=function(e){let t=C.indexOf(e);return t>=0?t:0}(r);e<n&&(n=e,t=r)}return t}(l.map(e=>e.status)))?a:e.status;return{...e,status:u,progress:c,...Object.keys(o).length>0?{metrics:o}:{},...s.length>0?{issues:s}:{}}}(e,r))}return[...e].sort(R).map(e=>{var t;return null!=(t=a.get(e.id))?t:e})}(e),r=N(n),a=new Set(n.map(e=>e.id)),l=1/0,o=(e,t)=>{var n;let a=t+1<l?(null!=(n=r.get(e.id))?n:[]).filter(t=>t.id!==e.id).map(e=>o(e,t+1)):[];return{...e,children:a}},i=n.filter(e=>void 0===e.parentId||!a.has(e.parentId)).sort(R).map(e=>o(e,0)),c=new Set,s=e=>{for(let t of e)c.add(t.id),s(t.children)};for(let e of(s(i),n))c.has(e.id)||i.push(o(e,0));return i})(function(e,t){if(void 0===t)return[...e];let n=_(e),r=Math.max(0,Math.floor(t));return e.filter(e=>{var t;return(null!=(t=n.get(e.id))?t:0)<r})}(e.map(W),t)).map(e=>(function e(t,n){var r,a;let l=n.get(t.id),o=null!=(r=null==l?void 0:l.type)?r:String(t.type),i=t.issues;return{id:t.id,...void 0!==t.parentId?{parentId:t.parentId}:{},type:o,unknownType:!("string"==typeof o&&T.has(o)),title:t.title||X(o),seq:t.seq,status:t.status,..."number"==typeof t.startedAt&&t.startedAt>0?{startedAt:t.startedAt}:{},...void 0!==t.completedAt?{completedAt:t.completedAt}:{},...t.progress?{progress:t.progress}:{},metrics:null!=(a=t.metrics)?a:{},issues:Array.isArray(i)?i:[],...void 0!==t.payloadRef?{payloadRef:t.payloadRef}:{},children:t.children.map(t=>e(t,n))}})(e,n))}function Z(e){let t=[],n=e=>{for(let r of e)t.push(r),n(r.children)};return n(e),t.sort(R)}function $(e,t){let n=[],r=(e,a)=>{for(let l of e){if(l.id===t)return n.push(...a),!0;if(r(l.children,[...a,l.id]))return!0}return!1};return r(e,[]),n}let ee=236,et=76;function en(e,t){var n;if(!t)return e;let r=new Map(e),a=null!=(n=r.get(t.id))?n:{dx:0,dy:0};return r.set(t.id,{dx:a.dx+t.dx,dy:a.dy+t.dy}),r}let er=new Set(["running","repairing"]);function ea(e){let t=new Set(e.nodes.filter(e=>er.has(e.node.status)).map(e=>e.node.id));if(0===t.size)return el;let n=new Set;for(let r of e.edges)t.has(r.fromId)&&n.add(r.id);return n}let el=new Set;function eo(e,t){if(0===t.size)return e;let n=e.nodes.map(e=>{let n=t.get(e.node.id);return n?{...e,x:e.x+n.dx,y:e.y+n.dy}:e}),r=e.edges.map(e=>{var n,r,a,l;let o=t.get(e.fromId),i=t.get(e.toId);return o||i?{...e,x1:e.x1+(null!=(n=null==o?void 0:o.dx)?n:0),y1:e.y1+(null!=(r=null==o?void 0:o.dy)?r:0),x2:e.x2+(null!=(a=null==i?void 0:i.dx)?a:0),y2:e.y2+(null!=(l=null==i?void 0:i.dy)?l:0)}:e});return{...e,nodes:n,edges:r}}function ei(e){let t=[],n=[],r=0,a=(e,l)=>{let o,i=e.children,c=40+l*(ee+72),s=i.map(e=>({id:e.id,...a(e,l+1)}));for(let a of(0===s.length?(o=40+r*(et+22),r+=1):o=(s[0].y+s[s.length-1].y)/2,t.push({node:e,x:c,y:o,depth:l}),s))n.push({id:"".concat(e.id,"->").concat(a.id),fromId:e.id,toId:a.id,x1:c+ee/2,y1:o+et,x2:a.x+ee/2,y2:a.y});return{x:c,y:o}};for(let t of e)a(t,0),r+=1;let l=t.reduce((e,t)=>Math.max(e,t.x+ee),0),o=t.reduce((e,t)=>Math.max(e,t.y+et),0);return{nodes:t,edges:n,width:l+40,height:o+40}}function ec(e,t){let n=["影响面:".concat(t.kind),"波及 ".concat(t.affectedNodeIds.length," 个节点"),...t.escalate?["超出阈值需人工确认"]:[],...t.rollbackable?[]:["不可回滚:按 11.1 需回滚或重新校准,不得当普通改动提交"]];return"请修复节点「".concat(e,"」(").concat(n.join(","),")")}function es(e,t){let n=t>0?t:1;return{dx:e.dx/n,dy:e.dy/n}}let eu=(e,t)=>e.left<t.right&&e.right>t.left&&e.top<t.bottom&&e.bottom>t.top;function ed(e){var t;let{node:n,view:r,box:a,panelWidth:l,panelHeight:o,gap:i=12,margin:c=8,obstacles:s=[]}=e,u=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n)),d=Math.min(l,Math.max(0,a.width-2*c)),m=n.x*r.k+r.x,p=n.y*r.k+r.y,f=p+et*r.k,h={left:m,top:p,right:m+ee*r.k,bottom:f},v=a.width-d-c,g=(e,t)=>{let n=s.filter(n=>n.top>=t&&n.left<e+d&&n.right>e).map(e=>e.top-i);return Math.max(0,Math.min(a.height-c,...n,a.height-c)-t)},x=e=>{let t=a.height-e-c,n=(n,r)=>{if(n<c||r<c||n>v||r>t)return!1;let a={left:n,top:r,right:n+d,bottom:r+e};return!s.some(e=>eu(a,e))},l=m+(ee+i)*r.k,o=m-d-i*r.k,x=f+i,y=p-e-i;for(let[e,t]of[[l,x],[l,y],[o,x],[o,y]])if(n(e,t))return{left:e,top:t,maxHeight:Math.max(0,Math.min(g(e,t),a.height-t-c))};let w=[l,o,c,v],b=[x,y,c,t,...s.flatMap(t=>[t.bottom+i,t.top-e-i])],k=null,j=1/0;for(let r of w)for(let a of b){let l=u(r,c,v),o=u(a,c,Math.max(c,t));if(!n(l,o))continue;let i={left:l,top:o,right:l+d,bottom:o+e},s=Math.max(Math.max(0,h.left-i.right,i.left-h.right),Math.max(0,h.top-i.bottom,i.top-h.bottom))+1e3*!!eu(i,h);s<j&&(j=s,k={left:l,top:o})}return k?{...k,maxHeight:g(k.left,k.top)}:null};if(e.pin){let t=u(e.pin.left,c,v),n=u(e.pin.top,c,Math.max(c,a.height-2*c));return{left:t,top:n,maxHeight:Math.max(0,Math.min(g(t,n),a.height-n-c))}}let y=Math.min(o,Math.max(0,a.height-2*c)),w=x(y);if(w)return w;let b=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8,r=e.height-n,a=t.map(e=>({start:Math.max(n,e.top),end:Math.min(r,e.bottom)})).filter(e=>e.end>e.start).sort((e,t)=>e.start-t.start),l=0,o=n;for(let e of a)e.start>o&&(l=Math.max(l,e.start-o)),o=Math.max(o,e.end);return Math.max(l,r-o)}(a,s,c)-i;if(b>0&&b<y){let e=x(Math.max(120,b));if(e)return e}return null!=(t=null!=w?w:x(Math.max(120,b)))?t:{left:u(m+(ee+i)*r.k,c,v),top:c,maxHeight:Math.max(0,a.height-2*c)}}function em(e){var t;if("number"!=typeof e.startedAt||(null==(t=e.metrics)?void 0:t.instantEvent)===!0)return;let n=("number"==typeof e.completedAt?e.completedAt:Date.now())-e.startedAt;return n>=0?n:void 0}function ep(e){return void 0===e?"—":(0,M.a)(e,{unit:"ms",style:"fine"})}let ef=[{key:"note",format:e=>String(e)},{key:"chars",format:e=>"".concat(Number(e).toLocaleString()," 字")},{key:"turn",format:e=>"第 ".concat(e," 轮")},{key:"residual",format:e=>"残余 ".concat(e)},{key:"toolCalls",format:e=>"工具 ".concat(e," 次")},{key:"attempt",format:e=>"第 ".concat(e," 次尝试")},{key:"failureKinds",format:e=>String(e)},{key:"chapters",format:e=>"".concat(e," 章")},{key:"facts",format:e=>"".concat(e," 条事实")}];function eh(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=[];for(let{key:r,format:a}of ef){let l=e[r];if(void 0===l||""===l||!1===l)continue;let o=a(l);if(o.trim()&&(n.push(o),n.length>=t))break}return n}function ev(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6;return Object.entries(e).slice(0,t).map(e=>{let[t,n]=e;return{key:t,text:"number"==typeof n?"".concat(t,": ").concat(Number.isInteger(n)?n:n.toFixed(2)):"".concat(t,": ").concat(String(n))}})}},8665:(e,t,n)=>{n.d(t,{_:()=>x});var r=n(65321),a=n(97109),l=n(48399),o=n(33442),i=n(14932),c=n(11702),s=n(85114),u=n(55897),d=n(57271),m=n(7576),p=n(96651),f=n(60470),h=n(54746),v=n(7492);let{Text:g}=l.A;function x(e){let{value:t,onChange:n,onSend:l,generating:x,submitting:y,disabled:w,disabledReason:b,selectedNode:k,onMentionSelected:j,resumable:I,onContinue:A,quickActions:S,requireGenerationSetup:M=!1,promptOptions:C=[],projectOptions:E=[],selectedPrompts:R=[],selectedProject:N=null,onSelectPrompts:_,onSelectProject:T,onPreviewStructure:B,collapsed:D=!1,onToggleCollapsed:q}=e,[z,P]=(0,a.useState)(!D);(0,a.useEffect)(()=>{if(!D)return void P(!0);let e=window.setTimeout(()=>P(!1),200);return()=>window.clearTimeout(e)},[D]);let O=(0,a.useRef)(null);(0,a.useEffect)(()=>{var e;D||null==(e=O.current)||e.focus()},[D,z]);let[F,U]=(0,a.useState)(!1),H=M?[0===R.length?"提示词":"",!N?"项目":""].filter(Boolean):[],L=H.length>0,Q=!M,Y=t.trim().length>0,X=w?b||"当前不可发起生成":L?"请先用上方「+」选择".concat(H.join(" 与 "),"——未选齐时不能发起生成"):x?"有任务正在运行:发送将加入生成队列(前面任务完成后自动开始)":Q||Y?"发送后将创建生成任务,画布随节点日志实时增长":"已选齐提示词与项目:需求可以不填,直接点「生成」",G=M?L?"先用输入框里的「+」选择".concat(H.join(" 与 "),"——缺一不可"):"已选好提示词与项目:直接点「生成」即可;有额外要求再写在这里(可不填)":"描述你的需求;可用上面的 @ 提及把节点带进正文(Enter 发送,Shift+Enter 换行)。篇幅由招标文件页数上限与标书类型自动决定:需求里写字数/页数不会改变篇幅目标";return(0,r.jsxs)("div",{className:"canvasInputBar".concat(D&&!z?" canvasInputBarCollapsed":""),children:[(0,r.jsx)("div",{className:"canvasInputHandleRow",children:(0,r.jsx)("button",{type:"button",className:"canvasInputHandle","aria-expanded":!D||!!z,"aria-label":D&&!z?"展开输入框":"收起输入框",onClick:()=>null==q?void 0:q(!(D&&!z)),children:D&&!z?(0,r.jsx)(p.A,{}):(0,r.jsx)(f.A,{})})}),z&&(0,r.jsxs)("div",{className:"canvasInputPanel".concat(D?" isLeaving":""),children:[(0,r.jsxs)("div",{className:"canvasInputTopRow",children:[(0,r.jsxs)(o.A,{wrap:!0,size:6,children:[k&&(0,r.jsx)(i.A,{title:"把「@".concat(k.title,"」插入输入框(可见文本,可自行修改)"),children:(0,r.jsx)(c.A,{color:"blue",style:{cursor:"pointer"},onClick:j,children:"@ ".concat(k.title)})}),!k&&(0,r.jsx)(g,{type:"secondary",style:{fontSize:12},children:"点选一个节点后可 @ 提及它"}),I&&!x&&(0,r.jsx)(s.Ay,{size:"small",type:"link",onClick:A,children:"继续生成"}),null==S?void 0:S.map(e=>(0,r.jsx)(s.Ay,{size:"small",type:"link",onClick:e.onClick,children:e.label},e.key))]}),(0,r.jsx)(o.A,{wrap:!0,size:10,children:(0,r.jsx)(u.A,{trigger:"click",placement:"topLeft",open:F,onOpenChange:U,content:(0,r.jsxs)("div",{style:{width:360,display:"flex",flexDirection:"column",gap:8},children:[M&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)(g,{strong:!0,style:{fontSize:13},children:"提示词"}),(0,r.jsx)(d.A,{mode:"multiple",style:{width:"100%",marginTop:4},value:R.map(e=>e.value),placeholder:0===C.length?"该项目暂无提示词":"选择提示词(至少一份;可多选)",options:C,onChange:e=>null==_?void 0:_(e)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(g,{strong:!0,style:{fontSize:13},children:"项目"}),(0,r.jsx)(d.A,{style:{width:"100%",marginTop:4},value:null==N?void 0:N.value,showSearch:!0,optionFilterProp:"label",placeholder:0===E.length?"本项目知识库里还没有资料:先到知识库页上传并入库":"选择项目(= 知识库里这个项目的资料,决定本次用哪份材料)",options:E,onChange:e=>null==T?void 0:T(e)})]}),(0,r.jsx)(g,{type:"secondary",style:{fontSize:12},children:"两者选齐后才能点「生成」。「项目」选的是入库到本地知识库的那份项目资料(清单/图纸/招标文件都在其中)——本次生成只用它,不会把库里别的项目材料混进来。提示词的正文按名字进入对应链路(总控/写作 → 写作链,清单/图纸/提取 → 事实抽取链,排版 → 格式链);章节大纲取自其中带 <OUTLINE> 的那一份,且只能有一份声明大纲。"})]}),!M&&(0,r.jsx)(g,{type:"secondary",style:{fontSize:12},children:"提示词与项目取自这条记录本身(章节结构由记录里那份提示词的大纲派生),不需要在这里再选。"}),(0,r.jsx)("div",{children:(0,r.jsx)(s.Ay,{size:"small",block:!0,disabled:L,onClick:()=>{U(!1),null==B||B()},children:"结构预览(章清单与小节)"})})]}),children:(0,r.jsx)(s.Ay,{size:"small",icon:(0,r.jsx)(h.A,{}),type:L?"primary":"default",children:"提示词 / 项目"})})})]}),(0,r.jsxs)("div",{className:"canvasInputRow",children:[(0,r.jsxs)("div",{className:"canvasComposer".concat(w?" isDisabled":""),children:[(R.length>0||N)&&(0,r.jsxs)("div",{className:"canvasComposerChips",children:[R.map(e=>(0,r.jsx)(c.A,{color:"blue",closable:!0,onClose:t=>{t.preventDefault(),null==_||_(R.filter(t=>t.value!==e.value).map(e=>e.value))},children:"提示词:".concat(e.label)},e.value)),N&&(0,r.jsx)(c.A,{color:"geekblue",closable:!0,onClose:e=>{e.preventDefault(),null==T||T("")},children:"项目:".concat(N.label)})]}),(0,r.jsx)(m.A.TextArea,{className:"canvasComposerInput",ref:O,value:t,onChange:e=>n(e.target.value),onPressEnter:e=>{!e.shiftKey&&t.trim()&&(e.preventDefault(),w||L||y||l())},autoSize:{minRows:1,maxRows:5},placeholder:G,disabled:w})]}),(0,r.jsx)(i.A,{title:X,children:(0,r.jsx)(s.Ay,{type:"primary",icon:(0,r.jsx)(v.A,{}),loading:y,disabled:w||L||Q&&!Y,onClick:l,children:x?"排队提交":"生成"})})]})]})]})}},28629:(e,t,n)=>{n.d(t,{p:()=>r});function r(e,t){let n="/canvas/".concat(encodeURIComponent(e));return t?"".concat(n,"?projectRoot=").concat(encodeURIComponent(t)):n}},34038:(e,t,n)=>{n.d(t,{B:()=>u});var r=n(65321),a=n(48399),l=n(25258),o=n(85114),i=n(85493),c=n(38332);let{Paragraph:s}=a.A;function u(e){let{open:t,title:n,chapters:a,outlineSource:u,materialScope:d,onClose:m}=e,p=a.length>0?"结构预览:".concat(n,"(").concat(a.length," 章").concat(u?",大纲来源:".concat(u):"",")"):"结构预览:".concat(n);return(0,r.jsxs)(l.A,{open:t,title:p,centered:!0,onCancel:m,width:640,styles:{container:{maxHeight:"calc(100vh - 48px)",display:"flex",flexDirection:"column"},body:{overflowY:"auto",flex:1,minHeight:0}},footer:(0,r.jsx)(o.Ay,{type:"primary",onClick:m,children:"知道了"}),children:[(0,r.jsx)(s,{type:"secondary",style:{fontSize:12,marginBottom:8},children:"章和已声明小节来自用户提示词大纲。技能候选尚未确定位置;生成时会结合真实资料和技术职责进行专业规划,可能合并、调整或归入其他章节。 最终目录以完成规划后的文档为准。"}),d&&(0,r.jsx)(i.A,{type:"info",showIcon:!0,style:{marginBottom:8},message:"本次项目资料:".concat(d.root||"(未指定)","(").concat(d.fileCount," 份文件)"),description:"资料范围已锁定在所选项目资料内:库里其它项目的材料不会进入本篇。"}),0===a.length&&(0,r.jsx)(i.A,{type:"info",showIcon:!0,message:"本次没有派生出章清单",description:"派生的硬约束是提示词(或输入框要求)里要有 ≥2 章的显式大纲;缺大纲时服务端会直接拒绝这次生成,并在提示里说清缺什么。"}),(0,r.jsx)(c.A,{size:"small",dataSource:a,renderItem:(e,t)=>{var n;return(0,r.jsx)(c.A.Item,{children:(0,r.jsx)(c.A.Item.Meta,{title:"".concat(t+1,". ").concat(e.title),description:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:["用户声明:",(0,r.jsx)("span",{children:e.sections.length>0?e.sections.join("、"):"(未声明小节)"})]}),(null==(n=e.candidateSections)?void 0:n.length)?(0,r.jsxs)("div",{children:["技能候选(待规划):",(0,r.jsx)("span",{children:e.candidateSections.join("、")})]}):null]})})})}})]})}},45551:(e,t,n)=>{n.d(t,{Jm:()=>c,fw:()=>l,je:()=>r.j,mc:()=>s,z3:()=>a});var r=n(96538);function a(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),n=e/Math.pow(1024,t);return"".concat(n.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";if(!e||e<=0)return"en-US"===t?"Never":"从未";let n=Math.floor(Math.floor((Date.now()-e)/1e3)/60),r=Math.floor(n/60),a=Math.floor(r/24);return a>30?new Date(e).toLocaleDateString(t):"en-US"===t?a>0?"".concat(a,"d ago"):r>0?"".concat(r,"h ago"):n>0?"".concat(n,"m ago"):"Just now":a>0?"".concat(a," 天前"):r>0?"".concat(r," 小时前"):n>0?"".concat(n," 分钟前"):"刚刚"}let o={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},i={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function c(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===n?i:o)[e])?t:e}let s={active:"common.statusIndexed",outdated:"common.statusOutdated",error:"common.statusAbnormal",deleted:"common.statusDeleted",disk:"common.statusNotIndexed"}},52057:(e,t,n)=>{n.d(t,{B:()=>s,VF:()=>l,WF:()=>i,be:()=>c,s_:()=>u,xA:()=>o});var r=n(97109),a=n(8090);let l=24;function o(e,t,n,r){let a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.15,l=r&&r.right>r.left&&r.bottom>r.top?r:{left:0,top:0,right:n.width,bottom:n.height},o=Math.max(1,l.right-l.left),i=Math.max(1,l.bottom-l.top),c=e.x*t.k+t.x,s=e.y*t.k+t.y,u=c+e.width*t.k,d=s+e.height*t.k,m=l.left+o*a,p=l.right-o*a,f=l.top+i*a,h=l.bottom-i*a;return c<m||s<f||u>p||d>h}let i=12e3;function c(e){if(!e.following)return{label:"跟随最新",title:"跟随已关闭:点一下重新打开(打开后会跟着当前活跃节点走)",paused:!1};if(e.pausedUntil>e.now){let t=Math.max(1,Math.ceil((e.pausedUntil-e.now)/1e3));return{label:"跟随暂停中",title:"跟随暂停:".concat(t,"s 后自动恢复(你刚动过视口;不是关掉了)"),paused:!0}}return e.node?{label:"跟随中",title:"正在跟随:".concat(e.node.title).concat(void 0!==e.node.round?"(第 ".concat(e.node.round," 轮)"):""),paused:!1}:{label:"跟随中",title:"跟随中:当前没有活跃节点可跟(生成开始后会自动跟上)",paused:!1}}function s(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:24,a=t.x,l=t.y,o=t.x+e.width*t.k,i=t.y+e.height*t.k,c=Math.min(o,n.right)-Math.max(a,n.left),s=Math.min(i,n.bottom)-Math.max(l,n.top);return c>=r&&s>=r?{dx:0,dy:0}:{dx:n.left+r-a,dy:n.top+r-l}}function u(){let[e,t]=(0,r.useState)({x:0,y:0,k:1}),n=(0,r.useRef)(null),l=(0,r.useRef)(null),o=(0,r.useRef)(e);(0,r.useEffect)(()=>{o.current=e},[e]);let i=(0,r.useCallback)((e,r,a)=>{t(t=>{var l;let o=Math.min(2,Math.max(.1,t.k*e)),i=null==(l=n.current)?void 0:l.getBoundingClientRect();if(!i||void 0===r||void 0===a)return{...t,k:o};let c=(r-i.left-t.x)/t.k,s=(a-i.top-t.y)/t.k;return{k:o,x:r-i.left-c*o,y:a-i.top-s*o}})},[]),[c,s]=(0,r.useState)(null);(0,r.useEffect)(()=>{var e,t;let r=null!=(t=null==(e=n.current)?void 0:e.parentElement)?t:n.current;r&&r!==c&&s(r)}),(0,r.useEffect)(()=>{if(!c)return;let e=e=>{(e=>{for(let t=e;t&&t!==c;t=t.parentElement)if(t.scrollHeight>t.clientHeight+1){let e=getComputedStyle(t).overflowY;if("auto"===e||"scroll"===e)return!0}return!1})(e.target)||(e.preventDefault(),i(Math.exp(-e.deltaY/320),e.clientX,e.clientY))};return c.addEventListener("wheel",e,{passive:!1}),()=>c.removeEventListener("wheel",e)},[c,i]);let u=(0,r.useCallback)(e=>{if(0!==e.button)return;e.currentTarget.setPointerCapture(e.pointerId);let t=o.current;l.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,originX:t.x,originY:t.y}},[]),d=(0,r.useCallback)(e=>{let n=l.current;n&&n.pointerId===e.pointerId&&t(t=>({...t,x:n.originX+(e.clientX-n.startX),y:n.originY+(e.clientY-n.startY)}))},[]),m=(0,r.useCallback)(()=>{l.current=null},[]),p=(0,r.useCallback)(()=>t({x:0,y:0,k:1}),[]),f=(e,t)=>null!=t?t:{left:0,top:0,right:e.width,bottom:e.height},h=(0,r.useCallback)((e,r,a)=>{t(t=>{var l;let o=null==(l=n.current)?void 0:l.getBoundingClientRect();if(!o||e<=0||r<=0)return{...t,x:0,y:0};let i=f(o,a),c=Math.max(1,i.right-i.left),s=Math.max(1,i.bottom-i.top),u=Math.min(2,Math.max(.1,Math.min(c/e,s/r)));return{k:u,x:i.left+(c-e*u)/2,y:i.top+(s-r*u)/2}})},[]),v=(0,r.useCallback)((e,r,l,o)=>{t(t=>{var i;let c=null==(i=n.current)?void 0:i.getBoundingClientRect();if(!c)return t;let s=f(c,o),u=null!=l?l:t.k,d=(s.left+s.right)/2,m=(s.top+s.bottom)/2;return{k:u,x:d-(e+a.zT/2)*u,y:m-(r+a.EL/2)*u}})},[]);return{view:e,containerRef:n,zoomAt:i,onPointerDown:u,onPointerMove:d,endDrag:m,reset:p,fit:h,centerOn:v,panBy:(0,r.useCallback)((e,n)=>{(0!==e||0!==n)&&t(t=>({...t,x:t.x+e,y:t.y+n}))},[])}}},57481:(e,t,n)=>{n.d(t,{_:()=>x});var r=n(65321),a=n(97109),l=n(17807),o=n(42700),i=n(84253),c=n(32965),s=n(14932),u=n(75174),d=n(1310),m=n(58209),p=n(39507),f=n(6578),h=n(93533),v=n(45551);let g="canvas:recordsBallPos";function x(e){let{currentDocumentId:t,projectRoot:n,onSelect:x,onCurrentDeleted:w}=e,b=(0,p.Vr)(),{message:k}=l.A.useApp(),j=(0,a.useRef)(null),[I,A]=(0,a.useState)([]),[S,M]=(0,a.useState)(!1),[C,E]=(0,a.useState)(!1),[R,N]=(0,a.useState)(1),[_,T]=(0,a.useState)(!1),[B,D]=(0,a.useState)([]),[q,z]=(0,a.useState)(!1),[P,O]=(0,a.useState)(null),[F,U]=(0,a.useState)(!0),H=(0,a.useRef)(null);(0,a.useEffect)(()=>{var e,t;let n=function(){try{let e=window.localStorage.getItem(g);if(!e)return null;let t=JSON.parse(e);return"number"==typeof(null==t?void 0:t.left)&&"number"==typeof(null==t?void 0:t.top)?{left:t.left,top:t.top}:null}catch(e){return null}}();if(!n)return;let r=null==(t=j.current)||null==(e=t.parentElement)?void 0:e.getBoundingClientRect();if(!r)return void O(n);O({left:Math.min(Math.max(8,n.left),Math.max(8,r.width-44-8)),top:Math.min(Math.max(8,n.top),Math.max(8,r.height-44-8))})},[]);let L=(0,a.useCallback)(async()=>{M(!0);try{let e=await (0,f.cQ)(n||void 0);A(e.documents||[])}catch(e){A([])}finally{M(!1)}},[n]);(0,a.useEffect)(()=>{L()},[L]),(0,a.useEffect)(()=>{C&&L()},[C,L]),(0,a.useEffect)(()=>{let e=setInterval(()=>{L()},3e3);return()=>clearInterval(e)},[L]),(0,a.useEffect)(()=>{N(1),D([])},[C]);let Q=(0,a.useMemo)(()=>I.slice((R-1)*8,8*R),[I,R]),Y=(0,a.useCallback)(e=>!(0,h.Ce)(e.status),[]),X=Q.filter(Y).map(e=>e.id),G=()=>{if(!C){var e,t,n;let r=null==(t=j.current)||null==(e=t.parentElement)?void 0:e.getBoundingClientRect(),a=null==(n=j.current)?void 0:n.getBoundingClientRect();U(!r||!a||a.top-r.top>252)}E(e=>!e)},K=async e=>{try{await (0,f.QG)(e.id,e.projectRoot||n||void 0),k.success(b("common.success")),D(t=>t.filter(t=>t!==e.id)),e.id===t&&w(),await L()}catch(e){k.error(b("common.error"))}},J=async()=>{let e=I.filter(e=>B.includes(e.id)&&Y(e));if(0!==e.length){z(!0);try{await Promise.all(e.map(e=>(0,f.QG)(e.id,e.projectRoot||n||void 0))),k.success(b("records.deletedCount").replace("{count}",String(e.length))),t&&e.some(e=>e.id===t)&&w(),D([]),T(!1),await L()}catch(e){k.error(b("common.error"))}finally{z(!1)}}},W=P?{left:P.left,top:P.top}:{right:24,bottom:96};return(0,r.jsxs)("div",{className:"canvasRecordsBall",ref:j,style:{position:"absolute",zIndex:3,...W},children:[C&&(0,r.jsxs)("div",{className:"canvasRecordsPanel",style:{position:"absolute",right:0,width:320,maxHeight:420,display:"flex",flexDirection:"column",...F?{bottom:52}:{top:52}},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 px-3 py-2 border-b border-[var(--canvasSectionBorder)] shrink-0",children:[(0,r.jsxs)("span",{className:"text-[13px] font-semibold text-[var(--colorText)]",children:[b("records.title"),(0,r.jsx)("span",{className:"ml-2 font-normal text-xs text-[var(--colorTextTertiary)]",children:I.length})]}),(0,r.jsx)("button",{type:"button",className:"canvasRecordsLink",onClick:()=>{T(e=>!e),D([])},children:_?b("common.cancel"):b("records.batch")})]}),(0,r.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:S&&0===I.length?(0,r.jsx)("div",{className:"py-10 text-center",children:(0,r.jsx)(o.A,{size:"small"})}):0===I.length?(0,r.jsx)("div",{className:"py-8",children:(0,r.jsx)(i.A,{image:i.A.PRESENTED_IMAGE_SIMPLE,description:(0,r.jsx)("span",{className:"text-xs text-[var(--colorTextTertiary)]",children:b("records.empty")})})}):Q.map(e=>{var n;let a=e.id===t,l=Y(e);return(0,r.jsxs)("div",{className:"group flex items-start gap-2 px-3 py-2 border-b border-[var(--canvasSectionBorder)] last:border-b-0 transition-colors ".concat(a?"bg-[var(--colorBgSelected)]":"hover:bg-[var(--colorBgHover)]"),children:[_&&(0,r.jsx)("input",{type:"checkbox",className:"mt-1 shrink-0",disabled:!l,checked:B.includes(e.id),onChange:t=>D(n=>t.target.checked?[...n,e.id]:n.filter(t=>t!==e.id))}),(0,r.jsxs)("button",{type:"button",className:"min-w-0 flex-1 text-left bg-transparent border-0 p-0 cursor-pointer",title:e.title,onClick:()=>{x(e),E(!1)},children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 shrink-0 rounded-full ".concat(null!=(n=y[e.status])?n:"bg-[var(--colorTextTertiary)]")}),(0,r.jsx)("span",{className:"truncate text-[13px] ".concat(a?"font-semibold text-[var(--colorText)]":"text-[var(--colorText)]"),children:e.title}),a&&(0,r.jsx)("span",{className:"shrink-0 text-[10px] text-[var(--colorTextTertiary)]",children:b("records.current")})]}),(0,r.jsxs)("div",{className:"mt-0.5 pl-3 text-[11px] text-[var(--colorTextTertiary)]",children:[(0,r.jsx)(d.A,{className:"mr-1"}),(0,v.fw)(e.updatedAt,"zh-CN")]})]}),!_&&l&&(0,r.jsx)(c.A,{title:b("records.confirmDelete"),description:b("records.deleteHint"),onConfirm:()=>{K(e)},okText:b("common.confirm"),cancelText:b("common.cancel"),children:(0,r.jsx)("button",{type:"button",className:"canvasRecordsDelete",title:b("common.delete"),children:(0,r.jsx)(m.A,{})})}),!_&&!l&&(0,r.jsx)(s.A,{title:b("records.inFlightHint"),children:(0,r.jsx)("span",{className:"canvasRecordsDelete isDisabled",children:(0,r.jsx)(m.A,{})})})]},e.id)})}),I.length>8&&(0,r.jsx)("div",{className:"flex justify-center px-3 py-2 border-t border-[var(--canvasSectionBorder)] shrink-0",children:(0,r.jsx)(u.A,{size:"small",simple:!0,current:R,total:I.length,pageSize:8,onChange:N})}),_&&(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 px-3 py-2 border-t border-[var(--canvasSectionBorder)] shrink-0",children:[(0,r.jsx)("span",{className:"text-xs text-[var(--colorTextSecondary)]",children:b("records.checkedCount").replace("{count}",String(B.length))}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("button",{type:"button",className:"canvasRecordsLink",onClick:()=>D(B.length===X.length?[]:X),children:B.length===X.length&&X.length>0?b("records.clearSelect"):b("records.selectPage")}),(0,r.jsx)(c.A,{title:b("records.confirmDeleteSelected").replace("{count}",String(B.length)),description:b("records.deleteHint"),disabled:0===B.length,onConfirm:()=>{J()},okText:b("common.confirm"),cancelText:b("common.cancel"),children:(0,r.jsxs)("button",{type:"button",className:"canvasRecordsDanger",disabled:0===B.length||q,children:[(0,r.jsx)(m.A,{className:"mr-1"}),b("records.deleteSelected")]})})]})]})]}),(0,r.jsxs)("div",{className:"canvasRecordsBallBtn",role:"button",tabIndex:0,"aria-label":"".concat(b("records.title"),"(").concat(I.length,")"),style:{width:44,height:44},onPointerDown:e=>{var t,n,r;let a=null==(n=j.current)||null==(t=n.parentElement)?void 0:t.getBoundingClientRect(),l=null==(r=j.current)?void 0:r.getBoundingClientRect();if(a&&l){H.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,originLeft:l.left-a.left,originTop:l.top-a.top,moved:!1};try{e.currentTarget.setPointerCapture(e.pointerId)}catch(e){}}},onPointerMove:e=>{var t,n;let r=H.current,a=null==(n=j.current)||null==(t=n.parentElement)?void 0:t.getBoundingClientRect();if(!r||r.pointerId!==e.pointerId||!a)return;let l=e.clientX-r.startX,o=e.clientY-r.startY;!r.moved&&5>Math.hypot(l,o)||(r.moved=!0,O({left:Math.min(Math.max(8,r.originLeft+l),Math.max(8,a.width-44-8)),top:Math.min(Math.max(8,r.originTop+o),Math.max(8,a.height-44-8))}))},onPointerUp:e=>{let t=H.current;H.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch(e){}if(t){if(t.moved)return void O(e=>{if(e)try{window.localStorage.setItem(g,JSON.stringify(e))}catch(e){}return e});G()}},onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),G())},children:[(0,r.jsx)(d.A,{}),(0,r.jsx)("span",{className:"canvasRecordsBallBadge".concat(0===I.length?" isZero":""),children:I.length>99?"99+":I.length})]})]})}let y={completed:"bg-[var(--colorOk)]",completed_with_issues:"bg-[var(--colorDanger)]",warning:"bg-[var(--colorWarning)]",failed:"bg-[var(--colorDanger)]",aborted:"bg-[var(--colorTextTertiary)]",generating:"bg-[var(--colorAccent)]",queued:"bg-[var(--colorTextTertiary)]",paused:"bg-[var(--colorWarning)]"}},93533:(e,t,n)=>{n.d(t,{Ce:()=>k,tl:()=>I});var r=n(97109),a=n(96538),l=n(94394),o=n(23216),i=n(26619),c=n(8263),s=n(16285),u=n(8579),d=n(29071),m=n(7851),p=n(1310),f=n(26631),h=n(83914),v=n(6578);async function g(e){let t,n=0;for(;;){var r,a;let l;if(e.cancelled())throw Error("用户中止");try{l=await e.read(t)}catch(t){if(e.cancelled())throw Error("用户中止",{cause:t});1===(n+=1)&&(null==(r=e.connectionInterrupted)||r.call(e,t)),await e.delay(Math.min(2e3*n,15e3));continue}n=0;let o=l.document;if(!o){if(!l.unchanged&&!l.status)throw Error("未找到生成记录,无法读取该任务进度");["paused","failed","aborted","completed","completed_with_issues","warning"].includes(null!=(a=l.status)?a:"")&&(t=void 0),await e.delay(1500);continue}if(t=o.updatedAt,e.apply(o),"paused"===o.status)return o;if("failed"===o.status||"aborted"===o.status)throw Error(o.error||("aborted"===o.status?"生成已中止":"生成失败"));if(["completed","completed_with_issues","warning"].includes(o.status)){if(o.draft)return o;throw Error(o.error||"服务任务已结束,但最终成稿未完成;已保存的正文可在生成记录中查看")}await e.delay(1500)}}let x=null,y=!1;function w(){null==x||x.listeners.forEach(e=>e())}let b=l.i_;function k(e){return"completed"!==e&&"completed_with_issues"!==e&&"warning"!==e&&"failed"!==e&&"aborted"!==e&&"paused"!==e}function j(e){var t,n,a,l,h,v,g,x,y;let w=null==(t=e.agentWorkflow)?void 0:t.nodes;if(!w||0===w.length)return null;let k=[...w].sort((e,t)=>{var n,r;return(null!=(n=e.seq)?n:0)-(null!=(r=t.seq)?r:0)}).map(e=>{let t=b[e.type]||e.title||e.type||"节点",n="failed"===e.status||"blocked"===e.status?"error":"paused"===e.status||"repairing"===e.status?"warning":"running"===e.status?"process":"pending"===e.status?"wait":"finish",a=Object.entries(e.metrics||{}).slice(0,4).map(e=>{let[t,n]=e;return"".concat(t,":").concat(String(n))}).join(" ");return{key:e.id,title:t,subtitle:e.progress?"".concat(e.progress.label||"进度",":").concat(e.progress.current,"/").concat(e.progress.total):"",description:a,status:n,icon:function(e){let t=e.split(".")[0]||e;return"role_binding"===e||"prepare"===t?(0,r.createElement)(o.A):"knowledge_retrieval"===e||"understand"===t?(0,r.createElement)(i.A):"file_understanding"===e||"skill"===t?(0,r.createElement)(c.A):"fact_extraction"===e?(0,r.createElement)(s.A):"chapter_generation"===e||"chapter"===t||"write"===t?(0,r.createElement)(u.A):"llm_review"===e||"turn"===t||"round"===t?(0,r.createElement)(d.A):"validation"===e||"repair"===t||"recheck"===t?(0,r.createElement)(m.A):"plan"===t||"blueprint"===t?(0,r.createElement)(o.A):"rollback"===t||"snapshot"===t?(0,r.createElement)(p.A):(0,r.createElement)(f.A)}(e.type),subSteps:[]}}),j="generating"===e.status||"queued"===e.status?null!=(g=null!=(v=null==(n=k.find(e=>"process"===e.status))?void 0:n.key)?v:null==(a=k.at(-1))?void 0:a.key)?g:null:("failed"===e.status||"aborted"===e.status)&&null!=(y=null!=(x=null==(l=k.find(e=>"error"===e.status))?void 0:l.key)?x:null==(h=k.at(-1))?void 0:h.key)?y:null;return{steps:k,activeKey:j}}function I(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{projectRoot:l,documents:o,onNotice:i,t:c,onGenerated:s}=n,[u,d]=(0,r.useState)([]),[m,p]=(0,r.useState)(null),[f,b]=(0,r.useState)(!1),[I,A]=(0,r.useState)(null),[S,M]=(0,r.useState)(""),[C,E]=(0,r.useState)(null),[R,N]=(0,r.useState)(null!=(e=n.documentId)?e:null),[_,T]=(0,r.useState)(null),[B,D]=(0,r.useState)(null!=o?o:[]),[q,z]=(0,r.useState)(0),[P,O]=(0,r.useState)(null),[F,U]=(0,r.useState)([]),[H,L]=(0,r.useState)(null),[Q,Y]=(0,r.useState)(null),X=(0,r.useRef)(""),G=(0,r.useRef)(new Map),K=(0,r.useRef)(new Map),J=(0,r.useRef)(!1),W=(0,r.useRef)(l),V=(0,r.useRef)(R),Z=(0,r.useRef)(u),$=(0,r.useRef)(m),ee=(0,r.useRef)(f),et=(0,r.useRef)(c),en=(0,r.useRef)(i),er=(0,r.useRef)(s);(0,r.useEffect)(()=>{W.current=l},[l]),(0,r.useEffect)(()=>{V.current=R},[R]),(0,r.useEffect)(()=>{Z.current=u},[u]),(0,r.useEffect)(()=>{$.current=m},[m]),(0,r.useEffect)(()=>{ee.current=f},[f]),(0,r.useEffect)(()=>{et.current=c},[c]),(0,r.useEffect)(()=>{en.current=i},[i]),(0,r.useEffect)(()=>{er.current=s},[s]);let ea=(0,r.useMemo)(()=>"activeGenDocId:".concat(l||"default"),[l]),el=(0,r.useCallback)(e=>{var t;null==(t=en.current)||t.call(en,e)},[]),eo=(0,r.useCallback)((e,t)=>{var n,r;return null!=(r=null==(n=et.current)?void 0:n.call(et,e))?r:t},[]);(0,r.useEffect)(()=>{let e=()=>{let e=x;e&&(d(e.flowSteps),p(e.activeFlowKey),b(e.loading),e.documentId&&N(e.documentId),e.draft&&A(e.draft),void 0!==e.content&&M(e.content))},t=x;return null==t||t.listeners.add(e),e(),()=>{null==t||t.listeners.delete(e)}},[]);let ei=(0,r.useRef)(!1),ec=(0,r.useCallback)(async()=>{try{D((await (0,v.cQ)(W.current||void 0)).documents),ei.current=!1}catch(e){ei.current||(ei.current=!0,el({kind:"error",text:"生成记录列表读取失败——界面显示的可能不是最新内容,请稍后重试或查看服务端日志"}))}},[el]);(0,r.useEffect)(()=>{o&&D(o)},[o]),(0,r.useEffect)(()=>{void 0!==n.documentId&&null!==n.documentId&&N(n.documentId)},[n.documentId]);let es=(0,r.useCallback)(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ee.current;(null==x?void 0:x.loading)&&(x.flowSteps=e,x.activeFlowKey=t,x.loading=n,w())},[]),eu=(0,r.useCallback)(e=>{let t=Date.now();for(let n of e){let e=G.current.get(n.key);"process"!==n.status||e?("finish"===n.status||"error"===n.status||"warning"===n.status)&&e&&!e.endedAt&&G.current.set(n.key,{...e,endedAt:t}):G.current.set(n.key,{startedAt:t})}},[]),ed=(0,r.useCallback)(e=>{var t,n,r,a,l,o,i,c,s,u,m;let f=(null==(t=e.agentWorkflow)?void 0:t.nodes)||[],h="".concat(e.id,"|").concat(e.updatedAt,"|").concat(e.status,"|").concat(e.error||"","|n").concat(f.length,":").concat(f.map(e=>{var t,n,r,a;return"".concat(e.id,"=").concat(e.status,":").concat(null!=(r=null==(t=e.progress)?void 0:t.current)?r:0,"/").concat(null!=(a=null==(n=e.progress)?void 0:n.total)?a:0)}).join(","));if(X.current===h)return;X.current=h,E(e);let{steps:v,activeKey:g}=function(e){var t;return arguments.length>1&&void 0!==arguments[1]&&arguments[1],null!=(t=j(e))?t:{steps:[],activeKey:null}}(e);eu(v);let x=k(e.status);d(v),p(g),b(x),es(v,g,x),T("failed"===e.status||"aborted"===e.status?e.error||("aborted"===e.status?"生成已中止":"生成失败"):null),("completed"===e.status||"completed_with_issues"===e.status||"warning"===e.status)&&(e.draft&&A(e.draft),M(e.editedMarkdown||e.markdown),U(e.exportReports||[]),Y({docId:e.id,...(null==(n=e.deliveryQuality)?void 0:n.receipt)||(null==(r=e.reviewMetadata)?void 0:r.contractQuality)?{contractQuality:null!=(u=null==(a=e.deliveryQuality)?void 0:a.receipt)?u:e.reviewMetadata.contractQuality}:{},...(null==(l=e.deliveryQuality)?void 0:l.stale)||(null==(o=e.reviewMetadata)?void 0:o.contractQualityStale)?{contractQualityStale:null!=(m=null==(i=e.deliveryQuality)?void 0:i.stale)?m:e.reviewMetadata.contractQualityStale}:{},...e.projectRoot?{projectRoot:e.projectRoot}:{},...(null==(s=e.reviewMetadata)||null==(c=s.telemetry)?void 0:c.repairChainNetChars)?{netChars:e.reviewMetadata.telemetry.repairChainNetChars}:{}}))},[es,eu]),em=(0,r.useCallback)(e=>{e.id&&N(e.id),ed(e)},[ed]),ep=(0,r.useCallback)((e,t)=>g({cancelled:()=>!!(null==t?void 0:t.aborted),apply:ed,delay:e=>new Promise(t=>window.setTimeout(t,e)),connectionInterrupted:()=>el({kind:"warning",text:"暂时无法读取生成进度,正在重新连接;生成状态以服务端回执为准"}),read:async n=>{let r=new AbortController;t&&(t.pollController=r);try{return await (0,v.v7)(e,!0,W.current||void 0,r.signal,n)}finally{(null==t?void 0:t.pollController)===r&&(t.pollController=void 0)}}}),[ed,el]),ef=(0,r.useCallback)(async(e,t)=>{if(!e.specId)return;let n=e.title,a=e.promptIds,l=e.projectRoot||W.current;if((null==x?void 0:x.aborted)&&(x=null),null==x?void 0:x.loading){if(J.current)return;if(!l)return void el({kind:"error",text:"未识别当前项目,请先选择或打开项目后再生成文件"});J.current=!0;try{let e=await (0,v.OX)({promptIds:a,...n?{title:n}:{},requirement:t,projectRoot:l});await ec(),el({kind:"info",text:e.queuePosition?"已加入生成队列(第 ".concat(e.queuePosition," 位):前面任务完成后将自动开始"):"生成任务已创建"})}catch(e){el({kind:"error",text:e instanceof Error?e.message:"创建生成任务失败"})}finally{J.current=!1}return}if(!l)return void el({kind:"error",text:"未识别当前项目,请先选择或打开项目后再生成文件"});b(!0);let o=Z.current,i=o.length>0?o:[{key:"prepare",title:"正在创建生成任务",description:"系统正在创建后台生成任务,请稍候。",status:"process",icon:(0,r.createElement)(h.A),subSteps:[{key:"start",title:"准备生成任务",status:"process"}]}],c=$.current||"prepare";d(i),p(c);let s=(0,v.OX)({promptIds:a,...n?{title:n}:{},requirement:t,projectRoot:l});x={id:Date.now(),specId:e.specId,loading:!0,flowSteps:i,activeFlowKey:c,promise:s,listeners:new Set};try{var u,m,f,g,k,I;let t=await s;t.documentId&&(localStorage.setItem(ea,t.documentId),N(t.documentId),(null==x?void 0:x.promise)===s&&(x.documentId=t.documentId)),await ec(),t.queuePosition&&el({kind:"info",text:"已加入生成队列(第 ".concat(t.queuePosition," 位):前面任务完成后将自动开始")});let n=t.documentId?await ep(t.documentId,(null==x?void 0:x.promise)===s?x:void 0):void 0;if((null==n?void 0:n.status)==="paused"){(null==x?void 0:x.promise)===s&&(x.loading=!1,w(),x=null),localStorage.removeItem(ea),await ec(),el({kind:"info",text:"生成已在节点边界暂停,已保存实际正文和执行状态"});return}let r=t.draft||(null==n?void 0:n.draft);if(!r)throw Error("生成结果为空");(t.documentId||(null==n?void 0:n.id))&&N(t.documentId||n.id),A(r),M((null==n?void 0:n.editedMarkdown)||(null==n?void 0:n.markdown)||r.markdown),(null==x?void 0:x.promise)===s&&(x.draft=r,x.content=(null==n?void 0:n.editedMarkdown)||(null==n?void 0:n.markdown)||r.markdown);let a=n||{id:t.documentId||"draft-".concat(Date.now()),templateId:(null==(u=t.record)?void 0:u.templateId)||(null==(m=t.documentSpec)?void 0:m.id)||e.specId,templateName:(null==(f=t.record)?void 0:f.templateName)||(null==(g=t.documentSpec)?void 0:g.title),title:r.title,requirement:r.requirement,projectRoot:r.projectRoot||W.current,projectId:r.projectId,markdown:r.markdown,status:r.validationIssues.some(e=>"error"===e.level||"warning"===e.level)||!r.exportGate.passed?"completed_with_issues":"completed",draft:r,executionStages:r.executionStages,assets:r.assets||[],createdAt:r.generatedAt,updatedAt:Date.now()},{steps:l}=null!=(I=j(a))?I:{steps:[],activeKey:null};d(l),es(l,"done",!1),p("done"),(null==x?void 0:x.promise)===s&&(x.activeFlowKey="done",x.loading=!1,w(),x=null),localStorage.removeItem(ea),await ec(),el("completed"===a.status?{kind:"success",text:"生成完成,专业交付检查已通过"}:{kind:"warning",text:"本轮运行已结束,实际稿仍有问题待复核,可导出审阅稿"}),(t.documentId||(null==n?void 0:n.id))&&(null==(k=er.current)||k.call(er,t.documentId||n.id))}catch(r){localStorage.removeItem(ea);let e=r instanceof Error?r.message:eo("common.error","出错了"),t=y;y=!1;let n=!t&&"用户中止"===e;T(e),t||d(t=>{let n=t.map(t=>"process"===t.status?{...t,status:"error",description:e,subSteps:t.subSteps.map((e,t)=>({...e,status:0===t?"error":e.status}))}:t);return es(n,$.current,!1),n}),(null==x?void 0:x.promise)===s&&(x.loading=!1,x.error=e,w(),x=null),await ec(),n?el({kind:"warning",text:"生成任务已被中止(可能来自其他窗口):可在列表中点击「继续生成」恢复"}):t||el({kind:"error",text:e})}finally{b(!1),y=!1,(null==x?void 0:x.promise)===s&&(x.loading=!1,w())}},[el,ec,es,ea,eo,ep]),eh=(0,r.useCallback)(e=>{let t=K.current.get(e);t&&(clearInterval(t),K.current.delete(e))},[]),ev=(0,r.useCallback)((e,t)=>{eh(e);let n=setInterval(()=>{(async()=>{try{let{document:n}=await (0,v.v7)(e,!0,t||W.current||void 0);if(!n)return;ed(n),await ec(),k(n.status)||(eh(e),localStorage.removeItem(ea))}catch(e){}})()},2e3);K.current.set(e,n)},[ed,ec,eh,ea]);(0,r.useEffect)(()=>()=>{for(let e of K.current.values())clearInterval(e);K.current.clear()},[]),(0,r.useEffect)(()=>{if(0===B.length)return;let e=localStorage.getItem(ea);if(!e)return;if(!B.find(t=>t.id===e&&("generating"===t.status||"queued"===t.status)))return void localStorage.removeItem(ea);N(e);let t=setInterval(()=>{(async()=>{try{let{document:n}=await (0,v.v7)(e,!1,W.current||void 0);if(!n)return;await ec(),"generating"!==n.status&&"queued"!==n.status&&(localStorage.removeItem(ea),clearInterval(t))}catch(e){clearInterval(t)}})()},3e3);return()=>clearInterval(t)},[B,ec,ea]),(0,r.useEffect)(()=>{var e;if(!R)return;let t=B.find(e=>e.id===R),n=null!=(e=null==t?void 0:t.status)?e:null==C?void 0:C.status;n&&k(n)?ev(R,(null==t?void 0:t.projectRoot)||W.current):eh(R)},[R,B,ev,eh,null==C?void 0:C.status]),(0,r.useEffect)(()=>{if(!f||!m)return;let e=window.setInterval(()=>d(e=>{let t=e.map(e=>{if(e.key!==m||"process"!==e.status)return e;let t=e.subSteps.findIndex(e=>"process"===e.status),n=t<0?0:Math.min(t+1,e.subSteps.length-1);return{...e,subSteps:e.subSteps.map((e,t)=>t<n?{...e,status:"finish"}:t===n?{...e,status:"process"}:{...e,status:"wait"})}});return es(t,m),t}),1400);return()=>window.clearInterval(e)},[m,f,es]),(0,r.useEffect)(()=>{if(!f)return;let e=window.setInterval(()=>z(e=>e+1),1e3);return()=>window.clearInterval(e)},[f]);let eg=(0,r.useCallback)(e=>{var t;let n=G.current.get(e);if(!n)return null;let r=null!=(t=n.endedAt)?t:Date.now(),l=(0,a.a)(r-n.startedAt,{unit:"ms",style:"fine"});return n.endedAt?l:"".concat(l,"(运行中)")},[q]),ex=(0,r.useCallback)(async e=>{x&&(y=!0);let t=V.current,n=null;if(t&&await (0,v.r)(t,e||W.current||void 0).catch(e=>{n=e}),x){var r;x.aborted=!0,null==(r=x.pollController)||r.abort(),x.loading=!1,x.error="用户中止",w(),x=null}for(let e of(localStorage.removeItem(ea),K.current.values()))clearInterval(e);K.current.clear(),b(!1),d([]),p(null),T("用户中止"),await ec(),el(n?{kind:"error",text:"本地已停止跟踪,但服务端未确认中止(".concat(n instanceof Error?n.message:String(n),")——任务可能仍在后台运行,请稍后重试或查看服务端日志")}:{kind:"success",text:"已中止生成任务"})},[el,ec,ea]),ey=(0,r.useCallback)(async e=>{if((null==x?void 0:x.loading)&&x.documentId===e.id){var t;y=!0,x.aborted=!0,null==(t=x.pollController)||t.abort(),x.loading=!1,x.error="用户中止",w(),x=null,b(!1)}localStorage.removeItem(ea),eh(e.id);try{await (0,v.r)(e.id,e.projectRoot||W.current||void 0),el({kind:"success",text:"queued"===e.status?"已取消排队任务":"已中止生成任务"})}catch(e){el({kind:"info",text:"任务已不在运行,已刷新状态"})}finally{await ec(),V.current===e.id&&(N(null),E(null),A(null),M(""))}},[el,ec,eh,ea]),ew=(0,r.useCallback)(async e=>{try{N(e.id),b(!0);let t=await (0,v.UQ)(e.id,e.projectRoot||W.current||void 0);localStorage.setItem(ea,t.documentId),await ec();let n=await ep(t.documentId);n.draft&&(A(n.draft),M(n.editedMarkdown||n.markdown||n.draft.markdown)),localStorage.removeItem(ea),await ec(),el("paused"===n.status?{kind:"info",text:"生成已暂停,实际稿已保存"}:"completed"===n.status?{kind:"success",text:"已继续生成并通过专业交付检查"}:{kind:"warning",text:"继续生成已结束,实际稿仍待复核,可导出审阅稿"})}catch(e){el({kind:"error",text:e instanceof Error?e.message:"继续生成失败"})}finally{b(!1)}},[el,ec,ea,ep]),eb=(0,r.useCallback)(async(e,t)=>{let n=await fetch("/api/documents/generated/".concat(encodeURIComponent(e),"/pause"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:t||W.current||void 0})});if(!n.ok)throw Error(await n.text()||"HTTP ".concat(n.status));let r=await n.json();return el({kind:"success",text:r.message||"已请求暂停:正在取消模型调用并保存已完成正文"}),await ec(),ev(e,t),r},[el,ec,ev]),ek=(0,r.useCallback)(async(e,t)=>{let n=await fetch("/api/documents/generated/".concat(encodeURIComponent(e),"/resume-generate"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:t||W.current||void 0})});if(!n.ok)throw Error(await n.text()||"HTTP ".concat(n.status));let r=await n.json().catch(()=>void 0),a=null==r?void 0:r.resumeReuse;el(a?{kind:0===a.blockers.length?"info":"warning",text:"已请求继续:".concat(a.reason)}:{kind:"info",text:"已请求继续:将复用已保存的检查点"}),await ec()},[el,ec]),ej=(0,r.useCallback)((e,t,n)=>{let r=new Blob([e],{type:n}),a=URL.createObjectURL(r),l=document.createElement("a");l.href=a,l.download=t,l.target="_self",l.rel="noopener",l.style.display="none",document.body.appendChild(l),l.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})),l.remove(),window.setTimeout(()=>URL.revokeObjectURL(a),1e3)},[]),eI=(0,r.useCallback)(async(e,t)=>{let n=await (0,v.hU)(e,t);ej(n.blob,n.filename,"application/json;charset=utf-8")},[ej]),eA=(0,r.useCallback)(async(e,t,n)=>{try{let{blob:r,filename:a,receipt:l,gateIssues:o}=await (0,v.UE)(e);ej(r,a||t,n),L("review"===l.exportPurpose?{at:Date.now(),count:o.length,issues:o}:null),l.issuesReport&&await eI(e,l.issuesReport)}catch(t){throw t instanceof v.GA&&t.receipt.issuesReport&&await eI(e,t.receipt.issuesReport),t}},[ej,eI]),eS=(0,r.useMemo)(()=>({markdown:"text/markdown;charset=utf-8",html:"text/html;charset=utf-8",pdf:"application/pdf",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}),[]),eM=(0,r.useCallback)(async(e,t)=>{var n,r;let a=void 0!==e.editedMarkdown?e.editedMarkdown:e.markdown||(null==(n=e.draft)?void 0:n.markdown)||"",l=void 0===e.editedMarkdown&&(null==(r=e.checkpointChapters)?void 0:r.some(e=>{var t;return null==(t=e.content)?void 0:t.trim()}));if(!a.trim()&&!l)return void el({kind:"warning",text:"该记录暂无可导出的正文内容"});O(t);let o={exportPurpose:"review",documentId:e.id,title:e.title,format:t,projectRoot:e.projectRoot||W.current||void 0};try{await eA(o,"".concat(e.title,".").concat(t),eS[t])}catch(e){el({kind:"error",text:e instanceof Error?e.message:"导出失败"})}finally{O(null)}},[eA,eS,el]),eC=(0,r.useCallback)(async e=>{if(!I)return;O(e);let t={exportPurpose:"review",documentId:V.current||void 0,title:I.title,markdown:S,format:e,exportGate:I.exportGate,useClientMarkdown:!0,projectRoot:I.projectRoot||W.current||void 0};try{if(await eA(t,"".concat(I.title,".").concat("markdown"===e?"md":e),eS[e]),V.current)try{let{document:e}=await (0,v.v7)(V.current,!1,I.projectRoot||W.current||void 0);e&&U(e.exportReports||[])}catch(e){}}catch(e){el({kind:"error",text:e instanceof Error?e.message:"导出失败"})}finally{O(null)}},[S,eA,I,eS,el]),eE=R&&null!=(t=B.find(e=>e.id===R))?t:C,eR=function(e,t){if(!e)return t?"running":"idle";switch(e){case"queued":return"queued";case"generating":return"running";case"paused":return"paused";case"failed":case"aborted":return"stopped";case"completed_with_issues":case"warning":return"issues";case"completed":return"done";default:return"idle"}}(null==eE?void 0:eE.status,f);return{flowSteps:u,activeFlowKey:m,loading:f,draft:I,content:S,workflowRecord:C,documentId:R,documents:B,error:_,phase:eR,flowTick:q,boundRecord:eE,canResume:function(e){var t,n,r,a,l,o,i,c;if(!e)return{resumable:!1,kind:"not-resumable",reason:"记录不存在"};let s=String(e.status||""),u=null!=(r=null==(t=e.checkpointChapters)?void 0:t.length)?r:0,d=u>0,m="number"==typeof e.interruptedAt||!!e.interruptionReason;if(null!=(a=e.running)?a:"generating"===s||"queued"===s)return{resumable:!1,kind:"not-resumable",reason:"这次生成还在跑(续跑入口不该在运行态出现)"};if("paused"===s)return{resumable:!0,kind:"paused",reason:"暂停是可逆的:从检查点接着跑,未受影响的章会被复用"};if(m)return d?{resumable:!0,kind:"interrupted",reason:"上次运行被中断(".concat(null!=(l=e.interruptionReason)?l:"中断标记",")且留有 ").concat(u," 个检查点章:续跑只补未完成的章")}:{resumable:!1,kind:"not-resumable",reason:"这次运行被中断且**没有检查点章**:续跑等于全量重跑,请用新建生成(这里不伪装成续跑)"};if("warning"===s)return d?{resumable:!0,kind:"interrupted",reason:"上次运行留下了 ".concat(u," 个检查点章(状态 warning):续跑只补未完成的章")}:{resumable:!1,kind:"not-resumable",reason:"warning 且没有检查点章:没有可接着跑的东西,请用新建生成"};let p=null!=(o=null==(n=e.draft)?void 0:n.exportGate)?o:e.exportGate;if((null==p?void 0:p.passed)===!1){let e=null!=(c=null==(i=p.blockingIssues)?void 0:i.length)?c:0;return{resumable:!0,kind:"gate-blocked-repair",reason:"门禁未过(".concat(e>0?"".concat(e," 项阻断"):"阻断清单未随记录落盘","):续跑把阻断项交回生成侧修复(回源修复,不是重新生成)")}}return"completed"===s?{resumable:!1,kind:"not-resumable",reason:'这份稿已完成:要再跑请新建生成("继续"会把已定的交付物再推一遍)'}:"completed_with_issues"===s||"failed"===s||"aborted"===s?{resumable:!0,kind:"resumable-terminal",reason:"completed_with_issues"===s?"已收口但有未过项:续跑把未过项交回生成侧修复(回源修复,不是重新生成)".concat(d?";复用 ".concat(u," 个检查点章"):""):"aborted"===s?"这份稿被中止过:续跑从中断处接着跑".concat(d?"(复用 ".concat(u," 个检查点章)"):"(无检查点 ⇒ 全量重跑)"):"上次生成失败:续跑接着跑".concat(d?"(复用 ".concat(u," 个检查点章)"):"(无检查点 ⇒ 全量重跑)")}:{resumable:!1,kind:"not-resumable",reason:"当前状态(".concat(s||"未知",")没有可续跑的线索")}}(eE).resumable,startGeneration:ef,abortGeneration:ex,abortDocument:ey,resumeDocument:ew,pauseDocument:eb,resumePausedDocument:ek,applyRecord:em,refreshDocuments:ec,waitForDoc:ep,stepDurationText:eg,setDraft:A,setContent:M,setExportReports:U,export:{exporting:P,nonDeliverableExport:H,exportRecord:eM,exportEditor:eC,downloadExport:eA,exportReports:F},deliveryReadings:Q}}},94394:(e,t,n)=>{n.d(t,{i_:()=>r,uh:()=>a});let r={role_binding:"项目角色配置绑定",knowledge_retrieval:"知识库证据检索",file_understanding:"项目资料理解",fact_extraction:"事实抽取",chapter_generation:"章节正文生成",llm_review:"独立复核",validation:"规则与准入校验",reference:"资料增强"},a={success:"完成",running:"进行中",failed:"失败",skipped:"跳过",partial:"部分生效",pending:"等待中"}},96538:(e,t,n)=>{n.d(t,{a:()=>a,j:()=>l});let r={coarse:function(e,t){let n=Math.floor(e/1e3),r=Math.floor(n/86400),a=Math.floor(n%86400/3600),l=Math.floor(n%3600/60),o="en-US"===t;return r>0?o?"".concat(r,"d ").concat(a,"h"):"".concat(r," 天 ").concat(a," 小时"):a>0?o?"".concat(a,"h ").concat(l,"m"):"".concat(a," 小时 ").concat(l," 分"):l>0?o?"".concat(l,"m"):"".concat(l," 分"):o?"Just now":"刚刚"},fine:function(e){let t=Math.round(e/1e3);if(t<60)return"".concat(t," 秒");let n=Math.floor(t/60);return n<60?"".concat(n," 分 ").concat(t%60," 秒"):"".concat(Math.floor(n/60)," 小时 ").concat(n%60," 分")},"fine-decimal":function(e){return e>=6e4?"".concat(Math.floor(e/6e4)," 分 ").concat(Math.round(e%6e4/1e3)," 秒"):"".concat((e/1e3).toFixed(1)," 秒")},metric:function(e){return e<1e3?"".concat(Math.round(e),"ms"):e<6e4?"".concat((e/1e3).toFixed(1),"s"):"".concat((e/6e4).toFixed(1),"min")}};function a(e,t){var n;return r[t.style](function(e,t){let n="s"===t?1e3*e:e;return Number.isFinite(n)&&n>0?n:0}(e,t.unit),null!=(n=t.locale)?n:"zh-CN")}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return a(e,{unit:"s",style:"coarse",locale:t})}}}]);