@customize-agent/server 4.0.24 → 4.0.26

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 (114) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +17 -12
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/required-server-files.json +1 -23
  5. package/.next/routes-manifest.json +0 -24
  6. package/.next/server/chunks/1928.js +1 -0
  7. package/.next/server/chunks/3445.js +28 -160
  8. package/.next/server/chunks/8204.js +1 -1
  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/assets/generated/preview.js +1 -1
  13. package/.next/server/pages/api/assets/generated/preview.js.nft.json +1 -1
  14. package/.next/server/pages/api/assets/generated.js +1 -1
  15. package/.next/server/pages/api/assets/generated.js.nft.json +1 -1
  16. package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
  17. package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
  18. package/.next/server/pages/api/documents/export.js +3 -3
  19. package/.next/server/pages/api/documents/export.js.nft.json +1 -1
  20. package/.next/server/pages/api/documents/generate.js +2 -2
  21. package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
  22. package/.next/server/pages/api/documents/generated/[id].js +1 -1
  23. package/.next/server/pages/api/documents/generated/[id].js.nft.json +1 -1
  24. package/.next/server/pages/api/documents/generated.js +1 -1
  25. package/.next/server/pages/api/documents/generated.js.nft.json +1 -1
  26. package/.next/server/pages/api/documents/roles.js +1 -1
  27. package/.next/server/pages/api/documents/specs.js +1 -1
  28. package/.next/server/pages/api/documents/specs.js.nft.json +1 -1
  29. package/.next/server/pages/api/documents/templates.js +1 -1
  30. package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
  31. package/.next/server/pages/api/jobs/[id].js +4 -1
  32. package/.next/server/pages/api/jobs/[id].js.nft.json +1 -1
  33. package/.next/server/pages/api/jobs.js +4 -1
  34. package/.next/server/pages/api/jobs.js.nft.json +1 -1
  35. package/.next/server/pages/api/kb/categories.js +4 -1
  36. package/.next/server/pages/api/kb/categories.js.nft.json +1 -1
  37. package/.next/server/pages/api/kb/duplicates.js +4 -1
  38. package/.next/server/pages/api/kb/duplicates.js.nft.json +1 -1
  39. package/.next/server/pages/api/kb/files/detail.js +5 -2
  40. package/.next/server/pages/api/kb/files/detail.js.nft.json +1 -1
  41. package/.next/server/pages/api/kb/files/open.js +4 -1
  42. package/.next/server/pages/api/kb/files/open.js.nft.json +1 -1
  43. package/.next/server/pages/api/kb/files/preview-pdf-page.js +4 -1
  44. package/.next/server/pages/api/kb/files/preview-pdf-page.js.nft.json +1 -1
  45. package/.next/server/pages/api/kb/files/reindex.js +4 -1
  46. package/.next/server/pages/api/kb/files/reindex.js.nft.json +1 -1
  47. package/.next/server/pages/api/kb/files/search.js +5 -2
  48. package/.next/server/pages/api/kb/files/search.js.nft.json +1 -1
  49. package/.next/server/pages/api/kb/files.js +5 -2
  50. package/.next/server/pages/api/kb/files.js.nft.json +1 -1
  51. package/.next/server/pages/api/kb/ignore.js +4 -1
  52. package/.next/server/pages/api/kb/ignore.js.nft.json +1 -1
  53. package/.next/server/pages/api/kb/operations.js +4 -1
  54. package/.next/server/pages/api/kb/operations.js.nft.json +1 -1
  55. package/.next/server/pages/api/kb/reindex.js +4 -1
  56. package/.next/server/pages/api/kb/reindex.js.nft.json +1 -1
  57. package/.next/server/pages/api/kb/search.js +4 -1
  58. package/.next/server/pages/api/kb/search.js.nft.json +1 -1
  59. package/.next/server/pages/api/kb/stats.js +4 -1
  60. package/.next/server/pages/api/kb/stats.js.nft.json +1 -1
  61. package/.next/server/pages/api/kb/tags.js +4 -1
  62. package/.next/server/pages/api/kb/tags.js.nft.json +1 -1
  63. package/.next/server/pages/api/kb/upload/progress.js +4 -1
  64. package/.next/server/pages/api/kb/upload/progress.js.nft.json +1 -1
  65. package/.next/server/pages/api/kb/upload.js +4 -1
  66. package/.next/server/pages/api/kb/upload.js.nft.json +1 -1
  67. package/.next/server/pages/api/prompt.js +1 -97
  68. package/.next/server/pages/asset-library.html +1 -1
  69. package/.next/server/pages/context/long-term.html +1 -1
  70. package/.next/server/pages/context/short-term.html +1 -1
  71. package/.next/server/pages/document-roles.html +1 -1
  72. package/.next/server/pages/document-specs.html +1 -1
  73. package/.next/server/pages/documents.html +1 -1
  74. package/.next/server/pages/guide.html +1 -1
  75. package/.next/server/pages/index.html +1 -1
  76. package/.next/server/pages/index.js.nft.json +1 -1
  77. package/.next/server/pages/knowledge/file-detail.html +1 -1
  78. package/.next/server/pages/knowledge/files.html +1 -1
  79. package/.next/server/pages/knowledge/manage.html +1 -1
  80. package/.next/server/pages/knowledge/search.html +1 -1
  81. package/.next/server/pages/knowledge.html +1 -1
  82. package/.next/server/pages/models.html +1 -1
  83. package/.next/server/pages/overview.html +1 -1
  84. package/.next/server/pages/overview.js.nft.json +1 -1
  85. package/.next/server/pages/prompt.html +1 -1
  86. package/.next/server/pages/settings.html +1 -1
  87. package/.next/server/pages/system/logs.html +1 -1
  88. package/.next/server/pages-manifest.json +18 -18
  89. package/.next/static/Yb0BLdPOQ4eb6l81wnrct/_buildManifest.js +1 -0
  90. package/.next/static/chunks/130-c1e5c14958fcba2b.js +1 -0
  91. package/.next/static/chunks/{pages/overview-28c7ceeca56e6a78.js → 795-67a87e03d67ed908.js} +1 -1
  92. package/.next/static/chunks/pages/{_app-5a15b88340356365.js → _app-15f2d98b25c5d3ce.js} +1 -1
  93. package/.next/static/chunks/pages/document-roles-4293f5fae599ff83.js +1 -0
  94. package/.next/static/chunks/pages/document-specs-3a02d469bf6a43fa.js +1 -0
  95. package/.next/static/chunks/pages/documents-8516d74b25d9fa0d.js +1 -0
  96. package/.next/static/chunks/pages/{guide-cdf68a096918c979.js → guide-74f0f7f42bc211b0.js} +1 -1
  97. package/.next/static/chunks/pages/index-591c5acdff8d0690.js +1 -0
  98. package/.next/static/chunks/pages/knowledge/files-4b0132dd66e57085.js +1 -0
  99. package/.next/static/chunks/pages/overview-8d8ba5a1c0aa39ea.js +1 -0
  100. package/.next/static/chunks/pages/prompt-3468fb841f4c5c8c.js +1 -0
  101. package/next.config.ts +0 -9
  102. package/package.json +4 -4
  103. package/scripts/kb-index-worker.cjs +10 -3
  104. package/.next/server/chunks/3328.js +0 -216
  105. package/.next/server/chunks/7367.js +0 -1
  106. package/.next/static/chunks/447-fa0c71b418e19135.js +0 -1
  107. package/.next/static/chunks/pages/document-roles-4be647d475d4674b.js +0 -1
  108. package/.next/static/chunks/pages/document-specs-36de5dfb6865664f.js +0 -1
  109. package/.next/static/chunks/pages/documents-3b2f23e2d6b27f1b.js +0 -1
  110. package/.next/static/chunks/pages/index-c5e0758e6b31deee.js +0 -1
  111. package/.next/static/chunks/pages/knowledge/files-bc2ad2b01cb1f568.js +0 -1
  112. package/.next/static/chunks/pages/prompt-714b161b79fcd454.js +0 -1
  113. package/.next/static/ljFU94IeITFDNcrZa2ewf/_buildManifest.js +0 -1
  114. /package/.next/static/{ljFU94IeITFDNcrZa2ewf → Yb0BLdPOQ4eb6l81wnrct}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26],{27549:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/prompt",function(){return r(34508)}])},34508:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>q});var o=r(65321),l=r(97109),i=r(79059),n=r(17807),a=r(33442),s=r(11702),c=r(56985),d=r(85114),p=r(26171),h=r(68787),m=r(88762),u=r(7576),x=r(57271),y=r(49292),f=r(55122),g=r(84253),j=r(34052),v=r(42700),w=r(54746),S=r(99650),A=r(58209),b=r(26631),C=r(29606),k=r(96091),z=r(81668),T=r(30486),F=r(46082),N=r(42758),B=r(24810),E=r(7492);async function I(){let e=await fetch("/api/prompt");if(!e.ok)throw Error("Failed");return e.json()}async function R(e,t,r){let o=await fetch("/api/prompt",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePath:e,content:t,name:r})});if(!o.ok)throw Error("Failed");return o.json()}async function O(e){let t=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"create",projectRoot:e,content:"# CUSTOMIZE\n"})});if(!t.ok)throw Error("Failed");return t.json()}async function P(e,t){let r=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"createCustom",name:e,content:t})});if(!r.ok)throw Error("Failed");return r.json()}async function W(e){let t=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"select",selectedIds:e})});if(!t.ok)throw Error("Failed");return t.json()}async function D(e){let t=await fetch("/api/prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"import",...e&&"object"==typeof e?e:{prompts:[]}})});if(!t.ok)throw Error(await t.text());return t.json()}async function H(){return J("",!1,60)}async function _(e){let t=await fetch("/api/kb/files/detail?relativePath=".concat(encodeURIComponent(e)));if(!t.ok)throw Error("Failed");return((await t.json()).chunks||[]).map(e=>e.content||"").filter(Boolean).join("\n\n").slice(0,12e3)}async function J(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,o=new URLSearchParams({limit:String(r)});e.trim()&&o.set("q",e.trim()),t||o.set("includeContent","0");let l=await fetch("/api/kb/files/search?".concat(o));return l.ok&&(await l.json()).files||[]}async function L(e){let t=await fetch("/api/prompt/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.text();try{let t=JSON.parse(e);throw Error(t.error||t.message||e||"AI 对话失败")}catch(t){throw Error(e||"AI 对话失败")}}return t.json()}function M(e){return e.id.startsWith("custom:")}function U(e){return M(e)?"custom":e.isCurrent?"current":"project"}function $(e){return"custom"===e?"我的提示词":"current"===e?"当前项目":"project"===e?"其他项目":"全部"}function G(e,t,r){return e?"customize-agent:prompt-chat:".concat(e.id,":").concat(e.customizePath||e.projectName):"customize-agent:prompt-chat:draft:".concat(r||t||"new")}function X(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:220,r=e.hasFile&&e.content?e.content.replace(/^#.*$/gm,"").replace(/\n{3,}/g,"\n\n").trim():"";return r.length>t?"".concat(r.slice(0,t),"..."):r}function Y(e){let t=Date.parse(e);return Number.isNaN(t)?"-":new Date(t).toLocaleString()}function Z(e){let t=e.match(/(^|\s)@([^\s@]*)$/);return t?t[2]:null}function q(){let e=(0,i.Vr)(),{message:t}=n.A.useApp(),[r,q]=(0,l.useState)(!0),[K,V]=(0,l.useState)([]),[Q,ee]=(0,l.useState)(!1),[et,er]=(0,l.useState)(null),[eo,el]=(0,l.useState)(""),[ei,en]=(0,l.useState)(""),[ea,es]=(0,l.useState)(!1),[ec,ed]=(0,l.useState)(!1),[ep,eh]=(0,l.useState)("custom"),[em,eu]=(0,l.useState)("all"),[ex,ey]=(0,l.useState)("mtime"),[ef,eg]=(0,l.useState)("list"),[ej,ev]=(0,l.useState)(""),[ew,eS]=(0,l.useState)(null),[eA,eb]=(0,l.useState)([]),[eC,ek]=(0,l.useState)(!1),[ez,eT]=(0,l.useState)([]),[eF,eN]=(0,l.useState)(""),[eB,eE]=(0,l.useState)(""),[eI,eR]=(0,l.useState)(!1),[eO,eP]=(0,l.useState)([]),[eW,eD]=(0,l.useState)([]),[eH,e_]=(0,l.useState)([]),[eJ,eL]=(0,l.useState)(!1),[eM,eU]=(0,l.useState)(!1),[e$,eG]=(0,l.useState)(!1),eX=(0,l.useRef)(null),eY=(0,l.useRef)(null),eZ=Z(eB),eq=async()=>{q(!0);try{V(await I())}catch(r){t.error(e("common.error"))}finally{q(!1)}};(0,l.useEffect)(()=>{eq()},[]),(0,l.useEffect)(()=>{let e=window.localStorage.getItem("customize-agent:prompt-view-mode");("list"===e||"card"===e)&&eg(e)},[]),(0,l.useEffect)(()=>{window.localStorage.setItem("customize-agent:prompt-view-mode",ef)},[ef]),(0,l.useEffect)(()=>{let e=eY.current;e&&e.scrollTo({top:e.scrollHeight,behavior:"smooth"}),eF&&window.localStorage.setItem(eF,JSON.stringify(ez.slice(-30)))},[ez,eI,eF]),(0,l.useEffect)(()=>{!Q||eO.length>0||eJ||(eL(!0),H().then(eP).catch(()=>void 0).finally(()=>eL(!1)))},[Q,eO.length,eJ]),(0,l.useEffect)(()=>{let e=null==eZ?void 0:eZ.trim();if(!Q||!e){eD([]),eU(!1);return}let t=!1;eU(!0);let r=window.setTimeout(()=>{J(e).then(e=>{t||eD(e)}).catch(()=>{t||eD([])}).finally(()=>{t||eU(!1)})},250);return()=>{t=!0,window.clearTimeout(r)}},[Q,eZ]);let eK=K.find(e=>e.isCurrent),eV=K.filter(M),eQ={all:K.length,custom:K.filter(e=>"custom"===U(e)).length,current:K.filter(e=>"current"===U(e)).length,project:K.filter(e=>"project"===U(e)).length,selected:K.filter(e=>e.selected).length,unselected:K.filter(e=>!e.selected).length,hasFile:K.filter(e=>e.hasFile).length,missingFile:K.filter(e=>!e.hasFile).length},e0=K.filter(e=>{var t;let r=U(e);return("all"===ep||r===ep)&&("selected"!==em||!!e.selected)&&("unselected"!==em||!e.selected)&&("hasFile"!==em||!!e.hasFile)&&("missingFile"!==em||!e.hasFile)&&(!ej.trim()||(t=ej.trim(),!!"".concat(e.projectName,"\n").concat(e.projectRoot||"","\n").concat(e.customizePath||"","\n").concat(e.content||"").toLowerCase().includes(t.toLowerCase())))}).sort((e,t)=>"name"===ex?e.projectName.localeCompare(t.projectName):"source"===ex?["custom","current","project"].indexOf(U(e))-["custom","current","project"].indexOf(U(t)):"selected"===ex&&Number(t.selected)-Number(e.selected)||Date.parse(t.mtime||"")-Date.parse(e.mtime||"")),e1=e0.find(e=>e.id===ew)||e0[0]||null,e2=eA.filter(e=>e0.some(t=>t.id===e)),e8=(null==eZ?void 0:eZ.trim())?eW:eO,e4=(e,t,r)=>{let o=G(e,t,r);eN(o),eT(function(e){try{let t=JSON.parse(window.localStorage.getItem(e)||"[]");return Array.isArray(t)?t.filter(e=>("user"===e.role||"assistant"===e.role)&&"string"==typeof e.content).slice(-30):[]}catch(e){return[]}}(o)),eE(""),eR(!1),e_([]),eG(!1)},e6=r=>{if(null==r?void 0:r.projectRoot)return void O(r.projectRoot).then(()=>{t.success(e("common.success")),eq()}).catch(()=>t.error(e("common.error")));let o="new:".concat(Date.now());er(null),ed(!0),en(""),el(""),e4(null,"new",o),ee(!0)},e7=async()=>{if(!ei.trim())return void t.error("请输入名称");es(!0);try{if(et)await R(et.customizePath,eo,M(et)?ei.trim():void 0),t.success(e("common.success"));else{let r=await P(ei.trim(),eo||"# ".concat(ei.trim(),"\n"));!function(e,t){if(!e||!t||e===t)return;let r=window.localStorage.getItem(e);r&&!window.localStorage.getItem(t)&&window.localStorage.setItem(t,r)}(eF,G({id:r.id,projectId:r.id,projectName:ei.trim(),customizePath:r.id,content:eo,mtime:"",hasFile:!0,isCurrent:!1,selected:!1,source:"custom"},ei.trim())),t.success(e("common.success"))}ee(!1),await eq()}catch(r){t.error(e("common.error"))}finally{es(!1)}},e3=async e=>{let t=Array.from(new Set([...eH,...eO.filter(t=>e.includes("@".concat(t.relativePath))).map(e=>e.relativePath)])).slice(0,3),r=[];for(let e of t){let t=await _(e);t&&r.push({relativePath:e,content:t})}return r},e5=async()=>{let e=eB.trim();if(!e||eI)return;let r=[...ez,{role:"user",content:e}];eT(r),eE(""),eG(!1),eR(!0);try{let t=await e3(e),o=await L({name:ei||(null==et?void 0:et.projectName)||"未命名提示词",content:eo,message:e,history:ez,references:t});eT([...r,{role:"assistant",content:o.content||"AI 未返回内容"}])}catch(e){t.error(e instanceof Error?e.message:"AI 对话失败,请检查模型配置"),eT(r)}finally{eR(!1)}},e9=async(r,o)=>{let l=o?Array.from(new Set([...K.filter(e=>e.selected).map(e=>e.id),r.id])):K.filter(e=>e.selected&&e.id!==r.id).map(e=>e.id);try{await W(l),V(e=>e.map(e=>({...e,selected:l.includes(e.id)})))}catch(r){t.error(e("common.error"))}},te=async r=>{let o=K.filter(e=>e.selected).map(e=>e.id),l=r?Array.from(new Set([...o,...e2])):o.filter(e=>!e2.includes(e));try{await W(l),V(e=>e.map(e=>({...e,selected:l.includes(e.id)}))),eb([]),t.success(e("common.success"))}catch(r){t.error(e("common.error"))}},tt=async r=>{try{if(!(await fetch("/api/prompt",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:r.projectId,filePath:r.customizePath})})).ok)throw Error("Failed");t.success(e("common.success")),eb(e=>e.filter(e=>e!==r.id)),await eq()}catch(r){t.error(e("common.error"))}},tr=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"custom",r="checked"===e?K.filter(e=>e2.includes(e.id)):"filtered"===e?e0:eV;!function(e,t){let r=new Blob([t],{type:"text/plain;charset=utf-8"}),o=URL.createObjectURL(r),l=document.createElement("a");l.href=o,l.download=e,l.click(),URL.revokeObjectURL(o)}("customize-prompts-".concat(new Date().toISOString().slice(0,10),".txt"),r.map(e=>["# Prompt: ".concat(e.projectName),"Source: ".concat($(U(e))),"Path: ".concat(e.customizePath||"-"),"Project: ".concat(e.projectRoot||"-"),"Selected: ".concat(e.selected?"true":"false"),"Updated: ".concat(Y(e.mtime)),"",e.content||""].join("\n")).join("\n\n---\n\n")),t.success("已导出 ".concat(r.length," 条提示词"))},to=async e=>{if(e){ek(!0);try{let r=await e.text(),o=JSON.parse(r),l=await D(o);t.success("已导入 ".concat(l.imported," 条提示词")),await eq()}catch(e){t.error("导入失败,请确认 JSON 文件格式正确")}finally{ek(!1),eX.current&&(eX.current.value="")}}},tl=e=>{let t=U(e);return(0,o.jsxs)(a.A,{size:4,wrap:!0,children:[(0,o.jsx)(s.A,{color:"custom"===t?"cyan":"current"===t?"green":"project"===t?"blue":"default",style:{margin:0},children:$(t)}),e.selected&&(0,o.jsx)(s.A,{color:"purple",style:{margin:0},children:"已选中"}),!e.hasFile&&(0,o.jsx)(s.A,{style:{margin:0},children:"无文件"})]})},ti=e=>(0,o.jsxs)(a.A,{size:6,children:[e.hasFile&&(0,o.jsx)(c.A,{checked:e.selected,onChange:t=>{e9(e,t.target.checked)},children:"选中"}),!e.hasFile&&e.projectRoot&&(0,o.jsx)(d.Ay,{size:"small",icon:(0,o.jsx)(w.A,{}),onClick:()=>e6(e),children:"创建"}),e.hasFile&&(0,o.jsx)(d.Ay,{size:"small",icon:(0,o.jsx)(S.A,{}),onClick:()=>{er(e),ed(!1),en(e.projectName),el(e.content||""),e4(e,e.projectName),ee(!0)},children:"编辑"}),(0,o.jsx)(p.A,{title:M(e)?"删除自定义提示词?":"删除项目记录及文件?",onConfirm:()=>{tt(e)},children:(0,o.jsx)(d.Ay,{size:"small",danger:!0,icon:(0,o.jsx)(A.A,{})})})]});return r?(0,o.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,o.jsx)(m.A,{active:!0,title:!0,paragraph:{rows:1}}),(0,o.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:12},children:Array.from({length:4}).map((e,t)=>(0,o.jsx)(h.A,{size:"small",children:(0,o.jsx)(m.A,{active:!0,paragraph:{rows:4}})},t))})]}):(0,o.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"pageTitle",children:e("nav.promptManagement")}),(0,o.jsx)("p",{className:"pageDesc",children:e("prompt.description")})]}),(0,o.jsxs)(a.A,{wrap:!0,children:[eK&&(0,o.jsxs)(s.A,{color:"green",style:{lineHeight:"22px"},children:[(0,o.jsx)(C.A,{})," ",eK.projectRoot]}),(0,o.jsx)("input",{ref:eX,type:"file",accept:"application/json,.json",style:{display:"none"},onChange:e=>{var t;to(null==(t=e.target.files)?void 0:t[0])}}),(0,o.jsx)(d.Ay,{icon:(0,o.jsx)(k.A,{}),loading:eC,onClick:()=>{var e;return null==(e=eX.current)?void 0:e.click()},children:"导入"}),(0,o.jsx)(d.Ay,{icon:(0,o.jsx)(z.A,{}),disabled:0===e0.length,onClick:()=>tr("filtered"),children:"导出筛选"}),(0,o.jsx)(d.Ay,{type:"primary",icon:(0,o.jsx)(w.A,{}),onClick:()=>e6(),children:"创建提示词"})]})]}),(0,o.jsxs)(h.A,{size:"small",styles:{body:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center"}},children:[(0,o.jsx)(u.A,{prefix:(0,o.jsx)(T.A,{}),allowClear:!0,placeholder:"搜索名称、内容、路径...",value:ej,onChange:e=>ev(e.target.value),style:{width:280}}),(0,o.jsx)(x.A,{value:ep,onChange:eh,style:{width:150},options:[{label:"全部 (".concat(eQ.all,")"),value:"all"},{label:"我的提示词 (".concat(eQ.custom,")"),value:"custom"},{label:"当前项目 (".concat(eQ.current,")"),value:"current"},{label:"其他项目 (".concat(eQ.project,")"),value:"project"}]}),(0,o.jsx)(x.A,{value:em,onChange:eu,style:{width:130},options:[{label:"全部状态",value:"all"},{label:"已选中 (".concat(eQ.selected,")"),value:"selected"},{label:"未选中 (".concat(eQ.unselected,")"),value:"unselected"},{label:"有文件 (".concat(eQ.hasFile,")"),value:"hasFile"},{label:"无文件 (".concat(eQ.missingFile,")"),value:"missingFile"}]}),(0,o.jsx)(x.A,{value:ex,onChange:ey,style:{width:140},options:[{label:"最近修改优先",value:"mtime"},{label:"名称 A-Z",value:"name"},{label:"来源优先",value:"source"},{label:"已选中优先",value:"selected"}]}),(0,o.jsx)(y.A,{value:ef,onChange:e=>eg(e),options:[{label:(0,o.jsx)(F.A,{}),value:"list"},{label:(0,o.jsx)(N.A,{}),value:"card"}]}),(0,o.jsx)("div",{style:{flex:1}}),(0,o.jsxs)("span",{style:{color:"var(--colorTextSecondary)",fontSize:13},children:["已显示 ",e0.length," / ",K.length]})]}),(0,o.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"260px minmax(0, 1fr)",gap:14,alignItems:"start"},children:[(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,o.jsxs)(h.A,{size:"small",title:"分组导航",styles:{body:{padding:8}},children:[[["all","全部",eQ.all],["custom","我的提示词",eQ.custom],["current","当前项目",eQ.current],["project","其他项目",eQ.project]].map(e=>{let[t,r,l]=e;return(0,o.jsxs)("button",{onClick:()=>eh(t),style:{width:"100%",border:"none",background:ep===t?"var(--colorFillSecondary)":"transparent",color:"var(--colorText)",padding:"9px 10px",borderRadius:8,display:"flex",justifyContent:"space-between",cursor:"pointer",fontWeight:ep===t?700:400},children:[(0,o.jsx)("span",{children:r}),(0,o.jsx)("span",{children:l})]},t)}),(0,o.jsx)(f.A,{style:{margin:"8px 0"}}),[["selected","已选中",eQ.selected],["unselected","未选中",eQ.unselected]].map(e=>{let[t,r,l]=e;return(0,o.jsxs)("button",{onClick:()=>eu(em===t?"all":t),style:{width:"100%",border:"none",background:em===t?"var(--colorFillSecondary)":"transparent",color:"var(--colorText)",padding:"9px 10px",borderRadius:8,display:"flex",justifyContent:"space-between",cursor:"pointer",fontWeight:em===t?700:400},children:[(0,o.jsx)("span",{children:r}),(0,o.jsx)("span",{children:l})]},t)})]}),(0,o.jsx)(h.A,{size:"small",title:"详情预览",styles:{body:{height:300,display:"flex",flexDirection:"column",gap:10,overflow:"hidden"}},children:e1?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,o.jsx)(b.A,{style:{color:"var(--colorAccent)",flexShrink:0}}),(0,o.jsx)("strong",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e1.projectName})]}),(0,o.jsx)("div",{style:{minWidth:0,overflow:"hidden"},children:tl(e1)}),(0,o.jsxs)("div",{style:{color:"var(--colorTextSecondary)",fontSize:12,lineHeight:1.7,minWidth:0},children:[(0,o.jsxs)("div",{children:["更新时间:",Y(e1.mtime)]}),(0,o.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["文件路径:",e1.customizePath||"-"]}),(0,o.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["项目路径:",e1.projectRoot||"-"]})]}),(0,o.jsx)("div",{style:{flex:1,minHeight:0,padding:10,borderRadius:8,background:"var(--colorFillAlter)",color:"var(--colorTextSecondary)",fontSize:12,lineHeight:1.7,overflow:"auto",whiteSpace:"pre-wrap",overflowWrap:"anywhere",wordBreak:"break-word"},children:X(e1,800)||"暂无内容预览"}),(0,o.jsx)("div",{children:ti(e1)})]}):(0,o.jsx)(g.A,{image:g.A.PRESENTED_IMAGE_SIMPLE,description:"请选择一个提示词"})})]}),(0,o.jsxs)("div",{style:{minWidth:0},children:[e2.length>0&&(0,o.jsxs)(h.A,{size:"small",style:{marginBottom:12},styles:{body:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"}},children:[(0,o.jsxs)("span",{style:{fontWeight:600},children:["已选择 ",e2.length," 项"]}),(0,o.jsx)(d.Ay,{size:"small",onClick:()=>{te(!0)},children:"批量选中"}),(0,o.jsx)(d.Ay,{size:"small",onClick:()=>{te(!1)},children:"取消选中"}),(0,o.jsx)(d.Ay,{size:"small",icon:(0,o.jsx)(z.A,{}),onClick:()=>tr("checked"),children:"导出选中"}),(0,o.jsx)(d.Ay,{size:"small",onClick:()=>eb([]),children:"清空选择"})]}),0===e0.length?(0,o.jsx)(h.A,{children:(0,o.jsx)(g.A,{description:ej||"all"!==em?"没有找到匹配的提示词,请尝试更换关键词或清空筛选条件":"当前分组没有提示词"})}):"list"===ef?(0,o.jsx)(a.A,{direction:"vertical",size:10,style:{width:"100%"},children:e0.map(e=>{let t=X(e,180),r=(null==e1?void 0:e1.id)===e.id;return(0,o.jsxs)("div",{onClick:()=>eS(e.id),style:{display:"grid",gridTemplateColumns:"28px minmax(0, 1fr) auto",gap:12,alignItems:"center",padding:14,border:"1px solid ".concat(r?"var(--colorAccent)":"var(--colorBorderSecondary)"),borderRadius:12,background:r?"var(--colorFillSecondary)":"var(--colorBgContainer)",cursor:"pointer",transition:"all .2s ease"},children:[(0,o.jsx)(c.A,{checked:eA.includes(e.id),onClick:e=>e.stopPropagation(),onChange:t=>eb(r=>t.target.checked?Array.from(new Set([...r,e.id])):r.filter(t=>t!==e.id))}),(0,o.jsxs)("div",{style:{minWidth:0},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[(0,o.jsx)(b.A,{style:{color:e.isCurrent?"var(--colorOk)":"var(--colorAccent)"}}),(0,o.jsx)("span",{style:{fontWeight:700,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.projectName}),tl(e)]}),(0,o.jsxs)("div",{style:{color:"var(--colorTextSecondary)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:6*!!t},children:[(0,o.jsx)(C.A,{style:{marginRight:4}}),e.projectRoot||e.customizePath||"本地提示词"," \xb7 ",Y(e.mtime)]}),t&&(0,o.jsx)("div",{style:{color:"var(--colorTextSecondary)",fontSize:12,lineHeight:1.6,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",whiteSpace:"pre-wrap"},children:t})]}),(0,o.jsx)("div",{onClick:e=>e.stopPropagation(),children:ti(e)})]},e.id)})}):(0,o.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(280px, 1fr))",gap:12},children:e0.map(e=>{let t=X(e,180),r=(null==e1?void 0:e1.id)===e.id;return(0,o.jsxs)(h.A,{size:"small",hoverable:!0,onClick:()=>eS(e.id),style:{borderColor:r?"var(--colorAccent)":void 0},styles:{body:{display:"flex",flexDirection:"column",minHeight:210}},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,o.jsx)(c.A,{checked:eA.includes(e.id),onClick:e=>e.stopPropagation(),onChange:t=>eb(r=>t.target.checked?Array.from(new Set([...r,e.id])):r.filter(t=>t!==e.id))}),(0,o.jsx)(b.A,{style:{color:e.isCurrent?"var(--colorOk)":"var(--colorAccent)"}}),(0,o.jsx)("span",{style:{fontWeight:700,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:e.projectName})]}),(0,o.jsx)("div",{style:{marginBottom:8},children:tl(e)}),(0,o.jsxs)("div",{style:{color:"var(--colorTextSecondary)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginBottom:8},children:[(0,o.jsx)(C.A,{style:{marginRight:4}}),e.projectRoot||e.customizePath||"本地提示词"]}),(0,o.jsx)("div",{style:{padding:10,background:"var(--colorFillAlter)",borderRadius:8,color:"var(--colorTextSecondary)",fontSize:12,lineHeight:1.6,minHeight:72,maxHeight:72,overflow:"hidden",whiteSpace:"pre-wrap"},children:t||"暂无内容预览"}),(0,o.jsxs)("div",{style:{marginTop:"auto",paddingTop:10,borderTop:"1px solid var(--colorBorderSecondary)",display:"flex",justifyContent:"space-between",alignItems:"center"},onClick:e=>e.stopPropagation(),children:[(0,o.jsx)("span",{style:{color:"var(--colorTextSecondary)",fontSize:12},children:Y(e.mtime)}),ti(e)]})]},e.id)})})]})]}),(0,o.jsxs)(j.A,{title:ec?"创建提示词":et&&M(et)?"编辑我的提示词 — ".concat(ei||et.projectName):"编辑项目提示词 — ".concat((null==et?void 0:et.projectName)||""),open:Q,onClose:()=>ee(!1),width:980,maskClosable:!1,style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px",display:"grid",gridTemplateRows:"minmax(320px, 1fr) 420px",gap:14,height:"100%"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,o.jsxs)(a.A,{children:[(0,o.jsx)(d.Ay,{onClick:()=>ee(!1),children:e("common.cancel")}),(0,o.jsx)(d.Ay,{type:"primary",loading:ea,onClick:()=>{e7()},children:e("common.save")})]}),children:[(0,o.jsxs)("div",{style:{minHeight:0,display:"flex",flexDirection:"column"},children:[(0,o.jsx)("div",{style:{marginBottom:12},children:ec||et&&M(et)?(0,o.jsxs)(a.A,{direction:"vertical",size:6,style:{width:"100%"},children:[(0,o.jsx)(u.A,{placeholder:"提示词名称",value:ei,onChange:e=>en(e.target.value),style:{maxWidth:520}}),!ec&&(0,o.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:null==et?void 0:et.customizePath})]}):(0,o.jsx)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:null==et?void 0:et.customizePath})}),(0,o.jsx)(u.A.TextArea,{value:eo,onChange:e=>el(e.target.value),style:{flex:1,minHeight:280,fontFamily:"SF Mono, Monaco, Consolas, monospace",fontSize:13,resize:"none"}})]}),(0,o.jsxs)("div",{style:{minHeight:0,border:"1px solid var(--colorBorderSecondary)",borderRadius:10,background:"var(--colorBgContainer)",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"0 8px 24px rgba(15, 23, 42, 0.06)"},children:[(0,o.jsxs)("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--colorBorderSecondary)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,o.jsxs)(a.A,{size:6,children:[(0,o.jsx)(B.A,{style:{color:"var(--colorAccent)"}}),(0,o.jsx)("span",{style:{fontWeight:600},children:"AI 提示词助手"})]}),(0,o.jsxs)(a.A,{size:6,children:[ez.length>0&&(0,o.jsx)(d.Ay,{size:"small",onClick:()=>eT([]),children:"清空历史"}),eI?(0,o.jsx)(s.A,{color:"processing",style:{margin:0},children:"生成中"}):(0,o.jsx)(s.A,{color:"blue",style:{margin:0},children:"可对话优化"})]})]}),(0,o.jsx)("div",{ref:eY,style:{flex:1,minHeight:0,overflowY:"auto",padding:14,background:"var(--colorFillAlter)"},children:0!==ez.length||eI?(0,o.jsxs)(a.A,{direction:"vertical",size:12,style:{width:"100%"},children:[ez.map((e,r)=>{let l="user"===e.role;return(0,o.jsx)("div",{style:{display:"flex",justifyContent:l?"flex-end":"flex-start"},children:(0,o.jsxs)("div",{style:{maxWidth:"78%",padding:"10px 12px",borderRadius:12,background:l?"var(--colorFillSecondary)":"var(--colorBgContainer)",color:"var(--colorText)",border:"1px solid var(--colorBorderSecondary)",whiteSpace:"pre-wrap",lineHeight:1.7,fontSize:13,transition:"all .2s ease"},children:[e.content,!l&&(0,o.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:8},children:(0,o.jsx)(d.Ay,{size:"small",type:"primary",onClick:()=>{el(e.content),t.success("已应用到编辑内容,请确认后保存")},children:"应用"})})]})},"".concat(e.role,"-").concat(r))}),eI&&(0,o.jsx)("div",{style:{display:"flex",justifyContent:"flex-start"},children:(0,o.jsxs)("div",{style:{padding:"10px 12px",borderRadius:12,background:"var(--colorBgContainer)",border:"1px solid var(--colorBorderSecondary)",color:"var(--colorTextSecondary)",fontSize:13},children:[(0,o.jsx)(v.A,{size:"small",style:{marginRight:8}}),"AI 正在分析并生成内容..."]})})]}):(0,o.jsx)(g.A,{image:g.A.PRESENTED_IMAGE_SIMPLE,description:"输入 @ 召回知识库文件,再描述你的优化目标"})}),(0,o.jsx)(f.A,{style:{margin:0}}),(0,o.jsxs)("div",{style:{padding:12},children:[eH.length>0&&(0,o.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginBottom:8},children:eH.map(e=>(0,o.jsxs)(s.A,{closable:!0,onClose:()=>e_(t=>t.filter(t=>t!==e)),style:{margin:0,maxWidth:360,overflow:"hidden",textOverflow:"ellipsis"},children:["@",e]},e))}),e$&&(0,o.jsxs)("div",{style:{maxHeight:260,overflowY:"auto",marginBottom:8,border:"1px solid var(--colorBorderSecondary)",borderRadius:12,background:"var(--colorBgElevated, var(--colorBgContainer))",boxShadow:"0 16px 40px rgba(15, 23, 42, 0.14)"},children:[(0,o.jsxs)("div",{style:{position:"sticky",top:0,zIndex:1,padding:"10px 12px",borderBottom:"1px solid var(--colorBorderSecondary)",background:"var(--colorBgElevated, var(--colorBgContainer))",display:"flex",justifyContent:"space-between",gap:12,alignItems:"center"},children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{style:{color:"var(--colorText)",fontSize:13,fontWeight:700},children:"召回知识库文件"}),(0,o.jsx)("div",{style:{color:"var(--colorTextSecondary)",fontSize:11},children:"支持文件名与知识库内容检索,最多召回 3 个文件"})]}),(0,o.jsx)(s.A,{color:eZ?"blue":"default",style:{margin:0,maxWidth:240,overflow:"hidden",textOverflow:"ellipsis"},children:eZ?"@".concat(eZ):"输入 @关键词"})]}),eJ?(0,o.jsxs)("div",{style:{padding:14,color:"var(--colorTextSecondary)",fontSize:12},children:[(0,o.jsx)(v.A,{size:"small",style:{marginRight:8}}),"正在加载知识库文件..."]}):0===eO.length?(0,o.jsx)("div",{style:{padding:14,color:"var(--colorTextSecondary)",fontSize:12},children:"暂无可召回的知识库文件"}):0===e8.length?(0,o.jsx)("div",{style:{padding:14,color:"var(--colorTextSecondary)",fontSize:12},children:eM?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(v.A,{size:"small",style:{marginRight:8}}),"正在检索知识库内容..."]}):"没有匹配的知识库文件,请换个关键词"}):(0,o.jsxs)(o.Fragment,{children:[eM&&(0,o.jsxs)("div",{style:{padding:"8px 12px",color:"var(--colorTextSecondary)",fontSize:12,borderBottom:"1px solid var(--colorBorderSecondary)"},children:[(0,o.jsx)(v.A,{size:"small",style:{marginRight:8}}),"正在继续检索内容匹配..."]}),e8.slice(0,30).map(e=>(0,o.jsxs)("div",{onMouseDown:t=>{var r;t.preventDefault(),r=e.relativePath,e_(e=>e.includes(r)?e:[...e,r]),eE(e=>e.replace(/(^|\s)@([^\s@]*)$/,"$1@".concat(r," "))),eG(!1)},style:{padding:"10px 12px",cursor:"pointer",borderBottom:"1px solid var(--colorBorderSecondary)",fontSize:12,display:"grid",gridTemplateColumns:"22px minmax(0, 1fr) auto",gap:10,alignItems:"center"},children:[(0,o.jsx)("div",{style:{width:22,height:22,borderRadius:7,background:"var(--colorFillSecondary)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,o.jsx)(b.A,{style:{color:"var(--colorAccent)"}})}),(0,o.jsxs)("div",{style:{minWidth:0},children:[(0,o.jsx)("div",{style:{color:"var(--colorText)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontWeight:700},children:e.relativePath}),(0,o.jsxs)("div",{style:{color:"var(--colorTextSecondary)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.category||"未分类"," \xb7 ",e.format||"未知格式","number"==typeof e.score?" \xb7 score ".concat(e.score.toFixed(2)):""]})]}),(0,o.jsxs)(a.A,{size:4,children:[(0,o.jsx)(s.A,{color:"content"===e.matchedBy?"purple":"disk"===e.matchedBy?"orange":"blue",style:{margin:0},children:"content"===e.matchedBy?"内容匹配":"disk"===e.matchedBy?"磁盘文件":"文件匹配"}),(0,o.jsx)(s.A,{style:{margin:0},children:e.status})]})]},e.relativePath))]})]}),(0,o.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"flex-end"},children:[(0,o.jsx)(u.A.TextArea,{value:eB,onChange:e=>{let t=e.target.value;eE(t),eG(null!==Z(t))},onFocus:()=>eG(null!==Z(eB)),onPressEnter:e=>{e.shiftKey||(e.preventDefault(),e5())},disabled:eI,placeholder:"输入 @ 召回知识库文件,再描述优化目标...",autoSize:{minRows:2,maxRows:5},style:{fontSize:13,lineHeight:1.6}}),(0,o.jsx)(d.Ay,{type:"primary",icon:(0,o.jsx)(E.A,{}),loading:eI,disabled:!eB.trim(),onClick:()=>{e5()},children:"发送"})]})]})]})]})]})}}},e=>{e.O(0,[433,787,576,195,985,525,636,593,792],()=>e(e.s=27549)),_N_E=e.O()}]);
package/next.config.ts CHANGED
@@ -41,15 +41,6 @@ const nextConfig: NextConfig = {
41
41
  },
42
42
  ];
43
43
  },
44
- async redirects() {
45
- return [
46
- // 将多个入口路径统一重定向到 /overview
47
- { source: '/', destination: '/overview', permanent: false },
48
- { source: '/dashboard', destination: '/overview', permanent: false },
49
- { source: '/console', destination: '/overview', permanent: false },
50
- { source: '/admin', destination: '/overview', permanent: false },
51
- ];
52
- },
53
44
  };
54
45
 
55
46
  export default nextConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@customize-agent/server",
3
- "version": "4.0.24",
3
+ "version": "4.0.26",
4
4
  "description": "Customize Agent Web 管理控制台",
5
5
  "exports": {
6
6
  "./package.json": "./package.json"
@@ -49,9 +49,9 @@
49
49
  "tesseract.js": "^7.0.0",
50
50
  "typescript": "^6.0.3",
51
51
  "xlsx": "^0.18.5",
52
- "@customize-agent/knowledge": "^4.0.7",
53
- "@customize-agent/llm": "^3.0.4",
54
- "@customize-agent/runtime": "^3.0.6"
52
+ "@customize-agent/knowledge": "^4.0.9",
53
+ "@customize-agent/llm": "^3.0.5",
54
+ "@customize-agent/runtime": "^3.0.7"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@tailwindcss/postcss": "^4.3.2",
@@ -90,10 +90,17 @@ async function main() {
90
90
  ? await project.reindexFile(job.relativePath, { vectorMode: job.vectorMode, onProgress })
91
91
  : job.forceReindexAll
92
92
  ? await project.forceReindexAll({ vectorMode: job.vectorMode, onProgress })
93
- : await project.consumePendingIndexJobs({ vectorMode: job.vectorMode, onProgress });
93
+ : await project.consumePendingIndexJobs({ vectorMode: job.vectorMode, onProgress, waitForUploadId: job.uploadOperationId });
94
94
 
95
- while (!job.relativePath && project.countPendingIndexJobs() > 0) {
96
- const nextDiff = await project.consumePendingIndexJobs({ vectorMode: job.vectorMode, onProgress });
95
+ let idleChecks = 0;
96
+ while (!job.relativePath && (project.countPendingIndexJobs() > 0 || (job.uploadOperationId && project.uploadSessionIsOpen(job.uploadOperationId) && idleChecks < 120))) {
97
+ if (project.countPendingIndexJobs() === 0) {
98
+ idleChecks += 1;
99
+ await new Promise(resolve => setTimeout(resolve, 1000));
100
+ continue;
101
+ }
102
+ idleChecks = 0;
103
+ const nextDiff = await project.consumePendingIndexJobs({ vectorMode: job.vectorMode, onProgress, waitForUploadId: job.uploadOperationId });
97
104
  diff = {
98
105
  newFiles: [...diff.newFiles, ...nextDiff.newFiles],
99
106
  modifiedFiles: [...diff.modifiedFiles, ...nextDiff.modifiedFiles],
@@ -1,216 +0,0 @@
1
- "use strict";exports.id=3328,exports.ids=[3328],exports.modules={23328:(a,b,c)=>{c.d(b,{AI:()=>p,Qh:()=>s,T4:()=>q,VS:()=>w,Yy:()=>v,aY:()=>u});var d=c(19898),e=c(87550),f=c.n(e),g=c(33873),h=c(21820),i=c(29021),j=c(31421),k=c(15751);let l=null;function m(a,b){i.mkdirSync(g.dirname(a),{recursive:!0});try{if(i.existsSync(a)&&i.readFileSync(a,"utf-8")===b)return;i.writeFileSync(a,b,"utf-8")}catch{if(!i.existsSync(a))throw Error(`内置文本资料写入失败:${a}`)}}function n(a){if(i.existsSync(a)&&i.statSync(a).size>1e3)return;i.mkdirSync(g.dirname(a),{recursive:!0});let b=k.utils.book_new();k.utils.book_append_sheet(b,k.utils.aoa_to_sheet([["干员名称","定位","推荐指数","上手难度","推荐场景","队伍职责"],["露娜","侦察","5","中","信息侦察和路线判断","开局侦察、标记威胁、辅助路线选择"],["红狼","突击","5","中高","突破和正面交火","负责开团突破和正面压制"],["牧羊人","工程","4","中","防守控场和区域封锁","负责卡点、防守和限制敌方推进"],["蜂医","支援","5","低","治疗救援和续航","负责救援、治疗和提高队伍容错"]]),"热门干员推荐"),k.writeFile(b,a)}let o=new Set(["文档资料/规则文件-攻略写作要求.md","文档资料/项目事实-热门干员资料.md","表格数据/表格数据-热门干员推荐.csv","表格数据/表格数据-热门干员推荐.xlsx","表格数据/表格数据-热门干员推荐.xls","文档资料/规范文件-攻略结构规范.md","文档资料/模板案例-热门干员攻略示例.md","文档资料/模板案例-导出样式参考.md","文档资料/模板样式-攻略文档排版规范.md","文档资料/导出门禁-攻略文档检查清单.md","文档资料/Word资料-队伍搭配说明.doc","文档资料/Word资料-队伍搭配说明.docx","文档资料/PDF资料-官方攻略摘录.pdf","图片素材/图片文件-干员图片来源.md","图片素材/干员图片/露娜.png","图片素材/干员图片/红狼.png","图片素材/干员图片/牧羊人.png","图片素材/干员图片/蜂医.png","图片素材/干员图片/地图图纸-零号大坝-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-航天基地-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-巴克什-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-潮汐监狱-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-AZ3-官方完整地图图纸.jpg","图片素材/干员图片/地图图纸-全面战场-攀升官方完整地图图纸.jpg","图纸文件/图纸文件-官方地图图纸来源.md"]);function p(a){let b=a.split(g.sep).join("/");return o.has(b)||b.startsWith("图片素材/干员图片/")||b.startsWith("图纸文件/图纸文件-官方地图图纸来源.md")}function q(a=u()){let b=g.resolve(a),c=g.join(b,"knowledgeBase");for(let a of(i.mkdirSync(c,{recursive:!0}),["图纸文件/图纸文件-战术路线示意.md","文档资料/PDF资料-三角洲干员攻略摘要.pdf","文档资料/Word资料-三角洲干员打法说明.docx","文档资料/Word资料-队伍搭配说明.doc","图片素材/干员图片/地图图纸-零号大坝-官方地图图纸瓦片.jpg","图片素材/干员图片/地图图纸-航天基地-官方地图图纸瓦片.jpg","图片素材/干员图片/地图图纸-巴克什-官方地图图纸瓦片.jpg","图片素材/干员图片/地图图纸-潮汐监狱-官方地图图纸瓦片.jpg","图片素材/干员图片/地图图纸-AZ3-官方地图图纸瓦片.jpg","图片素材/干员图片/地图图纸-全面战场-攀升官方地图图纸瓦片.jpg"])){let b=g.join(c,a);try{i.existsSync(b)&&i.rmSync(b,{force:!0})}catch{}}for(let[a,b]of Object.entries({"文档资料/规则文件-攻略写作要求.md":`# 【内置】三角洲热门干员攻略写作要求
2
-
3
- 公开参考入口:https://df.qq.com/、https://df.qq.com/cp/a20240729directory/、https://playerhub.df.qq.com/
4
-
5
- 写作要求:
6
- - 面向新手和进阶玩家,语言要直白。
7
- - 必须解释干员定位、技能价值、适用场景和常见误区。
8
- - 地图章节必须引用官方地图工具的地图图纸/底图瓦片来源。
9
- - 不能把没有来源的数据写成确定结论。
10
- - 表格中的推荐指数只能作为示例参考。`,"文档资料/项目事实-热门干员资料.md":`# 【内置】三角洲热门干员资料
11
-
12
- 公开来源:三角洲行动官网 https://df.qq.com/、官方地图工具 https://df.qq.com/cp/a20240729directory/、PlayerHub 干员图片资源。
13
-
14
- 攻略目标:帮助用户快速理解热门干员怎么选、怎么搭配、怎么上手,并能把干员选择与地图推进、撤离路线和队伍分工结合起来。
15
- 适用人群:刚开始游玩三角洲行动的新手,以及希望快速建立队伍分工的进阶玩家。
16
-
17
- ## 资料使用方式
18
- - 写攻略时先引用本文件确认干员定位,再结合表格数据给出推荐优先级。
19
- - 地图段落必须结合官方地图工具来源,不要把玩家经验写成官方结论。
20
- - 生成内容应区分“适合新手的稳定打法”和“需要配合的进阶打法”。
21
-
22
- ## 热门干员详解
23
-
24
- ### 露娜
25
- - 定位:侦察 / 信息位。
26
- - 主要价值:提前发现敌方动向,帮助队伍判断安全路线、交火风险和撤离窗口。
27
- - 推荐指数:5。
28
- - 上手难度:中。
29
- - 适合场景:开局探点、复杂建筑区推进、撤离点前最后确认。
30
- - 常见误区:把侦察位当成单人突击位。露娜的价值不是第一个开枪,而是让队伍更早做出正确决策。
31
-
32
- ### 红狼
33
- - 定位:突击 / 突破位。
34
- - 主要价值:在队伍已经掌握信息后打开突破口,压制敌方关键角度。
35
- - 推荐指数:5。
36
- - 上手难度:中高。
37
- - 适合场景:门口突破、近中距离强交火、撤离点争夺。
38
- - 常见误区:没有侦察信息就盲目强冲。红狼适合执行突破,不适合代替信息位探路。
39
-
40
- ### 牧羊人
41
- - 定位:工程 / 控场位。
42
- - 主要价值:限制敌方推进、保护队友换弹/救援/撤离,适合固定入口、楼梯、狭窄通道和撤离路线防守。
43
- - 推荐指数:4。
44
- - 上手难度:中。
45
- - 适合场景:建筑防守、据点争夺、撤离点反打。
46
- - 常见误区:认为控场就是原地不动。优秀的控场应当让敌方不能舒服推进,同时给己方创造转移时间。
47
-
48
- ### 蜂医
49
- - 定位:支援 / 治疗救援位。
50
- - 主要价值:提高队伍容错,让队伍在一次交火失误后仍然有继续行动的空间。
51
- - 推荐指数:5。
52
- - 上手难度:低。
53
- - 适合场景:新手三排、长线搜资源、撤离前连续交火。
54
- - 常见误区:只在队友倒地后才行动。蜂医应提前判断安全救援位置和撤退路线。
55
-
56
- ## 队伍搭配建议
57
- | 队伍类型 | 推荐组合 | 适合用户 | 使用要点 |
58
- | --- | --- | --- | --- |
59
- | 新手稳健队 | 露娜 + 蜂医 + 牧羊人 | 刚熟悉地图和撤离机制的玩家 | 先拿信息,再稳步推进,不追求每次强开 |
60
- | 突破压制队 | 露娜 + 红狼 + 蜂医 | 有基本交火能力的玩家 | 露娜给信息,红狼执行突破,蜂医保障容错 |
61
- | 控图防守队 | 露娜 + 牧羊人 + 蜂医 | 喜欢资源控制和防守反打的玩家 | 依靠地图理解和撤离路线控制获胜 |
62
-
63
- ## 地图事实
64
- 官方地图工具提供零号大坝、长弓溪谷、航天基地、巴克什、潮汐监狱、AZ3、攀升、临界点、贯穿、烬区、堑壕战等地图图纸/底图瓦片,并包含物资点、出生点、撤离点、首领、据点、载具、固定弹药箱等坐标信息。
65
-
66
- ## 实战技巧
67
- - 新手队伍建议至少包含一名侦察和一名支援;进攻队伍可以搭配突击位;防守或卡点时工程位价值更高。
68
- - 进入高风险建筑前,先用信息位确认敌方大致位置,再由突击位执行突破。
69
- - 撤离前优先确认地图上的撤离路线、固定补给点和可能交火区域。
70
- - 如果队伍里有蜂医,不代表可以无视站位;治疗和救援必须建立在安全角度和队友掩护之上。
71
- - 如果队伍里有牧羊人,应提前规划控场位置,而不是交火后临时补救。`,"表格数据/表格数据-热门干员推荐.csv":`干员名称,定位,推荐指数,上手难度,推荐场景
72
- 露娜,侦察,5,中,信息侦察和路线判断
73
- 红狼,突击,5,中高,突破和正面交火
74
- 牧羊人,工程,4,中,防守控场和区域封锁
75
- 蜂医,支援,5,低,治疗救援和续航`,"文档资料/规范文件-攻略结构规范.md":`# 【内置】攻略结构规范
76
-
77
- 必须包含:攻略目标、热门干员定位、队伍搭配、推荐优先级、地图图纸说明、实战注意事项。
78
- 推荐写法:先讲结论,再讲原因,最后给操作建议。
79
- 导出前检查:不能出现缺失资料占位语;必须包含至少一张推荐表;必须覆盖露娜、红狼、牧羊人、蜂医;必须引用官方地图工具。`,"文档资料/模板案例-热门干员攻略示例.md":`# 【内置】模板案例:热门干员攻略示例
80
-
81
- ## 示例导语
82
- 本文面向新手和进阶玩家,先给出热门干员选择结论,再说明证据来源、推荐优先级、地图使用和队伍搭配。
83
-
84
- ## 示例章节结构
85
- 1. 攻略目标和适用人群:说明谁适合阅读、解决什么问题。
86
- 2. 热门干员定位速览:用表格列出干员、定位、推荐指数、上手难度。
87
- 3. 队伍搭配建议:把侦察、突击、工程、支援放入真实队伍组合。
88
- 4. 地图图纸和路线理解:只引用知识库检索到的官方地图图纸,不硬插固定地图。
89
- 5. 实战注意事项:列出新手误区、资料缺失和复核建议。
90
-
91
- ## 示例表达方式
92
- - 先写结论:新手优先露娜 + 蜂医,进阶突破可加入红狼,防守控图可加入牧羊人。
93
- - 再写依据:引用项目事实文件、推荐表格、官方地图图纸、图片资料和 Word/PDF 附件。
94
- - 最后写建议:按地图风险、队伍分工和撤离路线给出操作建议。
95
-
96
- ## 示例来源清单写法
97
- - 规则文件:用于约束写作边界。
98
- - 项目事实:用于抽取干员定位和玩法事实。
99
- - 表格数据:用于形成推荐优先级。
100
- - 图纸文件:用于说明地图和路线。
101
- - 图片/附件:用于补充视觉和文档依据。`,"文档资料/模板案例-导出样式参考.md":`# 【内置】模板案例:导出样式参考
102
-
103
- ## 标题层级
104
- - H1:文档标题。
105
- - H2:章节标题。
106
- - H3:小节标题,例如“本章结论”“证据依据”“操作建议”。
107
-
108
- ## 表格样式
109
- 表格列建议控制在 4-6 列,列名简短,单元格不要塞入超长段落。
110
-
111
- ## 图片和地图说明
112
- 图片前应说明引用目的,图片后应解释它与章节结论的关系。地图图纸不能作为装饰图,应说明区域、路线、点位或撤离/交战路径。
113
-
114
- ## 来源和缺失说明
115
- 导出前应保留来源清单,并对资料未覆盖的内容标注“建议补充”,不要用确定语气替代缺失事实。`,"文档资料/模板样式-攻略文档排版规范.md":`# 【内置】模板样式:攻略文档排版规范
116
-
117
- ## 结构规范
118
- - 开头必须有短导语,说明适用对象、使用场景和核心结论。
119
- - 每章建议包含“本章结论 / 证据依据 / 操作建议 / 资料来源”。
120
- - 结尾必须包含来源清单、适用范围和资料缺失提醒。
121
-
122
- ## 内容规范
123
- - 事实来自文件角色;写法来自提示词角色;完整性来自文档规范包。
124
- - 不把提示词全文、远程临时 URL、内部错误堆栈放入正文。
125
- - 对冲突事实要提示用户复核。
126
-
127
- ## 导出规范
128
- - Markdown 标题不跳级。
129
- - 图片必须有 alt 文本。
130
- - 表格必须是标准 Markdown 表格。
131
- - DOCX/PDF 视角下段落不宜过长。`,"文档资料/导出门禁-攻略文档检查清单.md":`# 【内置】导出门禁:攻略文档检查清单
132
-
133
- ## 阻断项
134
- - 正文包含“资料未提供”等未处理占位语。
135
- - 必填事实字段缺失,且没有资料缺失说明。
136
- - 图片、地图或附件引用路径明显无效。
137
- - 表格语法错误导致 Markdown/DOCX/PDF 无法正常展示。
138
- - 正文包含提示词全文、内部错误、临时远程生成 URL。
139
-
140
- ## 警告项
141
- - 章节过短,缺少操作建议。
142
- - 来源文件列出不完整。
143
- - 表格字段缺少解释。
144
- - 图片或地图只有展示,没有说明其用途。
145
-
146
- ## 通过标准
147
- 文档应能说明:使用了哪些文件角色、哪些提示词角色、哪些规范包规则,以及最终导出为什么可以交付。`}))m(g.join(c,a),b);n(g.join(c,"表格数据","表格数据-热门干员推荐.xlsx")),n(g.join(c,"表格数据","表格数据-热门干员推荐.xls")),m(g.join(c,"文档资料","Word资料-队伍搭配说明.doc"),"【内置 DOC 示例】\n队伍搭配建议:露娜负责侦察和路线判断,蜂医负责治疗和救援,红狼负责突破,牧羊人负责防守控场。\n"),function(a,b,c){if(i.existsSync(a)&&i.statSync(a).size>1e3)return;i.mkdirSync(g.dirname(a),{recursive:!0});let d=`
148
- const fs = require('fs');
149
- const JSZip = require('jszip');
150
- const out = process.argv[1];
151
- const title = process.argv[2];
152
- const paragraphs = process.argv.slice(3);
153
- const escapeXml = text => String(text).replace(/[<>&"']/g, char => ({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '"': '&quot;', "'": '&apos;' }[char]));
154
- const paragraph = text => '<w:p><w:r><w:t>' + escapeXml(text) + '</w:t></w:r></w:p>';
155
- const xml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:body>' + paragraph(title) + paragraphs.map(paragraph).join('') + '<w:sectPr/></w:body></w:document>';
156
- (async () => {
157
- const zip = new JSZip();
158
- zip.file('[Content_Types].xml', '<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/></Types>');
159
- zip.file('_rels/.rels', '<?xml version="1.0" encoding="UTF-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>');
160
- zip.file('word/document.xml', xml);
161
- fs.writeFileSync(out, await zip.generateAsync({ type: 'nodebuffer', compression: 'DEFLATE' }));
162
- })().catch(error => { console.error(error); process.exit(1); });
163
- `;(0,j.execFileSync)(process.execPath,["-e",d,a,b,...c],{stdio:"pipe"})}(g.join(c,"文档资料","Word资料-队伍搭配说明.docx"),"三角洲行动队伍搭配说明",["露娜负责侦察和路线判断,蜂医负责治疗和救援。","红狼适合突破和正面压制,牧羊人适合防守控场。","内置 DOCX 用于验证 Word 类文件解析、索引、角色绑定和文档生成全流程。"]),function(a,b){if(i.existsSync(a)&&i.statSync(a).size>500)return;i.mkdirSync(g.dirname(a),{recursive:!0});let c=`%PDF-1.4
164
- 1 0 obj<</Type/Catalog/Pages 2 0 R>>endobj
165
- 2 0 obj<</Type/Pages/Count 1/Kids[3 0 R]>>endobj
166
- 3 0 obj<</Type/Page/Parent 2 0 R/MediaBox[0 0 595 842]/Contents 4 0 R/Resources<</Font<</F1 5 0 R>>>>>>endobj
167
- 4 0 obj<</Length 96>>stream
168
- BT /F1 18 Tf 72 760 Td (${b.replace(/[()\\]/gu,"")}) Tj 0 -32 Td (Delta Force builtin PDF sample for knowledge workflow.) Tj ET
169
- endstream endobj
170
- 5 0 obj<</Type/Font/Subtype/Type1/BaseFont/Helvetica>>endobj
171
- trailer<</Root 1 0 R>>
172
- %%EOF
173
- `;i.writeFileSync(a,c,"binary")}(g.join(c,"文档资料","PDF资料-官方攻略摘录.pdf"),"Delta Force Builtin PDF Sample");let d=["# 【内置】干员图片资料","","图片公开来源:PlayerHub / luoy-oss deltaforce_id 公开索引",""];for(let[a,b]of Object.entries({"露娜.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000028.png","红狼.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000030.png","牧羊人.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000029.png","蜂医.png":"https://playerhub.df.qq.com/playerhub/60004/object/p_88000000027.png"})){let e=g.join(c,"图片素材","干员图片",a);!function(a,b,c){if(!i.existsSync(b)||!(i.statSync(b).size>=1e3)){var d=function(a){let b=`
174
- const url = process.argv[1];
175
- (async () => {
176
- const response = await fetch(url, { headers: { 'User-Agent': 'Mozilla/5.0' }, signal: AbortSignal.timeout(30000) });
177
- if (!response.ok) throw new Error(\`HTTP \${response.status} \${response.statusText}: \${url}\`);
178
- process.stdout.write(Buffer.from(await response.arrayBuffer()));
179
- })().catch(error => { console.error(error); process.exit(1); });
180
- `;return(0,j.execFileSync)(process.execPath,["-e",b,a],{encoding:"buffer",maxBuffer:0x1e00000})}(a);if(i.mkdirSync(g.dirname(b),{recursive:!0}),d.length<1e3)throw Error(`内置资料下载失败或文件过小:${a}`);let e=g.join(g.dirname(b),`.${g.basename(b)}.${process.pid}.tmp`);try{i.writeFileSync(e,d),i.renameSync(e,b)}catch(c){try{i.existsSync(e)&&i.rmSync(e,{force:!0})}catch{console.warn("[builtin-demo] 临时文件清理失败",e)}throw Error(`内置资料写入失败:${b},来源:${a},原因:${c instanceof Error?c.message:String(c)}`,{cause:c})}if(!i.existsSync(b)||i.statSync(b).size<c)throw Error(`内置资料写入失败或文件过小:${a}`);try{i.writeFileSync(`${b}.source.txt`,`公开来源:${a}
181
- 本地文件:${g.basename(b)}
182
- 文件大小:${i.statSync(b).size} 字节
183
- `,"utf-8")}catch{}}}(b,e,1e3),d.push(`- ${a.replace(".png","")}:${b};本地文件:${g.relative(c,e)};大小:${i.statSync(e).size} 字节`)}m(g.join(c,"图片素材","图片文件-干员图片来源.md"),d.join("\n"));let e=["# 【内置】三角洲官方完整地图图纸资料","","来源页面:https://df.qq.com/cp/a20240729directory/","说明:该官方地图工具使用 Leaflet 瓦片图作为地图图纸/底图资源,以下文件不是单瓦片,而是由官方 4x4 瓦片网格拼接得到的完整地图图纸。",""];for(let[a,b]of Object.entries({"零号大坝-官方完整地图图纸.jpg":"map_db","航天基地-官方完整地图图纸.jpg":"map_htjd","巴克什-官方完整地图图纸.jpg":"map_bks","潮汐监狱-官方完整地图图纸.jpg":"map_cxjy","AZ3-官方完整地图图纸.jpg":"map_az3","全面战场-攀升官方完整地图图纸.jpg":"map_qhz"})){let d=g.join(c,"图片素材","干员图片",`地图图纸-${a}`);!function(a,b,c){if(i.existsSync(b)&&i.statSync(b).size>=5e4)return;i.mkdirSync(g.dirname(b),{recursive:!0});let d=`
184
- const { createCanvas, loadImage } = require('@napi-rs/canvas');
185
- const fs = require('fs');
186
- const mapName = process.argv[1];
187
- const out = process.argv[2];
188
- const zoom = 2;
189
- const tileSize = 256;
190
- const gridSize = 4;
191
- const canvas = createCanvas(tileSize * gridSize, tileSize * gridSize);
192
- const ctx = canvas.getContext('2d');
193
- async function download(url) {
194
- const response = await fetch(url, { headers: { 'User-Agent': 'Mozilla/5.0' }, signal: AbortSignal.timeout(30000) });
195
- if (!response.ok) throw new Error(\`HTTP \${response.status} \${response.statusText}: \${url}\`);
196
- return Buffer.from(await response.arrayBuffer());
197
- }
198
- (async () => {
199
- for (let y = 0; y < gridSize; y++) {
200
- for (let x = 0; x < gridSize; x++) {
201
- const url = \`https://game.gtimg.cn/images/dfm/cp/a20240729directory/img/\${mapName}/\${zoom}_\${x}_\${y}.jpg\`;
202
- const image = await loadImage(await download(url));
203
- ctx.drawImage(image, x * tileSize, y * tileSize, tileSize, tileSize);
204
- }
205
- }
206
- fs.writeFileSync(out, canvas.toBuffer('image/jpeg'));
207
- })().catch(error => { console.error(error); process.exit(1); });
208
- `;if((0,j.execFileSync)(process.execPath,["-e",d,a,b],{cwd:process.cwd(),stdio:"pipe",maxBuffer:0xa00000}),!i.existsSync(b)||i.statSync(b).size<5e4)throw Error(`完整地图拼接失败:${a}`);try{i.writeFileSync(`${b}.source.txt`,`公开来源:https://df.qq.com/cp/a20240729directory/
209
- 地图目录:${a}
210
- 拼接方式:zoom=2,4x4 官方瓦片完整覆盖
211
- 本地文件:${g.basename(b)}
212
- 文件大小:${i.statSync(b).size} 字节
213
- `,"utf-8")}catch{}}(b,d,5e4),e.push(`- ${a}:官方目录 ${b},来源页面:https://df.qq.com/cp/a20240729directory/;本地文件:${g.relative(c,d)};大小:${i.statSync(d).size} 字节`)}return m(g.join(c,"图纸文件","图纸文件-官方地图图纸来源.md"),e.join("\n")),b}function r(){return g.join(h.homedir(),".customize-agent")}function s(){return l||(l=new d.MultiProjectManager(r())),l}function t(a){let b=g.resolve(a),c=g.resolve(g.join(h.homedir(),".customize-agent"));return!(i.existsSync(g.join(b,"pnpm-workspace.yaml"))&&i.existsSync(g.join(b,"apps","server")))&&(b===c||b.includes(`${g.sep}.customize-agent${g.sep}`)||b.endsWith(`${g.sep}apps${g.sep}server`)||b.endsWith(`${g.sep}apps${g.sep}cli`))}function u(){let a=process.env.CUSTOMIZE_PROJECT_ROOT??process.env.INIT_CWD;if(a&&i.existsSync(a)&&!t(a))return g.resolve(a);let b=function(){let a=g.join(r(),"projects","registry.db");if(!i.existsSync(a))return[];let b=new(f())(a,{readonly:!0});try{return b.prepare("SELECT project_root FROM project_registry ORDER BY last_opened_at DESC").all().map(a=>g.resolve(a.project_root)).filter(a=>!t(a))}finally{b.close()}}();return b.length>0?b[0]:process.env.INIT_CWD&&!t(process.env.INIT_CWD)?process.env.INIT_CWD:g.resolve(process.cwd(),"../..")}function v(a,b={}){let c=new Map;for(let b of function(a){let b=g.join(h.homedir(),".customize-agent","projects",(0,d.computeProjectId)(g.resolve(a)),"kb.db");if(!i.existsSync(b))return[];let c=new d.IndexStateStore(b);try{return c.listRecords().map(a=>({...a,builtIn:p(a.relativePath),matchedBy:"metadata"}))}finally{c.close()}}(a))c.set(b.relativePath,b);for(let b of function(a){let b=g.join(a,"knowledgeBase");if(!i.existsSync(b))return[];let c=[],d=a=>{for(let e of i.readdirSync(a,{withFileTypes:!0})){let f=g.join(a,e.name);if(e.isDirectory()){d(f);continue}if(e.name.endsWith(".source.txt"))continue;let h=i.statSync(f),j=g.relative(b,f).split(g.sep).join("/");c.push({relativePath:j,category:j.includes("表格数据/")?"spreadsheet":j.includes("图片素材/")?"image":j.includes("图纸文件/")?"cad":j.includes("文档资料/")?"document":"other",format:g.extname(j).slice(1).toLowerCase()||"text",contentHash:"",fileSize:h.size,mtime:h.mtimeMs,chunkCount:0,collectionName:"",indexedAt:0,lastVerifiedAt:0,status:"disk",builtIn:p(j),matchedBy:"disk"})}};return d(b),c}(a)){let a=c.get(b.relativePath);c.set(b.relativePath,a?{...a,fileSize:b.fileSize,mtime:b.mtime,builtIn:b.builtIn,matchedBy:"metadata"}:b)}return Array.from(c.values()).filter(a=>!b.category||a.category===b.category).sort((a,b)=>Number(a.builtIn)-Number(b.builtIn)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN"))}async function w(a,b={}){let c=(b.query||"").trim(),d=Math.max(1,Math.min(500,b.limit??50)),e=new Map,f=v(a,{category:b.category});for(let a of f)(!c||`${a.relativePath}
214
- ${a.category}
215
- ${a.format}
216
- ${a.status}`.toLowerCase().includes(c.toLowerCase()))&&e.set(a.relativePath,{...a,matchedBy:c?"path":a.matchedBy});if(c&&!1!==b.includeContent)try{for(let b of(await s().search(a,c,{limit:Math.max(20,d)})).results){let a=b.filePath,c=e.get(a)||f.find(b=>b.relativePath===a);e.set(a,{...c||{relativePath:a,category:"content",format:"knowledge",fileSize:0,mtime:0,chunkCount:0,indexedAt:0,lastVerifiedAt:0,status:"active",builtIn:p(a)},matchedBy:"content",score:b.score})}}catch{}let g=Array.from(e.values()).sort((a,b)=>{let c=a=>"content"===a.matchedBy?3:"path"===a.matchedBy?2:+("metadata"===a.matchedBy);return c(b)-c(a)||(b.score??0)-(a.score??0)||b.mtime-a.mtime||a.relativePath.localeCompare(b.relativePath,"zh-CN")});return{files:g.slice(0,d),total:g.length}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7367,exports.ids=[7367],exports.modules={57367:(a,b,c)=>{c.d(b,{Co:()=>A,EK:()=>C,ER:()=>D,_q:()=>x,py:()=>B,uD:()=>y,ug:()=>z});var d=c(73024),e=c(48161),f=c(76760);let g=[{id:"required_fact",name:"必需事实",description:"检查指定事实字段是否存在。",builtIn:!0,defaultLevel:"warning",evaluator:{subject:"fact",operator:"exists"}},{id:"required_chapter",name:"必需章节",description:"检查指定章节是否存在。",builtIn:!0,defaultLevel:"error",evaluator:{subject:"chapter",operator:"exists"}},{id:"required_file_role",name:"必需文件角色",description:"检查项目角色配置是否绑定指定文件角色。",builtIn:!0,defaultLevel:"error",evaluator:{subject:"file_role",operator:"exists"}},{id:"required_prompt_role",name:"必需提示词角色",description:"检查项目角色配置是否绑定指定提示词角色。",builtIn:!0,defaultLevel:"warning",evaluator:{subject:"prompt_role",operator:"exists"}},{id:"source_required",name:"事实必须有来源",description:"检查结构化事实是否都有资料来源。",builtIn:!0,defaultLevel:"warning",evaluator:{subject:"source",operator:"all_have_source"}},{id:"forbidden_text",name:"禁止出现文本",description:"检查全文是否出现禁用文本。",builtIn:!0,defaultLevel:"error",evaluator:{subject:"document",operator:"not_contains"}},{id:"min_chapter_length",name:"章节最低字数",description:"检查指定章节是否达到最低字数。",builtIn:!0,defaultLevel:"warning",evaluator:{subject:"chapter",operator:"min_length"}},{id:"table_required",name:"必须有表格",description:"检查文档是否包含结构化表格。",builtIn:!0,defaultLevel:"warning",evaluator:{subject:"table",operator:"min_count",min:1}}],h=new Map(g.map(a=>[a.id,a])),i=["document","chapter","fact","file_role","prompt_role","table","image","source"],j=["exists","contains","not_contains","regex_match","regex_not_match","min_count","min_length","all_have_source","image_caption_required","table_explanation_required"],k={id:"delta-force-demo-spec",name:"三角洲热门干员攻略规范包",description:"内置示例规范包:演示如何用事实字段、章节规则、文件角色、提示词角色和导出门禁共同约束一篇可交付攻略文档。",factFields:[{id:"guide-goal",name:"攻略目标",type:"auto",required:!0,sourceRoleIds:["delta-fact-files","delta-case-reference-files"],extractionHint:"抽取本文解决的问题、适用对象和最终交付目标。",validationHint:"正文导语必须能回答“给谁看、解决什么问题”。"},{id:"operator-name",name:"干员名称",type:"auto",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取露娜、红狼、牧羊人、蜂医等干员名称。",validationHint:"至少覆盖内置事实文件中的四名热门干员。"},{id:"operator-role",name:"定位",type:"auto",required:!0,sourceRoleIds:["delta-fact-files"],extractionHint:"抽取干员定位,例如侦察、突击、工程、支援。",validationHint:"定位必须和干员名称一一对应。"},{id:"operator-value",name:"核心价值",type:"auto",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取每名干员在队伍中的核心价值和使用场景。"},{id:"recommend-score",name:"推荐指数",type:"auto",required:!0,sourceRoleIds:["delta-table-files"],extractionHint:"从表格中抽取推荐指数、上手难度和推荐场景。",validationHint:"推荐指数应以表格形式呈现。"},{id:"team-composition",name:"队伍搭配",type:"auto",required:!0,sourceRoleIds:["delta-fact-files","delta-doc-files"],extractionHint:"抽取新手稳健队、突破压制队、控图防守队等组合和使用要点。"},{id:"map-drawing",name:"地图图纸",type:"auto",required:!0,sourceRoleIds:["delta-drawing-files"],extractionHint:"抽取官方地图工具来源、地图名称和地图图纸文件。",validationHint:"地图图纸必须来自知识库检索资源,不能硬插固定文件。"},{id:"image-reference",name:"图片资源",type:"auto",required:!1,sourceRoleIds:["delta-image-files","delta-reference-image-files"],extractionHint:"抽取干员图片、参考图片和可用作配图的本地资源。"},{id:"template-case",name:"模板案例参考",type:"auto",required:!0,sourceRoleIds:["delta-case-reference-files"],extractionHint:"抽取模板案例中的结构、来源清单和示例表达方式。"},{id:"style-rule",name:"模板样式规则",type:"auto",required:!0,sourceRoleIds:["delta-style-reference-files"],extractionHint:"抽取标题层级、章节结构、表格、图片说明和导出排版规则。"},{id:"export-gate",name:"导出门禁",type:"auto",required:!0,sourceRoleIds:["delta-export-gate-files"],extractionHint:"抽取阻断项、警告项和导出通过标准。"}],chapterMode:"fixed",chapterRules:[{id:"overview",title:"第一章 攻略目标和适用人群",required:!0,order:0,minWords:120,requiredFactIds:["guide-goal","template-case"],requiredFileRoleIds:["delta-case-reference-files"],requiredPromptRoleIds:["delta-template-style-prompt"],generationHint:"必须让用户看出这是一个可学习、可复制的内置模板案例。"},{id:"operators",title:"第二章 热门干员定位速览",required:!0,order:1,minWords:180,requiredFactIds:["operator-name","operator-role","operator-value"],requiredFileRoleIds:["delta-fact-files"],generationHint:"使用表格或分组清单展示干员、定位、核心价值和适合场景。"},{id:"team",title:"第三章 队伍搭配和实战打法",required:!0,order:2,minWords:160,requiredFactIds:["team-composition"],requiredFileRoleIds:["delta-doc-files","delta-fact-files"],generationHint:"把侦察、突击、工程、支援和队伍组合对应起来。"},{id:"tables",title:"第四章 数据表和推荐优先级",required:!0,order:3,minWords:120,requiredFactIds:["recommend-score"],requiredFileRoleIds:["delta-table-files"],generationHint:"必须把 CSV/XLS/XLSX 的字段转成可读表格,并解释字段含义。"},{id:"maps",title:"第五章 官方地图图纸和路线理解",required:!0,order:4,minWords:160,requiredFactIds:["map-drawing"],requiredFileRoleIds:["delta-drawing-files"],requiredPromptRoleIds:["delta-resource-evidence-prompt"],generationHint:"必须说明官方地图工具来源,并解释地图图纸与路线、点位或撤离/交战路径的关系。"},{id:"style",title:"第六章 模板样式和导出检查",required:!0,order:5,minWords:140,requiredFactIds:["style-rule","export-gate"],requiredFileRoleIds:["delta-style-reference-files","delta-export-gate-files"],requiredPromptRoleIds:["delta-export-gate-prompt"],generationHint:"说明本模板如何通过规范包、文件角色、提示词角色和导出门禁形成可复用案例。"}],dynamicChapterRule:{source:"ai_plan",titleStrategy:"ai_summary",generationHint:""},gateRules:[{id:"gate-guide-goal",name:"必须说明攻略目标和适用对象",type:"required_fact",level:"warning",target:"攻略目标"},{id:"gate-operator-fact",name:"必须抽取干员名称",type:"required_fact",level:"warning",target:"干员名称"},{id:"gate-team",name:"必须包含队伍搭配依据",type:"required_fact",level:"warning",target:"队伍搭配"},{id:"gate-table",name:"必须包含推荐表格",type:"table_required",level:"warning"},{id:"gate-map-drawing",name:"必须引用官方地图图纸文件角色",type:"required_file_role",level:"error",target:"delta-drawing-files"},{id:"gate-case-reference",name:"必须绑定模板案例参考角色",type:"required_file_role",level:"warning",target:"delta-case-reference-files"},{id:"gate-style-prompt",name:"必须绑定模板样式提示词角色",type:"required_prompt_role",level:"warning",target:"delta-template-style-prompt"},{id:"gate-export-prompt",name:"必须绑定导出门禁提示词角色",type:"required_prompt_role",level:"warning",target:"delta-export-gate-prompt"},{id:"gate-no-missing",name:"不能出现缺失资料占位语",type:"forbidden_text",level:"error",value:"资料未提供"},{id:"gate-no-remote-image-url",name:"正文不能包含远程临时图片生成 URL",type:"forbidden_text",level:"error",value:"text_to_image"}],wordTemplatePath:"",builtIn:!0};function l(){let a=f.join(e.homedir(),".customize-agent");return d.mkdirSync(a,{recursive:!0}),a}function m(){return f.join(l(),"document-specs.json")}function n(){return f.join(l(),"document-gate-types.json")}function o(a){return(a||`spec-${Date.now()}`).replace(/[^a-zA-Z0-9_-]/gu,"-").slice(0,80)}function p(a,b=""){return String(a||b).trim().slice(0,500)}function q(a,b){let c=a||b||{subject:"document",operator:"contains"},d=i.includes(c.subject)?c.subject:"document",e=j.includes(c.operator)?c.operator:"contains",f=Number(c.min);return{subject:d,operator:e,target:p(c.target),value:p(c.value),min:Number.isFinite(f)&&f>0?f:void 0}}function r(a){let b=o(a.id||a.name||`gate-type-${Date.now()}`);if(h.has(b))throw Error("不能覆盖系统内置门禁类型");return{id:b,name:p(a.name,"自定义门禁类型"),description:p(a.description),builtIn:!1,defaultLevel:"warning"===a.defaultLevel||"info"===a.defaultLevel?a.defaultLevel:"error",evaluator:q(a.evaluator)}}function s(a){return{id:o(a.id),name:a.name||"未命名规范包",description:a.description||"",factFields:Array.isArray(a.factFields)?a.factFields.filter(a=>a.name).map(a=>({id:o(a.id),name:a.name,type:"auto",required:!!a.required,sourceRoleIds:Array.isArray(a.sourceRoleIds)?a.sourceRoleIds.filter(Boolean):[],extractionHint:a.extractionHint||"",validationHint:a.validationHint||""})):[],chapterMode:"fixed"===a.chapterMode?"fixed":"dynamic",chapterRules:Array.isArray(a.chapterRules)?a.chapterRules.filter(a=>a.title).map((a,b)=>({id:o(a.id),title:a.title,required:!!a.required,order:Number.isFinite(a.order)?a.order:b,minWords:Number.isFinite(a.minWords)?a.minWords:0,requiredFactIds:Array.isArray(a.requiredFactIds)?a.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.requiredFileRoleIds)?a.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.requiredPromptRoleIds)?a.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.generationHint||""})):[],dynamicChapterRule:{source:["file_outline","file_role","fact_group","table_rows"].includes(a.dynamicChapterRule?.source)?a.dynamicChapterRule.source:"ai_plan",sourceRoleIds:Array.isArray(a.dynamicChapterRule?.sourceRoleIds)?a.dynamicChapterRule.sourceRoleIds.filter(Boolean):[],minChapters:Number.isFinite(a.dynamicChapterRule?.minChapters)?a.dynamicChapterRule.minChapters:void 0,maxChapters:Number.isFinite(a.dynamicChapterRule?.maxChapters)?a.dynamicChapterRule.maxChapters:void 0,titleStrategy:["source_title","field_value","template"].includes(a.dynamicChapterRule?.titleStrategy||"")?a.dynamicChapterRule?.titleStrategy:"ai_summary",titleTemplate:a.dynamicChapterRule?.titleTemplate||"",minWordsPerChapter:Number.isFinite(a.dynamicChapterRule?.minWordsPerChapter)?a.dynamicChapterRule.minWordsPerChapter:void 0,requiredFactIds:Array.isArray(a.dynamicChapterRule?.requiredFactIds)?a.dynamicChapterRule.requiredFactIds.filter(Boolean):[],requiredFileRoleIds:Array.isArray(a.dynamicChapterRule?.requiredFileRoleIds)?a.dynamicChapterRule.requiredFileRoleIds.filter(Boolean):[],requiredPromptRoleIds:Array.isArray(a.dynamicChapterRule?.requiredPromptRoleIds)?a.dynamicChapterRule.requiredPromptRoleIds.filter(Boolean):[],generationHint:a.dynamicChapterRule?.generationHint||""},gateRules:Array.isArray(a.gateRules)?a.gateRules.filter(a=>a.name).map(a=>{var b;let c=o(a.type||a.name||"custom_gate");return{id:o(a.id),name:a.name,type:c,level:"warning"===a.level||"info"===a.level?a.level:"error",target:a.target||"",value:a.value||"",evaluator:q((b={...a,type:c}).evaluator,h.get(b.type)?.evaluator)}}):[],wordTemplatePath:a.wordTemplatePath||"",builtIn:!!a.builtIn}}function t(){try{let a=m();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(s)}catch{return[]}}function u(a){d.writeFileSync(m(),JSON.stringify(a.map(s),null,2),"utf-8")}function v(){try{let a=n();if(!d.existsSync(a))return[];return JSON.parse(d.readFileSync(a,"utf-8")).map(r)}catch{return[]}}function w(a){d.writeFileSync(n(),JSON.stringify(a.map(r),null,2),"utf-8")}function x(){return[...new Map([...g,...v()].map(a=>[a.id,a])).values()]}function y(a){let b=r(a),c=v().filter(a=>a.id!==b.id);return c.push(b),w(c),b}function z(a){if(h.has(a))throw Error("系统内置门禁类型不可删除");w(v().filter(b=>b.id!==a))}function A(){let a=t();return[...new Map([s(k),...a].map(a=>[a.id,a])).values()]}function B(a){if(a)return a===k.id?s(k):t().find(b=>b.id===a)}function C(a){let b=s(a);if(b.id===k.id)throw Error("Built-in demo spec cannot be overwritten");let c=t().filter(a=>a.id!==b.id);return c.push(b),u(c),b}function D(a){if(a===k.id)throw Error("Built-in demo spec cannot be deleted");u(t().filter(b=>b.id!==a))}}};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[447],{1611:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"database",theme:"outlined"}},12887:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"}},14995:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"}},16285:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(71885),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},23216:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(29664),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},25258:(e,t,n)=>{n.d(t,{A:()=>y});var r=n(51541),o=n(61848),a=n(5669),c=n(97109),l=n(72658),i=n(3638),s=n(92162),d=n(82725),f=n(74567),p=n(632),u=n(49517),v=n(79412),h=n(19527);let m=(0,d.U)(e=>{let{prefixCls:t,className:n,closeIcon:r,closable:o,type:a,title:d,children:m,footer:g,classNames:b,styles:A,...y}=e,{getPrefixCls:w}=c.useContext(f.QO),{className:$,style:z,classNames:O,styles:H}=(0,f.TP)("modal"),E=w(),j=t||w("modal"),V=(0,p.A)(E),[C,x]=(0,h.Ay)(j,V),[M,I]=(0,s.AV)([O,b],[H,A],{props:e}),N=`${j}-confirm`,P={};return P=a?{closable:o??!1,title:"",footer:"",children:c.createElement(u.k,{...e,prefixCls:j,confirmPrefixCls:N,rootPrefixCls:E,content:m})}:{closable:o??!0,title:d,footer:null!==g&&c.createElement(v.w,{...e}),children:m},c.createElement(l.Z,{prefixCls:j,className:(0,i.$)(C,`${j}-pure-panel`,a&&N,a&&`${N}-${a}`,n,$,x,V,M.root),style:{...z,...I.root},...y,closeIcon:(0,v.O)(j,r),closable:o,classNames:M,styles:I,...P})});var g=n(99739);function b(e){return(0,r.Ay)((0,r.fp)(e))}let A=a.A;A.useModal=g.A,A.info=function(e){return(0,r.Ay)((0,r.$D)(e))},A.success=function(e){return(0,r.Ay)((0,r.Ej)(e))},A.error=function(e){return(0,r.Ay)((0,r.jT)(e))},A.warning=b,A.warn=b,A.confirm=function(e){return(0,r.Ay)((0,r.lr)(e))},A.destroyAll=function(){for(;o.A.length;){let e=o.A.pop();e&&e()}},A.config=r.FB,A._InternalPanelDoNotUseOrYouWillBeFired=m;let y=A},26619:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(1611),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},26631:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(12887),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},29071:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(78847),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},29664:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M908 640H804V488c0-4.4-3.6-8-8-8H548v-96h108c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h108v96H228c-4.4 0-8 3.6-8 8v152H116c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16H292v-88h440v88H620c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16zm-564 76v168H176V716h168zm84-408V140h168v168H428zm420 576H680V716h168v168z"}}]},name:"apartment",theme:"outlined"}},51307:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"}},56398:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"download",theme:"outlined"}},63552:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(87312),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},64068:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(76148),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},66284:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z"}}]},name:"picture",theme:"outlined"}},67547:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(51307),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},71885:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"}}]},name:"bulb",theme:"outlined"}},75548:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(66284),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},76148:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{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"}},{tag:"path",attrs:{d:"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z"}}]},name:"play-circle",theme:"outlined"}},76830:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(56398),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))},78847:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z"}}]},name:"thunderbolt",theme:"outlined"}},85493:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(97109),o=n(59188),a=n(4216),c=n(45042),l=n(97137),i=n(62188),s=n(67189),d=n(42644),f=n(3638),p=n(92162),u=n(26047),v=n(74567),h=n(15561),m=n(7961),g=n(10540);let b=(e,t,n)=>({background:e,[`${n}-icon`]:{color:t}}),A=(0,g.OF)("Alert",e=>[(e=>{let{componentCls:t,motionDurationSlow:n,marginXS:r,marginSM:o,fontSize:a,fontSizeLG:c,lineHeight:l,borderRadiusLG:i,motionEaseInOutCirc:s,withDescriptionIconSize:d,colorText:f,colorTextHeading:p,withDescriptionPadding:u,defaultPadding:v,lineWidth:g,lineType:b,colorSuccessBorder:A,colorWarningBorder:y,colorErrorBorder:w,colorInfoBorder:$}=e;return{[t]:{...(0,m.dF)(e),position:"relative",display:"flex",alignItems:"center",padding:v,wordWrap:"break-word",borderRadius:i,borderWidth:(0,h.zA)(g),borderStyle:b,[`&${t}-success`]:{borderColor:A},[`&${t}-info`]:{borderColor:$},[`&${t}-warning`]:{borderColor:y},[`&${t}-error`]:{borderColor:w},[`&${t}-filled`]:{borderColor:"transparent"},[`&${t}-rtl`]:{direction:"rtl"},[`${t}-section`]:{flex:1,minWidth:0},[`${t}-icon`]:{marginInlineEnd:r,lineHeight:0},"&-description":{display:"none",fontSize:a,lineHeight:l},"&-title":{color:p},[`&${t}-motion-leave`]:{overflow:"hidden",opacity:1,transition:["max-height","opacity","padding-top","padding-bottom","margin-bottom"].map(e=>`${e} ${n} ${s}`).join(", ")},[`&${t}-motion-leave-active`]:{maxHeight:0,marginBottom:"0 !important",paddingTop:0,paddingBottom:0,opacity:0},[`&${t}-with-description`]:{alignItems:"flex-start",padding:u,[`${t}-icon`]:{marginInlineEnd:o,fontSize:d,lineHeight:0},[`${t}-title`]:{display:"block",marginBottom:r,color:p,fontSize:c},[`${t}-description`]:{display:"block",color:f}},[`&${t}-banner`]:{marginBottom:0,border:"0 !important",borderRadius:0}}}})(e),(e=>{let{componentCls:t,colorSuccess:n,colorSuccessBg:r,colorWarning:o,colorWarningBg:a,colorError:c,colorErrorBg:l,colorInfo:i,colorInfoBg:s}=e;return{[t]:{"&-success":b(r,n,t),"&-info":b(s,i,t),"&-warning":b(a,o,t),"&-error":{...b(l,c,t),[`${t}-description > pre`]:{margin:0,padding:0}}}}})(e),(e=>{let{componentCls:t,iconCls:n,motionDurationMid:r,marginXS:o,fontSizeIcon:a,colorIcon:c,colorIconHover:l}=e;return{[t]:{[`${t}-actions`]:{marginInlineStart:o},[`${t}-close-icon`]:{marginInlineStart:o,padding:0,overflow:"hidden",fontSize:a,lineHeight:(0,h.zA)(a),backgroundColor:"transparent",border:"none",cursor:"pointer",...(0,m.K8)(e),[`${n}-close`]:{color:c,transition:`color ${r}`,"&:hover":{color:l}}},"&-close-text":{color:c,transition:`color ${r}`,"&:hover":{color:l}}}}})(e)],e=>({withDescriptionIconSize:e.fontSizeHeading3,defaultPadding:`${e.paddingContentVerticalSM}px 12px`,withDescriptionPadding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`})),y=e=>{let{icon:t,type:n,className:c,style:s,successIcon:d,infoIcon:f,warningIcon:p,errorIcon:u}=e,v={success:d??r.createElement(o.A,null),info:f??r.createElement(i.A,null),error:u??r.createElement(a.A,null),warning:p??r.createElement(l.A,null)};return r.createElement("span",{className:c,style:s},t??v[n])},w=e=>{let{isClosable:t,prefixCls:n,closeIcon:o,handleClose:a,ariaProps:l,className:i,style:s}=e,d=!0===o||void 0===o?r.createElement(c.A,null):o;return t?r.createElement("button",{type:"button",onClick:a,className:(0,f.$)(`${n}-close-icon`,i),tabIndex:0,style:s,...l},d):null},$=r.forwardRef((e,t)=>{let{description:n,prefixCls:o,message:a,title:c,banner:l,className:i,rootClassName:h,style:m,onMouseEnter:g,onMouseLeave:b,onClick:$,afterClose:z,showIcon:O,closable:H,closeText:E,closeIcon:j,action:V,id:C,styles:x,classNames:M,...I}=e,N=c??a,[P,L]=r.useState(!1),R=r.useRef(null);r.useImperativeHandle(t,()=>({nativeElement:R.current}));let{getPrefixCls:B,direction:S,variant:k,closable:D,closeIcon:Q,className:T,style:_,classNames:F,styles:K,successIcon:W,infoIcon:X,warningIcon:G,errorIcon:U}=(0,v.TP)("alert"),Y=B("alert",o),[Z,q]=A(Y),{onClose:J,afterClose:ee}=(0,u.Qd)(H)?H:{},et=t=>{L(!0),(J??e.onClose)?.(t)},en=r.useMemo(()=>void 0!==e.type?e.type:l?"warning":"info",[e.type,l]),er=e.variant??k??"outlined",eo=r.useMemo(()=>!!(0,u.Qd)(H)&&!!H.closeIcon||!!E||("boolean"==typeof H?H:!!(!1!==j&&(0,u.R)(j))||!!D),[E,j,H,D]),ea=!!l&&void 0===O||O,ec={...e,prefixCls:Y,variant:er,type:en,showIcon:ea,closable:eo},el=(0,p.XT)(_),ei=(0,p.XT)(m),[es,ed]=(0,p.AV)([F,M],[K,el,x,ei],{props:ec}),ef=(0,f.$)(Y,`${Y}-${en}`,`${Y}-${er}`,{[`${Y}-with-description`]:!!n,[`${Y}-no-icon`]:!ea,[`${Y}-banner`]:!!l,[`${Y}-rtl`]:"rtl"===S},T,i,h,es.root,q,Z),ep=(0,d.KE)(I,{aria:!0,data:!0}),eu=r.useMemo(()=>(0,u.Qd)(H)&&H.closeIcon?H.closeIcon:E||(void 0!==j?j:(0,u.Qd)(D)&&D.closeIcon?D.closeIcon:Q),[j,H,D,E,Q]),ev=r.useMemo(()=>{let e=H??D;return(0,u.Qd)(e)?(0,d.KE)(e,{data:!0,aria:!0}):{}},[H,D]);return r.createElement(s.Ay,{visible:!P,motionName:`${Y}-motion`,motionAppear:!1,motionEnter:!1,onLeaveStart:e=>({maxHeight:e.offsetHeight}),onLeaveEnd:ee??z},({className:t,style:o},a)=>r.createElement("div",{id:C,ref:(0,d.K4)(R,a),"data-show":!P,className:(0,f.$)(ef,t),style:{...ed.root,...o},onMouseEnter:g,onMouseLeave:b,onClick:$,role:"alert",...ep},ea?r.createElement(y,{className:(0,f.$)(`${Y}-icon`,es.icon),style:ed.icon,description:n,icon:e.icon,prefixCls:Y,type:en,successIcon:W,infoIcon:X,warningIcon:G,errorIcon:U}):null,r.createElement("div",{className:(0,f.$)(`${Y}-section`,es.section),style:ed.section},N?r.createElement("div",{className:(0,f.$)(`${Y}-title`,es.title),style:ed.title},N):null,n?r.createElement("div",{className:(0,f.$)(`${Y}-description`,es.description),style:ed.description},n):null),V?r.createElement("div",{className:(0,f.$)(`${Y}-actions`,es.actions),style:ed.actions},V):null,r.createElement(w,{className:es.close,style:ed.close,isClosable:eo,prefixCls:Y,closeIcon:eu,handleClose:et,ariaProps:ev})))});var z=n(41113),O=n(49939),H=n(90218),E=n(13076),j=n(83784),V=n(15472);let C=function(e){function t(){var e,n,r;return(0,z.A)(this,t),n=t,r=arguments,n=(0,H.A)(n),(e=(0,j.A)(this,(0,E.A)()?Reflect.construct(n,r||[],(0,H.A)(this).constructor):n.apply(this,r))).state={error:void 0,info:{}},e}return(0,V.A)(t,e),(0,O.A)(t,[{key:"componentDidCatch",value:function(e,t){this.setState({error:e,info:t})}},{key:"render",value:function(){let{message:e,title:t,description:n,id:o,children:a}=this.props,{error:c,info:l}=this.state,i=t??e,s=l?.componentStack||null,d=(0,u.R)(i)?i:c?.toString(),f=(0,u.R)(n)?n:s;return c?r.createElement($,{id:o,type:"error",title:d,description:r.createElement("pre",{style:{fontSize:"0.9em",overflowX:"auto"}},f)}):a}}])}(r.PureComponent);$.ErrorBoundary=C;let x=$},87312:(e,t)=>{t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 00-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]},name:"file-done",theme:"outlined"}},99811:(e,t,n)=>{n.d(t,{A:()=>l});var r=n(97109),o=n(14995),a=n(88483);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}let l=r.forwardRef((e,t)=>r.createElement(a.A,c({},e,{ref:t,icon:o.A})))}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[623],{23507:(e,l,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/document-roles",function(){return i(59889)}])},59889:(e,l,i)=>{"use strict";i.r(l),i.d(l,{default:()=>X});var r=i(65321),n=i(97109),t=i(35292),s=i(11702),o=i(17807),a=i(63455),c=i(33442),d=i(84253),p=i(68787),x=i(85114),m=i(26171),h=i(57271),u=i(85493),f=i(34052),y=i(7576),g=i(2256),j=i(38770),A=i(58569),b=i(25345),v=i(43979),I=i(80042),w=i(75548),S=i(26631),T=i(84662),z=i(30486),C=i(99650),k=i(8263),B=i(84742),R=i(43094),F=i(8579),_=i(58209),H=i(54746),W=i(96651),N=i(60470),D=i(6578),E=i(79059);let{Paragraph:P}=t.A,q={rule:(0,r.jsx)(b.A,{}),project_fact:(0,r.jsx)(v.A,{}),table:(0,r.jsx)(I.A,{}),drawing:(0,r.jsx)(w.A,{}),specification:(0,r.jsx)(S.A,{}),reference:(0,r.jsx)(T.A,{})},O={fact_extraction:(0,r.jsx)(z.A,{}),chapter_generation:(0,r.jsx)(C.A,{}),llm_review:(0,r.jsx)(k.A,{}),validation:(0,r.jsx)(B.A,{}),formatting:(0,r.jsx)(R.A,{}),reference:(0,r.jsx)(T.A,{})},V={rule:"#fa8c16",project_fact:"#1677ff",table:"#52c41a",drawing:"#722ed1",specification:"#eb2f96",reference:"#13c2c2"},G={fact_extraction:"#fa8c16",chapter_generation:"#1677ff",llm_review:"#722ed1",validation:"#52c41a",formatting:"#eb2f96",reference:"#13c2c2"},L={rule:"roles.ruleFile",project_fact:"roles.projectFactFile",table:"roles.tableFile",drawing:"roles.drawingFile",specification:"roles.specificationFile",reference:"roles.reference"},U={fact_extraction:"roles.factExtraction",chapter_generation:"roles.chapterGeneration",llm_review:"roles.llmReview",validation:"roles.validation",formatting:"roles.formatting",reference:"roles.reference"},Q=e=>(0,r.jsx)(s.A,{closable:e.closable,onClose:e.onClose,color:"blue",style:{margin:"1px 2px",fontSize:11,lineHeight:"18px"},children:e.label});function X(){let e,l,i=(0,E.Vr)(),{message:t}=o.A.useApp(),[b]=a.A.useForm(),[v]=a.A.useForm(),[I,w]=(0,n.useState)([]),[T,z]=(0,n.useState)([]),[k,B]=(0,n.useState)([]),[R,X]=(0,n.useState)(!1),[K,J]=(0,n.useState)([]),[M,Y]=(0,n.useState)(!1),[Z,$]=(0,n.useState)(!1),[ee,el]=(0,n.useState)(!1),[ei,er]=(0,n.useState)("file"),[en,et]=(0,n.useState)("custom"),es=async()=>{let[e,l,i]=await Promise.all([(0,D.lv)(),(0,D.nU)({limit:200,includeContent:!1}),(0,D.dx)()]);w(e.roles),z(e.configs),B(l.files),J(i)};(0,n.useEffect)(()=>{es().catch(()=>t.error(i("common.error")))},[t,i]);let eo=I.filter(e=>!e.builtIn),ea=I.filter(e=>e.builtIn),ec=T.filter(e=>!e.builtIn),ed=T.filter(e=>e.builtIn),ep=e=>"all"===en||("builtin"===en?e.builtIn:!e.builtIn),ex=I.filter(ep),em=T.filter(ep),eh=ex.filter(e=>"file"===e.type),eu=ex.filter(e=>"prompt"===e.type),ef=I.filter(e=>"file"===e.type),ey=I.filter(e=>"prompt"===e.type),eg=async()=>{try{let e=await b.validateFields(),l=await (0,D.dg)(e);w(l.roles),z(l.configs),Y(!1),t.success(i("common.success"))}catch(e){t.error(i("common.error"))}},ej=async()=>{try{let e=await v.validateFields(),l=e=>(null!=e?e:[]).map((e,l)=>{var i;return{roleId:e.roleId,order:Number(null!=(i=e.order)?i:l)}}),r=await (0,D.NR)({...e,fileRoles:l(e.fileRoles),promptRoles:l(e.promptRoles)});w(r.roles),z(r.configs),$(!1),t.success(i("common.success"))}catch(e){t.error(i("common.error"))}},eA=async e=>{let l=await (0,D.FV)(e.type,e.id);w(l.roles),z(l.configs)},eb=async e=>{let l=await (0,D.dw)(e);w(l.roles),z(l.configs)},ev=function(e){var l;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"file",r=(null==e?void 0:e.builtIn)?{...e,id:"".concat(e.id,"-copy-").concat(Date.now()),name:"".concat(e.name," Copy"),builtIn:!1}:e;(null==e?void 0:e.builtIn)&&t.info("内置角色不可直接编辑,已为你创建副本"),b.setFieldsValue(r?{...r,resourceIds:(null==(l=r.resourceIds)?void 0:l.length)?r.resourceIds:r.resourceId?[r.resourceId]:[]}:{id:"role-".concat(Date.now()),name:"",description:"",type:i,resourceIds:[],executionType:"prompt"===i?"reference":void 0,processingType:"file"===i?"reference":void 0}),Y(!0)},eI=e=>{let l=(null==e?void 0:e.builtIn)?{...e,id:"".concat(e.id,"-copy-").concat(Date.now()),name:"".concat(e.name," Copy"),builtIn:!1}:e;(null==e?void 0:e.builtIn)&&t.info("内置项目配置不可直接编辑,已为你创建副本"),v.setFieldsValue(null!=l?l:{id:"config-".concat(Date.now()),name:"",description:"",fileRoles:[],promptRoles:[],builtIn:!1}),$(!0)},ew=e=>I.find(l=>l.id===e),eS=async e=>{X(!0);try{let l=await (0,D.nU)({query:e,limit:80,includeContent:!!e.trim()});B(l.files)}catch(e){t.error("知识库文件检索失败")}finally{X(!1)}},eT=k.map(e=>({label:(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:8},children:[(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.relativePath}),(0,r.jsxs)(c.A,{size:4,children:[(0,r.jsx)(s.A,{color:"content"===e.matchedBy?"purple":"disk"===e.matchedBy?"orange":"blue",style:{margin:0},children:"content"===e.matchedBy?"内容":"disk"===e.matchedBy?"磁盘":"文件"}),(0,r.jsx)(s.A,{style:{margin:0},children:e.status})]})]}),value:e.relativePath}));return(0,r.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"pageTitle",children:i("roles.title")}),(0,r.jsx)("p",{className:"pageDesc",children:i("roles.description")})]}),(0,r.jsxs)(c.A,{children:[(0,r.jsx)(h.A,{value:en,onChange:et,style:{width:170},options:[{label:"我的配置 (".concat(eo.length+ec.length,")"),value:"custom"},{label:"内置示例 (".concat(ea.length+ed.length,")"),value:"builtin"},{label:"全部来源 (".concat(I.length+T.length,")"),value:"all"}]}),(0,r.jsx)(x.Ay,{icon:(0,r.jsx)(H.A,{}),onClick:()=>ev(void 0,"file"),children:i("roles.newFileRole")}),(0,r.jsx)(x.Ay,{icon:(0,r.jsx)(H.A,{}),onClick:()=>ev(void 0,"prompt"),children:i("roles.newPromptRole")}),(0,r.jsx)(x.Ay,{type:"primary",icon:(0,r.jsx)(H.A,{}),onClick:()=>eI(),children:i("roles.newConfig")})]})]}),(0,r.jsx)(u.A,{type:"info",showIcon:!0,message:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsx)("span",{children:i("roles.plainGuideTitle")}),(0,r.jsx)(x.Ay,{type:"link",size:"small",icon:ee?(0,r.jsx)(W.A,{}):(0,r.jsx)(N.A,{}),onClick:()=>el(!ee),style:{padding:"0 4px"},children:ee?"收起说明":"展开说明"})]}),description:ee?i("roles.plainGuideDesc"):void 0}),(0,r.jsx)(p.A,{size:"small",tabList:[{key:"file",label:"文件角色 (".concat(eh.length,")")},{key:"prompt",label:"提示词角色 (".concat(eu.length,")")},{key:"configs",label:"项目角色配置 (".concat(em.length,")")}],activeTabKey:ei,onTabChange:er,children:"configs"===ei?0===em.length?(0,r.jsx)(d.A,{description:i("common.noData")}):(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:12},children:em.map(e=>{let l=e.fileRoles.map(e=>({...e,role:ew(e.roleId)})).filter(e=>e.role),n=e.promptRoles.map(e=>({...e,role:ew(e.roleId)})).filter(e=>e.role);return(0,r.jsxs)(p.A,{size:"small",hoverable:!0,style:{minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8,marginBottom:6},children:[(0,r.jsx)("span",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:e.name}),e.builtIn?(0,r.jsx)(s.A,{color:"gold",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"内置示例"}):(0,r.jsx)(s.A,{color:"cyan",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"我的配置"}),(0,r.jsxs)("div",{style:{display:"flex",gap:4,flexShrink:0},children:[(0,r.jsx)(x.Ay,{size:"small",icon:(0,r.jsx)(C.A,{}),onClick:()=>eI(e),children:e.builtIn?"复制":"编辑"}),(0,r.jsx)(m.A,{title:i("common.confirm"),disabled:e.builtIn,onConfirm:()=>{eb(e.id)},children:(0,r.jsx)(x.Ay,{size:"small",danger:!0,icon:(0,r.jsx)(_.A,{}),disabled:e.builtIn})})]})]}),e.description&&(0,r.jsx)(P,{ellipsis:{rows:2},style:{fontSize:12,color:"var(--colorTextSecondary)",marginBottom:8},children:e.description}),(0,r.jsxs)("div",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:[(0,r.jsxs)("div",{style:{marginBottom:4},children:[(0,r.jsxs)("span",{children:["文件角色 (",e.fileRoles.length,"): "]}),l.length>0?(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginTop:2},children:[l.slice(0,4).map(e=>(0,r.jsx)(s.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px"},children:e.role.name},e.roleId)),l.length>4&&(0,r.jsxs)(s.A,{style:{margin:0,fontSize:10,lineHeight:"16px"},children:["+",l.length-4]})]}):(0,r.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"无"})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("span",{children:["提示词角色 (",e.promptRoles.length,"): "]}),n.length>0?(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginTop:2},children:[n.slice(0,4).map(e=>(0,r.jsx)(s.A,{color:"purple",style:{margin:0,fontSize:10,lineHeight:"16px"},children:e.role.name},e.roleId)),n.length>4&&(0,r.jsxs)(s.A,{style:{margin:0,fontSize:10,lineHeight:"16px"},children:["+",n.length-4]})]}):(0,r.jsx)("span",{style:{color:"var(--colorTextQuaternary)"},children:"无"})]})]})]},e.id)})}):(e="file"===ei?eh:eu,l=i,0===e.length?(0,r.jsx)(d.A,{description:i("common.noData")}):(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(270px, 1fr))",gap:12},children:e.map((e,n)=>{var t,o,a,c,d,h,u,f,y;let g=(null==(t=e.resourceIds)?void 0:t.length)?e.resourceIds:e.resourceId?[e.resourceId]:[],j=g.slice(0,3),A=g.length-j.length,b="file"===e.type?null!=(a=q[null!=(o=e.processingType)?o:""])?a:(0,r.jsx)(S.A,{}):null!=(d=O[null!=(c=e.executionType)?c:""])?d:(0,r.jsx)(F.A,{}),v="file"===e.type?null!=(u=V[null!=(h=e.processingType)?h:""])?u:"var(--colorAccent)":null!=(y=G[null!=(f=e.executionType)?f:""])?y:"var(--colorWarning)";return(0,r.jsxs)(p.A,{size:"small",hoverable:!0,style:{minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8,marginBottom:8},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,flex:1},children:[(0,r.jsx)("span",{style:{color:v,fontSize:16,flexShrink:0,lineHeight:1},children:b}),(0,r.jsx)("span",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:"20px"},children:e.name})]}),(0,r.jsx)("div",{style:{display:"flex",gap:4,flexShrink:0},children:e.builtIn?(0,r.jsx)(s.A,{color:"gold",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"内置示例"}):(0,r.jsx)(s.A,{color:"cyan",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"我的角色"})})]}),e.description&&(0,r.jsx)(P,{ellipsis:{rows:2},style:{fontSize:12,color:"var(--colorTextSecondary)",marginBottom:8},children:e.description}),(0,r.jsxs)("div",{style:{marginBottom:8,display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[(0,r.jsx)(s.A,{color:"file"===e.type?"blue":"purple",style:{margin:0},children:function(e,l){var i,r,n;let t="file"===e.type?L[null!=(i=e.processingType)?i:""]:U[null!=(r=e.executionType)?r:""];return t?l(t):null!=(n="file"===e.type?e.processingType:e.executionType)?n:""}(e,l)}),g.length>0&&(0,r.jsxs)("span",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:["绑定 ",g.length," 个资源"]})]}),j.length>0&&(0,r.jsx)("div",{style:{marginBottom:10},children:(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:[j.map(e=>(0,r.jsx)(s.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px",maxWidth:140,overflow:"hidden",textOverflow:"ellipsis"},children:e},e)),A>0&&(0,r.jsxs)(s.A,{style:{margin:0,fontSize:10,lineHeight:"16px"},children:["+",A]})]})}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:6,paddingTop:4,borderTop:"1px solid var(--colorBorderSecondary)"},children:[(0,r.jsx)(x.Ay,{size:"small",icon:(0,r.jsx)(C.A,{}),onClick:()=>ev(e),children:e.builtIn?"复制":"编辑"}),(0,r.jsx)(m.A,{title:i("common.confirm"),disabled:e.builtIn,onConfirm:()=>{eA(e)},children:(0,r.jsx)(x.Ay,{size:"small",danger:!0,icon:(0,r.jsx)(_.A,{}),disabled:e.builtIn})})]})]},e.id)})}))}),(0,r.jsx)(f.A,{title:i("roles.roleEditor"),open:M,onClose:()=>Y(!1),width:800,maskClosable:!1,style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,r.jsx)(x.Ay,{type:"primary",onClick:()=>{eg()},children:i("common.save")}),children:(0,r.jsxs)(a.A,{form:b,layout:"vertical",children:[(0,r.jsx)(a.A.Item,{name:"id",hidden:!0,children:(0,r.jsx)(y.A,{})}),(0,r.jsxs)(g.A,{gutter:16,children:[(0,r.jsx)(j.A,{span:12,children:(0,r.jsx)(a.A.Item,{name:"type",label:i("roles.roleType"),rules:[{required:!0}],children:(0,r.jsx)(h.A,{options:[{label:i("roles.fileRole"),value:"file"},{label:i("roles.promptRole"),value:"prompt"}]})})}),(0,r.jsx)(j.A,{span:12,children:(0,r.jsx)(a.A.Item,{name:"name",label:i("roles.roleName"),rules:[{required:!0}],children:(0,r.jsx)(y.A,{})})})]}),(0,r.jsx)(a.A.Item,{name:"description",label:i("roles.roleDescription"),children:(0,r.jsx)(y.A.TextArea,{rows:2})}),(0,r.jsx)(a.A.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.type!==l.type,children:e=>{let{getFieldValue:l}=e,n="prompt"===l("type");return(0,r.jsx)(p.A,{size:"small",title:n?"提示词角色配置":"文件角色配置",style:{border:"1px solid var(--colorBorderSecondary)"},children:n?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.A.Item,{name:"executionType",label:i("roles.executionType"),rules:[{required:!0}],style:{marginBottom:12},children:(0,r.jsx)(h.A,{options:[{label:i("roles.factExtraction"),value:"fact_extraction"},{label:i("roles.chapterGeneration"),value:"chapter_generation"},{label:i("roles.validation"),value:"validation"},{label:i("roles.formatting"),value:"formatting"},{label:i("roles.reference"),value:"reference"}]})}),(0,r.jsx)(a.A.Item,{name:"resourceIds",label:i("roles.bindPrompt"),style:{marginBottom:0},help:(0,r.jsx)("span",{style:{fontSize:11,color:"var(--colorTextSecondary)"},children:i("roles.multiBindPromptHelp")}),children:(0,r.jsx)(h.A,{mode:"multiple",showSearch:!0,tagRender:Q,placeholder:"选择提示词",options:K.filter(e=>e.hasFile).map(e=>({label:e.projectName,value:e.id}))})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.A.Item,{name:"processingType",label:i("roles.processingType"),rules:[{required:!0}],style:{marginBottom:12},children:(0,r.jsx)(h.A,{options:[{label:i("roles.ruleFile"),value:"rule"},{label:i("roles.projectFactFile"),value:"project_fact"},{label:i("roles.tableFile"),value:"table"},{label:i("roles.drawingFile"),value:"drawing"},{label:i("roles.specificationFile"),value:"specification"},{label:i("roles.reference"),value:"reference"}]})}),(0,r.jsx)(a.A.Item,{name:"resourceIds",label:i("roles.bindFile"),style:{marginBottom:0},help:(0,r.jsx)("span",{style:{fontSize:11,color:"var(--colorTextSecondary)"},children:i("roles.multiBindFileHelp")}),children:(0,r.jsx)(h.A,{mode:"multiple",showSearch:!0,filterOption:!1,loading:R,onSearch:e=>{eS(e)},onFocus:()=>{eS("")},tagRender:Q,placeholder:"输入关键词搜索知识库文件",options:eT,optionLabelProp:"value"})})]})})}})]})}),(0,r.jsx)(f.A,{title:i("roles.configEditor"),open:Z,onClose:()=>$(!1),width:800,maskClosable:!1,style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,r.jsx)(x.Ay,{type:"primary",onClick:()=>{ej()},children:i("common.save")}),children:(0,r.jsxs)(a.A,{form:v,layout:"vertical",children:[(0,r.jsx)(a.A.Item,{name:"id",hidden:!0,children:(0,r.jsx)(y.A,{})}),(0,r.jsxs)(g.A,{gutter:16,children:[(0,r.jsx)(j.A,{span:12,children:(0,r.jsx)(a.A.Item,{name:"name",label:i("roles.configName"),rules:[{required:!0}],children:(0,r.jsx)(y.A,{})})}),(0,r.jsx)(j.A,{span:12,children:(0,r.jsx)(a.A.Item,{name:"description",label:i("roles.configDescription"),children:(0,r.jsx)(y.A,{})})})]}),(0,r.jsx)(A.A,{destroyInactiveTabPane:!1,items:[{key:"file",label:"文件角色 (".concat(eh.length,")"),children:(0,r.jsx)(a.A.List,{name:"fileRoles",children:(e,l)=>{let{add:n,remove:t}=l;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[0===e.length&&(0,r.jsx)(d.A,{description:"暂未添加文件角色"}),e.map((e,l)=>(0,r.jsxs)(p.A,{size:"small",style:{border:"1px solid var(--colorBorderSecondary)",position:"relative"},children:[(0,r.jsxs)("div",{style:{position:"absolute",top:-10,left:12,background:"#1677ff",color:"#fff",fontSize:11,fontWeight:700,padding:"1px 8px",borderRadius:10},children:["#",l+1]}),(0,r.jsx)(x.Ay,{danger:!0,size:"small",icon:(0,r.jsx)(_.A,{}),onClick:()=>t(e.name),style:{position:"absolute",top:8,right:8,zIndex:1}}),(0,r.jsxs)(g.A,{gutter:[16,8],align:"middle",style:{marginTop:4},children:[(0,r.jsx)(j.A,{flex:"auto",children:(0,r.jsx)(a.A.Item,{name:[e.name,"roleId"],label:"文件角色",rules:[{required:!0}],style:{marginBottom:0},children:(0,r.jsx)(h.A,{placeholder:"选择文件角色",size:"small",options:ef.map(e=>{var l;return{label:"".concat(e.name," (").concat(i(L[null!=(l=e.processingType)?l:""]||"roles.reference"),")"),value:e.id}})})})}),(0,r.jsx)(j.A,{style:{width:90},children:(0,r.jsx)(a.A.Item,{name:[e.name,"order"],label:"排序",initialValue:l,style:{marginBottom:0},children:(0,r.jsx)(y.A,{type:"number",size:"small"})})})]})]},e.key)),(0,r.jsx)(x.Ay,{icon:(0,r.jsx)(H.A,{}),onClick:()=>n({order:e.length}),children:i("roles.addRole")})]})}})},{key:"prompt",label:"提示词角色 (".concat(ey.length,")"),children:(0,r.jsx)(a.A.List,{name:"promptRoles",children:(e,l)=>{let{add:n,remove:t}=l;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[0===e.length&&(0,r.jsx)(d.A,{description:"暂未添加提示词角色"}),e.map((e,l)=>(0,r.jsxs)(p.A,{size:"small",style:{border:"1px solid var(--colorBorderSecondary)",position:"relative"},children:[(0,r.jsxs)("div",{style:{position:"absolute",top:-10,left:12,background:"#722ed1",color:"#fff",fontSize:11,fontWeight:700,padding:"1px 8px",borderRadius:10},children:["#",l+1]}),(0,r.jsx)(x.Ay,{danger:!0,size:"small",icon:(0,r.jsx)(_.A,{}),onClick:()=>t(e.name),style:{position:"absolute",top:8,right:8,zIndex:1}}),(0,r.jsxs)(g.A,{gutter:[16,8],align:"middle",style:{marginTop:4},children:[(0,r.jsx)(j.A,{flex:"auto",children:(0,r.jsx)(a.A.Item,{name:[e.name,"roleId"],label:"提示词角色",rules:[{required:!0}],style:{marginBottom:0},children:(0,r.jsx)(h.A,{placeholder:"选择提示词角色",size:"small",options:ey.map(e=>{var l;return{label:"".concat(e.name," (").concat(i(U[null!=(l=e.executionType)?l:""]||"roles.reference"),")"),value:e.id}})})})}),(0,r.jsx)(j.A,{style:{width:90},children:(0,r.jsx)(a.A.Item,{name:[e.name,"order"],label:"排序",initialValue:l,style:{marginBottom:0},children:(0,r.jsx)(y.A,{type:"number",size:"small"})})})]})]},e.key)),(0,r.jsx)(x.Ay,{icon:(0,r.jsx)(H.A,{}),onClick:()=>n({order:e.length}),children:i("roles.addRole")})]})}})}]})]})})]})}}},e=>{e.O(0,[433,787,576,195,455,698,636,593,792],()=>e(e.s=23507)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[580],{16734:(e,l,s)=>{"use strict";s.r(l),s.d(l,{default:()=>V});var a=s(65321),i=s(97109),n=s(11702),t=s(17807),r=s(63455),o=s(33442),d=s(57271),c=s(85114),m=s(85493),x=s(68787),h=s(58569),u=s(84253),p=s(38332),j=s(26171),A=s(34052),y=s(2256),g=s(7576),b=s(38770),v=s(44534),f=s(48318),I=s(25258),w=s(54746),S=s(96651),z=s(60470),R=s(99650),C=s(58209),_=s(6578),k=s(79059);let B=[{label:"动态章节",value:"dynamic"},{label:"固定章节",value:"fixed"}],q=[{label:"AI 根据资料自动规划",value:"ai_plan"},{label:"从文件目录/标题识别",value:"file_outline"},{label:"从指定文件角色识别",value:"file_role"},{label:"按事实字段分组",value:"fact_group"},{label:"按表格行生成",value:"table_rows"}],F=[{label:"AI 摘要标题",value:"ai_summary"},{label:"使用来源标题",value:"source_title"},{label:"使用字段值",value:"field_value"},{label:"标题模板",value:"template"}],T=[{label:"错误(阻断)",value:"error"},{label:"警告(提醒)",value:"warning"},{label:"信息(提示)",value:"info"}],H=[{label:"全文",value:"document"},{label:"章节",value:"chapter"},{label:"事实字段",value:"fact"},{label:"文件角色",value:"file_role"},{label:"提示词角色",value:"prompt_role"},{label:"表格",value:"table"},{label:"图片",value:"image"},{label:"来源",value:"source"}],D=[{label:"必须存在",value:"exists"},{label:"必须包含",value:"contains"},{label:"禁止包含",value:"not_contains"},{label:"正则必须匹配",value:"regex_match"},{label:"正则禁止匹配",value:"regex_not_match"},{label:"数量至少为 N",value:"min_count"},{label:"字数至少为 N",value:"min_length"},{label:"全部必须有来源",value:"all_have_source"},{label:"图片必须有说明",value:"image_caption_required"},{label:"表格必须有说明",value:"table_explanation_required"}],N=e=>{let{label:l,closable:s,onClose:i}=e;return(0,a.jsx)(n.A,{closable:s,onClose:i,color:"blue",style:{margin:"1px 2px",fontSize:11,lineHeight:"18px"},children:l})};function V(){var e,l,s,V;let W=(0,k.Vr)(),{message:P}=t.A.useApp(),[E]=r.A.useForm(),[L]=r.A.useForm(),[M,O]=(0,i.useState)([]),[G,K]=(0,i.useState)([]),[X,U]=(0,i.useState)([]),[J,Q]=(0,i.useState)(!1),[Y,Z]=(0,i.useState)(!1),[$,ee]=(0,i.useState)(null),[el,es]=(0,i.useState)(!1),[ea,ei]=(0,i.useState)("custom"),[en,et]=(0,i.useState)("specs"),er=async()=>{let[e,l]=await Promise.all([(0,_.mx)(),(0,_.lv)()]);O(e.specs),K(e.gateTypes),U(l.roles)};(0,i.useEffect)(()=>{er().catch(()=>P.error(W("common.error")))},[P,W]);let eo=X.filter(e=>"file"===e.type).map(e=>({label:e.name,value:e.id})),ed=X.filter(e=>"prompt"===e.type).map(e=>({label:e.name,value:e.id})),ec=M.filter(e=>!e.builtIn),em=M.filter(e=>e.builtIn),ex="all"===ea?M:"builtIn"===ea?em:ec,eh=G.filter(e=>!e.builtIn),eu=G.filter(e=>e.builtIn),ep="all"===ea?G:"builtIn"===ea?eu:eh,ej=[{label:"系统门禁类型",options:G.filter(e=>e.builtIn).map(e=>({label:e.name,value:e.id}))},{label:"我的门禁类型",options:G.filter(e=>!e.builtIn).map(e=>({label:e.name,value:e.id}))}],[eA,ey]=(0,i.useState)(0),[eg,eb]=(0,i.useState)(0),[ev,ef]=(0,i.useState)(0),eI=()=>{var e,l,s;ey((null!=(e=E.getFieldValue("factFields"))?e:[]).length),eb((null!=(l=E.getFieldValue("chapterRules"))?l:[]).length),ef((null!=(s=E.getFieldValue("gateRules"))?s:[]).length)},ew=(null!=(V=r.A.useWatch("factFields",E))?V:[]).filter(e=>e.id&&e.name).map(e=>({label:"".concat(e.name,"(").concat(e.id,")"),value:e.id})),eS=e=>{let l=(null==e?void 0:e.builtIn)?{...e,id:"".concat(e.id,"-copy-").concat(Date.now()),name:"".concat(e.name," Copy"),builtIn:!1}:e;(null==e?void 0:e.builtIn)&&P.info("内置规范包不可直接编辑,已为你创建副本"),E.setFieldsValue(null!=l?l:{id:"spec-".concat(Date.now()),name:"",description:"",factFields:[{id:"document-goal",name:"文档目标",type:"auto",required:!0},{id:"target-audience",name:"目标读者",type:"auto",required:!1},{id:"key-conclusion",name:"关键结论",type:"auto",required:!0}],chapterMode:"dynamic",chapterRules:[],dynamicChapterRule:{source:"ai_plan",titleStrategy:"ai_summary"},gateRules:[]}),Q(!0),window.setTimeout(()=>eI(),50)},ez=async()=>{try{let e=await E.validateFields(),l=await (0,_.EK)(e);O(l.specs),K(l.gateTypes),Q(!1),P.success(W("common.success"))}catch(e){e instanceof Error&&P.error(e.message)}},eR=async e=>{let l=await (0,_.ER)(e);O(l.specs),K(l.gateTypes)},eC=e=>{var l;if(null==e?void 0:e.builtIn){L.setFieldsValue(e),ee(e.id),Z(!0);return}ee(null!=(l=null==e?void 0:e.id)?l:null),L.setFieldsValue(null!=e?e:{id:"gate-type-".concat(Date.now()),name:"",defaultLevel:"error",evaluator:{subject:"document",operator:"contains"}}),Z(!0)},e_=async()=>{try{var e;let l=await L.validateFields();if(null==(e=G.find(e=>e.id===l.id))?void 0:e.builtIn)return;let s=await (0,_.uD)(l);K(s.gateTypes),Z(!1),ee(null),L.resetFields(),P.success(W("common.success"))}catch(e){e instanceof Error&&P.error(e.message)}},ek=async e=>{K((await (0,_.ug)(e)).gateTypes)};return(0,a.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12},children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"pageTitle",children:W("specs.title")}),(0,a.jsx)("p",{className:"pageDesc",children:W("specs.description")})]}),(0,a.jsxs)(o.A,{wrap:!0,children:[(0,a.jsx)(d.A,{value:ea,onChange:ei,style:{width:160},options:[{label:"我的 (".concat(ec.length+eh.length,")"),value:"custom"},{label:"内置示例 (".concat(em.length+eu.length,")"),value:"builtIn"},{label:"全部来源 (".concat(M.length+G.length,")"),value:"all"}]}),"gateTypes"===en&&(0,a.jsx)(c.Ay,{onClick:()=>eC(),children:"新建门禁类型"}),"specs"===en&&(0,a.jsx)(c.Ay,{type:"primary",icon:(0,a.jsx)(w.A,{}),onClick:()=>eS(),children:W("specs.newSpec")})]})]}),(0,a.jsx)(m.A,{type:"info",showIcon:!0,message:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,a.jsx)("span",{children:W("specs.plainGuideTitle")}),(0,a.jsx)(c.Ay,{type:"link",size:"small",icon:el?(0,a.jsx)(S.A,{}):(0,a.jsx)(z.A,{}),onClick:()=>es(!el),style:{padding:"0 4px"},children:el?"收起说明":"展开说明"})]}),description:el?W("specs.plainGuideDesc"):void 0}),(0,a.jsx)(x.A,{size:"small",children:(0,a.jsx)(h.A,{activeKey:en,onChange:e=>et(e),items:[{key:"specs",label:"规范包列表 (".concat(ex.length,")"),children:0===ex.length?(0,a.jsx)(u.A,{description:W("common.noData")}):(0,a.jsx)(p.A,{dataSource:ex,renderItem:(e,l)=>(0,a.jsx)(p.A.Item,{style:{padding:"10px 0"},actions:[(0,a.jsx)(c.Ay,{size:"small",icon:(0,a.jsx)(R.A,{}),onClick:()=>eS(e),children:e.builtIn?"复制":"编辑"},"edit"),(0,a.jsx)(j.A,{title:W("common.confirm"),disabled:e.builtIn,onConfirm:()=>{eR(e.id)},children:(0,a.jsx)(c.Ay,{size:"small",danger:!0,icon:(0,a.jsx)(C.A,{}),disabled:e.builtIn})},"del")],children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,minWidth:0,flex:1},children:[(0,a.jsx)("div",{style:{width:28,height:28,borderRadius:8,background:"var(--colorFillSecondary)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:700,color:"var(--colorTextSecondary)",flexShrink:0},children:l+1}),(0,a.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:2},children:[(0,a.jsx)("span",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),e.builtIn?(0,a.jsx)(n.A,{color:"gold",style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:"内置示例"}):(0,a.jsx)(n.A,{color:"cyan",style:{margin:0,fontSize:10,lineHeight:"16px",flexShrink:0},children:"我的规范包"})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[e.description&&(0,a.jsx)("span",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:e.description}),(0,a.jsxs)(o.A,{size:4,children:[(0,a.jsxs)(n.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px"},children:["事实 ",e.factFields.length]}),(0,a.jsx)(n.A,{color:"purple",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"dynamic"===e.chapterMode?"动态章节":"章节 ".concat(e.chapterRules.length)}),(0,a.jsxs)(n.A,{color:"orange",style:{margin:0,fontSize:10,lineHeight:"16px"},children:["门禁 ",e.gateRules.length]})]})]})]})]})})})},{key:"gateTypes",label:"门禁类型列表 (".concat(ep.length,")"),children:0===ep.length?(0,a.jsx)(u.A,{description:W("common.noData")}):(0,a.jsx)(p.A,{dataSource:ep,renderItem:(e,l)=>{var s,i;return(0,a.jsx)(p.A.Item,{style:{padding:"10px 0"},actions:[(0,a.jsx)(c.Ay,{size:"small",icon:(0,a.jsx)(R.A,{}),onClick:()=>eC(e),children:e.builtIn?"查看":"编辑"},"edit"),(0,a.jsx)(j.A,{title:W("common.confirm"),disabled:e.builtIn,onConfirm:()=>{ek(e.id)},children:(0,a.jsx)(c.Ay,{size:"small",danger:!0,icon:(0,a.jsx)(C.A,{}),disabled:e.builtIn})},"del")],children:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,minWidth:0,flex:1},children:[(0,a.jsx)("div",{style:{width:28,height:28,borderRadius:8,background:"var(--colorFillSecondary)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:700,color:"var(--colorTextSecondary)",flexShrink:0},children:l+1}),(0,a.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:2},children:[(0,a.jsx)("span",{style:{fontWeight:600},children:e.name}),e.builtIn?(0,a.jsx)(n.A,{color:"gold",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"系统门禁"}):(0,a.jsx)(n.A,{color:"cyan",style:{margin:0,fontSize:10,lineHeight:"16px"},children:"我的门禁"})]}),(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[e.description&&(0,a.jsx)("span",{style:{fontSize:12,color:"var(--colorTextSecondary)"},children:e.description}),(0,a.jsxs)(o.A,{size:4,children:[(0,a.jsx)(n.A,{color:"blue",style:{margin:0,fontSize:10,lineHeight:"16px"},children:null==(s=H.find(l=>l.value===e.evaluator.subject))?void 0:s.label}),(0,a.jsx)(n.A,{color:"purple",style:{margin:0,fontSize:10,lineHeight:"16px"},children:null==(i=D.find(l=>l.value===e.evaluator.operator))?void 0:i.label})]})]})]})]})})}})}]})}),(0,a.jsx)(A.A,{title:W("specs.editor"),open:J,onClose:()=>Q(!1),width:800,maskClosable:!1,style:{borderRadius:"12px 0 0 12px"},styles:{body:{padding:"16px 24px"},header:{borderRadius:"12px 0 0 0",borderBottom:"1px solid var(--colorBorderSecondary)"}},extra:(0,a.jsx)(c.Ay,{type:"primary",onClick:()=>{ez()},children:W("common.save")}),children:(0,a.jsxs)(r.A,{form:E,layout:"vertical",onValuesChange:()=>eI(),children:[(0,a.jsxs)(y.A,{gutter:12,children:[(0,a.jsx)(r.A.Item,{name:"id",hidden:!0,children:(0,a.jsx)(g.A,{})}),(0,a.jsx)(b.A,{xs:24,md:12,children:(0,a.jsx)(r.A.Item,{name:"name",label:W("specs.name"),rules:[{required:!0}],children:(0,a.jsx)(g.A,{})})}),(0,a.jsx)(b.A,{xs:24,md:12,children:(0,a.jsx)(r.A.Item,{name:"description",label:W("specs.specDescription"),children:(0,a.jsx)(g.A,{})})})]}),(0,a.jsx)(h.A,{destroyInactiveTabPane:!1,items:[{key:"facts",label:"".concat(W("specs.facts")," (").concat(eA,")"),children:(0,a.jsx)(r.A.List,{name:"factFields",children:(e,l)=>{let{add:s,remove:i}=l;return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[e.map((e,l)=>(0,a.jsxs)(x.A,{size:"small",style:{border:"1px solid var(--colorBorderSecondary)",position:"relative"},children:[(0,a.jsx)(c.Ay,{danger:!0,size:"small",icon:(0,a.jsx)(C.A,{}),onClick:()=>i(e.name),style:{position:"absolute",top:8,right:8,zIndex:1}}),(0,a.jsx)(r.A.Item,{name:[e.name,"id"],hidden:!0,children:(0,a.jsx)(g.A,{})}),(0,a.jsxs)(y.A,{gutter:[14,8],children:[(0,a.jsx)(r.A.Item,{name:[e.name,"type"],initialValue:"auto",hidden:!0,children:(0,a.jsx)(g.A,{})}),(0,a.jsx)(b.A,{xs:24,sm:8,children:(0,a.jsx)(r.A.Item,{name:[e.name,"name"],label:W("specs.factName"),rules:[{required:!0}],style:{marginBottom:0},children:(0,a.jsx)(g.A,{size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:4,children:(0,a.jsx)(r.A.Item,{name:[e.name,"required"],label:W("specs.required"),valuePropName:"checked",style:{marginBottom:0},children:(0,a.jsx)(v.A,{})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:[e.name,"sourceRoleIds"],label:W("specs.sourceRoles"),style:{marginBottom:0},children:(0,a.jsx)(d.A,{mode:"multiple",showSearch:!0,options:eo,tagRender:N,placeholder:"选择文件角色",size:"small"})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:[e.name,"extractionHint"],label:W("specs.extractionHint"),style:{marginBottom:0},children:(0,a.jsx)(g.A,{size:"small"})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:[e.name,"validationHint"],label:W("specs.validationHint"),style:{marginBottom:0},children:(0,a.jsx)(g.A,{size:"small"})})})]})]},e.key)),(0,a.jsx)(c.Ay,{icon:(0,a.jsx)(w.A,{}),onClick:()=>s({id:"fact-".concat(Date.now()),type:"auto",required:!0}),children:W("specs.addFact")})]})}})},{key:"chapters",label:"".concat(W("specs.chapters")," (").concat(eg,")"),children:(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,a.jsx)(r.A.Item,{name:"chapterMode",label:"章节生成方式",initialValue:"dynamic",children:(0,a.jsx)(d.A,{options:B})}),(0,a.jsx)(r.A.Item,{noStyle:!0,shouldUpdate:(e,l)=>e.chapterMode!==l.chapterMode,children:e=>{let{getFieldValue:l}=e;return"fixed"===l("chapterMode")?(0,a.jsx)(r.A.List,{name:"chapterRules",children:(e,l)=>{let{add:s,remove:i}=l;return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,a.jsx)(m.A,{type:"info",showIcon:!0,message:"固定章节模式",description:"适合合同、标准报告等已明确章节数量和标题的文档。"}),e.map((e,l)=>(0,a.jsxs)(x.A,{size:"small",style:{border:"1px solid var(--colorBorderSecondary)",position:"relative"},children:[(0,a.jsx)(c.Ay,{danger:!0,size:"small",icon:(0,a.jsx)(C.A,{}),onClick:()=>i(e.name),style:{position:"absolute",top:8,right:8,zIndex:1}}),(0,a.jsx)(r.A.Item,{name:[e.name,"id"],hidden:!0,children:(0,a.jsx)(g.A,{})}),(0,a.jsxs)(y.A,{gutter:[14,8],children:[(0,a.jsx)(b.A,{xs:24,sm:7,children:(0,a.jsx)(r.A.Item,{name:[e.name,"title"],label:W("specs.chapterTitle"),rules:[{required:!0}],style:{marginBottom:0},children:(0,a.jsx)(g.A,{size:"small"})})}),(0,a.jsx)(b.A,{xs:8,sm:3,children:(0,a.jsx)(r.A.Item,{name:[e.name,"order"],label:W("specs.order"),initialValue:l,style:{marginBottom:0},children:(0,a.jsx)(f.A,{size:"small",style:{width:"100%"}})})}),(0,a.jsx)(b.A,{xs:8,sm:3,children:(0,a.jsx)(r.A.Item,{name:[e.name,"minWords"],label:W("specs.minWords"),style:{marginBottom:0},children:(0,a.jsx)(f.A,{size:"small",style:{width:"100%"}})})}),(0,a.jsx)(b.A,{xs:8,sm:3,children:(0,a.jsx)(r.A.Item,{name:[e.name,"required"],label:W("specs.required"),valuePropName:"checked",style:{marginBottom:0},children:(0,a.jsx)(v.A,{})})}),(0,a.jsx)(b.A,{xs:24,sm:8,children:(0,a.jsx)(r.A.Item,{name:[e.name,"requiredFactIds"],label:W("specs.requiredFacts"),style:{marginBottom:0},children:(0,a.jsx)(d.A,{mode:"multiple",showSearch:!0,optionFilterProp:"label",placeholder:"选择事实字段",options:ew,tagRender:N,size:"small"})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:[e.name,"requiredFileRoleIds"],label:W("specs.requiredFileRoles"),style:{marginBottom:0},children:(0,a.jsx)(d.A,{mode:"multiple",showSearch:!0,options:eo,tagRender:N,placeholder:"选择文件角色",size:"small"})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:[e.name,"requiredPromptRoleIds"],label:W("specs.requiredPromptRoles"),style:{marginBottom:0},children:(0,a.jsx)(d.A,{mode:"multiple",showSearch:!0,options:ed,tagRender:N,placeholder:"选择提示词角色",size:"small"})})}),(0,a.jsx)(b.A,{xs:24,children:(0,a.jsx)(r.A.Item,{name:[e.name,"generationHint"],label:W("specs.generationHint"),style:{marginBottom:0},children:(0,a.jsx)(g.A,{size:"small"})})})]})]},e.key)),(0,a.jsx)(c.Ay,{icon:(0,a.jsx)(w.A,{}),onClick:()=>s({id:"chapter-".concat(Date.now()),order:e.length,required:!0}),children:W("specs.addChapter")})]})}}):(0,a.jsxs)(x.A,{size:"small",title:"动态章节规则",style:{border:"1px solid var(--colorBorderSecondary)"},children:[(0,a.jsx)(m.A,{type:"info",showIcon:!0,style:{marginBottom:12},message:"动态章节模式",description:"适合从资料目录、文件角色、表格行或 AI 规划中动态决定章节数量和标题。"}),(0,a.jsxs)(y.A,{gutter:[14,8],children:[(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","source"],label:"章节来源",initialValue:"ai_plan",children:(0,a.jsx)(d.A,{options:q})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","sourceRoleIds"],label:"来源文件角色",children:(0,a.jsx)(d.A,{mode:"multiple",showSearch:!0,options:eo,tagRender:N,placeholder:"可选,限定从哪些文件角色规划章节"})})}),(0,a.jsx)(b.A,{xs:12,sm:6,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","minChapters"],label:"最少章节",children:(0,a.jsx)(f.A,{min:1,style:{width:"100%"}})})}),(0,a.jsx)(b.A,{xs:12,sm:6,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","maxChapters"],label:"最多章节",children:(0,a.jsx)(f.A,{min:1,style:{width:"100%"}})})}),(0,a.jsx)(b.A,{xs:12,sm:6,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","minWordsPerChapter"],label:"每章最低字数",children:(0,a.jsx)(f.A,{min:0,style:{width:"100%"}})})}),(0,a.jsx)(b.A,{xs:12,sm:6,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","titleStrategy"],label:"标题方式",initialValue:"ai_summary",children:(0,a.jsx)(d.A,{options:F})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","requiredFactIds"],label:"每章优先使用事实",children:(0,a.jsx)(d.A,{mode:"multiple",showSearch:!0,optionFilterProp:"label",options:ew,tagRender:N,placeholder:"可选"})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","requiredPromptRoleIds"],label:"每章提示词角色",children:(0,a.jsx)(d.A,{mode:"multiple",showSearch:!0,options:ed,tagRender:N,placeholder:"可选"})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","titleTemplate"],label:"标题模板",children:(0,a.jsx)(g.A,{placeholder:"例如:第{{index}}章 {{sourceTitle}}"})})}),(0,a.jsx)(b.A,{xs:24,sm:12,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","requiredFileRoleIds"],label:"每章必须参考文件角色",children:(0,a.jsx)(d.A,{mode:"multiple",showSearch:!0,options:eo,tagRender:N,placeholder:"可选"})})}),(0,a.jsx)(b.A,{xs:24,children:(0,a.jsx)(r.A.Item,{name:["dynamicChapterRule","generationHint"],label:"动态章节生成说明",children:(0,a.jsx)(g.A.TextArea,{autoSize:{minRows:2,maxRows:5},placeholder:"例如:请按招标文件目录生成章节,保留原始编号和标题层级。"})})})]})]})}})]})},{key:"gates",label:"".concat(W("specs.gates")," (").concat(ev,")"),children:(0,a.jsx)(r.A.List,{name:"gateRules",children:(e,l)=>{let{add:s,remove:i}=l;return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[e.map((e,l)=>(0,a.jsxs)(x.A,{size:"small",style:{border:"1px solid var(--colorBorderSecondary)",position:"relative"},children:[(0,a.jsx)(c.Ay,{danger:!0,size:"small",icon:(0,a.jsx)(C.A,{}),onClick:()=>i(e.name),style:{position:"absolute",top:8,right:8,zIndex:1}}),(0,a.jsx)(r.A.Item,{name:[e.name,"id"],hidden:!0,children:(0,a.jsx)(g.A,{})}),(0,a.jsxs)(y.A,{gutter:[12,8],align:"middle",children:[(0,a.jsx)(b.A,{xs:24,sm:6,children:(0,a.jsx)(r.A.Item,{name:[e.name,"name"],label:"名称",rules:[{required:!0}],style:{marginBottom:0},children:(0,a.jsx)(g.A,{placeholder:W("specs.gateName"),size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:6,children:(0,a.jsx)(r.A.Item,{name:[e.name,"type"],label:"类型",rules:[{required:!0}],style:{marginBottom:0},children:(0,a.jsx)(d.A,{options:ej,size:"small",onChange:e=>((e,l)=>{var s,a,i,n,t;let r=G.find(e=>e.id===l);if(!r)return;let o=[...null!=(t=E.getFieldValue("gateRules"))?t:[]];o[e]={...o[e],type:r.id,level:(null==(s=o[e])?void 0:s.level)||r.defaultLevel,name:(null==(a=o[e])?void 0:a.name)||r.name,evaluator:{...r.evaluator},target:(null==(i=o[e])?void 0:i.target)||r.evaluator.target||"",value:(null==(n=o[e])?void 0:n.value)||r.evaluator.value||""},E.setFieldValue("gateRules",o)})(l,e)})})}),(0,a.jsx)(b.A,{xs:12,sm:3,children:(0,a.jsx)(r.A.Item,{name:[e.name,"level"],label:"级别",style:{marginBottom:0},children:(0,a.jsx)(d.A,{options:T,size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:4,children:(0,a.jsx)(r.A.Item,{name:[e.name,"target"],label:"目标",style:{marginBottom:0},children:(0,a.jsx)(g.A,{placeholder:"章节/事实/角色",size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:5,children:(0,a.jsx)(r.A.Item,{name:[e.name,"value"],label:"值",style:{marginBottom:0},children:(0,a.jsx)(g.A,{placeholder:"关键词/正则/数值",size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:5,children:(0,a.jsx)(r.A.Item,{name:[e.name,"evaluator","subject"],label:"校验对象",rules:[{required:!0}],style:{marginBottom:0},children:(0,a.jsx)(d.A,{options:H,size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:6,children:(0,a.jsx)(r.A.Item,{name:[e.name,"evaluator","operator"],label:"校验方式",rules:[{required:!0}],style:{marginBottom:0},children:(0,a.jsx)(d.A,{options:D,size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:5,children:(0,a.jsx)(r.A.Item,{name:[e.name,"evaluator","target"],label:"执行目标",style:{marginBottom:0},children:(0,a.jsx)(g.A,{placeholder:"默认取目标",size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:5,children:(0,a.jsx)(r.A.Item,{name:[e.name,"evaluator","value"],label:"执行值",style:{marginBottom:0},children:(0,a.jsx)(g.A,{placeholder:"默认取值",size:"small"})})}),(0,a.jsx)(b.A,{xs:12,sm:3,children:(0,a.jsx)(r.A.Item,{name:[e.name,"evaluator","min"],label:"N",style:{marginBottom:0},children:(0,a.jsx)(f.A,{min:1,size:"small",style:{width:"100%"}})})})]})]},e.key)),(0,a.jsx)(c.Ay,{icon:(0,a.jsx)(w.A,{}),onClick:()=>s({id:"gate-".concat(Date.now()),type:"required_fact",level:"error",evaluator:{subject:"fact",operator:"exists"}}),children:W("specs.addGate")})]})}})}]})]})}),(0,a.jsx)(I.A,{title:(null==(e=G.find(e=>e.id===$))?void 0:e.builtIn)?"查看系统门禁类型":$?"编辑门禁类型":"新建门禁类型",open:Y,onOk:()=>{e_()},onCancel:()=>{Z(!1),ee(null)},okText:W("common.save"),cancelText:W("common.cancel"),okButtonProps:{disabled:!!(null==(l=G.find(e=>e.id===$))?void 0:l.builtIn)},children:(0,a.jsx)(r.A,{form:L,layout:"vertical",disabled:!!(null==(s=G.find(e=>e.id===$))?void 0:s.builtIn),children:(0,a.jsxs)(y.A,{gutter:12,children:[(0,a.jsx)(r.A.Item,{name:"id",hidden:!0,children:(0,a.jsx)(g.A,{})}),(0,a.jsx)(b.A,{span:12,children:(0,a.jsx)(r.A.Item,{name:"name",label:"类型名称",rules:[{required:!0}],children:(0,a.jsx)(g.A,{placeholder:"必须包含风险提示"})})}),(0,a.jsx)(b.A,{span:12,children:(0,a.jsx)(r.A.Item,{name:"description",label:"说明",children:(0,a.jsx)(g.A,{placeholder:"告诉用户这类门禁检查什么"})})}),(0,a.jsx)(b.A,{span:12,children:(0,a.jsx)(r.A.Item,{name:"defaultLevel",label:"默认级别",rules:[{required:!0}],children:(0,a.jsx)(d.A,{options:T})})}),(0,a.jsx)(b.A,{span:12,children:(0,a.jsx)(r.A.Item,{name:["evaluator","subject"],label:"校验对象",rules:[{required:!0}],children:(0,a.jsx)(d.A,{options:H})})}),(0,a.jsx)(b.A,{span:12,children:(0,a.jsx)(r.A.Item,{name:["evaluator","operator"],label:"校验方式",rules:[{required:!0}],children:(0,a.jsx)(d.A,{options:D})})}),(0,a.jsx)(b.A,{span:12,children:(0,a.jsx)(r.A.Item,{name:["evaluator","target"],label:"默认目标",children:(0,a.jsx)(g.A,{placeholder:"章节/事实/角色,可为空"})})}),(0,a.jsx)(b.A,{span:12,children:(0,a.jsx)(r.A.Item,{name:["evaluator","value"],label:"默认值",children:(0,a.jsx)(g.A,{placeholder:"关键词/正则,可为空"})})}),(0,a.jsx)(b.A,{span:12,children:(0,a.jsx)(r.A.Item,{name:["evaluator","min"],label:"默认 N",children:(0,a.jsx)(f.A,{min:1,style:{width:"100%"}})})})]})})})]})}},94773:(e,l,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/document-specs",function(){return s(16734)}])}},e=>{e.O(0,[433,787,576,195,455,938,265,636,593,792],()=>e(e.s=94773)),_N_E=e.O()}]);