@customize-agent/server 4.60.31 → 4.60.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +32 -29
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.json +1 -1
- package/.next/server/chunks/1243.js +1 -1
- package/.next/server/chunks/1936.js +8 -8
- package/.next/server/chunks/2328.js +1 -1
- package/.next/server/chunks/6822.js +1 -1
- package/.next/server/chunks/{4722.js → 7848.js} +13 -13
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/chunks/9666.js +51 -50
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/config/embedding/healthCheck.js +2 -1
- package/.next/server/pages/api/config/embedding.js +2 -1
- package/.next/server/pages/api/config/healthCheck.js +2 -1
- package/.next/server/pages/api/config/models.js +2 -1
- package/.next/server/pages/api/config/providers/[provider].js +2 -1
- package/.next/server/pages/api/config/providers.js +2 -1
- package/.next/server/pages/api/config/reset.js +3 -0
- package/.next/server/pages/api/config/reset.js.nft.json +1 -0
- package/.next/server/pages/api/config/web-access.js +2 -1
- package/.next/server/pages/api/documents/export.js +1 -1
- package/.next/server/pages/api/documents/generate/preview.js +1 -1
- package/.next/server/pages/api/documents/generate.js +1 -1
- package/.next/server/pages/api/documents/generated/[id]/repair/[rid]/confirm.js +1 -1
- package/.next/server/pages/api/health.js +1 -1
- package/.next/server/pages/api/kb/features.js +2 -1
- package/.next/server/pages/api/prompt/chat.js +3 -2
- package/.next/server/pages/api/system/reset.js +1 -1
- package/.next/server/pages/canvas/[id].html +1 -1
- package/.next/server/pages/canvas.html +1 -1
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/jobs.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge/source-preview.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages/skills/[id]/edit.html +1 -1
- package/.next/server/pages/skills/[id]/edit.js.nft.json +1 -1
- package/.next/server/pages/skills/[id].html +1 -1
- package/.next/server/pages/skills/[id].js.nft.json +1 -1
- package/.next/server/pages/skills/new.html +1 -1
- package/.next/server/pages/skills/new.js.nft.json +1 -1
- package/.next/server/pages/skills.html +1 -1
- package/.next/server/pages/system/logs.html +1 -1
- package/.next/server/pages-manifest.json +37 -36
- package/.next/static/279fd5e41d98af82751903f8ea0267af84a75c794a35915a6e294777024190f8/_buildManifest.js +1 -0
- package/.next/static/chunks/1141-d420a7685bc3623c.js +1 -0
- package/.next/static/chunks/2864-b040f2bffa08c139.js +6 -0
- package/.next/static/chunks/3456-70bb03a39473f693.js +1 -0
- package/.next/static/chunks/3980-73841c40d55ddfa1.js +1 -0
- package/.next/static/chunks/4337-a670a1a94ab505d9.js +1 -0
- package/.next/static/chunks/6506-ac0ba7338cc84b7d.js +1 -0
- package/.next/static/chunks/6748-07b0b05bf03c72f0.js +1 -0
- package/.next/static/chunks/9937-e4b2deadd24e3962.js +1 -0
- package/.next/static/chunks/pages/{_app-73e5b40b24a7fe7d.js → _app-646f249ed0cc363f.js} +13 -13
- package/.next/static/chunks/pages/canvas/{[id]-45da860b862e0743.js → [id]-18865f1b7e3a4696.js} +1 -1
- package/.next/static/chunks/pages/canvas-47a86f1679c159af.js +1 -0
- package/.next/static/chunks/pages/knowledge/file-detail-3d1ffd43f4f0e47b.js +1 -0
- package/.next/static/chunks/pages/knowledge/{source-preview-40ff4936b832787e.js → source-preview-24936b9a746ed07f.js} +1 -1
- package/.next/static/chunks/pages/models-e679c45d71631078.js +1 -0
- package/.next/static/chunks/pages/skills/[id]/{edit-35892def57c4975f.js → edit-99e616d5019e80b1.js} +1 -1
- package/.next/static/chunks/pages/skills/[id]-71f696be252bbf0d.js +1 -0
- package/.next/static/chunks/pages/skills/{new-a279e6ca2f7aded7.js → new-00886ea4c676f927.js} +1 -1
- package/.next/static/css/808682ca3875966b.css +1 -0
- package/messages/en-US.json +11 -0
- package/messages/zh-CN.json +11 -0
- package/package.json +3 -3
- package/scripts/brand-moon-fit.cjs +0 -47
- package/scripts/generate-brand-assets.cjs +0 -41
- package/scripts/half-built-scan.allow.json +16 -6
- package/scripts/half-built-scan.baseline.json +2 -17
- package/scripts/half-built-scan.mjs +1 -84
- package/.next/server/chunks/6021.js +0 -1
- package/.next/static/0fdab21c22b65a3042c22ee4ac8e49fbfd22e365df64d5e9b709ccb05aecf02e/_buildManifest.js +0 -1
- package/.next/static/chunks/2378-c6d25abe02815666.js +0 -1
- package/.next/static/chunks/2864-67ba808c5092c2f9.js +0 -6
- package/.next/static/chunks/3456-8b609f8475ae5030.js +0 -1
- package/.next/static/chunks/5046-abead1022185a99a.js +0 -1
- package/.next/static/chunks/5257-915621e439b56580.js +0 -1
- package/.next/static/chunks/6505-012e90937e1e8dae.js +0 -1
- package/.next/static/chunks/6748-04b5429330e1451e.js +0 -1
- package/.next/static/chunks/7955-3a7ee8cda4f857b9.js +0 -1
- package/.next/static/chunks/pages/canvas-a15773d02c97b7a6.js +0 -1
- package/.next/static/chunks/pages/knowledge/file-detail-5859f0c25af34ffe.js +0 -1
- package/.next/static/chunks/pages/models-0aaff5bfadc7b62f.js +0 -1
- package/.next/static/chunks/pages/skills/[id]-19c352e150e05c27.js +0 -1
- package/.next/static/css/837ac5def44e2eba.css +0 -1
- package/scripts/capture-baseline.mjs +0 -353
- /package/.next/static/{0fdab21c22b65a3042c22ee4ac8e49fbfd22e365df64d5e9b709ccb05aecf02e → 279fd5e41d98af82751903f8ea0267af84a75c794a35915a6e294777024190f8}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9937],{10218:(e,t,l)=>{l.d(t,{A:()=>f,H:()=>u});var s=l(97109),r=l(4932),a=l(42644);let i=e=>"object"==typeof e&&null!=e&&1===e.nodeType,n=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,o=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){let l=getComputedStyle(e,null);return n(l.overflowY,t)||n(l.overflowX,t)||(e=>{let t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e);return!!t&&(t.clientHeight<e.scrollHeight||t.clientWidth<e.scrollWidth)})(e)}return!1},c=(e,t,l,s,r,a,i,n)=>a<e&&i>t||a>e&&i<t?0:a<=e&&n<=l||i>=t&&n>=l?a-e-s:i>t&&n<l||a<e&&n>l?i-t+r:0,d=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},m=(e,t)=>{var l,s,r,a;if("undefined"==typeof document)return[];let{scrollMode:n,block:m,inline:h,boundary:p,skipOverflowHiddenElements:u}=t,x="function"==typeof p?p:e=>e!==p;if(!i(e))throw TypeError("Invalid target");let f=document.scrollingElement||document.documentElement,g=[],j=e;for(;i(j)&&x(j);){if((j=d(j))===f){g.push(j);break}null!=j&&j===document.body&&o(j)&&!o(document.documentElement)||null!=j&&o(j,u)&&g.push(j)}let b=null!=(s=null==(l=window.visualViewport)?void 0:l.width)?s:innerWidth,v=null!=(a=null==(r=window.visualViewport)?void 0:r.height)?a:innerHeight,{scrollX:A,scrollY:y}=window,{height:k,width:N,top:w,right:I,bottom:C,left:S}=e.getBoundingClientRect(),{top:F,right:R,bottom:T,left:H}=(e=>{let t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e),M="start"===m||"nearest"===m?w-F:"end"===m?C+T:w+k/2-F+T,_="center"===h?S+N/2-H+R:"end"===h?I+R:S-H,q=[];for(let e=0;e<g.length;e++){let t=g[e],{height:l,width:s,top:r,right:a,bottom:i,left:d}=t.getBoundingClientRect();if("if-needed"===n&&w>=0&&S>=0&&C<=v&&I<=b&&(t===f&&!o(t)||w>=r&&C<=i&&S>=d&&I<=a))break;let p=getComputedStyle(t),u=parseInt(p.borderLeftWidth,10),x=parseInt(p.borderTopWidth,10),j=parseInt(p.borderRightWidth,10),F=parseInt(p.borderBottomWidth,10),R=0,T=0,H="offsetWidth"in t?t.offsetWidth-t.clientWidth-u-j:0,P="offsetHeight"in t?t.offsetHeight-t.clientHeight-x-F:0,W="offsetWidth"in t?0===t.offsetWidth?0:s/t.offsetWidth:0,L="offsetHeight"in t?0===t.offsetHeight?0:l/t.offsetHeight:0;if(f===t)R="start"===m?M:"end"===m?M-v:"nearest"===m?c(y,y+v,v,x,F,y+M,y+M+k,k):M-v/2,T="start"===h?_:"center"===h?_-b/2:"end"===h?_-b:c(A,A+b,b,u,j,A+_,A+_+N,N),R=Math.max(0,R+y),T=Math.max(0,T+A);else{R="start"===m?M-r-x:"end"===m?M-i+F+P:"nearest"===m?c(r,i,l,x,F+P,M,M+k,k):M-(r+l/2)+P/2,T="start"===h?_-d-u:"center"===h?_-(d+s/2)+H/2:"end"===h?_-a+j+H:c(d,a,s,u,j+H,_,_+N,N);let{scrollLeft:e,scrollTop:n}=t;R=0===L?0:Math.max(0,Math.min(n+R/L,t.scrollHeight-l/L+P)),T=0===W?0:Math.max(0,Math.min(e+T/W,t.scrollWidth-s/W+H)),M+=n-R,_+=e-T}q.push({el:t,top:R,left:T})}return q};var h=l(26047),p=l(44624);function u(e){return(0,p.$r)(e).join("_")}function x(e,t){let l=t.getFieldInstance(e),s=(0,a.rb)(l);if(s)return s;let r=(0,p.kV)((0,p.$r)(e),t.__INTERNAL__.name);if(r)return document.getElementById(r)}function f(e){let[t]=(0,r.mN)(),l=s.useRef({}),a=s.useMemo(()=>e??{...t,__INTERNAL__:{itemRef:e=>t=>{let s=u(e);t?l.current[s]=t:delete l.current[s]}},scrollToField:(e,t={})=>{let{focus:l,...s}=t,r=x(e,a);r&&(!function(e,t){if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let l=(e=>{let t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(m(e,t));let s="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:r,top:a,left:i}of m(e,!1===t?{block:"end",inline:"nearest"}:t===Object(t)&&0!==Object.keys(t).length?t:{block:"start",inline:"nearest"})){let e=a-l.top+l.bottom,t=i-l.left+l.right;r.scroll({top:e,left:t,behavior:s})}}(r,{scrollMode:"if-needed",block:"nearest",...s}),l&&a.focusField(e))},focusField:e=>{let t=a.getFieldInstance(e);(0,h.Tn)(t?.focus)?t.focus():x(e,a)?.focus?.()},getFieldInstance:e=>{let t=u(e);return l.current[t]}},[e,t]);return[a]}},15437:(e,t,l)=>{l.d(t,{A:()=>s});let s=e=>{let{componentCls:t,antCls:l,motionDurationMid:s,motionEaseInOut:r}=e;return{[t]:{[`${l}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`${["height","opacity"].map(e=>`${e} ${s} ${r}`).join(", ")} !important`}},[`${l}-motion-collapse`]:{overflow:"hidden",transition:`${["height","opacity"].map(e=>`${e} ${s} ${r}`).join(", ")} !important`}}}}},44624:(e,t,l)=>{l.d(t,{$r:()=>r,BS:()=>i,kV:()=>a});let s=["parentNode"];function r(e){return void 0===e||!1===e?[]:Array.isArray(e)?e:[e]}function a(e,t){if(!e.length)return;let l=e.join("_");return t?`${t}_${l}`:s.includes(l)?`form_item_${l}`:l}function i(e,t,l,s,r,a){let i=s;return void 0!==a?i=a:l.validating?i="validating":e.length?i="error":t.length?i="warning":(l.touched||r&&l.validated)&&(i="success"),i}},48476:(e,t,l)=>{l.d(t,{q:()=>M});var s=l(65321),r=l(97109),a=l(86109),i=l(48399),n=l(17807),o=l(63455),c=l(88762),d=l(85493),m=l(84253),h=l(85114),p=l(33442),u=l(99650),x=l(51307),f=l(88483);function g(){return(g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var s in l)Object.prototype.hasOwnProperty.call(l,s)&&(e[s]=l[s])}return e}).apply(this,arguments)}let j=r.forwardRef((e,t)=>r.createElement(f.A,g({},e,{ref:t,icon:x.A})));var b=l(43220),v=l.n(b),A=l(85979),y=l(7576),k=l(44534),N=l(57271),w=l(54746),I=l(39507),C=l(14524);let{Text:S}=i.A;function F(e){var t,l;let{form:r,options:a,idLocked:i}=e,n=(0,I.Vr)(),c=a.chapterDomains.map(e=>({value:e.value,label:e.label,title:e.note})),d=a.projectTypes.map(e=>({value:e.value,label:e.label})),m=a.factSources.map(e=>({value:e.value,label:e.label})),p=a.processCards.map(e=>({value:e.value,label:e.label}));return(0,s.jsxs)(o.A,{form:r,layout:"vertical",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-4 items-start",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)(C.PZ,{title:"基本信息",description:"技能的身份与启停;ID 是落盘文件名,新建后不再改。",children:[(0,s.jsx)(o.A.Item,{name:"id",label:"技能 ID",rules:[{required:!0,message:"技能 ID 必填"}],extra:"使用小写字母、数字和连字符,以字母开头。",children:(0,s.jsx)(y.A,{disabled:i,placeholder:"例如 c02-major-content-building"})}),(0,s.jsx)(o.A.Item,{name:"enabled",label:"启用",valuePropName:"checked",extra:"停用后本条技能不参与本次生成的技能匹配。",className:"!mb-0",children:(0,s.jsx)(k.A,{checkedChildren:"启用",unCheckedChildren:"停用"})})]}),(0,s.jsxs)(C.PZ,{title:"匹配条件",description:"决定这条技能在什么章域、什么工程类型、什么样的章节标题下被选用。",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-x-4",children:[(0,s.jsx)(o.A.Item,{name:["match","chapterDomain"],label:"章域",rules:[{required:!0,message:"章域必选"}],extra:"本章所属的专业内容范围。",children:(0,s.jsx)(N.A,{options:c,placeholder:"选择本章所属的内容域"})}),(0,s.jsx)(o.A.Item,{name:["match","projectTypes"],label:"适用工程类型",extra:"留空表示不限定工程类型。",children:(0,s.jsx)(N.A,{mode:"multiple",allowClear:!0,options:d,placeholder:"全类型"})})]}),(0,s.jsx)(o.A.Item,{name:["match","sectionKeywords"],label:"小节标题关键词",extra:"用于匹配相关小节标题,可输入多个关键词。",children:(0,s.jsx)(N.A,{mode:"tags",tokenSeparators:[",",","," "],placeholder:"输入后回车,例如:主要施工 / 分部分项"})}),(0,s.jsx)(o.A.Item,{name:["match","sectionRegex"],label:"小节标题匹配表达式(可选)",extra:"填写正则表达式文本;复杂或不安全的表达式会被校验拒绝。",className:"!mb-0",children:(0,s.jsx)(y.A,{placeholder:"例如 交通导改|导行|管线保护"})})]}),(0,s.jsx)(C.PZ,{title:"禁写项",description:"这条技能明确要求避免的内容或表达;没有就留空。",children:(0,s.jsx)(o.A.Item,{name:"forbidden",extra:"填错一条会挡住真实存在的内容,宁可留空。",className:"!mb-0",children:(0,s.jsx)(N.A,{mode:"tags",tokenSeparators:[",",","],placeholder:"输入后回车,例如:管道闭水试验"})})}),(0,s.jsx)(C.PZ,{title:"相关专业主题",description:"本条技能提供的专业内容主题;主题下的小标签写这一主题要覆盖的工序、条件、控制点或验收要求。",children:(0,s.jsx)(o.A.List,{name:"structure",children:(e,t)=>{let{add:l,remove:r}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[e.map(e=>{let{key:t,name:l,...a}=e;return(0,s.jsxs)(C.jT,{onRemove:()=>r(l),columns:"md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]",children:[(0,s.jsx)(o.A.Item,{...a,name:[l,"title"],rules:[{required:!0,message:"专业主题标题必填"}],className:"!mb-0",children:(0,s.jsx)(y.A,{placeholder:"专业主题标题"})}),(0,s.jsx)(o.A.Item,{...a,name:[l,"required"],extra:"按实际对象选用",className:"!mb-0",children:(0,s.jsx)(N.A,{mode:"tags",className:"w-full",placeholder:"工序、适用条件、控制要点或验收要求"})})]},t)}),(0,s.jsxs)(h.Ay,{type:"dashed",block:!0,icon:(0,s.jsx)(w.A,{}),onClick:()=>l({required:[]}),children:[n("common.add"),"专业主题"]})]})}})})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)(C.PZ,{title:"所需项目资料",description:"本条技能要求本次任务先查证的项目事实(事实键来自服务端闭集);标为必需而查不到时会被上游拦下。",children:(0,s.jsx)(o.A.List,{name:"requires",children:(e,t)=>{let{add:l,remove:r}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[e.map(e=>{let{key:t,name:l,...a}=e;return(0,s.jsxs)(C.jT,{onRemove:()=>r(l),columns:"md:grid-cols-[minmax(0,2fr)_minmax(0,1fr)_auto]",children:[(0,s.jsx)(o.A.Item,{...a,name:[l,"key"],rules:[{required:!0,message:"事实键必填"}],className:"!mb-0",children:(0,s.jsx)(y.A,{placeholder:"事实键,如 boq.divisions"})}),(0,s.jsx)(o.A.Item,{...a,name:[l,"source"],rules:[{required:!0,message:"来源必选"}],className:"!mb-0",children:(0,s.jsx)(N.A,{options:m,placeholder:"事实来源"})}),(0,s.jsx)(o.A.Item,{...a,name:[l,"required"],valuePropName:"checked",className:"!mb-0",children:(0,s.jsx)(k.A,{checkedChildren:"必需",unCheckedChildren:"可选"})})]},t)}),(0,s.jsxs)(h.Ay,{type:"dashed",block:!0,icon:(0,s.jsx)(w.A,{}),onClick:()=>l({source:"boq",required:!1}),children:[n("common.add"),"事实需求"]})]})}})}),(0,s.jsxs)(C.PZ,{title:"文档业务提示",description:"给本次规划的建议:文档名称、本章职责与资料检索提示。实际章节职责由本次规划确定,专业主题在上面的卡片里单独填写。",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-x-4",children:[(0,s.jsx)(o.A.Item,{name:"outputTitle",label:"文档名称建议",extra:"提供文档名称建议,实际名称由本次生成配置确定。",children:(0,s.jsx)(y.A,{placeholder:"留空 = 本技能不对文档名称表态"})}),(0,s.jsx)(o.A.Item,{name:["chapterChecklist","purpose"],label:"章级内容提示",extra:"说明本章关注的专业内容。",children:(0,s.jsx)(y.A,{placeholder:"例如:说明本工程的安全管理目标与危大工程清单"})})]}),(0,s.jsxs)("div",{className:"mt-1 mb-3 border-t border-[var(--colorBorderSecondary)] pt-3",children:[(0,s.jsx)(S,{strong:!0,className:"text-sm",children:"章级清单"}),(0,s.jsx)(S,{type:"secondary",className:"text-xs ml-2",children:"章级候选内容与资料检索提示;实际职责由本次规划确定。"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-x-4",children:[(0,s.jsx)(o.A.Item,{name:["chapterChecklist","queries"],label:"资料检索词",extra:"帮助定位相关资料。",children:(0,s.jsx)(N.A,{mode:"tags",tokenSeparators:[",",","],className:"w-full",placeholder:"回车添加"})}),(0,s.jsx)(o.A.Item,{name:["chapterChecklist","requiredFacts"],label:"待核事实提示",extra:"提示应查证的项目事实。",children:(0,s.jsx)(N.A,{mode:"tags",tokenSeparators:[",",","],className:"w-full",placeholder:"回车添加"})}),(0,s.jsx)(o.A.Item,{name:["chapterChecklist","tableSections"],label:"成表内容建议",extra:"提示适合用表格表达的内容。",children:(0,s.jsx)(N.A,{mode:"tags",tokenSeparators:[",",","],className:"w-full",placeholder:"回车添加"})}),(0,s.jsx)(o.A.Item,{name:["chapterChecklist","tableRequirements"],label:"表格表达提示",extra:"提示表格列项与表达方式。",children:(0,s.jsx)(N.A,{mode:"tags",tokenSeparators:[",",","],className:"w-full",placeholder:"回车添加"})})]}),(0,s.jsx)(o.A.Item,{name:["chapterChecklist","pinnedEvidenceFilePaths"],label:"相关证据文件",extra:"填写需要关注的文件名;实际读取范围和来源资格仍由本次任务核对。",className:"!mb-0",children:(0,s.jsx)(N.A,{mode:"tags",tokenSeparators:[",",","],placeholder:"回车添加文件名"})}),(null!=(l=null==(t=a.absentCarriers)?void 0:t.length)?l:0)>0&&(0,s.jsxs)("div",{className:"mt-4 rounded-xl border border-[var(--borderColor)] bg-[var(--colorFillAlter)] px-4 py-3",children:[(0,s.jsx)("div",{className:"text-xs font-semibold mb-1",children:"不在这里配置的事项"}),(0,s.jsx)("div",{className:"text-xs text-[var(--colorTextSecondary)]",children:a.absentCarriers.map(e=>(0,s.jsxs)("div",{children:[e.label,":","formatting"===e.id?"排版要求由招标资料与导出设置管理,技能编辑器提供专业内容。":e.note]},e.id))})]})]}),(0,s.jsx)(C.PZ,{title:"可加载工艺知识",description:"选用后,这些工艺卡会作为专业参考进入本次写作;引用是否存在由保存前的校验核对。",children:(0,s.jsx)(o.A.List,{name:"knowledge",children:(e,t)=>{let{add:l,remove:r}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[e.map(e=>{let{key:t,name:l,...a}=e;return(0,s.jsxs)(C.jT,{onRemove:()=>r(l),columns:"md:grid-cols-[minmax(0,1fr)]",children:[(0,s.jsx)(o.A.Item,{...a,name:[l,"ids"],rules:[{required:!0,type:"array",min:1,message:"请选择实际工艺卡"}],className:"!mb-0",children:(0,s.jsx)(N.A,{mode:"multiple",showSearch:!0,optionFilterProp:"label",options:p,placeholder:"按工艺卡名称搜索"})}),(0,s.jsx)(o.A.Item,{...a,name:[l,"note"],className:"!mb-0 mt-2",children:(0,s.jsx)(y.A,{placeholder:"适用条件说明(可选):什么情况下加载这些工艺卡"})})]},t)}),(0,s.jsxs)(h.Ay,{type:"dashed",block:!0,icon:(0,s.jsx)(w.A,{}),onClick:()=>l({kind:"processCard",ids:[]}),children:[n("common.add"),"工艺知识"]})]})}})}),(0,s.jsx)(C.PZ,{title:"专业写作核对提示",description:"写清适用对象、方法和检验注意。提示供作者按具体任务选用,不构成评分、字数或参数数量要求。",children:(0,s.jsx)(o.A.List,{name:"acceptance",children:(e,t)=>{let{add:l,remove:r}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[e.map(e=>{let{key:t,name:l,...a}=e;return(0,s.jsx)(C.jT,{onRemove:()=>r(l),columns:"md:grid-cols-[minmax(0,1fr)]",children:(0,s.jsx)(o.A.Item,{...a,name:[l,"checklistItems"],rules:[{required:!0,type:"array",min:1,message:"请输入专业注意事项"}],className:"!mb-0",children:(0,s.jsx)(N.A,{mode:"tags",className:"w-full",placeholder:"例如:保留实际检验对象、触发条件和转序要求"})})},t)}),(0,s.jsxs)(h.Ay,{type:"dashed",block:!0,icon:(0,s.jsx)(w.A,{}),onClick:()=>l({kind:"llmChecklist",checklistItems:[]}),children:[n("common.add"),"专业提示"]})]})}})})]})]}),(0,s.jsx)("div",{className:"mt-4",children:(0,s.jsx)(C.PZ,{title:"资料与采用边界",description:"以下边界由软件统一执行,技能不能扩大或豁免。",children:(0,s.jsx)("div",{className:"flex flex-col gap-2",children:a.isolationRules.map(e=>(0,s.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-baseline gap-1 sm:gap-2",children:[(0,s.jsx)(S,{className:"text-sm shrink-0",children:e.label}),(0,s.jsx)(S,{type:"secondary",className:"text-xs",children:e.note})]},e.id))})})})]})}var R=l(33061),T=l(35071);let{Text:H}=i.A;function M(e){let{mode:t,skillId:l}=e,{message:i}=n.A.useApp(),x=(0,a.useRouter)(),[f]=o.A.useForm(),g=(0,R.G)(),[b,y]=(0,r.useState)(!1),[k,N]=(0,r.useState)([]),w=(0,r.useMemo)(()=>"edit"===t&&l?g.skills.find(e=>e.id===l):void 0,[t,l,g.skills]),I="edit"===t&&!l,C="edit"===t&&!g.loading&&!g.failed&&!w&&void 0!==g.options,[S,M]=(0,r.useState)(!1);(0,r.useEffect)(()=>{if(S||g.loading||!g.options)return;if("create"===t){f.resetFields(),f.setFieldsValue((0,T.Ie)()),M(!0);return}if(!w)return;let e=w.promptBindings;Array.isArray(e)&&e.length>0&&i.warning("「".concat(w.id,"」里还留着 ").concat(e.length," 条已退休的提示词绑定(promptBindings):该字段已随角色配置页删除,本次保存会把它从技能里移除。")),f.resetFields(),f.setFieldsValue((0,T.m6)(w)),M(!0)},[S,g.loading,g.options,t,w,f,i]);let _=async()=>{let e;if(!g.options)return;try{e=await f.validateFields()}catch(e){return}let t=(0,T.RW)(e,g.options.contractVersion,null==w?void 0:w.examples);y(!0),N([]);try{var l,s,r;let a=await (0,T.SS)("/api/skills/validate",{method:"POST",headers:T.eT,body:JSON.stringify(t)});if(!a.ok){i.error("校验请求失败:".concat(a.message)),N(a.issues);return}if(!a.data.ok){N(a.data.errors),i.error("校验未通过:".concat(a.data.errors.length," 处问题,请核对技能字段和工艺卡引用。"));return}let n=w?await (0,T.SS)("/api/skills/".concat(encodeURIComponent(w.id)),{method:"PUT",headers:T.eT,body:JSON.stringify(t)}):await (0,T.SS)("/api/skills",{method:"POST",headers:T.eT,body:JSON.stringify(t)});if(!n.ok){N(n.issues),i.error("保存失败:".concat(n.message));return}(null==(l=n.data.warnings)?void 0:l.length)&&i.warning("已保存,但有 ".concat(n.data.warnings.length," 条提示:").concat(n.data.warnings.map(e=>e.message).join(";"))),i.success("已保存"),await x.push("/skills/".concat(encodeURIComponent(null!=(r=null==(s=n.data.skill)?void 0:s.id)?r:e.id)))}finally{y(!1)}};return I||g.loading?(0,s.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,s.jsx)(c.A,{active:!0,title:!0,paragraph:{rows:2}}),(0,s.jsx)(c.A,{active:!0,paragraph:{rows:12}})]}):g.failed?(0,s.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,s.jsx)(A.k,{backHref:"/skills",backLabel:"返回技能库",title:"create"===t?"新建技能":"编辑技能"}),(0,s.jsx)(d.A,{type:"error",showIcon:!0,message:"技能库读取失败",description:"".concat(g.failed,';这不是"技能不存在",请核对服务端状态后重试。')})]}):C?(0,s.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,s.jsx)(A.k,{backHref:"/skills",backLabel:"返回技能库",title:"编辑技能"}),(0,s.jsx)(m.A,{description:"技能库里没有「".concat(l,"」这条技能(可能已被删除或改名)"),children:(0,s.jsx)(v(),{href:"/skills",children:(0,s.jsx)(h.Ay,{type:"primary",children:"返回技能库"})})})]}):g.options?(null==w?void 0:w.builtIn)?(0,s.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,s.jsx)(A.k,{backHref:"/skills",backLabel:"返回技能库",title:"编辑技能 \xb7 ".concat(w.displayName),description:"内置技能随应用版本更新,不能在这里修改。",extra:(0,s.jsx)(v(),{href:"/skills/".concat(encodeURIComponent(w.id)),children:(0,s.jsx)(h.Ay,{icon:(0,s.jsx)(u.A,{}),children:"查看预览"})})}),(0,s.jsx)(d.A,{type:"info",showIcon:!0,message:"内置技能",description:T.F}),(0,s.jsx)("div",{children:(0,s.jsx)(v(),{href:"/skills/new",children:(0,s.jsx)(h.Ay,{type:"primary",children:"新建用户技能"})})})]}):(0,s.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,s.jsx)(A.k,{backHref:"/skills",backLabel:"返回技能库",title:w?"编辑技能 \xb7 ".concat(w.displayName):"新建技能",description:w?"改动会在保存前做一次字段与工艺卡引用校验,通过后写入技能文件。":"技能提供专业主题、资料需求、工艺知识和写作核对提示;保存前同样会做引用校验。",extra:(0,s.jsxs)(s.Fragment,{children:[w?(0,s.jsx)(v(),{href:"/skills/".concat(encodeURIComponent(w.id)),children:(0,s.jsx)(h.Ay,{children:"放弃改动并返回预览"})}):(0,s.jsx)(v(),{href:"/skills",children:(0,s.jsx)(h.Ay,{children:"取消"})}),(0,s.jsxs)(p.A,{size:4,children:[(0,s.jsx)(H,{type:"secondary",className:"text-xs",children:"保存后自动进入预览"}),(0,s.jsx)(h.Ay,{type:"primary",icon:(0,s.jsx)(j,{}),loading:b,onClick:()=>{_()},children:"保存"})]})]})}),(null==w?void 0:w.examples)&&(0,s.jsx)(d.A,{type:"info",showIcon:!0,message:"该技能带表达示例",description:"示例供理解专业表达,不能作为本项目事实;本编辑器不修改示例,保存时原样保留。"}),k.length>0&&(0,s.jsx)(d.A,{type:"error",showIcon:!0,message:"校验未通过:".concat(k.length," 处"),description:(0,s.jsx)("div",{className:"text-xs",children:k.map((e,t)=>{var l;return(0,s.jsxs)("div",{children:[(0,s.jsx)(H,{code:!0,children:e.path||"(root)"})," ",e.message]},"".concat(null!=(l=e.path)?l:"root","-").concat(t))})})}),(0,s.jsx)(F,{form:f,options:g.options,idLocked:!!w})]}):null}},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"}}}]);
|