var ie=Object.defineProperty,ue=Object.defineProperties;var re=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable;var Z=(m,f,p)=>f in m?ie(m,f,{enumerable:!0,configurable:!0,writable:!0,value:p}):m[f]=p,O=(m,f)=>{for(var p in f||(f={}))G.call(f,p)&&Z(m,p,f[p]);if(N)for(var p of N(f))F.call(f,p)&&Z(m,p,f[p]);return m},R=(m,f)=>ue(m,re(f));var V=(m,f)=>{var p={};for(var d in m)G.call(m,d)&&f.indexOf(d)<0&&(p[d]=m[d]);if(m!=null&&N)for(var d of N(m))f.indexOf(d)<0&&F.call(m,d)&&(p[d]=m[d]);return p};var D=(m,f,p)=>new Promise((d,P)=>{var I=n=>{try{_(p.next(n))}catch(c){P(c)}},B=n=>{try{_(p.throw(n))}catch(c){P(c)}},_=n=>n.done?d(n.value):Promise.resolve(n.value).then(I,B);_((p=p.apply(m,f)).next())});import{d as de,ah as k,aC as y,as as g,aF as t,au as C,k as l,r as pe,G as s,ag as H,f as S,u as me}from"./vue-vendor-C7Zq48Yl.js";import"./index-Du0A3ksf.js";import{M as ve}from"./BasicModal-0sAdFEk_.js";import{ak as fe,u as ye,d as ge}from"./index-BI6CMai0.js";import{queryById as J,saveTools as ke}from"./AiragMcp.api-CieQuCEg.js";import"./ModalHeader-keHdAHWH.js";import"./antd-vue-vendor-BPnV8VqP.js";import"./useTimeout-DDl4l82I.js";import"./vxe-table-vendor-B88kchpX.js";import"./index-DeEq83Ov.js";import"./useWindowSizeFn-PRZSD86C.js";import"./index-pxs5MULf.js";import"./index-BgYCgfME.js";import"./index-f8O7TghW.js";import"./useIntersectionObserver-BMxdTqP3.js";const _e={class:"modal"},ce={class:"tool-edit-content"},we={class:"section"},Ce={class:"section"},be={class:"section-header"},Ie={class:"section"},Ue={class:"section-header"},he=de({__name:"PluginToolEditModal",emits:["success","register"],setup(m,{emit:f}){const p=f,{createMessage:d}=ye(),P=S(!1),I=S(void 0),B=S(!1),_=S(-1),n=pe({name:"",description:"",path:"",method:"GET"}),c=S([]),q=S([]),L=[{title:"参数名称",key:"name",width:150},{title:"参数描述",key:"description",width:200},{title:"参数类型",key:"type",width:120},{title:"传入方式",key:"location",width:150},{title:"是否必须",key:"required",width:100},{title:"默认值",key:"defaultValue",width:150},{title:"操作",key:"action",width:100}],K=[{title:"参数名称",key:"name",width:200},{title:"参数描述",key:"description",width:200},{title:"参数类型",key:"type",width:150},{title:"操作",key:"action",width:100}];let z=0;const[Q,{closeModal:M}]=fe(a=>D(null,null,function*(){if(I.value=a==null?void 0:a.pluginId,B.value=!!(a!=null&&a.tool),n.name="",n.description="",n.path="",n.method="GET",c.value=[],q.value=[],_.value=-1,a!=null&&a.tool&&(n.name=a.tool.name||"",n.description=a.tool.description||"",n.path=a.tool.path||"",n.method=a.tool.method||"GET",c.value=(a.tool.parameters||[]).map(e=>R(O({},e),{tempId:`req_${z++}`,required:e.required!==void 0?e.required:!1})),q.value=(a.tool.responses||[]).map(e=>R(O({},e),{tempId:`resp_${z++}`})),I.value)){const e=yield J(I.value),o=e.result||e;if(o.tools)try{const b=typeof o.tools=="string"?JSON.parse(o.tools):o.tools;_.value=b.findIndex(U=>U.name===a.tool.name)}catch(b){_.value=-1}}}));function W(a){a.name&&!/^[a-zA-Z0-9_]+$/.test(a.name)&&(d.warning("参数名称只能包含字母、数字和下划线"),a.name=a.name.replace(/[^a-zA-Z0-9_]/g,""))}function X(a){if(!a.name)return;const e=a.type,o=a.name;e==="Object"||e==="Array"?/^[a-zA-Z0-9_.\[\]]+$/.test(o)||(d.warning("参数名称只能包含字母、数字、下划线、点和中括号"),a.name=o.replace(/[^a-zA-Z0-9_.\[\]]/g,"")):/^[a-zA-Z0-9_]+$/.test(o)||(d.warning("非Object/Array类型参数名称只能包含字母、数字和下划线"),a.name=o.replace(/[^a-zA-Z0-9_]/g,""))}function Y(a){a.type!=="Object"&&a.type!=="Array"&&a.name&&/[.\[\]]/.test(a.name)&&(d.warning("非Object/Array类型不支持使用点号和中括号"),a.name=a.name.replace(/[.\[\]]/g,""))}function Ae(a){}function ee(){c.value.push({tempId:`req_${z++}`,name:"",description:"",type:"String",location:"Body",required:!1,defaultValue:""})}function te(a){c.value.splice(a,1)}function ae(){q.value.push({tempId:`resp_${z++}`,name:"",description:"",type:"String"})}function le(a){q.value.splice(a,1)}function ne(){return D(this,null,function*(){try{if(P.value=!0,!n.name||!n.description||!n.path||!n.method){d.warning("请填写完整的工具基本信息");return}if(!/^[a-zA-Z0-9_-]+$/.test(n.name)){d.warning("工具名称只能包含字母、数字、下划线和中划线");return}if(!I.value){d.error("插件ID不存在");return}const a=yield J(I.value),e=a.result||a;let o=[];if(e.tools)try{const w=typeof e.tools=="string"?JSON.parse(e.tools):e.tools;Array.isArray(w)?o=[...w]:o=[]}catch(w){o=[]}Array.isArray(o)||(o=[]);const b=c.value.map(w=>{const A=w,{tempId:x}=A;return V(A,["tempId"])}),U=q.value.map(w=>{const A=w,{tempId:x}=A;return V(A,["tempId"])}),i={name:n.name,description:n.description,path:n.path,method:n.method,enabled:!0,parameters:b,responses:U};if(B.value&&_.value>=0&&_.valuex.name===n.name)){d.error("工具名称已存在,请使用不同的名称");return}o.push(i)}const T=JSON.stringify(o),E=yield ke(I.value,T);E.success?(d.success("保存成功"),p("success"),M()):d.error(E.message||"保存失败")}finally{P.value=!1}})}function oe(){M()}function se(){n.path&&!n.path.startsWith("/")&&(n.path="/"+n.path)}return(a,e)=>{const o=k("a-input"),b=k("a-form-item"),U=k("a-col"),i=k("a-select-option"),T=k("a-select"),E=k("a-row"),w=k("a-textarea"),x=k("a-form"),h=k("a-button"),A=k("a-checkbox"),j=k("a-table");return g(),y(ve,{destroyOnClose:"",onRegister:me(Q),canFullscreen:!1,width:"1400px",title:B.value?"编辑工具":"新增工具",wrapClassName:"plugin-tool-edit-modal"},{footer:t(()=>[l(h,{onClick:oe},{default:t(()=>[...e[31]||(e[31]=[s("关闭",-1)])]),_:1}),l(h,{type:"primary",onClick:ne,loading:P.value},{default:t(()=>[...e[32]||(e[32]=[s("保存",-1)])]),_:1},8,["loading"])]),default:t(()=>[C("div",_e,[C("div",ce,[C("div",we,[e[9]||(e[9]=C("h3",{class:"section-title"},"基本信息",-1)),l(x,{model:n,layout:"vertical"},{default:t(()=>[l(E,{gutter:24},{default:t(()=>[l(U,{span:12},{default:t(()=>[l(b,{label:"工具名称",required:""},{default:t(()=>[l(o,{value:n.name,"onUpdate:value":e[0]||(e[0]=v=>n.name=v),placeholder:"请输入工具名称"},null,8,["value"])]),_:1})]),_:1}),l(U,{span:12},{default:t(()=>[l(b,{label:"请求方式",required:""},{default:t(()=>[l(T,{value:n.method,"onUpdate:value":e[1]||(e[1]=v=>n.method=v),placeholder:"请选择请求方式"},{default:t(()=>[l(i,{value:"GET"},{default:t(()=>[...e[4]||(e[4]=[s("GET",-1)])]),_:1}),l(i,{value:"POST"},{default:t(()=>[...e[5]||(e[5]=[s("POST",-1)])]),_:1}),l(i,{value:"PUT"},{default:t(()=>[...e[6]||(e[6]=[s("PUT",-1)])]),_:1}),l(i,{value:"DELETE"},{default:t(()=>[...e[7]||(e[7]=[s("DELETE",-1)])]),_:1}),l(i,{value:"PATCH"},{default:t(()=>[...e[8]||(e[8]=[s("PATCH",-1)])]),_:1})]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),l(E,{gutter:24},{default:t(()=>[l(U,{span:24},{default:t(()=>[l(b,{label:"访问路径",required:""},{default:t(()=>[l(o,{value:n.path,"onUpdate:value":e[2]||(e[2]=v=>n.path=v),placeholder:"请输入访问路径,如:/api/user/{userId}",onBlur:se},null,8,["value"])]),_:1})]),_:1})]),_:1}),l(E,{gutter:24},{default:t(()=>[l(U,{span:24},{default:t(()=>[l(b,{label:"描述",required:""},{default:t(()=>[l(w,{value:n.description,"onUpdate:value":e[3]||(e[3]=v=>n.description=v),rows:3,placeholder:"请输入工具描述"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),C("div",Ce,[C("div",be,[e[11]||(e[11]=C("h3",{class:"section-title"},"请求参数",-1)),l(h,{type:"primary",size:"small",onClick:ee},{default:t(()=>[...e[10]||(e[10]=[s("添加参数",-1)])]),_:1})]),l(j,{dataSource:c.value,columns:L,pagination:!1,bordered:"",size:"small",rowKey:"tempId"},{bodyCell:t(({column:v,record:u,index:$})=>[v.key==="name"?(g(),y(o,{key:0,value:u.name,"onUpdate:value":r=>u.name=r,placeholder:"参数名称(字母数字下划线)",onBlur:r=>W(u)},null,8,["value","onUpdate:value","onBlur"])):v.key==="description"?(g(),y(o,{key:1,value:u.description,"onUpdate:value":r=>u.description=r,placeholder:"参数描述"},null,8,["value","onUpdate:value"])):v.key==="type"?(g(),y(T,{key:2,value:u.type,"onUpdate:value":r=>u.type=r,style:{width:"100%"}},{default:t(()=>[l(i,{value:"String"},{default:t(()=>[...e[12]||(e[12]=[s("String",-1)])]),_:1}),l(i,{value:"Number"},{default:t(()=>[...e[13]||(e[13]=[s("Number",-1)])]),_:1}),l(i,{value:"Integer"},{default:t(()=>[...e[14]||(e[14]=[s("Integer",-1)])]),_:1}),l(i,{value:"Boolean"},{default:t(()=>[...e[15]||(e[15]=[s("Boolean",-1)])]),_:1})]),_:1},8,["value","onUpdate:value"])):v.key==="location"?(g(),y(T,{key:3,value:u.location,"onUpdate:value":r=>u.location=r,style:{width:"100%"},onChange:r=>void 0},{default:t(()=>[l(i,{value:"Body"},{default:t(()=>[...e[16]||(e[16]=[s("Raw(json)",-1)])]),_:1}),l(i,{value:"Form-Data"},{default:t(()=>[...e[17]||(e[17]=[s("Form-Data",-1)])]),_:1}),l(i,{value:"Query"},{default:t(()=>[...e[18]||(e[18]=[s("Query",-1)])]),_:1}),l(i,{value:"Header"},{default:t(()=>[...e[19]||(e[19]=[s("Header",-1)])]),_:1}),l(i,{value:"Path"},{default:t(()=>[...e[20]||(e[20]=[s("Path",-1)])]),_:1})]),_:1},8,["value","onUpdate:value","onChange"])):v.key==="required"?(g(),y(A,{key:4,checked:u.required,"onUpdate:checked":r=>u.required=r},null,8,["checked","onUpdate:checked"])):v.key==="defaultValue"?(g(),y(o,{key:5,value:u.defaultValue,"onUpdate:value":r=>u.defaultValue=r,placeholder:"默认值"},null,8,["value","onUpdate:value"])):v.key==="action"?(g(),y(h,{key:6,type:"link",danger:"",size:"small",onClick:r=>te($)},{default:t(()=>[...e[21]||(e[21]=[s("删除",-1)])]),_:1},8,["onClick"])):H("",!0)]),_:1},8,["dataSource"])]),C("div",Ie,[C("div",Ue,[e[23]||(e[23]=C("h3",{class:"section-title"},"输出参数",-1)),l(h,{type:"primary",size:"small",onClick:ae},{default:t(()=>[...e[22]||(e[22]=[s("添加参数",-1)])]),_:1})]),l(j,{dataSource:q.value,columns:K,pagination:!1,bordered:"",size:"small",rowKey:"tempId"},{bodyCell:t(({column:v,record:u,index:$})=>[v.key==="name"?(g(),y(o,{key:0,value:u.name,"onUpdate:value":r=>u.name=r,placeholder:"参数名称(支持点号和数组语法,如data.name、data[].name)",onBlur:r=>X(u)},null,8,["value","onUpdate:value","onBlur"])):v.key==="description"?(g(),y(o,{key:1,value:u.description,"onUpdate:value":r=>u.description=r,placeholder:"参数描述"},null,8,["value","onUpdate:value"])):v.key==="type"?(g(),y(T,{key:2,value:u.type,"onUpdate:value":r=>u.type=r,style:{width:"100%"},onChange:r=>Y(u)},{default:t(()=>[l(i,{value:"String"},{default:t(()=>[...e[24]||(e[24]=[s("String",-1)])]),_:1}),l(i,{value:"Number"},{default:t(()=>[...e[25]||(e[25]=[s("Number",-1)])]),_:1}),l(i,{value:"Integer"},{default:t(()=>[...e[26]||(e[26]=[s("Integer",-1)])]),_:1}),l(i,{value:"Boolean"},{default:t(()=>[...e[27]||(e[27]=[s("Boolean",-1)])]),_:1}),l(i,{value:"Object"},{default:t(()=>[...e[28]||(e[28]=[s("Object",-1)])]),_:1}),l(i,{value:"Array"},{default:t(()=>[...e[29]||(e[29]=[s("Array",-1)])]),_:1})]),_:1},8,["value","onUpdate:value","onChange"])):v.key==="action"?(g(),y(h,{key:3,type:"link",danger:"",size:"small",onClick:r=>le($)},{default:t(()=>[...e[30]||(e[30]=[s("删除",-1)])]),_:1},8,["onClick"])):H("",!0)]),_:1},8,["dataSource"])])])])]),_:1},8,["onRegister","title"])}}}),Ze=ge(he,[["__scopeId","data-v-0d42f459"]]);export{Ze as default};