flycode-mcp 1.12.4 → 1.12.5
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/README.md +4 -0
- package/dist/flycode-mcp.min.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -24,6 +24,10 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for the
|
|
|
24
24
|
|
|
25
25
|
实现要点:`src/tools/registry.ts` 预注册全部工具并维护「域 → 工具」映射,progressive 模式下对非核心域工具默认 `disable()`;`enable()/disable()` 由 `@modelcontextprotocol/sdk` 的 `RegisteredTool` 提供,并自动触发 `tools/list_changed`。回归用例见 `test/unit/gateway-registry.test.ts`。
|
|
26
26
|
|
|
27
|
+
> **约定(勿回退):`mcp_catalog` 不返回工具的入参 schema**,`registry.focus()` 只回「工具名 / 说明 / 启用状态」。原因有二:① 工具入参的 zod schema 经 SDK 转 JSON Schema 后会被**完全内联展开**(递归结构实测最大深度 28 层、`$defs` 为 0),再叠加 `JSON.stringify(..., null, 2)` 的缩进,logic 域单次 focus 曾返回 **504KB**(线上实测 526KB);② 该信息与「启用后客户端重拉的 `tools/list`」**完全重复**,而工具返回值一旦进入上下文就无法撤回、`tools/list` 反倒可由客户端自行管理。参数细节以 `tools/list` 为准。
|
|
28
|
+
|
|
29
|
+
> **两道防线**:① 工具返回体一律**紧凑序列化**(`JSON.stringify(data)`,不带缩进)——全仓库已无 `null, 2` 式美化输出;② `mcp_catalog` 返回体带**硬上限熔断**(`CATALOG_MAX_CHARS` = 32KB),超限会自动分级降级:先截断工具描述 → 再清空描述只留工具名 → 最后才丢弃工具清单,并在响应里回 `truncated` 与 `note`。降级顺序刻意牺牲描述、保住工具清单,因为「哪些工具可用」才是 catalog 的核心价值。回归用例见 `test/unit/catalog-budget.test.ts`。
|
|
30
|
+
|
|
27
31
|
环境变量:
|
|
28
32
|
|
|
29
33
|
- `PROGRESSIVE_DISCLOSURE=on`(默认):启用渐进式披露。
|
package/dist/flycode-mcp.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{McpServer as St}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as Pt}from"@modelcontextprotocol/sdk/server/stdio.js";var ye="http://mconfig.xuantongkeji.com:51074",Kn="username",qn="password",Yn="tenantCode",Bn="envName";function le(n,e){let i=process.argv.slice(2).join("&"),o=new URLSearchParams(i).get(n);if(o!==null&&o!=="")return o;if(e!==void 0)return e;throw new Error(`Missing required arg: ${n}`)}var j={username:le(Kn),password:le(qn),tenantCode:le(Yn),envName:le(Bn)};import Jn from"axios";var Te=null;function he(n){Te=n}function Me(){return Te}var je=null;function He(n){je=n}function Z(){return je}var _e=Jn.create({baseURL:ye||"",timeout:2e4,headers:{"Content-Type":"application/json"}});_e.interceptors.request.use(n=>{let r=n.token??Me();return r&&(n.headers=n.headers||{},n.headers.token=r),delete n.token,n});_e.interceptors.response.use(n=>n.data,n=>Promise.reject(n));function C(n){let{type:e="center",...r}=n,i;switch(e){case"center":i=ye||"";break;case"tenant":case"business":{let t=Z();if(!t)return Promise.reject(new Error(`type \u4E3A ${e} \u65F6\uFF0C\u5FC5\u987B\u5148\u8C03\u7528 setTenant() \u8BBE\u7F6E\u79DF\u6237\u4FE1\u606F`));i=e==="tenant"?t.conn.config:t.conn.business;break}}return _e({...r,baseURL:i})}var ae="1";function Ue(n){return C({url:"/api/multiplat/auth/login",method:"post",data:n})}function ze(){return C({url:"/api/multiplat/auth/getTenantInfo",method:"post",data:{appid:ae}})}function Ve(n){return C({url:"/api/multiplat/auth/getIdeToken",method:"post",data:n})}async function Ke(){let n=await Ue({appid:ae,username:j.username,password:j.password});if(n.code!==200)throw new Error(`Unable to login: ${n.msg}`);he(n.data.token),console.error("flycode-mcp \u767B\u5F55\u5B8C\u6210");let r=(await ze()).resp_data.find(a=>a.tenantcode===j.tenantCode),i=r?.envs.find(a=>a.envname===j.envName);if(r&&i){let a;try{a=JSON.parse(i.conn)}catch{throw new Error(`\u79DF\u6237\u73AF\u5883\u8FDE\u63A5\u4FE1\u606F\u89E3\u6790\u5931\u8D25, \u79DF\u6237\u53F7: ${j.tenantCode}, \u73AF\u5883\u540D: ${j.envName}, env.conn \u4E0D\u662F\u5408\u6CD5\u7684 JSON: ${i.conn}`)}He({metaModelCode:r.metamodelcode,metaModelType:r.metamodeltype,productCode:r.productcode,productName:r.productname,productSeriesCode:r.productseriescode,productVersionCode:r.productversioncode,productVersionName:r.productversionname,tenantCode:r.tenantcode,tenantName:r.tenantname,conn:a,envId:i.envid,envName:i.envname,tenantEnvName:i.tenantenvname})}let t=Z();if(!t)throw new Error(`\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u79DF\u6237\u4FE1\u606F, \u79DF\u6237\u53F7: ${j.tenantCode}, \u73AF\u5883\u540D: ${j.envName}`);console.error("flycode-mcp \u83B7\u53D6\u79DF\u6237\u4FE1\u606F\u5B8C\u6210");let s=(await Ve({appid:ae,envid:t.envId,metamodeltype:t.metaModelType,productcode:t.productCode,productversioncode:t.productVersionCode,tenantcode:t.tenantCode})).resp_data?.idetoken;if(!s)throw new Error(`\u83B7\u53D6 IDE Token \u5931\u8D25, \u79DF\u6237\u53F7: ${t.tenantCode}, \u73AF\u5883\u540D: ${t.envName}, \u8FD4\u56DE\u4F53\u4E2D\u672A\u5305\u542B\u6709\u6548\u7684 idetoken`);he(s),console.error("flycode-mcp \u83B7\u53D6 IDE Token \u5B8C\u6210")}var we=[{name:"core",title:"\u6838\u5FC3\u5DE5\u5177",description:"\u8DE8\u57DF\u901A\u7528\u5DE5\u5177\uFF08\u5982\u6267\u884C SQL\u3001\u751F\u6210\u552F\u4E00\u7F16\u7801\uFF09\uFF0C\u59CB\u7EC8\u53EF\u7528",alwaysOn:!0},{name:"entity",title:"\u5B9E\u4F53",description:"\u5B9E\u4F53\uFF08\u6570\u636E\u8868\uFF09\u7684\u67E5\u8BE2",alwaysOn:!1},{name:"form",title:"\u8868\u5355",description:"\u8868\u5355\u7684\u67E5\u8BE2\u4E0E\u4FEE\u6539\uFF08\u542B flycode \u811A\u672C\u7247\u6BB5\uFF09",alwaysOn:!1},{name:"logic",title:"\u4E1A\u52A1\u903B\u8F91",description:"FlyCode \u4E1A\u52A1\u903B\u8F91\u7684\u67E5\u8BE2\u4E0E\u4FEE\u6539",alwaysOn:!1},{name:"function",title:"\u51FD\u6570",description:"\u5E73\u53F0\u51FD\u6570\u4E0E\u6570\u636E\u5E93\u51FD\u6570\u7684\u67E5\u8BE2",alwaysOn:!1},{name:"h5",title:"H5 \u8868\u5355",description:"H5 \u9875\u9762\u7684\u67E5\u8BE2",alwaysOn:!1}],X={run_sql:"core",generate_unique_code:"core",page_entity_list:"entity",get_entity:"entity",page_form_list:"form",get_form:"form",get_form_outline:"form",get_form_fragment:"form",patch_form:"form",save_form:"form",page_model_logic_list:"logic",get_model_logic:"logic",save_model_logic:"logic",patch_model_logic:"logic",str_replace_flycode:"logic",page_function_list:"function",get_function:"function",page_database_function_list:"function",page_h5_form:"h5",get_h5_form:"h5"};function Gn(n){return n?we.find(e=>e.name===n)?.alwaysOn??!1:!1}var ce=class{handles=new Map;toolNames=[];progressive;constructor(e){this.progressive=e}registerAll(e,r){for(let i of r){let t=e.registerTool(i.name,i.config,i.handler);this.handles.set(i.name,t),this.toolNames.push(i.name);let o=X[i.name];this.progressive&&!Gn(o)&&t.disable()}}activate(e,r=!1){let i=this.toolNames.filter(t=>X[t]===e);for(let t of i){let o=this.handles.get(t);o&&(r&&o.enabled?o.disable():!r&&!o.enabled&&o.enable())}return i}isProgressive(){return this.progressive}domainActive(e){let r=this.toolNames.filter(i=>X[i]===e);return r.length===0?!1:r.every(i=>this.handles.get(i)?.enabled??!1)}status(){return we.map(e=>{let r=this.toolNames.filter(i=>X[i]===e.name).map(i=>{let t=this.handles.get(i);return{name:i,description:t?.description??"",active:t?.enabled??!1}});return{name:e.name,title:e.title,description:e.description,alwaysOn:e.alwaysOn,active:this.domainActive(e.name),tools:r}})}focusSchema(e){let r=we.find(t=>t.name===e);if(!r)return null;let i=this.toolNames.filter(t=>X[t]===e).map(t=>{let o=this.handles.get(t),s=o?.inputSchema?JSON.stringify(o.inputSchema,null,2):"{}";return{name:t,description:o?.description??"",input:s}});return{name:e,title:r.title,tools:i}}};import{z as P}from"zod";function F(n){let e=n;if(e?.response?.data!=null)try{return JSON.stringify(e.response.data)}catch{return String(e.response.data)}return n instanceof Error?n.message:String(n)}function I(n){return{content:[{type:"text",text:JSON.stringify(n)}],structuredContent:n}}function $(n){return{isError:!0,content:[{type:"text",text:F(n)}]}}var qe=P.enum(["core","entity","form","logic","function","h5"]);function Ye(n){let e={name:"mcp_catalog",config:{title:"\u5DE5\u5177\u76EE\u5F55\uFF08\u6E10\u8FDB\u5F0F\u62AB\u9732\uFF09",description:"\u67E5\u770B\u5F53\u524D\u53EF\u7528\u7684\u5DE5\u5177\u57DF\u4E0E\u72B6\u6001\u3002\u4E0D\u4F20 domain \u65F6\u8FD4\u56DE\u5168\u90E8\u57DF\uFF08core/entity/form/logic/function/h5\uFF09\u7684\u542F\u7528\u72B6\u6001\u4E0E\u5404\u57DF\u5185\u5DE5\u5177\u6E05\u5355\uFF1B\u4F20 domain \u65F6\u989D\u5916\u8FD4\u56DE\u8BE5\u57DF\u5DE5\u5177\u7684\u8F93\u5165 schema \u9884\u89C8\uFF0C\u4FBF\u4E8E\u6FC0\u6D3B\u524D\u5148\u89C4\u5212\u53C2\u6570\u3002\u5F53\u5BA2\u6237\u7AEF\u56E0\u4E0A\u4E0B\u6587\u9650\u5236\u53EA\u66B4\u9732\u4E86\u90E8\u5206\u5DE5\u5177\u65F6\uFF0C\u5148\u8C03\u7528\u672C\u5DE5\u5177\u4E86\u89E3\u8FD8\u6709\u54EA\u4E9B\u80FD\u529B\u53EF\u7ECF mcp_activate \u89E3\u9501\u3002",inputSchema:{domain:qe.optional().describe("\u53EF\u9009\uFF1A\u805A\u7126\u67D0\u57DF\uFF08core/entity/form/logic/function/h5\uFF09\uFF0C\u8FD4\u56DE\u8BE5\u57DF\u5DE5\u5177\u7684\u8F93\u5165 schema \u9884\u89C8")},outputSchema:{progressive:P.boolean().describe("\u662F\u5426\u5904\u4E8E\u6E10\u8FDB\u5F0F\u62AB\u9732\u6A21\u5F0F"),domains:P.array(P.object({name:P.string(),title:P.string(),description:P.string(),alwaysOn:P.boolean(),active:P.boolean(),tools:P.array(P.object({name:P.string(),description:P.string(),active:P.boolean()}))})).describe("\u5168\u90E8\u57DF\u7684\u72B6\u6001\u4E0E\u5DE5\u5177\u6E05\u5355"),focus:P.object({name:P.string(),title:P.string(),tools:P.array(P.object({name:P.string(),description:P.string(),input:P.string()}))}).nullable().optional().describe("\u4EC5\u5F53\u4F20\u5165 domain \u65F6\u8FD4\u56DE\uFF1A\u8BE5\u57DF\u5DE5\u5177\u7684\u8F93\u5165 schema \u9884\u89C8")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},handler:async i=>{let t=i?.domain??void 0,o=t?n.focusSchema(t):null;return I({progressive:n.isProgressive(),domains:n.status(),focus:o})}},r={name:"mcp_activate",config:{title:"\u542F\u7528/\u6536\u8D77\u5DE5\u5177\u57DF\uFF08\u6E10\u8FDB\u5F0F\u62AB\u9732\uFF09",description:'\u5207\u6362\u67D0\u4E2A\u80FD\u529B\u57DF\uFF08entity/form/logic/function/h5\uFF09\u7684\u5DE5\u5177\u53EF\u89C1\u6027\u3002\u542F\u7528\u540E\u670D\u52A1\u7AEF\u4F1A\u63A8\u9001 tools/list_changed \u901A\u77E5\uFF0C\u5408\u89C4\u5BA2\u6237\u7AEF\u5C06\u91CD\u65B0\u62C9\u53D6\u5DE5\u5177\u6E05\u5355\u5E76\u53EF\u89C1\u8BE5\u57DF\u5DE5\u5177\uFF1B\u6536\u8D77\u5219\u5C06\u5176\u4ECE\u6E05\u5355\u79FB\u9664\u4EE5\u56DE\u6536\u4E0A\u4E0B\u6587\u3002core \u57DF\u5DE5\u5177\u59CB\u7EC8\u542F\u7528\uFF0C\u65E0\u9700\u4E5F\u4E0D\u5E94\u5207\u6362\u3002\u82E5\u542F\u7528\u540E\u8C03\u7528\u57DF\u5DE5\u5177\u4ECD\u62A5 "tool not found"\uFF0C\u8BF4\u660E\u5F53\u524D\u5BA2\u6237\u7AEF\u672A\u5B9E\u73B0 list_changed \u91CD\u62C9\uFF0C\u8BF7\u5C06\u73AF\u5883\u53D8\u91CF PROGRESSIVE_DISCLOSURE \u8BBE\u4E3A off \u9000\u56DE\u5168\u90E8\u542F\u7528\u7684\u6A21\u5F0F\u3002',inputSchema:{domain:qe.describe("\u8981\u542F\u7528\u6216\u6536\u8D77\u7684\u57DF\uFF1Aentity / form / logic / function / h5"),deactivate:P.boolean().optional().describe("true=\u6536\u8D77\u8BE5\u57DF\u5DE5\u5177\uFF08\u4ECE tools/list \u79FB\u9664\uFF09\uFF1B\u7701\u7565\u6216 false=\u542F\u7528\u8BE5\u57DF\u5DE5\u5177")},outputSchema:{domain:P.string(),deactivated:P.boolean(),tools:P.array(P.string()).describe("\u53D7\u672C\u6B21\u5207\u6362\u5F71\u54CD\u7684\u5DE5\u5177\u540D\u5217\u8868"),progressive:P.boolean(),note:P.string().describe("\u7ED9\u6A21\u578B/\u4F7F\u7528\u8005\u7684\u63D0\u793A\u4FE1\u606F")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1}},handler:async i=>{let t=i?.domain??"core",o=i?.deactivate===!0,s=n.activate(t,o),a=n.isProgressive()?"\u5DF2\u5207\u6362\u53EF\u89C1\u6027\uFF0C\u670D\u52A1\u7AEF\u5DF2\u63A8\u9001 tools/list_changed\uFF1B\u82E5\u5BA2\u6237\u7AEF\u672A\u91CD\u65B0\u62C9\u53D6\u5DE5\u5177\u6E05\u5355\uFF08\u4E0D\u652F\u6301\u8BE5\u901A\u77E5\uFF09\uFF0C\u8BF7\u6539\u7528 PROGRESSIVE_DISCLOSURE=off\u3002":"\u6E10\u8FDB\u5F0F\u62AB\u9732\u5DF2\u5173\u95ED\uFF08PROGRESSIVE_DISCLOSURE=off\uFF09\uFF1A\u5168\u90E8\u5DE5\u5177\u59CB\u7EC8\u542F\u7528\uFF0C\u672C\u6B21\u5207\u6362\u4E3A\u65E0\u5BB3\u7A7A\u64CD\u4F5C\u3002";return I({domain:t,deactivated:o,tools:s,progressive:n.isProgressive(),note:a})}};return[e,r]}var A='\u901A\u7528\u7EA6\u5B9A\uFF1A\u7B5B\u9009\u679A\u4E3E\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF08\u5982 actiontype \u4F20 "3"\uFF09\uFF1B\u5217\u8868 / \u8BE6\u60C5\u8FD4\u56DE\u5B57\u6BB5\u4EE5\u6570\u5B57\u6216\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u4E24\u8005\u517C\u5BB9\u3002marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0 / 1-\u4EA7\u54C1 / 2-\u79DF\u6237\uFF1Bstatus\uFF1A1-\u542F\u7528 / 2-\u505C\u7528\uFF1Bconfsource\uFF1A1-IDE \u914D\u7F6E / 2-\u7528\u6237\u7EA7\u914D\u7F6E\u3002',ee="\u3010logic \u679A\u4E3E\u3011actiontype\uFF08\u64CD\u4F5C\u7C7B\u578B\uFF09\uFF1A1-\u5217\u8868\u67E5\u8BE2 / 2-\u5355\u4E2A\u67E5\u8BE2 / 3-\u6570\u636E\u63D0\u4EA4 / 4-\u6279\u91CF\u63D0\u4EA4 / 5-\u5BFC\u5165 / 6-\u5BFC\u51FA / 7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6 / 8-\u6D41\u7A0B / 9-\u4E1A\u52A1\u8C03\u5EA6 / 10-ipaas \u63A5\u53E3\u3002actioncategory\uFF08\u884C\u4E3A\u7C7B\u578B\uFF09\uFF1A1-flycode \u63A5\u53E3 / 2-\u5FAE\u670D\u52A1 / 3-\u5185\u90E8\u51FD\u6570 / 4-\u5BFC\u5165 / 5-\u5BFC\u51FA / 6-flycode \u5BFC\u5165 / 7-flycode \u5BFC\u51FA\u3002execmode\uFF1A1-\u540C\u6B65 / 2-\u5F02\u6B65\uFF1Bexecutionmode\uFF1Astandard-\u6807\u51C6 / strict-\u4E25\u683C\u3002tenantdbname\uFF08\u79DF\u6237\u5E93\u6743\u9650\uFF09\uFF1A\u53EA\u8BFB-\u67E5\u8BE2 / \u8BFB\u5199-\u589E\u5220\u6539\u67E5 / \u62A5\u8868-\u4FDD\u7559\u3002usedatarule\uFF1A1-\u4F7F\u7528\u6570\u636E\u6743\u9650\u3002input/output[].datatype\uFF08\u53C2\u6570\u5F62\u6001\uFF09\uFF1A0-\u5355\u5B9E\u4F53 / 1-\u6570\u7EC4\u3002",ue="properties[].propertytypecode\uFF08\u5B57\u6BB5\u7C7B\u578B\uFF09\uFF1A1-\u4E3B\u952E(int8) / 2-\u540D\u79F0(200) / 3-\u6587\u672C(200) / 4-\u957F\u6587\u672C / 5-\u6574\u6570(int4) / 6-\u957F\u6574\u6570(int8) / 10-\u6570\u5B57(numeric) / 7-\u65E5\u671F\u65F6\u95F4(ts) / 29-\u5E74\u6708\u65E5(date) / 30-\u65F6\u95F4\u8303\u56F4 / 18-\u72B6\u6001(int4) / 16-\u56FE\u7247 / 26-\u9644\u4EF6 / 17-\u5B9A\u4F4D / 19-\u9009\u9879\u96C6 / 8-\u521B\u5EFA\u4EBA / 9-\u4FEE\u6539\u4EBA / 11-\u521B\u5EFA\u65F6\u95F4 / 12-\u4FEE\u6539\u65F6\u95F4 / 31-\u62FC\u97F3 / 100-\u662F\u5426\u9ED8\u8BA4 / 13-\u624B\u673A\u53F7 / 15-\u56FA\u5B9A\u7535\u8BDD / 14-\u90AE\u7BB1 / 27-\u90AE\u7F16 / 20-\u6392\u5E8F / 200000000000-\u5173\u8054\u5BF9\u8C61 / 100000000000-\u4E1A\u52A1\u5BF9\u8C61 / 10000000000-\u5B57\u5178\u5BF9\u8C61 / 300000000000-\u590D\u6742\u5173\u8054\u5BF9\u8C61 / 1000000000-\u672C\u5BF9\u8C61\u3002",Re="\u3010entity \u679A\u4E3E\u3011datapattern\uFF08\u5B9E\u4F53\u7C7B\u578B\uFF09\uFF1A1-\u539F\u751F / 2-\u884D\u751F / 3-\u89C6\u56FE / 4-\u8D85\u7EA7\u8868\u5355\u3002objecttypecode\uFF08\u5206\u7C7B\uFF09\uFF1A1-\u57FA\u672C / 2-\u6811\u5F62 / 3-\u6570\u636E\u5B57\u5178 / 4-\u5173\u8054\u3002objectcatgory\uFF1A1-\u6743\u9650\u5BF9\u8C61 / 2-\u5426\u3002publishstatus\uFF1A1-\u5DF2\u53D1\u5E03 / 2-\u672A\u53D1\u5E03\u3002hasoffline\uFF1A1-\u6709 / 0-\u65E0\u3002properties[].idxtype\uFF08\u7D22\u5F15\uFF09\uFF1A1-\u65E0 / 2-\u4E3B\u952E\u7D22\u5F15\u3002",z="\u3010form \u679A\u4E3E\u3011type\uFF08\u9875\u9762\u7C7B\u578B\uFF09\uFF1A5-\u5217\u8868\u67E5\u8BE2 / 1-\u666E\u901A\u9875\u9762 / 99-\u4E8C\u5F00 / 10-switchpage / 11-\u6811\u5BFC\u822A\u5217\u8868 / 100-\u539F\u751F / 101-\u7A7A\u767D / 7-\u62A5\u8868 / 12-\u6392\u5E8F / 300-\u6B65\u9AA4\u7BA1\u7406 / 1000-\u5168\u5C40\u51FD\u6570\u3002clientcategorycode\uFF08\u7528\u6237\u7AEF\uFF09\uFF1A1-web / 2-app / 6-\u5C0F\u7A0B\u5E8F\u3002",ne='\u3010function \u679A\u4E3E\u3011dddlayer\uFF08\u51FD\u6570\u5C42\u7EA7\uFF09\uFF1A\u56FA\u5B9A\u4F20 "3"\uFF08\u51FD\u6570\u7C7B\uFF09\u3002\u6570\u636E\u5E93\u51FD\u6570 publishstatus\uFF1A1-\u672A\u53D1\u5E03 / 2-\u5DF2\u53D1\u5E03\u3002';import{z as S}from"zod";function Be(n){return C({url:"/bizserv/bizmodel/pageModelLogicList",method:"post",data:n,type:"tenant"})}function H(n){return C({url:"/bizserv/bizmodel/getModelLogic",method:"post",data:n,type:"tenant"})}function de(n){return C({url:"/bizserv/bizmodel/saveModelLogic",method:"post",data:{...n,overwrite:!1},type:"tenant"})}import{z as d}from"zod";var xe=d.object({marktype:d.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),name:d.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u540D\u79F0\uFF0C\u4EE3\u7801\u4E2D\u7528\u6B64\u540D\u5B57\u8BBF\u95EE"),objectcode:d.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u6240\u5C5E\u7684\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u5982\u679C\u662F\u81EA\u5B9A\u4E49\u53C2\u6570\u5219\u6B64\u7F16\u7801\u4E3A\u7A7A\u5B57\u7B26\u4E32"),propertycode:d.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u7F16\u7801\uFF0C\u53EA\u6709\u5F53\u6B64\u5B57\u6BB5\u6709\u6240\u5C5E\u5B9E\u4F53\u65F6\u624D\u6709\u503C\uFF0C\u4E34\u65F6\u521B\u5EFA\u7684\u81EA\u5B9A\u4E49\u5B9E\u4F53\u7684\u5B57\u6BB5\u5219\u4E3A\u7A7A\u5B57\u7B26\u4E32"),propertyname:d.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u4E2D\u6587\u540D\uFF0C\u9605\u8BFB\u53CB\u597D"),propertytypecode:d.string().optional().nullable().describe("\u5B57\u6BB5\u7C7B\u578B\uFF0C\u6574\u6570\u5B57\u7B26\u4E32\uFF0C\u542B\u4E49\uFF1A1-\u4E3B\u952E(int8)\uFF1B2-\u540D\u79F0(200)\uFF1B3-\u6587\u672C(200)\uFF1B4-\u957F\u6587\u672C\uFF1B5-\u6574\u6570(int4)\uFF1B6-\u957F\u6574\u6570(int8)\uFF1B10-\u6570\u5B57(numeric)\uFF1B7-\u65E5\u671F\u65F6\u95F4(ts)\uFF1B30-\u65F6\u95F4\u8303\u56F4\uFF1B29-\u5E74\u6708\u65E5(date)\uFF1B18-\u72B6\u6001(int4)\uFF1B16-\u56FE\u7247\uFF1B26-\u9644\u4EF6\uFF1B17-\u5B9A\u4F4D\uFF1B19-\u9009\u9879\u96C6\uFF1B200000000000-\u5173\u8054\u5BF9\u8C61\uFF1B100000000000-\u4E1A\u52A1\u5BF9\u8C61\uFF1B10000000000-\u5B57\u5178\u5BF9\u8C61\uFF1B300000000000-\u590D\u6742\u5173\u8054\u5BF9\u8C61\uFF1B1000000000-\u672C\u5BF9\u8C61\uFF1B8-\u521B\u5EFA\u4EBA(int8)\uFF1B9-\u4FEE\u6539\u4EBA(int8)\uFF1B11-\u521B\u5EFA\u65F6\u95F4(ts)\uFF1B12-\u4FEE\u6539\u65F6\u95F4(ts)\uFF1B31-\u62FC\u97F3\uFF1B100-\u662F\u5426\u9ED8\u8BA4\uFF1B13-\u624B\u673A\u53F7\uFF1B15-\u56FA\u5B9A\u7535\u8BDD\uFF1B14-\u90AE\u7BB1\uFF1B27-\u90AE\u7F16\uFF1B20-\u6392\u5E8F(int4)")}).catchall(d.unknown()),Zn=d.array(xe),Ge=d.object({datatype:d.string().optional().nullable().describe("\u6574\u6570\u5B57\u7B26\u4E32\uFF1A0-\u5355\u5B9E\u4F53\uFF1B1-\u6570\u7EC4\u30020 \u8868\u793A IN.name \u6216 OUT.xxx \u662F\u4E2A\u5BF9\u8C61\uFF1B1 \u8868\u793A\u662F\u4E2A\u6570\u7EC4"),marktype:d.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),name:d.string().optional().nullable().describe("\u6B64\u53C2\u6570\u5BF9\u8C61/\u6570\u7EC4\u7684\u540D\u5B57\uFF0C\u4EE3\u7801\u4E2D\u7528\u6B64\u540D\u5B57\u8BBF\u95EE"),objectcode:d.string().optional().nullable().describe("\u6B64\u53C2\u6570\u5173\u8054\u7684\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u5982\u679C\u662F\u81EA\u5B9A\u4E49\u53C2\u6570\u5219\u6B64\u7F16\u7801\u4E3A\u7A7A\u5B57\u7B26\u4E32"),objectname:d.string().optional().nullable().describe("\u6B64\u53C2\u6570\u7684\u4E2D\u6587\u540D\u79F0\uFF0C\u9605\u8BFB\u53CB\u597D"),properties:Zn.optional().nullable().describe("\u6B64\u53C2\u6570\u7684\u5C5E\u6027\u6570\u7EC4\uFF1A\u5355\u5B9E\u4F53\u65F6\u662F IN.name \u8FD9\u4E2A\u5BF9\u8C61\u6709\u7684\u5C5E\u6027\uFF1B\u6570\u7EC4\u65F6\u662F IN.name \u8FD9\u4E2A\u6570\u7EC4\u4E2D\u7684\u5143\u7D20\u5BF9\u8C61\u7684\u5C5E\u6027"),customcode:d.string().optional().nullable().describe("\u81EA\u5B9A\u4E49\u8F93\u51FA\u5BF9\u8C61\u7684\u7F16\u7801\uFF08\u4EC5\u81EA\u5B9A\u4E49\u8F93\u51FA\u53C2\u6570\u53EF\u80FD\u643A\u5E26\uFF0C\u5982\u5185\u90E8\u51FD\u6570 output\uFF09")}).catchall(d.unknown()),Je=d.array(Ge),Qn=d.array(d.object({dynamic:d.object({fieldblacklist:d.unknown().optional().nullable().describe("\u5B57\u6BB5\u9ED1\u540D\u5355"),fieldmap:d.unknown().optional().nullable().describe("\u5B57\u6BB5\u6620\u5C04")}).catchall(d.unknown()).optional().nullable().describe("\u52A8\u6001\u914D\u7F6E"),marktype:d.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0"),modellogiccode:d.string().describe("\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),modellogicstepcode:d.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u6B65\u9AA4\u7F16\u7801"),modellogicstepname:d.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u6B65\u9AA4\u540D\u79F0"),seq:d.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:d.string().optional().nullable().describe("\u72B6\u6001"),templateparams:d.object({flycode:d.string().optional().nullable().describe("flycode \u811A\u672C\u4EE3\u7801\u5B57\u7B26\u4E32"),sourcemap:d.string().optional().nullable().describe("\u6E90\u6620\u5C04"),tempcompiledflycode:d.string().optional().nullable().describe("\u7F16\u8BD1\u540E\u7684 flycode")}).catchall(d.unknown()).optional().nullable().describe("\u6A21\u677F\u53C2\u6570\uFF0C\u5185\u542B\u5177\u4F53\u7684 flycode \u4EE3\u7801\uFF08\u5BFC\u51FA\u7ED3\u6784\u4EC5\u542B flycode\uFF09"),templateref:d.string().optional().nullable().describe("\u6A21\u677F\u5F15\u7528")}).catchall(d.unknown())),ke=d.object({field:d.string().optional().nullable().describe("\u5B57\u6BB5\u540D\uFF08\u5BF9\u5E94\u4E1A\u52A1\u5BF9\u8C61\u7684\u5C5E\u6027\u540D\uFF09\uFF0C\u5BFC\u51FA\u5217\u7684\u6700\u4F73\u5B9A\u4F4D\u952E"),column:d.string().optional().nullable().describe("\u5BFC\u51FA\u540E\u7684\u5217\u6807\u9898"),width:d.string().optional().nullable().describe("\u5217\u5BBD"),type:d.string().optional().nullable().describe("\u5B57\u6BB5\u7C7B\u578B\uFF0C\u5982 string"),dynamictext:d.unknown().optional().nullable().describe("\u52A8\u6001\u6587\u672C\u914D\u7F6E")}).catchall(d.unknown()),Wn=d.object({bindcols:d.array(ke).optional().nullable().describe("\u5BFC\u51FA\u7684\u5217\u5B9A\u4E49"),modelcode:d.string().describe("\u4E1A\u52A1\u6A21\u578B\u7F16\u7801"),logiccode:d.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),logicname:d.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u540D\u79F0")}).catchall(d.unknown()),Oe={actioncategory:d.string().optional().nullable().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),actiontype:d.string().optional().nullable().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),description:d.string().optional().nullable().describe("\u5BF9\u6B64\u4E1A\u52A1\u9886\u57DF\u7684\u63CF\u8FF0\u8BF4\u660E\uFF08\u5FAE\u670D\u52A1\u7ED3\u6784\u7528 descr \u4EE3\u66FF\uFF09"),descr:d.string().optional().nullable().describe("\u63CF\u8FF0\u8BF4\u660E\u7684\u66FF\u7528\u5B57\u6BB5\uFF0C\u4EC5\u5FAE\u670D\u52A1\uFF08actioncategory=2\uFF09\u8FD4\u56DE\uFF0C\u7B49\u4EF7\u4E8E description"),execmode:d.string().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),executionmode:d.string().optional().nullable().describe("\u6267\u884C\u6A21\u5F0F\uFF0Cstandard-\u6807\u51C6\u6A21\u5F0F\uFF1Bstrict-\u4E25\u683C\u6A21\u5F0F"),functionname:d.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u51FD\u6570\u547D\u540D\uFF08A\u4E1A\u52A1\u903B\u8F91\u4E2D\u8C03\u7528B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u5199\u51FD\u6570\u540D\uFF09"),idempotenttype:d.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u7A7A\u5B57\u7B26\u4E32"),input:Je.optional().nullable().describe("\u8BE5\u5B57\u6BB5\u5B9A\u4E49\u4E86\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u8F93\u5165\uFF1Aflycode \u4E2D\u7684\u5185\u7F6E\u5BF9\u8C61 IN \u4E2D\u53EF\u83B7\u53D6\u5230\u7684\u5185\u5BB9\uFF08\u5FAE\u670D\u52A1\u7ED3\u6784\u65E0\u6B64\u5B57\u6BB5\uFF09"),logicscript:d.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u7A7A\u5B57\u7B26\u4E32"),marktype:d.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:d.string().optional().nullable().describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6BCF\u6B21\u4FDD\u5B58\u65F6\u586B\u5199\u7684\uFF0C\u7C7B\u4F3C git \u7684\u63D0\u4EA4\u4FE1\u606F\uFF08\u5BFC\u51FA\u7C7B\u7ED3\u6784\u53EF\u80FD\u7F3A\uFF09"),modelcode:d.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),modellogiccode:d.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801"),modellogicname:d.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),operations:Qn.optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u64CD\u4F5C\u4FE1\u606F\uFF08\u5FAE\u670D\u52A1\u7ED3\u6784\u65E0\u6B64\u5B57\u6BB5\uFF09\uFF1B\u901A\u5E38\u6570\u7EC4\u4E2D\u53EA\u6709\u5355\u4E2A\u5143\u7D20\uFF0C\u8BE5\u5143\u7D20\u5BF9\u8C61\u4E2D\u5C31\u6709 flycode \u4EE3\u7801\u5B57\u7B26\u4E32"),output:Je.optional().nullable().describe("\u8BE5\u5B57\u6BB5\u5B9A\u4E49\u4E86\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u8F93\u51FA\uFF1Aflycode \u4E2D\u5C06\u4F1A\u8D4B\u503C\u7ED9\u5185\u7F6E\u5BF9\u8C61 OUT \u7684\u5185\u5BB9\uFF08\u5FAE\u670D\u52A1\u7ED3\u6784\u65E0\u6B64\u5B57\u6BB5\uFF09"),rest:d.object({server:d.string().optional().nullable().describe("\u5FAE\u670D\u52A1\u5730\u5740"),url:d.string().optional().nullable().describe("\u5FAE\u670D\u52A1\u8DEF\u5F84")}).catchall(d.unknown()).optional().nullable().describe("\u5FAE\u670D\u52A1\u7684 REST \u914D\u7F6E\uFF0C\u4EC5 actioncategory=2 \u5FAE\u670D\u52A1 \u65F6\u5B58\u5728"),bindjson:Wn.optional().nullable().describe("\u5BFC\u51FA\u7ED1\u5B9A\u7684 Excel \u5217\u914D\u7F6E\uFF0C\u4EC5 actioncategory=5 \u5BFC\u51FA \u65F6\u5B58\u5728"),status:d.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),tenantdbcode:d.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u79DF\u6237\u6570\u636E\u5E93\u7F16\u7801"),tenantdbname:d.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u79DF\u6237\u6570\u636E\u5E93\u64CD\u4F5C\u6743\u9650\uFF0C\u679A\u4E3E\u503C\u542B\u4E49\uFF1A\u53EA\u8BFB-\u6570\u636E\u5E93\u53EA\u80FD\u67E5\u8BE2\u4E0D\u80FD\u589E\u5220\u6539\uFF1B\u8BFB\u5199-\u6570\u636E\u5E93\u53EF\u589E\u5220\u6539\u67E5\uFF1B\u62A5\u8868-\u4FDD\u7559\u5B57\u6BB5"),tenantdbtype:d.string().optional().nullable().describe("tenantdbname \u5BF9\u5E94\u7684 key \u503C"),uilogicscript:d.string().optional().nullable().describe("\u79BB\u7EBF\u811A\u672C\uFF0C\u4EC5\u7528\u4E8E app \u7AEF\u79BB\u7EBF\u6570\u636E\u63D0\u4EA4"),usedatarule:d.string().optional().nullable().describe("1 \u4EE3\u8868\u4F7F\u7528\u6570\u636E\u6743\u9650")},Ze=d.looseObject(Oe),Qe=d.discriminatedUnion("op",[d.object({op:d.literal("add_param").describe("\u5411 input / output \u8FFD\u52A0\u4E00\u6761\u53C2\u6570\uFF08\u589E\u52A0\u4E00\u4E2A input / \u589E\u52A0\u4E00\u4E2A output\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),param:Ge.describe("\u8981\u8FFD\u52A0\u7684\u4E00\u6761\u8F93\u5165/\u8F93\u51FA\u53C2\u6570\uFF08\u5355\u4E2A LogicParameters \u5BF9\u8C61\uFF09"),position:d.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),d.object({op:d.literal("remove_param").describe("\u4ECE input / output \u6309 name \u5220\u9664\u6574\u6761\u53C2\u6570\uFF08\u5220\u9664\u4E00\u4E2A input / output\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),name:d.string().describe("\u8981\u5220\u9664\u7684\u53C2\u6570\u7684 name\uFF08\u5728 target \u5185\u552F\u4E00\uFF09")}),d.object({op:d.literal("set_param_attrs").describe("\u6309 name \u5B9A\u4F4D\u53C2\u6570\uFF0C\u6D45\u5408\u5E76\u5176\u9876\u5C42\u5C5E\u6027\uFF08\u5982 datatype / objectcode / objectname \u7B49\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),name:d.string().describe("\u76EE\u6807\u53C2\u6570\u7684 name\uFF08\u5728 target \u5185\u552F\u4E00\uFF09"),patch:d.record(d.string(),d.unknown()).describe('\u8981\u6D45\u5408\u5E76\u8FDB\u8BE5\u53C2\u6570\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u5982 { "datatype": "1", "objectname": "\u5BA2\u6237" }')}),d.object({op:d.literal("add_property").describe("\u5411\u6307\u5B9A\u53C2\u6570\u7684 properties[] \u8FFD\u52A0\u4E00\u4E2A\u5B57\u6BB5\uFF08\u589E\u52A0 input \u5C5E\u6027 / \u589E\u52A0 output \u5C5E\u6027\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:d.string().describe("\u6240\u5C5E\u53C2\u6570\u7684 name"),property:xe.describe("\u8981\u8FFD\u52A0\u7684\u4E00\u4E2A\u5B57\u6BB5\uFF08\u5355\u4E2A LogicParameterProperties \u5BF9\u8C61\uFF09"),position:d.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),d.object({op:d.literal("remove_property").describe("\u4ECE\u6307\u5B9A\u53C2\u6570\u7684 properties[] \u5220\u9664\u4E00\u4E2A\u5B57\u6BB5\uFF08\u5220\u9664 input/output \u4E2D\u67D0\u5C5E\u6027\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:d.string().describe("\u6240\u5C5E\u53C2\u6570\u7684 name"),propertyName:d.string().optional().describe("\u6309\u5B57\u6BB5\u8BBF\u95EE\u540D name \u5B9A\u4F4D\uFF08\u4E0E propertyCode \u4E8C\u9009\u4E00\uFF09"),propertyCode:d.string().optional().describe("\u6309\u5B57\u6BB5\u7F16\u7801 propertycode \u5B9A\u4F4D\uFF08\u4E0E propertyName \u4E8C\u9009\u4E00\uFF09")}),d.object({op:d.literal("replace_property").describe("\u6309 name \u6216 propertycode \u5B9A\u4F4D\u5E76\u6574\u4F53\u66FF\u6362\u4E00\u4E2A\u5B57\u6BB5\uFF08\u66FF\u6362 input/output \u4E2D\u67D0\u5C5E\u6027\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:d.string().describe("\u6240\u5C5E\u53C2\u6570\u7684 name"),propertyName:d.string().optional().describe("\u6309\u5B57\u6BB5\u8BBF\u95EE\u540D name \u5B9A\u4F4D\uFF08\u4E0E propertyCode \u4E8C\u9009\u4E00\uFF09"),propertyCode:d.string().optional().describe("\u6309\u5B57\u6BB5\u7F16\u7801 propertycode \u5B9A\u4F4D\uFF08\u4E0E propertyName \u4E8C\u9009\u4E00\uFF09"),property:xe.describe("\u7528\u6765\u6574\u4F53\u66FF\u6362\u76EE\u6807\u5B57\u6BB5\u7684\u65B0\u5B57\u6BB5\u5BF9\u8C61")}),d.object({op:d.literal("set_meta").describe("\u6D45\u5408\u5E76\u9876\u5C42\u4E1A\u52A1\u903B\u8F91\u5143\u6570\u636E\uFF08\u5982 modellogicname / description / actiontype / execmode / functionname / marktype\uFF09\uFF1B\u4E0D\u80FD\u542B input/output/operations"),patch:d.record(d.string(),d.unknown()).describe('\u6D45\u5408\u5E76\u8FDB\u4E1A\u52A1\u903B\u8F91\u9876\u5C42\u5143\u6570\u636E\u7684\u5B57\u6BB5\uFF0C\u5982 { "modellogicname": "\u65B0\u6807\u9898", "description": "\u8BF4\u660E" }')}),d.object({op:d.literal("add_export_column").describe("\u5411\u5BFC\u51FA\u5217\uFF08bindjson.bindcols\uFF09\u8FFD\u52A0\u4E00\u5217\uFF08\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528\uFF09"),column:ke.describe("\u8981\u8FFD\u52A0\u7684\u4E00\u5217\uFF08\u5355\u4E2A LogicBindColumn \u5BF9\u8C61\uFF0C\u5EFA\u8BAE\u81F3\u5C11\u5E26 field\uFF09"),position:d.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),d.object({op:d.literal("remove_export_column").describe("\u4ECE\u5BFC\u51FA\u5217\uFF08bindjson.bindcols\uFF09\u6309 field \u6216 column \u5220\u9664\u4E00\u5217\uFF08\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528\uFF09"),field:d.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:d.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09")}),d.object({op:d.literal("replace_export_column").describe("\u6309 field \u6216 column \u5B9A\u4F4D\u5E76\u6574\u4F53\u66FF\u6362\u4E00\u5217\uFF08\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528\uFF09"),field:d.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:d.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09"),newColumn:ke.describe("\u7528\u6765\u6574\u4F53\u66FF\u6362\u76EE\u6807\u5217\u7684\u65B0\u5217\u5BF9\u8C61")}),d.object({op:d.literal("set_export_column_attrs").describe("\u6309 field \u6216 column \u5B9A\u4F4D\u67D0\u5217\uFF0C\u6D45\u5408\u5E76\u5176\u90E8\u5206\u5C5E\u6027\uFF08\u5982\u6539 column \u6807\u9898 / width \u5217\u5BBD / type \u7C7B\u578B\uFF0C\u4E0D\u6539 field\uFF09\uFF1B\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528"),field:d.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:d.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09"),patch:d.record(d.string(),d.unknown()).describe('\u8981\u6D45\u5408\u5E76\u8FDB\u8BE5\u5217\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u5982 { "column": "\u65B0\u6807\u9898", "width": "20" }')}),d.object({op:d.literal("set_bind_meta").describe("\u5B89\u5168\u6D45\u5408\u5E76 bindjson \u9876\u5C42\uFF08\u5982 logicname\uFF09\uFF0C\u4E0D\u5F71\u54CD bindcols \u5217\u5B9A\u4E49\uFF1B\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528\uFF1B\u4E0D\u80FD\u542B bindcols"),patch:d.record(d.string(),d.unknown()).describe('\u6D45\u5408\u5E76\u8FDB bindjson \u9876\u5C42\u7684\u5B57\u6BB5\uFF08\u9664 bindcols \u5916\uFF09\uFF0C\u5982 { "logicname": "\u65B0\u5BFC\u51FA\u540D" }')})]);var We=[{name:"page_model_logic_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91",description:`\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u5217\u8868\uFF08ModelLogic\uFF09\u3002\u652F\u6301\u6309\u6807\u9898/\u7F16\u7801/\u65B9\u6CD5\u540D/\u5173\u952E\u5B57/\u4FEE\u6539\u4EBA/\u7C7B\u578B\u7B5B\u9009\u3002\n\n${A}\n${ee}`,inputSchema:{keys:S.string().optional().describe("\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898\u3001modellogiccode\u3001\u6216\u8005\u884C\u4E3A\u65B9\u6CD5\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),keywords:S.string().optional().describe("\u5B8C\u6574 JSON (\u5185\u542B\u4EE3\u7801) \u4E2D\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u5339\u914D"),page:S.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:S.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updateopname:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),updatetimestart:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4 - \u5F00\u59CB\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u6700\u8FD1\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),updatetimeend:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4 - \u7ED3\u675F\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u6700\u8FD1\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),actiontype:S.string().optional().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),actioncategory:S.string().optional().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),tenantdbname:S.string().optional().describe("\u811A\u672C\u64CD\u4F5C\u6570\u636E\u5E93\u7684\u7C7B\u578B\uFF0C\u5B57\u7B26\u4E32\u679A\u4E3E\uFF0C\u679A\u4E3E\u503C\uFF1A\u53EA\u8BFB\u3001\u8BFB\u5199\u3001\u62A5\u8868"),jobstatus:S.string().optional().describe("\u5B9A\u65F6\u8C03\u5EA6\u4EFB\u52A1\u72B6\u6001\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B0-\u505C\u7528\uFF1B2-\u65E0\u8C03\u5EA6")},outputSchema:{data:S.array(S.object({actiontype:S.coerce.number().optional().nullable().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),createtime:S.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801"),modelname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u540D"),modellogiccode:S.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modellogicname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),metamodelcode:S.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modellogiccode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),execmode:S.coerce.number().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),functionname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u51FD\u6570\u547D\u540D\uFF08A\u4E1A\u52A1\u903B\u8F91\u4E2D\u8C03\u7528B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u5199\u51FD\u6570\u540D\uFF09"),actioncategory:S.coerce.number().optional().nullable().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),modelcode:S.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),marktype:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),updatetime:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountname:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),createaccountname:S.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),seq:S.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:S.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),confsource:S.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),updateaccountcode:S.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801")}).catchall(S.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:S.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:S.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:S.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:S.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{keys:e="",keywords:r="",page:i=1,rows:t=20,updateopname:o="",updatetimestart:s="",updatetimeend:a="",actiontype:c="",actioncategory:u="",tenantdbname:m="",jobstatus:f=null}=n;try{let y=await Be({actioncategory:u,actiontype:c,centercode:"",directorytypecode:"rootNode",jobstatus:f,keys:e,keywords:r,modelcode:"rootNode",page:Number(i)||1,rows:Number(t)||20,tenantdbname:m,updateopname:o,updatetimeend:a,updatetimestart:s});return I(y.resp_data)}catch(y){return $(y)}}},{name:"get_model_logic",config:{title:"\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u8BE6\u60C5",description:`\u6309 modellogiccode \u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u5B8C\u6574\u8BE6\u60C5\uFF1Aflycode \u811A\u672C\u3001input/output \u53C2\u6570\u53CA\u5B57\u6BB5\u5C5E\u6027\u3001\u64CD\u4F5C\u6B65\u9AA4\u3002\u6CE8\u610F\uFF1A\u8BE6\u60C5\u63A5\u53E3 status \u8FD4\u56DE\u4E0D\u7A33\u5B9A\uFF08\u90E8\u5206\u8C03\u7528\u4E0D\u8FD4\u56DE\uFF09\uFF0Cdatapattern \u662F\u5217\u8868\u63A5\u53E3\u5B57\u6BB5\uFF08\u8BE6\u60C5\u591A\u6570\u4E0D\u8FD4\u56DE\uFF09\u3002\n\n${A}\n${ee}\n${ue}`,inputSchema:{modellogiccode:S.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801")},outputSchema:Oe,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{modellogiccode:e}=n;try{let r=await H({modellogiccode:e});return I(r.resp_data)}catch(r){return $(r)}}}];import{z as _}from"zod";import{z as pe}from"zod";var Y=pe.object({committype:pe.enum(["saverecord","feature","fix","stylefix","refactor","testfix"]).describe("\u63D0\u4EA4\u7C7B\u578B\uFF0C\u7C7B\u578B committype \u548C\u540D\u79F0 committypetext \u4E00\u4E00\u5BF9\u5E94"),committypetext:pe.enum(["\u4FDD\u5B58\u8BB0\u5F55","\u65B0\u529F\u80FD\u6DFB\u52A0","bug\u4FEE\u6539","\u6837\u5F0F\u4FEE\u6539","\u91CD\u6784","\u6D4B\u8BD5"]).describe("\u63D0\u4EA4\u7C7B\u578B\u540D\u79F0\uFF0C\u4E0E committype \u4E00\u4E00\u5BF9\u5E94"),msgbody:pe.string().optional().describe("\u6D88\u606F\u5185\u5BB9\u3002\u63D0\u4EA4\u7C7B\u578B\u4E3A saverecord \u65F6\u5FFD\u7565\uFF08\u670D\u52A1\u7AEF\u81EA\u52A8\u586B\u5F53\u524D\u65F6\u95F4\uFF0C\u683C\u5F0F yyyy-MM-dd hh:mm\uFF09\uFF1B\u5176\u4ED6\u7C7B\u578B\u586B\u5199\u5BF9\u5E94\u63D0\u4EA4\u5185\u5BB9\uFF0C\u6309 git \u63D0\u4EA4\u89C4\u8303\u5199")});function B(n){return{committype:n.committype,committypetext:n.committypetext,msgbody:n.msgbody??""}}function V(n,e="YYYY-MM-DD HH:mm:ss"){if(isNaN(n.getTime()))throw new Error("Invalid date provided");let r={YYYY:n.getFullYear().toString(),YY:n.getFullYear().toString().slice(-2),MM:String(n.getMonth()+1).padStart(2,"0"),M:String(n.getMonth()+1),DD:String(n.getDate()).padStart(2,"0"),D:String(n.getDate()),HH:String(n.getHours()).padStart(2,"0"),H:String(n.getHours()),mm:String(n.getMinutes()).padStart(2,"0"),m:String(n.getMinutes()),ss:String(n.getSeconds()).padStart(2,"0"),s:String(n.getSeconds()),SSS:String(n.getMilliseconds()).padStart(3,"0")},i=Object.keys(r).sort((o,s)=>s.length-o.length),t=e;for(let o of i)t=t.replace(new RegExp(o,"g"),r[o]);return t}function Ne(n,e){let r=[],i=[];if(e==="exact"){for(let t=0;t<n.length;t++)r.push(n[t]),i.push(t);return{text:r.join(""),map:i}}for(let t=0;t<n.length;t++){let o=n[t];if(o==="\r"){r.push(`\n`),i.push(t),n[t+1]===`\n`&&t++;continue}if(o===" "||o===" "){let s=t;for(;s<n.length&&(n[s]===" "||n[s]===" ");)s++;if(s>=n.length||n[s]===`\n`||n[s]==="\r"){t=s-1;continue}r.push(o),i.push(t);continue}r.push(o),i.push(t)}return{text:r.join(""),map:i}}function M(n,e="normalized"){return Ne(n,e).text}function ve(n){return n.replace(/\r\n?/g,`\n`)}function Se(n,e){let r=1,i=Math.min(e,n.length);for(let t=0;t<i;t++)n[t]===`\n`&&r++;return r}function Xn(n,e,r="normalized"){if(e.length===0)return[];let i=Ne(n,r),t=Ne(e,r);if(t.text.length===0)return[];let o=[],s=0;for(;;){let a=i.text.indexOf(t.text,s);if(a===-1)break;let c=i.map[a],u=i.map[a+t.text.length-1]+1;o.push({startOffset:c,endOffset:u,startLine:Se(n,c),endLine:Se(n,Math.max(u-1,0))}),s=a+t.text.length}return o}function Xe(n){let e=new Map;if(n.length<2)return n.length===1&&e.set(n,1),e;for(let r=0;r<n.length-1;r++){let i=n.slice(r,r+2);e.set(i,(e.get(i)??0)+1)}return e}function et(n,e){if(n.size===0&&e.size===0)return 1;if(n.size===0||e.size===0)return 0;let r=0,[i,t]=n.size<=e.size?[n,e]:[e,n];for(let[s,a]of i){let c=t.get(s);c&&(r+=Math.min(a,c))}let o=0;for(let s of n.values())o+=s;for(let s of e.values())o+=s;return o===0?0:2*r/o}function nt(n,e,r=3){let i=ve(n).split(`\n`),t=ve(e).split(`\n`);if(i.length===0||t.length===0)return[];let o=t.map(m=>m.trim()).join(`\n`),s=Xe(o),a=i.map(m=>m.trim()),c=new Map,u=new Set([t.length-1,t.length,t.length+1]);for(let m of u)if(!(m<1))for(let f=0;f+m<=i.length;f++){let y=a.slice(f,f+m).join(`\n`),h=et(Xe(y),s);if(h<=.3)continue;let N=c.get(f);(!N||h>N.score)&&c.set(f,{score:h,preview:i.slice(f,f+m).join(`\n`).slice(0,120)})}return Array.from(c.entries()).map(([m,f])=>({startLine:m+1,score:Math.round(f.score*100)/100,preview:f.preview})).sort((m,f)=>f.score-m.score).slice(0,r)}function tt(n){let e=(n.match(/\r\n/g)??[]).length,r=(n.match(/\n/g)??[]).length-e;return e>r?`\r\n`:`\n`}function en(n,e){let r=tt(e);return n.replace(/\r\n?|\n/g,r)}var Q=40;function rt(n,e,r,i=3){let t=ve(n).split(`\n`),o=[],s=e.slice().sort((a,c)=>a.startOffset-c.startOffset);for(let a of s){let c=Math.max(1,a.startLine-i),u=Math.min(t.length,a.endLine+i),m=n.slice(a.startOffset,a.endOffset).split(`\n`).map(b=>b.replace(/\r$/,"")),f=r.split(`\n`),y=m.length,h=f.length,w=[["@@",`-${a.startLine},${y}`,`+${a.startLine},${h}`,"@@"].join(" ")];for(let b=c;b<a.startLine;b++)w.push(` ${t[b-1]}`);for(let b of m.slice(0,Q))w.push(`-${b}`);y>Q&&w.push(`... \u7701\u7565 ${y-Q} \u884C`);for(let b of f.slice(0,Q))w.push(`+${b}`);h>Q&&w.push(`... \u7701\u7565 ${h-Q} \u884C`);for(let b=a.endLine+1;b<=u;b++)w.push(` ${t[b-1]}`);o.push(w.join(`\n`))}return o.join(`\n`)}function me(n,e,r={}){let i=r.contextLines??3,t=r.topN??3,o=n.slice(),s=[],a=!1;for(let c=0;c<e.length;c++){let u=e[c],m=u.operationIndex??0,f=()=>({index:c,label:u.label??null,status:"FAILED",errorCode:"OK",message:null,operationIndex:m,matchCount:0,replacedCount:0,range:null,suggestions:null,dependentOnFailedOp:a,hunk:null}),y=(D,T,q={})=>{s.push({...f(),status:"FAILED",errorCode:D,message:T,...q}),a=!0};if(!Number.isInteger(m)||m<0||m>=o.length){y("NO_TARGET",`operationIndex=${m} \u4E0D\u5B58\u5728\uFF0C\u5F53\u524D\u5171\u6709 ${o.length} \u4E2A operation\uFF08\u53EF\u7528\u4E0B\u6807 0~${Math.max(o.length-1,0)}\uFF09`);continue}if(u.rewrite!==!0&&(typeof u.oldString!="string"||u.oldString.length===0)){y("EMPTY_OLD_STRING","oldString \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32\uFF1B\u6574\u4EFD\u811A\u672C\u91CD\u5199\u8BF7\u6539\u7528 rewrite=true\uFF08\u4EC5\u4F20 newString\uFF0C\u4E0D\u5FC5\u56DE\u4F20\u65E7\u5168\u6587\uFF09\uFF0C\u6539 input/output \u7ED3\u6784\u8BF7\u7528 patch_model_logic");continue}if(u.replaceAll===!0&&u.occurrence!=null){y("INVALID_PARAMS","replaceAll \u4E0E occurrence \u4E92\u65A5\uFF0C\u53EA\u80FD\u4E8C\u9009\u4E00");continue}if(u.rewrite===!0){if(typeof u.newString!="string"){y("INVALID_PARAMS","rewrite=true \u65F6 newString \u5FC5\u586B\u4E14\u4E3A\u5B57\u7B26\u4E32\uFF08\u6574\u4EFD\u66FF\u6362\u7684\u76EE\u6807\u6587\u672C\uFF09");continue}let D=o[m],T=en(u.newString,D),q=Se(D,D.length);o[m]=T,s.push({...f(),status:"OK",errorCode:"OK",matchCount:1,replacedCount:1,range:{startOffset:0,endOffset:D.length,startLine:1,endLine:q},hunk:`\u6574\u4EFD\u66FF\u6362\uFF1A${D.length} \u2192 ${T.length} \u5B57\u7B26\uFF08rewrite \u6A21\u5F0F\uFF0C\u672A\u56DE\u663E\u65E7\u5168\u6587\uFF09`});continue}let h=u.matchMode??"normalized",N=o[m],w=Xn(N,u.oldString,h);if(w.length===0){y("NOT_FOUND",`oldString \u5728 operation[${m}] \u7684\u811A\u672C\u4E2D\u672A\u5339\u914D\u5230\u4EFB\u4F55\u5185\u5BB9\uFF08matchMode=${h}\uFF09`,{suggestions:nt(N,u.oldString,t)});continue}let b;if(u.replaceAll===!0)b=w;else if(u.occurrence!=null){if(!Number.isInteger(u.occurrence)||u.occurrence<1||u.occurrence>w.length){y("OCCURRENCE_OUT_OF_RANGE",`occurrence=${u.occurrence} \u8D8A\u754C\uFF0C\u5B9E\u9645\u5339\u914D\u6570\u4E3A ${w.length}`,{matchCount:w.length});continue}b=[w[u.occurrence-1]]}else if(w.length>1){let D=w.map(T=>`\u7B2C ${T.startLine}~${T.endLine} \u884C`).join("\u3001");y("NOT_UNIQUE",`oldString \u5339\u914D\u5230 ${w.length} \u5904\uFF08${D}\uFF09\u3002\u8BF7\u6269\u5927 oldString \u7684\u4E0A\u4E0B\u6587\u4F7F\u5176\u552F\u4E00\uFF0C\u6216\u4F7F\u7528 occurrence \u6307\u5B9A\u7B2C\u51E0\u5904\uFF0C\u6216 replaceAll=true \u5168\u90E8\u66FF\u6362`,{matchCount:w.length});continue}else b=w;let k=en(u.newString,N),E=N;for(let D=b.length-1;D>=0;D--)E=E.slice(0,b[D].startOffset)+k+E.slice(b[D].endOffset);let K=rt(N,b,k,i);o[m]=E,s.push({...f(),status:"OK",errorCode:"OK",matchCount:w.length,replacedCount:b.length,range:b[0],hunk:K})}return{scripts:o,results:s,ok:s.length>0&&s.every(c=>c.status==="OK")}}async function nn(n,e){e.committype==="saverecord"&&(e.msgbody=V(new Date,"YYYY-MM-DD HH:mm")),n.message=JSON.stringify(e);try{return(await de(n)).resp_data}catch(r){return F(r)}}function W(n,e){return(e==="input"?n.input:n.output)??[]}function te(n){return n.actioncategory!=null&&String(n.actioncategory)!=="5"?null:(n.bindjson==null&&(n.bindjson={modelcode:n.modelcode}),n.bindjson.bindcols==null&&(n.bindjson.bindcols=[]),n.bindjson.bindcols)}function J(n){let e=L(n.field)?n.field:void 0,r=L(n.column)?n.column:void 0;return{fieldKey:e,colKey:r}}function U(n,e,r){return e!==void 0&&n?.field===e||r!==void 0&&e===void 0&&n?.column===r}function L(n){return n==null?!1:typeof n=="string"?n.trim().length>0:!0}async function ot(n,e,r){let i=(o={})=>({index:r,op:e.op,status:"OK",errorCode:"OK",message:null,...o}),t=(o,s,a={})=>({index:r,op:e.op,status:"FAILED",errorCode:o,message:s,...a});switch(e.op){case"add_param":{let o=W(n,e.target);if(L(e.param.name)&&o.some(a=>a?.name===e.param.name))return t("DUP_NAME",`target=${e.target} \u4E2D\u5DF2\u5B58\u5728 name=${e.param.name} \u7684\u53C2\u6570\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);let s=e.position??o.length;return o.splice(s,0,e.param),e.target==="input"?n.input=o:n.output=o,i({message:`\u5DF2\u5728 ${e.target} \u7684 position=${s} \u8FFD\u52A0\u53C2\u6570 ${e.param.name??"(\u672A\u547D\u540D)"}`})}case"remove_param":{let o=W(n,e.target),s=o.filter(c=>c?.name===e.name);if(s.length===0)return t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`);if(s.length>1)return t("DUP_NAME",`name=${e.name} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`);let a=o.findIndex(c=>c?.name===e.name);return o.splice(a,1),e.target==="input"?n.input=o:n.output=o,i({message:`\u5DF2\u4ECE ${e.target} \u79FB\u9664\u53C2\u6570 ${e.name}`})}case"set_param_attrs":{let s=W(n,e.target).filter(a=>a?.name===e.name);return s.length===0?t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`):s.length>1?t("DUP_NAME",`name=${e.name} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):(Object.assign(s[0],e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230 ${e.target} \u53C2\u6570 ${e.name}`}))}case"add_property":{let s=W(n,e.target).filter(h=>h?.name===e.paramName);if(s.length===0)return t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(s.length>1)return t("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let a=s[0],c=a.properties??(a.properties=[]),u=L(e.property.name)?e.property.name:void 0,m=L(e.property.propertycode)?e.property.propertycode:void 0,f=c.find(h=>u!==void 0&&h?.name===u||m!==void 0&&h?.propertycode===m);if(f){let h=u!==void 0&&f?.name===u?`name=${u}`:`propertycode=${m}`;return t("DUP_NAME",`\u53C2\u6570 ${e.paramName} \u4E2D\u5DF2\u5B58\u5728 ${h} \u7684\u5C5E\u6027\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`)}let y=e.position??c.length;return c.splice(y,0,e.property),i({message:`\u5DF2\u5728 ${e.target}.${e.paramName} \u7684 position=${y} \u8FFD\u52A0\u5C5E\u6027 ${e.property.name??e.property.propertycode??"(\u672A\u547D\u540D)"}`})}case"remove_property":{let o=L(e.propertyName)?e.propertyName:void 0,s=L(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&s===void 0)return t("INVALID_PARAMS","remove_property \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 propertyName \u6216 propertyCode\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E\uFF08\u5E73\u53F0\u4E0A\u81EA\u5B9A\u4E49\u5B57\u6BB5\u7684 propertycode \u6052\u4E3A\u7A7A\u4E32\uFF09");let c=W(n,e.target).filter(N=>N?.name===e.paramName);if(c.length===0)return t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(c.length>1)return t("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${c.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let m=c[0].properties??[],f=N=>o!==void 0&&N?.name===o||s!==void 0&&N?.propertycode===s,y=m.filter(f);if(y.length===0)return t("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(y.length>1)return t("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${y.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let h=m.findIndex(f);return m.splice(h,1),i({message:`\u5DF2\u4ECE ${e.target}.${e.paramName} \u79FB\u9664\u5C5E\u6027 ${e.propertyName??e.propertyCode}`})}case"replace_property":{let o=L(e.propertyName)?e.propertyName:void 0,s=L(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&s===void 0)return t("INVALID_PARAMS","replace_property \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 propertyName \u6216 propertyCode\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E\uFF08\u5E73\u53F0\u4E0A\u81EA\u5B9A\u4E49\u5B57\u6BB5\u7684 propertycode \u6052\u4E3A\u7A7A\u4E32\uFF09");let c=W(n,e.target).filter(N=>N?.name===e.paramName);if(c.length===0)return t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(c.length>1)return t("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${c.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let m=c[0].properties??[],f=N=>o!==void 0&&N?.name===o||s!==void 0&&N?.propertycode===s,y=m.filter(f);if(y.length===0)return t("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(y.length>1)return t("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${y.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let h=m.findIndex(f);return m[h]=e.property,i({message:`\u5DF2\u5728 ${e.target}.${e.paramName} \u66FF\u6362\u5C5E\u6027 ${e.propertyName??e.propertyCode}`})}case"set_meta":{let o=["input","output","operations"].filter(s=>s in e.patch);return o.length>0?t("INVALID_PARAMS",`set_meta \u4E0D\u80FD\u4FEE\u6539 ${o.join("/")}\uFF0C\u8BF7\u4F7F\u7528\u5BF9\u5E94\u7684 param/property \u7C7B op`):(Object.assign(n,e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u9876\u5C42\u5143\u6570\u636E\u5B57\u6BB5\u5230\u4E1A\u52A1\u903B\u8F91`}))}case"add_export_column":{let o=te(n);if(o===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 add_export_column\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let{fieldKey:s,colKey:a}=J(e.column);if(s!==void 0&&o.some(u=>u?.field===s))return t("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 field=${s} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);if(a!==void 0&&s===void 0&&o.some(u=>u?.column===a))return t("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 column=${a} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);let c=e.position??o.length;return o.splice(c,0,e.column),i({message:`\u5DF2\u5728 bindcols \u7684 position=${c} \u8FFD\u52A0\u5BFC\u51FA\u5217 ${s??a??"(\u672A\u547D\u540D)"}`})}case"remove_export_column":{let{fieldKey:o,colKey:s}=J(e);if(o===void 0&&s===void 0)return t("INVALID_PARAMS","remove_export_column \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 field \u6216 column\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E");let a=te(n);if(a===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 remove_export_column\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(m=>U(m,o,s));if(c.length===0)return t("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(c.length>1)return t("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00\uFF08field/column \u7EC4\u5408\u4E0D\u8DB3\u4EE5\u552F\u4E00\u5B9A\u4F4D\uFF09`);let u=a.findIndex(m=>U(m,o,s));return a.splice(u,1),i({message:`\u5DF2\u4ECE bindcols \u79FB\u9664\u5BFC\u51FA\u5217 ${o??s}`})}case"replace_export_column":{let{fieldKey:o,colKey:s}=J(e);if(o===void 0&&s===void 0)return t("INVALID_PARAMS","replace_export_column \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 field \u6216 column\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E");let a=te(n);if(a===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 replace_export_column\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(m=>U(m,o,s));if(c.length===0)return t("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(c.length>1)return t("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let u=a.findIndex(m=>U(m,o,s));return a[u]=e.newColumn,i({message:`\u5DF2\u5728 bindcols \u66FF\u6362\u5BFC\u51FA\u5217 ${o??s}`})}case"set_export_column_attrs":{let{fieldKey:o,colKey:s}=J(e);if(o===void 0&&s===void 0)return t("INVALID_PARAMS","set_export_column_attrs \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 field \u6216 column\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E");let a=te(n);if(a===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 set_export_column_attrs\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(u=>U(u,o,s));return c.length===0?t("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217"):c.length>1?t("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`):(Object.assign(c[0],e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230\u5BFC\u51FA\u5217 ${o??s}`}))}case"set_bind_meta":{if(te(n)===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 set_bind_meta\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");if("bindcols"in e.patch)return t("INVALID_PARAMS","set_bind_meta \u4E0D\u80FD\u4FEE\u6539 bindcols\uFF08\u5BFC\u51FA\u5217\u5B9A\u4E49\uFF09\uFF0C\u8BF7\u4F7F\u7528 add_export_column / remove_export_column \u7B49\u5217\u7EA7 op");let s=n.bindjson;return s?(Object.assign(s,e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A bindjson \u9876\u5C42\u5B57\u6BB5`})):t("INVALID_PARAMS","bindjson \u7F3A\u5931\uFF0C\u65E0\u6CD5\u6267\u884C set_bind_meta")}default:return t("OP_ERROR",`\u672A\u77E5 op \u7C7B\u578B\uFF1A${e.op}`)}}function it(n){let e=n.map(i=>`ops[${i.index}] ${i.op} (${i.status}): ${i.message??""}`).join(`\n`),r=e.split(`\n`);return r.length<=ge?e:`${r.slice(0,ge).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${r.length} \u884C\uFF09`}function st(n,e){let r=[],i=t=>(t==="input"?n.input:n.output)??[];for(let t=0;t<e.length;t++){let o=e[t];switch(o.op){case"set_meta":for(let[s,a]of Object.entries(o.patch))JSON.stringify(n[s])!==JSON.stringify(a)&&r.push(`ops[${t}] set_meta.${s} \u672A\u751F\u6548`);break;case"add_param":{i(o.target).some(a=>a?.name===o.param.name)||r.push(`ops[${t}] add_param \u53C2\u6570\u672A\u8FFD\u52A0`);break}case"remove_param":{i(o.target).some(a=>a?.name===o.name)&&r.push(`ops[${t}] remove_param \u53C2\u6570\u4ECD\u5B58\u5728`);break}case"set_param_attrs":{let a=i(o.target).find(c=>c?.name===o.name);if(!a){r.push(`ops[${t}] set_param_attrs \u53C2\u6570\u6D88\u5931`);break}for(let[c,u]of Object.entries(o.patch))JSON.stringify(a[c])!==JSON.stringify(u)&&r.push(`ops[${t}] set_param_attrs.${c} \u672A\u751F\u6548`);break}case"add_property":{let a=i(o.target).find(y=>y?.name===o.paramName);if(!a){r.push(`ops[${t}] add_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],u=L(o.property.name)?o.property.name:void 0,m=L(o.property.propertycode)?o.property.propertycode:void 0;c.some(y=>u!==void 0&&y?.name===u||m!==void 0&&y?.propertycode===m)||r.push(`ops[${t}] add_property \u5C5E\u6027\u672A\u8FFD\u52A0`);break}case"remove_property":{let a=i(o.target).find(y=>y?.name===o.paramName);if(!a){r.push(`ops[${t}] remove_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],u=L(o.propertyName)?o.propertyName:void 0,m=L(o.propertyCode)?o.propertyCode:void 0,f=y=>u!==void 0&&y?.name===u||m!==void 0&&y?.propertycode===m;c.some(f)&&r.push(`ops[${t}] remove_property \u5C5E\u6027\u4ECD\u5B58\u5728`);break}case"replace_property":{let a=i(o.target).find(h=>h?.name===o.paramName);if(!a){r.push(`ops[${t}] replace_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],u=L(o.propertyName)?o.propertyName:void 0,m=L(o.propertyCode)?o.propertyCode:void 0,f=h=>u!==void 0&&h?.name===u||m!==void 0&&h?.propertycode===m,y=c.find(f);if(!y){r.push(`ops[${t}] replace_property \u5C5E\u6027\u6D88\u5931`);break}for(let[h,N]of Object.entries(o.property))JSON.stringify(y[h])!==JSON.stringify(N)&&r.push(`ops[${t}] replace_property.${h} \u672A\u751F\u6548`);break}case"add_export_column":{let s=n.bindjson?.bindcols??[],a=L(o.column.field)?o.column.field:void 0,c=L(o.column.column)?o.column.column:void 0;s.some(m=>U(m,a,c))||r.push(`ops[${t}] add_export_column \u5217\u672A\u8FFD\u52A0`);break}case"remove_export_column":{let s=n.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=J(o);s.some(u=>U(u,a,c))&&r.push(`ops[${t}] remove_export_column \u5217\u4ECD\u5B58\u5728`);break}case"replace_export_column":{let s=n.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=J(o),u=s.find(m=>U(m,a,c));if(!u){r.push(`ops[${t}] replace_export_column \u5217\u6D88\u5931`);break}for(let[m,f]of Object.entries(o.newColumn))JSON.stringify(u[m])!==JSON.stringify(f)&&r.push(`ops[${t}] replace_export_column.${m} \u672A\u751F\u6548`);break}case"set_export_column_attrs":{let s=n.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=J(o),u=s.find(m=>U(m,a,c));if(!u){r.push(`ops[${t}] set_export_column_attrs \u5217\u6D88\u5931`);break}for(let[m,f]of Object.entries(o.patch))JSON.stringify(u[m])!==JSON.stringify(f)&&r.push(`ops[${t}] set_export_column_attrs.${m} \u672A\u751F\u6548`);break}case"set_bind_meta":{let s=n.bindjson;if(!s){r.push(`ops[${t}] set_bind_meta bindjson \u672A\u751F\u6548`);break}for(let[a,c]of Object.entries(o.patch))JSON.stringify(s[a])!==JSON.stringify(c)&&r.push(`ops[${t}] set_bind_meta.${a} \u672A\u751F\u6548`);break}}}return{verified:r.length===0,problems:r}}async function tn(n,e,r,i={}){let t=i.dryRun??!1,o=i.verify??!0,s=(w,b)=>({ok:!1,applied:!1,verified:null,errorCode:w,message:b,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return s("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let a;try{a=(await H({modellogiccode:n})).resp_data}catch(w){return s("FETCH_FAILED",F(w))}if(!a)return s("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${n} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);let c=structuredClone(a),u=[],m=!1;for(let w=0;w<e.length;w++)try{let b=await ot(c,e[w],w);u.push(b),b.status==="FAILED"&&(m=!0)}catch(b){u.push({index:w,op:e[w].op,status:"FAILED",errorCode:"OP_ERROR",message:F(b)}),m=!0}let f=it(u);if(m){let w=u.filter(b=>b.status==="FAILED").map(b=>b.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${u.filter(b=>b.status==="FAILED").length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${w}]\uFF09\u3002\u672C\u6279\u6B21\u672A\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF0C\u8BF7\u6839\u636E ops[].message \u4FEE\u6B63\u540E\u91CD\u8BD5`,diff:f,ops:u}}if(t)return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u6F14\u6210\u529F\uFF08dryRun=true\uFF09\uFF0C${e.length} \u4E2A op \u5168\u90E8\u547D\u4E2D\uFF0C\u672A\u843D\u5E93`,diff:f,ops:u};r.committype==="saverecord"&&(r.msgbody=V(new Date,"YYYY-MM-DD HH:mm")),c.message=JSON.stringify(r);let y;try{let w=await de(c);y=typeof w?.resp_data=="string"?w.resp_data:JSON.stringify(w?.resp_data??null)}catch(w){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:F(w),diff:f,ops:u}}let h=null,N=y;if(o)try{let b=(await H({modellogiccode:n})).resp_data;if(!b)h=!1,N=`${y} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let k=st(b,e);h=k.verified,k.verified||(N=`${y} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${k.problems.join("\uFF1B")}`)}}catch(w){h=!1,N=`${y} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(w)}`}return{ok:h===null?!0:h,applied:!0,verified:h,errorCode:h===!1?"VERIFY_FAILED":"OK",message:N,diff:f,ops:u}}var ge=150;function lt(n){let e=n.filter(t=>t.hunk).map(t=>`--- ops[${t.index}]${t.label?` (${t.label})`:""} @ operation[${t.operationIndex}]\n${t.hunk}`);if(e.length===0)return"";let r=e.join(`\n`),i=r.split(`\n`);return i.length<=ge?r:`${i.slice(0,ge).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}async function at(n,e){e.committype==="saverecord"&&(e.msgbody=V(new Date,"YYYY-MM-DD HH:mm")),n.message=JSON.stringify(e);try{let r=await de(n);return{ok:!0,text:typeof r?.resp_data=="string"?r.resp_data:JSON.stringify(r?.resp_data??null)}}catch(r){return{ok:!1,text:F(r)}}}async function rn(n,e,r,i={}){let t=i.contextLines??3,o=i.dryRun??!1,s=i.verify??!0,a=(k,E)=>({ok:!1,applied:!1,verified:null,errorCode:k,message:E,lengthBefore:0,lengthAfter:0,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return a("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let c;try{c=(await H({modellogiccode:n})).resp_data}catch(k){return a("FETCH_FAILED",F(k))}if(!c)return a("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${n} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);if(!c.operations||c.operations.length===0)return a("NO_OPERATIONS","\u8BE5\u4E1A\u52A1\u903B\u8F91\u4E0D\u542B operations\uFF08\u5373\u6CA1\u6709 flycode \u811A\u672C\uFF09\uFF0C\u8BF7\u6539\u7528 save_model_logic \u4FDD\u5B58");let u=c.operations.map(k=>k.templateparams?.flycode??""),m=u.reduce((k,E)=>k+E.length,0),f=me(u,e,{contextLines:t}),y=lt(f.results),h=f.scripts.reduce((k,E)=>k+E.length,0);if(!f.ok){let k=f.results.filter(K=>K.status==="FAILED"),E=k.map(K=>K.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${k.length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${E}]\uFF09\u3002\u672C\u6279\u6B21\u672A\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF0C\u8BF7\u6839\u636E ops[].message / suggestions \u4FEE\u6B63\u540E\u91CD\u8BD5`,lengthBefore:m,lengthAfter:h,diff:y,ops:f.results}}if(o)return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u6F14\u6210\u529F\uFF08dryRun=true\uFF09\uFF0C${e.length} \u4E2A op \u5168\u90E8\u547D\u4E2D\uFF0C\u672A\u843D\u5E93`,lengthBefore:m,lengthAfter:h,diff:y,ops:f.results};for(let k=0;k<f.scripts.length;k++)if(f.scripts[k]!==u[k]){let E=c.operations[k].templateparams;c.operations[k].templateparams={...E??{},flycode:f.scripts[k]}}let N=await at(c,r);if(!N.ok)return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:N.text,lengthBefore:m,lengthAfter:h,diff:y,ops:f.results};let w=null,b=N.text;if(s)try{let K=((await H({modellogiccode:n})).resp_data?.operations??[]).map(T=>T.templateparams?.flycode??""),D=[];f.results.forEach((T,q)=>{let se=e[q],Vn=K[T.operationIndex]??"",be=se.matchMode??"normalized",Ee=M(Vn,be),Ae=M(se.newString,be),Le=M(se.oldString,be);se.newString.length>0&&!Ee.includes(Ae)&&D.push(`ops[${q}] \u7684\u65B0\u5185\u5BB9\u672A\u51FA\u73B0\u5728\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`),!Ae.includes(Le)&&Ee.includes(Le)&&D.push(`ops[${q}] \u7684 oldString \u4ECD\u7136\u5B58\u5728\u4E8E\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`)}),w=D.length===0,D.length>0&&(b=`${N.text} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${D.join("\uFF1B")}`)}catch(k){w=!1,b=`${N.text} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(k)}`}return{ok:w===null?!0:w,applied:!0,verified:w,errorCode:w===!1?"VERIFY_FAILED":"OK",message:b,lengthBefore:m,lengthAfter:h,diff:y,ops:f.results}}var on=[{name:"save_model_logic",config:{title:"\u4FDD\u5B58\u4E1A\u52A1\u903B\u8F91\uFF08\u4EC5\u65B0\u589E / \u6216\u5168\u91CF JSON \u5F88\u5C0F\u5982\u5FAE\u670D\u52A1\uFF09",description:`\u5168\u91CF\u4FDD\u5B58\u4E00\u6761\u4E1A\u52A1\u903B\u8F91\u3002\u4EC5\u7528\u4E8E\uFF1A\u2460\u65B0\u589E\uFF1B\u2461\u5DF2\u6709\u903B\u8F91 JSON \u5F88\u5C0F\uFF08\u5982\u5FAE\u670D\u52A1 actioncategory=2\uFF09\u3002\u7F16\u8F91\u666E\u901A flycode \u63A5\u53E3\u7684\u5DF2\u6709\u903B\u8F91\u8BF7\u52FF\u56DE\u4F20\u6574\u4EFD\u5927\u5BF9\u8C61\u2014\u2014\u6539\u811A\u672C\u7528 str_replace_flycode\uFF0C\u6539\u7ED3\u6784/\u5143\u6570\u636E\u7528 patch_model_logic\u3002\nactioncategory \u679A\u4E3E\u89C1 get_model_logic / page_model_logic_list\u3002\n\n${A}`,inputSchema:{logic:Ze.describe("\u5B8C\u6574\u7684\u4E1A\u52A1\u903B\u8F91 JSON \u5BF9\u8C61\uFF08LogicResult\uFF09\uFF0C\u901A\u5E38\u6765\u81EA get_model_logic \u7684\u8FD4\u56DE\uFF0C\u4FEE\u6539\u540E\u56DE\u4F20"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF1Bmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B")},outputSchema:{result:_.string().describe("\u4FDD\u5B58\u64CD\u4F5C\u7684\u7ED3\u679C\u6D88\u606F\uFF08\u670D\u52A1\u7AEF\u8FD4\u56DE\u7684 resp_data \u5B57\u7B26\u4E32\uFF1B\u5931\u8D25\u65F6\u8FD4\u56DE\u9519\u8BEF\u4F53 JSON\uFF09")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{logic:e,commitMessage:r}=n,i=B(r);try{let t=await nn(e,i);return{content:[{type:"text",text:t}],structuredContent:{result:t}}}catch(t){let o=F(t);return{isError:!0,content:[{type:"text",text:o}],structuredContent:{result:o}}}}},{name:"patch_model_logic",config:{title:"\u5C40\u90E8\u8865\u4E01\u4FEE\u6539\u4E1A\u52A1\u903B\u8F91\uFF08input/output/\u5143\u6570\u636E\uFF09",description:`\u4EE5 delta ops \u5C40\u90E8\u4FEE\u6539 input/output \u7ED3\u6784\u6216\u9876\u5C42\u5143\u6570\u636E\uFF0C\u65E0\u9700\u56DE\u4F20\u6574\u4EFD LogicResult\u3002ops \u5206\u4E09\u7C7B\uFF1A\u2460input/output \u7ED3\u6784\uFF08add_param/remove_param/set_param_attrs/add_property/remove_property/replace_property\uFF09\uFF1B\u2461\u5143\u6570\u636E\uFF08set_meta\uFF0C\u4E0D\u542B input/output/operations\uFF09\uFF1B\u2462\u5BFC\u51FA\u5217\uFF08\u4EC5 actioncategory=5\uFF1Aadd_export_column/remove_export_column/replace_export_column/set_export_column_attrs/set_bind_meta\uFF09\u3002\u5168\u90E8 op \u9884\u6F14\u6210\u529F\u624D\u843D\u5E93\uFF0C\u4EFB\u4E00\u5931\u8D25\u6574\u6279\u56DE\u6EDA\u3002\u6539 flycode \u811A\u672C\u8BF7\u7528 str_replace_flycode\uFF1B\u5FAE\u670D\u52A1 JSON \u5C0F\u8BF7\u76F4\u63A5\u7528 save_model_logic\u3002\n\n${A}\n${ee}\n${ue}`,inputSchema:{modellogiccode:_.string().describe("\u76EE\u6807\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:_.array(Qe).min(1).describe("\u8865\u4E01\u64CD\u4F5C\u6570\u7EC4\uFF0C\u81F3\u5C11\u4E00\u4E2A\u5143\u7D20\uFF1B\u6309\u6570\u7EC4\u987A\u5E8F\u4F9D\u6B21\u4F5C\u7528\u4E8E\u4E0A\u4E00\u6B65\u7ED3\u679C"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6574\u6279 ops \u5171\u7528\u4E00\u4E2A\uFF1B\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF0Cmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B"),dryRun:_.boolean().optional().describe("\u53EA\u9884\u6F14\u5E76\u8F93\u51FA\u6458\u8981\u3001\u4E0D\u843D\u5E93\uFF0C\u9ED8\u8BA4 false\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u65F6\u5EFA\u8BAE\u5148\u7F6E true"),verify:_.boolean().optional().describe("\u4FDD\u5B58\u540E\u662F\u5426\u56DE\u8BFB\u6821\u9A8C\u6240\u6709\u6539\u52A8\u5DF2\u751F\u6548\uFF0C\u9ED8\u8BA4 true")},outputSchema:{ok:_.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:_.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:_.boolean().nullable().describe("\u4FDD\u5B58\u540E\u56DE\u8BFB\u6821\u9A8C\u7ED3\u679C\uFF1Atrue \u5168\u90E8\u751F\u6548\u3001false \u5B58\u5728\u5F02\u5E38\u3001null \u672A\u843D\u5E93\u6216\u672A\u5F00\u542F\u6821\u9A8C"),errorCode:_.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / PARAM_NOT_FOUND / PROP_NOT_FOUND / DUP_NAME / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:_.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:_.string().describe("\u5168\u90E8 op \u7684\u6267\u884C\u6458\u8981\uFF0C\u8D85\u957F\u4F1A\u622A\u65AD\uFF1B\u53EA\u56DE\u6539\u52A8\u6458\u8981\uFF0C\u4E0D\u56DE\u6574\u4EFD\u5BF9\u8C61"),ops:_.array(_.object({index:_.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:_.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:_.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:_.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801\uFF1AOK / PARAM_NOT_FOUND / PROP_NOT_FOUND / DUP_NAME / INVALID_PARAMS / OP_ERROR"),message:_.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null")})).describe("\u6BCF\u4E2A op \u7684\u6267\u884C\u7ED3\u679C\uFF0C\u4E0E\u5165\u53C2 ops \u4E00\u4E00\u5BF9\u5E94")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{modellogiccode:e,commitMessage:r,dryRun:i=!1,verify:t=!0}=n,o=n.ops,s=B(r);try{let a=await tn(e,o,s,{dryRun:i,verify:t});return{isError:!a.ok,content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a}}catch(a){let c=F(a);return{isError:!0,content:[{type:"text",text:c}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:c,diff:"",ops:[]}}}}},{name:"str_replace_flycode",config:{title:"\u6279\u91CF\u5C40\u90E8\u66FF\u6362 flycode \u811A\u672C",description:"\u4EE5 oldString\u2192newString \u5C40\u90E8\u66FF\u6362 flycode \u811A\u672C\uFF0C\u4E0D\u5FC5\u56DE\u4F20\u6574\u4EFD\u3002\u652F\u6301\u591A ops \u6279\u91CF\u3001rewrite=true \u6574\u4EFD\u91CD\u5199\uFF08\u53EA\u4F20 newString\uFF09\u3001dryRun \u9884\u89C8\u3001occurrence/replaceAll \u6D88\u6B67\uFF1B\u9ED8\u8BA4\u5BB9\u5FCD CRLF/LF \u5DEE\u5F02\u3002\u5168\u90E8 op \u4E8B\u52A1\u6027\u9884\u6F14\uFF0C\u4EFB\u4E00\u5931\u8D25\u6574\u6279\u56DE\u6EDA\u3002\u6539\u7ED3\u6784/\u5143\u6570\u636E\u8BF7\u7528 patch_model_logic\u3002",inputSchema:{modelLogicCode:_.string().describe("\u8981\u4FEE\u6539\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:_.array(_.object({oldString:_.string().describe("\u5F85\u66FF\u6362\u7684\u539F\u6587\u7247\u6BB5\uFF0C\u5728 partial \u6A21\u5F0F\uFF08\u9ED8\u8BA4\uFF0Crewrite \u975E true\uFF09\u4E0B\u5FC5\u987B\u975E\u7A7A\u4E14\u5728\u76EE\u6807\u811A\u672C\u4E2D\u552F\u4E00\u547D\u4E2D\uFF1B\u8BF7\u4ECE\u67E5\u8BE2\u5230\u7684\u811A\u672C\u539F\u6587\u539F\u6837\u590D\u5236\uFF08\u542B\u7F29\u8FDB\u4E0E\u6362\u884C\uFF09\u3002rewrite=true \u65F6\u672C\u5B57\u6BB5\u88AB\u5FFD\u7565"),newString:_.string().describe("\u66FF\u6362\u540E\u7684\u65B0\u6587\u672C\uFF1Bpartial \u6A21\u5F0F\u4E0B\u4F20\u7A7A\u5B57\u7B26\u4E32\u8868\u793A\u5220\u9664 oldString \u8FD9\u6BB5\u5185\u5BB9\uFF1Brewrite=true \u65F6\u672C\u5B57\u6BB5\u4E3A\u6574\u4EFD\u66FF\u6362\u7684\u76EE\u6807\u5168\u6587\uFF08\u5FC5\u586B\uFF09"),rewrite:_.boolean().optional().describe("\u6574\u4EFD\u66FF\u6362\u5F00\u5173\uFF1A\u4E3A true \u65F6\u5FFD\u7565 oldString\uFF0C\u628A\u6574\u4E2A operation \u7684 flycode \u811A\u672C\u6574\u4F53\u66FF\u6362\u4E3A newString\uFF0C\u7528\u4E8E\u6574\u4EFD\u811A\u672C\u91CD\u5199\uFF08\u5927\u8303\u56F4\u91CD\u6784\uFF09\uFF0C\u7701\u53BB\u56DE\u4F20\u65E7\u5168\u6587\uFF1B\u7F3A\u7701/false \u7EF4\u6301\u539F\u6709 str_replace \u5C40\u90E8\u66FF\u6362\u884C\u4E3A"),operationIndex:_.number().int().nonnegative().optional().describe("\u4F5C\u7528\u4E8E\u7B2C\u51E0\u4E2A operation \u7684 flycode \u811A\u672C\uFF0C\u9ED8\u8BA4 0\u3002\u591A\u6570\u4E1A\u52A1\u903B\u8F91\u53EA\u6709\u4E00\u4E2A operation\uFF0C\u65E0\u9700\u4F20"),replaceAll:_.boolean().optional().describe("\u662F\u5426\u66FF\u6362\u5168\u90E8\u5339\u914D\uFF0C\u9ED8\u8BA4 false\u3002\u4E0E occurrence \u4E92\u65A5\uFF0C\u4EC5\u5728\u4F60\u786E\u8BA4\u8981\u6539\u6389\u6240\u6709\u540C\u540D\u7247\u6BB5\u65F6\u7F6E true"),occurrence:_.number().int().positive().optional().describe("\u53EA\u66FF\u6362\u7B2C N \u4E2A\u5339\u914D\uFF081-based\uFF09\uFF0C\u7528\u4E8E\u300C\u591A\u5904\u76F8\u540C\u7247\u6BB5\u53EA\u6539\u5176\u4E2D\u4E00\u5904\u300D\uFF1B\u4E0E replaceAll \u4E92\u65A5"),matchMode:_.enum(["exact","normalized"]).optional().describe("\u5339\u914D\u4E25\u683C\u5EA6\uFF0C\u9ED8\u8BA4 normalized\uFF08\u5BB9\u5FCD CRLF/LF \u4E0E\u884C\u5C3E\u7A7A\u767D\u5DEE\u5F02\uFF09\uFF1Bexact \u4E3A\u5B57\u8282\u4E25\u683C\u76F8\u7B49"),label:_.string().optional().describe("\u53EF\u9009\u6807\u8BC6\uFF0C\u4EC5\u7528\u4E8E\u5728\u8FD4\u56DE\u62A5\u544A\u4E2D\u8FA8\u8BA4\u8BE5 op\uFF0C\u4E0D\u5F71\u54CD\u6267\u884C")})).min(1).describe("\u66FF\u6362\u64CD\u4F5C\u6570\u7EC4\uFF0C\u81F3\u5C11\u4E00\u4E2A\u5143\u7D20\uFF1B\u6309\u6570\u7EC4\u987A\u5E8F\u4F9D\u6B21\u6267\u884C\uFF0C\u5168\u90E8\u6210\u529F\u624D\u843D\u5E93\u3002\u6574\u4EFD\u91CD\u5199\u7528 rewrite=true \u7684\u5355 op\uFF0C\u5C40\u90E8\u6539\u52A8\u7528 oldString/newString \u7684\u591A op"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6574\u6279 ops \u5171\u7528\u4E00\u4E2A\uFF1B\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF0Cmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B"),dryRun:_.boolean().optional().describe("\u53EA\u9884\u6F14\u5E76\u8F93\u51FA diff\u3001\u4E0D\u843D\u5E93\uFF0C\u9ED8\u8BA4 false\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A oldString \u662F\u5426\u552F\u4E00\u65F6\u5EFA\u8BAE\u5148\u7F6E true"),contextLines:_.number().int().min(0).max(10).optional().describe("diff \u4E2D\u6BCF\u4E2A\u6539\u52A8\u70B9\u4E0A\u4E0B\u4FDD\u7559\u7684\u4E0A\u4E0B\u6587\u884C\u6570\uFF0C\u9ED8\u8BA4 3"),verify:_.boolean().optional().describe("\u4FDD\u5B58\u540E\u662F\u5426\u56DE\u8BFB\u6821\u9A8C\u6240\u6709\u6539\u52A8\u5DF2\u751F\u6548\uFF0C\u9ED8\u8BA4 true")},outputSchema:{ok:_.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:_.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:_.boolean().nullable().describe("\u4FDD\u5B58\u540E\u56DE\u8BFB\u6821\u9A8C\u7ED3\u679C\uFF1Atrue \u5168\u90E8\u751F\u6548\u3001false \u5B58\u5728\u5F02\u5E38\u3001null \u672A\u843D\u5E93\u6216\u672A\u5F00\u542F\u6821\u9A8C"),errorCode:_.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / NO_OPERATIONS / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:_.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),lengthBefore:_.coerce.number().describe("\u66FF\u6362\u524D\u811A\u672C\u603B\u5B57\u7B26\u6570"),lengthAfter:_.coerce.number().describe("\u66FF\u6362\u540E\u811A\u672C\u603B\u5B57\u7B26\u6570"),diff:_.string().describe("\u5168\u90E8 op \u7684 diff \u7247\u6BB5\uFF08unified hunk \u5F62\u6001\uFF09\uFF0C\u8D85\u957F\u4F1A\u622A\u65AD\uFF1B\u6B64\u5904\u53EA\u56DE\u6539\u52A8\u7247\u6BB5\uFF0C\u4E0D\u56DE\u6574\u4EFD\u811A\u672C"),ops:_.array(_.object({index:_.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),label:_.string().nullable().describe("\u8C03\u7528\u65B9\u4F20\u5165\u7684\u6807\u8BC6"),status:_.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:_.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801\uFF1AOK / EMPTY_OLD_STRING / NOT_FOUND / NOT_UNIQUE / NO_TARGET / INVALID_PARAMS / OCCURRENCE_OUT_OF_RANGE"),message:_.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),operationIndex:_.coerce.number().describe("\u5B9E\u9645\u4F5C\u7528\u7684 operation \u4E0B\u6807"),matchCount:_.coerce.number().describe("oldString \u7684\u5339\u914D\u603B\u6570"),replacedCount:_.coerce.number().describe("\u5B9E\u9645\u66FF\u6362\u7684\u5904\u6570"),range:_.object({startOffset:_.coerce.number().describe("\u8D77\u59CB\u5B57\u7B26\u504F\u79FB"),endOffset:_.coerce.number().describe("\u7ED3\u675F\u5B57\u7B26\u504F\u79FB\uFF08\u4E0D\u542B\uFF09"),startLine:_.coerce.number().describe("\u8D77\u59CB\u884C\u53F7\uFF0C1-based"),endLine:_.coerce.number().describe("\u7ED3\u675F\u884C\u53F7\uFF0C1-based")}).nullable().describe("\u9996\u4E2A\u66FF\u6362\u70B9\u7684\u4F4D\u7F6E\uFF0C\u672A\u6267\u884C\u65F6\u4E3A null"),suggestions:_.array(_.object({startLine:_.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:_.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:_.string().describe("\u5019\u9009\u7247\u6BB5\u9884\u89C8")})).nullable().describe("NOT_FOUND \u65F6\u7684\u76F8\u4F3C\u5019\u9009\uFF0C\u4F9B\u4FEE\u6B63 oldString \u53C2\u8003"),dependentOnFailedOp:_.boolean().describe("\u524D\u5E8F op \u5DF2\u5931\u8D25\u65F6\u4E3A true\uFF0C\u8868\u793A\u672C op \u7684\u7ED3\u679C\u53EF\u80FD\u53D7\u5176\u5F71\u54CD"),hunk:_.string().nullable().describe("\u8BE5 op \u4EA7\u751F\u7684 diff \u7247\u6BB5")})).describe("\u6BCF\u4E2A op \u7684\u6267\u884C\u7ED3\u679C\uFF0C\u4E0E\u5165\u53C2 ops \u4E00\u4E00\u5BF9\u5E94")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{modelLogicCode:e,ops:r,commitMessage:i,dryRun:t=!1,contextLines:o=3,verify:s=!0}=n,a=B(i);try{let c=await rn(e,r,a,{dryRun:t,contextLines:o,verify:s});return{isError:!c.ok,content:[{type:"text",text:JSON.stringify({ok:c.ok,applied:c.applied,verified:c.verified,errorCode:c.errorCode,message:c.message,ops:c.ops.map(u=>({index:u.index,status:u.status,errorCode:u.errorCode,message:u.message,operationIndex:u.operationIndex,matchCount:u.matchCount,replacedCount:u.replacedCount,range:u.range,suggestions:u.suggestions,dependentOnFailedOp:u.dependentOnFailedOp})),diff:c.diff})}],structuredContent:c}}catch(c){let u=F(c);return{isError:!0,content:[{type:"text",text:u}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:u,lengthBefore:0,lengthAfter:0,diff:"",ops:[]}}}}}];import{z as v}from"zod";function sn(n){return C({url:"/bizserv/biz/pageList",method:"post",data:n,type:"tenant"})}function ln(n){return C({url:"/bizserv/biz/getBizObject",method:"post",data:n,type:"tenant"})}import{z as R}from"zod";var ct=R.array(R.object({columnname:R.string().optional().nullable().describe("\u5C5E\u6027\u5217\u7684\u5217\u540D\uFF0C\u5373\u6570\u636E\u5E93\u8868\u7684\u5B57\u6BB5\u7684\u540D\u5B57"),idxtype:R.union([R.string(),R.number()]).optional().nullable().describe("\u7D22\u5F15\u65B9\u5F0F\uFF1A1-\u65E0\uFF1B2-\u4E3B\u952E\u7D22\u5F15\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),ismaster:R.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u6682\u65E0\u7279\u6B8A\u542B\u4E49\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u7F3A\u7701"),marktype:R.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),propertycategorycode:R.string().optional().nullable().describe("\u5C5E\u6027\u7C7B\u522B\u7F16\u7801"),propertycode:R.string().optional().nullable().describe("\u5C5E\u6027\u7F16\u7801\uFF0C\u552F\u4E00\u6807\u8BC6\u4E00\u4E2A\u5C5E\u6027"),propertydescr:R.string().optional().nullable().describe("\u5C5E\u6027\u63CF\u8FF0"),propertyname:R.string().optional().nullable().describe("\u5C5E\u6027\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),propertytypecode:R.string().optional().nullable().describe("\u5C5E\u6027\u7C7B\u578B\u7F16\u7801\uFF0C\u7F16\u7801\u548C\u503C\u7684\u5BF9\u5E94\u5173\u7CFB\uFF1A1-\u4E3B\u952E(int8)\uFF1B2-\u540D\u79F0(200)\uFF1B3-\u6587\u672C(200)\uFF1B4-\u957F\u6587\u672C\uFF1B5-\u6574\u6570(int4)\uFF1B6-\u957F\u6574\u6570(int8)\uFF1B10-\u6570\u5B57(numeric)\uFF1B7-\u65E5\u671F\u65F6\u95F4(ts)\uFF1B30-\u65F6\u95F4\u8303\u56F4\uFF1B29-\u5E74\u6708\u65E5(date)\uFF1B18-\u72B6\u6001(int4)\uFF1B16-\u56FE\u7247\uFF1B26-\u9644\u4EF6\uFF1B17-\u5B9A\u4F4D\uFF1B19-\u9009\u9879\u96C6\uFF1B200000000000-\u5173\u8054\u5BF9\u8C61\uFF1B100000000000-\u4E1A\u52A1\u5BF9\u8C61\uFF1B10000000000-\u5B57\u5178\u5BF9\u8C61\uFF1B300000000000-\u590D\u6742\u5173\u8054\u5BF9\u8C61\uFF1B1000000000-\u672C\u5BF9\u8C61\uFF1B8-\u521B\u5EFA\u4EBA(int8)\uFF1B9-\u4FEE\u6539\u4EBA(int8)\uFF1B11-\u521B\u5EFA\u65F6\u95F4(ts)\uFF1B12-\u4FEE\u6539\u65F6\u95F4(ts)\uFF1B31-\u62FC\u97F3\uFF1B100-\u662F\u5426\u9ED8\u8BA4\uFF1B13-\u624B\u673A\u53F7\uFF1B15-\u56FA\u5B9A\u7535\u8BDD\uFF1B14-\u90AE\u7BB1\uFF1B27-\u90AE\u7F16\uFF1B20-\u6392\u5E8F(int4)"),publishstatus:R.union([R.string(),R.number()]).optional().nullable().describe("\u5C5E\u6027\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03\u3002\u884D\u751F\u5B9E\u4F53\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE"),relationobjectcode:R.string().optional().nullable().describe("\u5173\u8054\u7684\u5B9E\u4F53\u7F16\u7801\uFF0C\u6B64\u5C5E\u6027\u5173\u8054\u4E86\u5176\u4ED6\u5B9E\u4F53\uFF0C\u5219\u8BF4\u660E SQL \u67E5\u8BE2\u7684\u65F6\u5019\u53EF\u4EE5\u7528\u6B64\u5B57\u6BB5\u8FDE\u5176\u4ED6\u5B9E\u4F53\u5BF9\u5E94\u7684\u8868\u7684\u4E3B\u952E"),relationpropertycode:R.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u4E00\u822C\u4E3A\u7A7A\u5B57\u7B26\u4E32\u3002\u89C6\u56FE/\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u7F3A\u7701"),status:R.union([R.string(),R.number()]).optional().nullable().describe("\u5C5E\u6027\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),seq:R.coerce.number().optional().nullable().describe("\u5C5E\u6027\u5E8F\u53F7\u3002\u89C6\u56FE/\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u8FD4\u56DE"),columnnameError:R.boolean().optional().nullable().describe("\u89C6\u56FE\u5B9E\u4F53\u5C5E\u6027\u5B57\u6BB5\uFF0C\u6807\u8BB0\u5217\u540D\u662F\u5426\u9519\u8BEF\uFF0C\u4EC5\u89C6\u56FE\u8FD4\u56DE"),candelete:R.boolean().optional().nullable().describe("\u89C6\u56FE\u5B9E\u4F53\u5C5E\u6027\u5B57\u6BB5\uFF0C\u6807\u8BB0\u662F\u5426\u53EF\u5220\u9664\uFF0C\u4EC5\u89C6\u56FE\u8FD4\u56DE"),parentpropertycode:R.string().optional().nullable().describe("\u6570\u636E\u5B57\u5178\u5C5E\u6027\u5B57\u6BB5\uFF0C\u7236\u5C5E\u6027\u7F16\u7801\uFF0C\u4EC5\u6570\u636E\u5B57\u5178\u8FD4\u56DE"),defaultvalue:R.string().optional().nullable().describe("\u6570\u636E\u5B57\u5178\u5C5E\u6027\u5B57\u6BB5\uFF0C\u9ED8\u8BA4\u503C\uFF0C\u4EC5\u6570\u636E\u5B57\u5178\u8FD4\u56DE")}).catchall(R.unknown())),ut={confsource:R.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E\u3002\u6570\u636E\u5B57\u5178\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),datapattern:R.union([R.string(),R.number()]).optional().nullable().describe("\u6570\u636E\u6A21\u5F0F\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u3002\u6CE8\u610F\uFF1A\u8BE6\u60C5\u63A5\u53E3(getBizObject)\u591A\u6570\u5B9E\u4F53\u7C7B\u578B\u4E0D\u8FD4\u56DE\u8BE5\u5B57\u6BB5\uFF08\u5B83\u662F\u5217\u8868\u63A5\u53E3\u5B57\u6BB5\uFF09\uFF0C\u6545\u58F0\u660E\u4E3A\u53EF\u9009\uFF1B\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),diclayer:R.union([R.string(),R.number()]).optional().nullable().describe("\u5B57\u5178\u5C42\u7EA7\uFF0C\u539F\u751F/\u5173\u8054\u5B9E\u4F53/\u6570\u636E\u5B57\u5178\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),directorytypecode:R.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:R.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:R.string().optional().nullable().describe("\u4FDD\u5B58\u65F6\u7F16\u5199\u7684\u63D0\u4EA4\u4FE1\u606F\uFF0C\u4F5C\u7528\u7C7B\u4F3C git \u63D0\u4EA4\u4FE1\u606F\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),objectcatgory:R.union([R.string(),R.number()]).optional().nullable().describe("\u5BF9\u8C61\u7C7B\u522B\uFF0C\u8868\u793A\u662F\u5426\u4E3A\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF0C1-\u662F\uFF1B2-\u5426\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),objectcode:R.string().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:R.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:R.string().optional().nullable().describe("\u5B9E\u4F53\u6807\u8BB0\uFF0C\u4E00\u822C\u548C\u6570\u636E\u5E93\u8868\u540D\u540C\u540D\uFF0C\u5B57\u5178\u7C7B\u578B\u7684\u5B9E\u4F53\u6709\u81EA\u5DF1\u7684\u6807\u8BB0"),objectname:R.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:R.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801\u3002\u4EC5\u6570\u636E\u5B57\u5178\u5B9E\u4F53\u8FD4\u56DE"),objecttypecode:R.union([R.string(),R.number()]).optional().nullable().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53\u3002\u6570\u636E\u5B57\u5178\u4EE5\u6570\u5B57\u8FD4\u56DE"),parentobjectcode:R.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode\u3002\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),properties:ct.optional().nullable().describe("\u5B9E\u4F53\u7684\u5C5E\u6027\u6570\u7EC4\uFF1A\u6BCF\u4E2A\u5C5E\u6027\u5B9A\u4E49\u5B9E\u4F53\u7684\u4E00\u4E2A\u5B57\u6BB5\uFF08\u5217\u540D\u3001\u7C7B\u578B\u3001\u5173\u8054\u5B9E\u4F53\u3001\u7D22\u5F15\u65B9\u5F0F\u7B49\uFF09"),publishstatus:R.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),script:R.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5/\u5B9A\u4E49\u811A\u672C\uFF0C\u539F\u751F/\u89C6\u56FE/\u5173\u8054\u5B9E\u4F53\u8FD4\u56DE\uFF0C\u4E00\u822C\u4E3A\u7A7A\u5B57\u7B26\u4E32"),status:R.union([R.string(),R.number()]).optional().nullable().describe("\u5B9E\u4F53\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u6570\u636E\u5B57\u5178/\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF1B\u8BE6\u60C5\u63A5\u53E3\u5BF9\u8BE5\u5B57\u6BB5\u8FD4\u56DE\u4E0D\u7A33\u5B9A\uFF08\u90E8\u5206\u8C03\u7528\u4E0D\u8FD4\u56DE\uFF09\uFF0C\u6545\u58F0\u660E\u4E3A\u53EF\u9009"),storagelevel:R.coerce.number().optional().nullable().describe("\u5B58\u50A8\u7B49\u7EA7\u3002\u89C6\u56FE/\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),seq:R.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u5E8F\u53F7\u3002\u4EC5\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u8FD4\u56DE"),tablename:R.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D")},an=R.looseObject(ut);var cn=[{name:"page_entity_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u5B9E\u4F53",description:`\u5206\u9875\u67E5\u8BE2\u5B9E\u4F53\u5217\u8868\u3002\u652F\u6301\u6309\u540D\u79F0/\u7C7B\u578B\u7B5B\u9009\u3002\n\n${A}\n${Re}`,inputSchema:{objectname:v.string().optional().describe("\u5B9E\u4F53\u4E2D\u6587\u540D\u3001\u5B9E\u4F53\u8868\u540D\u3001\u5B9E\u4F53 objectcode \u6A21\u7CCA\u5339\u914D"),page:v.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:v.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updatetimestart:v.string().optional().describe("\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),updatetimeend:v.string().optional().describe("\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),datapattern:v.string().optional().describe("\u5B9E\u4F53\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53"),objecttypecode:v.string().optional().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53")},outputSchema:{data:v.array(v.object({confsource:v.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),createaccountcode:v.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:v.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:v.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),datapattern:v.coerce.number().optional().nullable().describe("\u6570\u636E\u6A21\u5F0F\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u3002\u539F\u751F\u5B9E\u4F53\uFF1A\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF1B\u884D\u751F\u3001\u89C6\u56FE\uFF1A\u4E0D\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF1B\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\uFF1A\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF0C\u4F46\u662F\u662F\u5E73\u53F0\u6839\u636E\u7528\u6237\u7684\u914D\u7F6E\u81EA\u52A8\u521B\u5EFA\u7684\uFF0C\u8868\u540D\u65E0\u542B\u4E49"),directorytypecode:v.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:v.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),hasoffline:v.string().optional().nullable().describe("\u5B9E\u4F53\u662F\u5426\u6709\u79BB\u7EBF\u8BBE\u7F6E\uFF0C1-\u6709\uFF1B0-\u65E0"),marktype:v.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:v.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C objectcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectcatgory:v.coerce.number().optional().nullable().describe("\u5BF9\u8C61\u7C7B\u522B\uFF0C\u8868\u793A\u662F\u5426\u4E3A\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF0C1-\u662F\uFF1B2-\u5426"),objectcode:v.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:v.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:v.string().optional().nullable().describe("\u5B9E\u4F53\u6807\u8BB0\uFF0C\u4E00\u822C\u548C\u6570\u636E\u5E93\u8868\u540D\u540C\u540D\uFF0C\u5B57\u5178\u7C7B\u578B\u7684\u5B9E\u4F53\u6709\u81EA\u5DF1\u7684\u6807\u8BB0"),objectname:v.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:v.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801"),objecttypecode:v.string().optional().nullable().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53"),parentobjectcode:v.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode"),publishstatus:v.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),status:v.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:v.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D"),updateaccountcode:v.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:v.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),updatetime:v.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(v.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:v.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:v.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:v.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:v.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{objectname:e="",page:r=1,rows:i=20,updatetimestart:t="",updatetimeend:o="",datapattern:s="",objecttypecode:a=""}=n;try{let c=await sn({centercode:"",directorytypecode:"rootNode",starttime:"",objectname:e,page:Number(r)||1,rows:Number(i)||20,updatetimestart:t,updatetimeend:o,datapattern:s,objecttypecode:a});return I(c.resp_data)}catch(c){return $(c)}}},{name:"get_entity",config:{title:"\u67E5\u8BE2\u5B9E\u4F53\u8BE6\u60C5",description:`\u6309 objectcode \u67E5\u8BE2\u5B9E\u4F53\u8BE6\u60C5\uFF1A\u57FA\u672C\u4FE1\u606F\u4E0E\u5C5E\u6027\u6570\u7EC4 properties\u3002\u6CE8\u610F\uFF1A\u8BE6\u60C5\u63A5\u53E3 status \u8FD4\u56DE\u4E0D\u7A33\u5B9A\uFF08\u90E8\u5206\u8C03\u7528\u4E0D\u8FD4\u56DE\uFF09\uFF0Cdatapattern \u662F\u5217\u8868\u63A5\u53E3\u5B57\u6BB5\u3001\u8BE6\u60C5\u591A\u6570\u4E0D\u8FD4\u56DE\u3002\npropertytypecode \u5B8C\u6574\u679A\u4E3E\u89C1 get_model_logic\u3002\n\n${A}\n${Re}`,inputSchema:{objectcode:v.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u5B9E\u4F53\u7684\u7F16\u7801")},outputSchema:an,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{objectcode:e}=n;try{let r=await ln({objectcode:e});return I(r.resp_data)}catch(r){return $(r)}}}];import{z as l}from"zod";function un(n){return C({url:"/bizserv/bizpage/pageList",method:"post",data:n,type:"tenant"})}function G(n){return C({url:"/bizserv/bizpage/getPage",method:"post",data:n,type:"tenant"})}function Pe(n){let{conf:e,message:r,ui:i,edittime:t=V(new Date,"YYYY-MM-DD HH:mm:ss"),overwrite:o=!1,clearuserconfig:s=!0}=n;return C({url:"/biserv/bizpage/saveNewPage",method:"post",data:{clearuserconfig:s,conf:e,edittime:t,message:r,overwrite:o,ui:i??e},type:"tenant"})}function Fe(n){return n?Array.isArray(n)?n.filter(Boolean):[n]:[]}function Ie(n,e,r){let i=[{scope:"handlers",list:n.presenter?.handlers??[]},{scope:"initial",list:Fe(n.presenter?.initial)}],t=[];for(let o of i)if(!(r&&o.scope!==r))for(let s of o.list)s&&s.code===e&&t.push({handler:s,scope:o.scope});return t}var dn=150;function gn(n){n.committype==="saverecord"&&(n.msgbody=V(new Date,"YYYY-MM-DD HH:mm"))}function fe(n,e){if(!n)return null;if(n.code===e)return n;if(Array.isArray(n.content))for(let r of n.content){let i=fe(r,e);if(i)return i}return null}function re(n){let e=[],r=i=>{i&&(e.push(i),Array.isArray(i.content)&&i.content.forEach(r))};return r(n.view?.body??null),Array.isArray(n.controls)&&n.controls.forEach(i=>{i&&e.push(i)}),e}function Ce(n,e){if(Array.isArray(n)){for(let r of n)if(r&&typeof r=="object"){if(r.code===e)return r;let i=Ce(r,e);if(i)return i}return null}if(n&&typeof n=="object")for(let r of Object.values(n)){let i=Ce(r,e);if(i)return i}return null}function fn(n,e){if(!n?.content)return null;let r=n.content.findIndex(i=>i?.code===e);if(r>=0){let[i]=n.content.splice(r,1);return i??null}for(let i of n.content){let t=fn(i,e);if(t)return t}return null}function pn(n,e){let r=fn(n.view?.body??null,e);if(r)return r;if(Array.isArray(n.controls)){let i=n.controls.findIndex(t=>t?.code===e);if(i>=0){let[t]=n.controls.splice(i,1);return t??null}}return null}function mn(n){let e=new Set,r=i=>{if(i){for(let t of i.eventlist??[])t?.handler&&e.add(t.handler);Array.isArray(i.content)&&i.content.forEach(r)}};r(n.view?.body??null);for(let i of n.presenter?.handlers??[]){for(let t of i?.actions??[])t?.handler&&e.add(t.handler),t?.logiccode&&e.add(t.logiccode);for(let t of i?.eventlist??[])t?.handler&&e.add(t.handler)}for(let i of Fe(n.presenter?.initial)){for(let t of i?.actions??[])t?.handler&&e.add(t.handler),t?.logiccode&&e.add(t.logiccode);for(let t of i?.eventlist??[])t?.handler&&e.add(t.handler)}for(let i of n.presenter?.interface??[])for(let t of i?.actions??[])t?.handler&&e.add(t.handler);return e}function dt(n){return{oldString:n.oldString,newString:n.newString,replaceAll:n.replaceAll,occurrence:n.occurrence,matchMode:n.matchMode,label:n.label}}function bn(n){let e={code:n.code??null,type:n.type??null,title:n.title??null};return Array.isArray(n.content)&&n.content.length>0&&(e.children=n.content.map(bn)),e}async function yn(n){let r=(await G({code:n})).resp_data;if(!r)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${n} \u5BF9\u5E94\u7684\u8868\u5355`);let i=(()=>{let s=(a,c)=>(a??[]).map(u=>({code:u?.code??null,name:u?.name??null,desc:u?.desc??null,key:u?.key??null,condition:u?.condition??null,actionCount:u?.actions?.length??0,actionTypes:(u?.actions??[]).map(m=>m?.type??"").filter(m=>!!m),scope:c}));return[...s(r.presenter?.handlers??[],"handlers"),...s(Fe(r.presenter?.initial),"initial")]})(),t=(r.presenter?.interface??[]).map(s=>({code:s?.code??null,key:s?.key??null,desc:s?.desc??null,actionCount:s?.actions?.length??0})),o=(r.businessmodel??[]).map(s=>({modelcode:s?.modelcode??null,modellogiccode:s?.modellogiccode??null,modellogicname:s?.modellogicname??null,actiontype:s?.actiontype??null}));return{code:n,title:r.pageinfo?.title??null,type:r.pageinfo?.type??null,status:r.pageinfo?.status??null,clientcategorycode:r.pageinfo?.clientcategorycode??null,marktype:r.pageinfo?.marktype??null,versionnum:r.pageinfo?.versionnum??null,viewTree:r.view?.body?[bn(r.view.body)]:[],handlers:i,interfaces:t,businessModels:o,message:r.message??null}}async function hn(n,e){let i=(await G({code:n})).resp_data;if(!i)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${n} \u5BF9\u5E94\u7684\u8868\u5355`);let t,o,s,a=i.message??null;if(e.nodeCode&&(t=fe(i.view?.body??null,e.nodeCode)??i.controls?.find(u=>u?.code===e.nodeCode)??null,t&&e.itemCode)){let u=Ce(t,e.itemCode);u?t=u:(t=null,a=`nodeCode=${e.nodeCode} \u4E0B\u672A\u627E\u5230 code=${e.itemCode} \u7684\u5143\u7D20`)}if(e.handlerCode){let u=Ie(i,e.handlerCode,e.handlerScope);u.length===1?o=u[0].handler:u.length>1&&(o=null,a=`handlerCode=${e.handlerCode} \u5728 handlers \u4E0E initial \u4E2D\u540C\u65F6\u51FA\u73B0\uFF0C\u8BF7\u7528 handlerScope \u6307\u5B9A\u552F\u4E00\u5BB9\u5668`)}e.section&&(s=i[e.section]??null);let c=o?.actions?o.actions.map((u,m)=>({index:m,code:u?.code??null,type:u?.type??null,scriptLen:(u?.script??"")?.length??0,conditionLen:(u?.condition??"")?.length??0,expressionLen:(u.expression??"")?.length??0})):void 0;return{code:n,node:t??void 0,handler:o??void 0,section:s??void 0,actionIndex:c,message:a}}async function pt(n,e,r){let i=(o={})=>({index:r,op:e.op,status:"OK",errorCode:"OK",message:null,hunk:null,suggestions:null,...o}),t=(o,s,a={})=>({index:r,op:e.op,status:"FAILED",errorCode:o,message:s,hunk:null,suggestions:null,...a});switch(e.op){case"set_pageinfo":return n.pageinfo={...n.pageinfo??{},...e.patch},i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5B57\u6BB5\u5230 pageinfo`});case"set_attrs":{let o=re(n).filter(c=>c.code===e.code);if(o.length===0)return t("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return t("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`);Object.assign(o[0],e.patch);let s=Object.entries(e.patch).filter(([,c])=>Array.isArray(c)),a=s.length>0?`\uFF08\u6CE8\u610F\uFF1Apatch \u542B\u6570\u7EC4\u5C5E\u6027 ${s.map(([c])=>`"${c}"`).join("\u3001")}\uFF0C\u5C06\u6574\u4F53\u8986\u76D6\u8BE5\u6570\u7EC4\uFF1B\u5982\u4EC5\u6539\u5176\u4E2D\u67D0\u5143\u7D20\u8BF7\u7528 patch_node_array_item\uFF09`:"";return i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230\u8282\u70B9 ${e.code}${a}`})}case"patch_node_array_item":{let o=re(n).find(u=>u.code===e.nodeCode);if(!o)return t("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 nodeCode=${e.nodeCode} \u7684\u8282\u70B9`);let s=o[e.arrayProp];if(!Array.isArray(s))return t("INVALID_PARAMS",`\u8282\u70B9 ${e.nodeCode} \u7684 ${e.arrayProp} \u4E0D\u662F\u6570\u7EC4\uFF08\u5B9E\u9645\u4E3A ${s===null?"null":typeof s}\uFF09\uFF0C\u65E0\u6CD5\u5B9A\u4F4D\u5143\u7D20`);let a=e.itemKey??"code",c=s.filter(u=>u&&typeof u=="object"&&u[a]===e.itemKeyValue);return c.length===0?t("NODE_NOT_FOUND",`\u672A\u5728 ${e.nodeCode}.${e.arrayProp} \u4E2D\u627E\u5230 ${a}=${String(e.itemKeyValue)} \u7684\u5143\u7D20`):c.length>1?t("DUP_CODE",`\u5143\u7D20 ${a}=${String(e.itemKeyValue)} \u5728 ${e.nodeCode}.${e.arrayProp} \u4E2D\u51FA\u73B0 ${c.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`):(Object.assign(c[0],e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230 ${e.nodeCode}.${e.arrayProp}[${a}=${String(e.itemKeyValue)}]`}))}case"insert_node":{let o=fe(n.view?.body??null,e.parentCode);if(!o)return t("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 parentCode=${e.parentCode} \u7684\u7236\u8282\u70B9`);o.content||(o.content=[]);let s=e.position??o.content.length;return o.content.splice(s,0,e.node),i({message:`\u5DF2\u5728 ${e.parentCode} \u7684 position=${s} \u63D2\u5165\u8282\u70B9`})}case"remove_node":{let o=re(n).filter(a=>a.code===e.code);return o.length===0?t("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`):o.length>1?t("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):e.checkRefs!==!1&&mn(n).has(e.code)?t("REF_VIOLATION",`\u4ECD\u6709\u4E8B\u4EF6/handler \u5F15\u7528 ${e.code}\uFF0C\u79FB\u9664\u524D\u8BF7\u5148\u89E3\u9664\u5F15\u7528\uFF08\u6216 checkRefs=false\uFF09`):pn(n,e.code)?i({message:`\u5DF2\u79FB\u9664\u8282\u70B9 ${e.code}`}):t("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`)}case"move_node":{let o=re(n).filter(u=>u.code===e.code);if(o.length===0)return t("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return t("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let s=pn(n,e.code);if(!s)return t("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`);let a=fe(n.view?.body??null,e.newParentCode);if(!a)return t("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 newParentCode=${e.newParentCode} \u7684\u7236\u8282\u70B9`);a.content||(a.content=[]);let c=e.position??a.content.length;return a.content.splice(c,0,s),i({message:`\u5DF2\u5C06 ${e.code} \u79FB\u52A8\u5230 ${e.newParentCode} \u7684 position=${c}`})}case"set_section":return n[e.section]=e.value,i({message:`\u5DF2\u6574\u6BB5\u66FF\u6362 ${e.section}`});case"replace_script":{let o=Ie(n,e.handlerCode,e.scope);if(o.length===0)return t("NODE_NOT_FOUND",`\u672A\u5728 presenter\uFF08handlers \u4E0E initial\uFF09\u4E2D\u627E\u5230 handlerCode=${e.handlerCode}`);if(o.length>1)return t("DUP_CODE",`handlerCode=${e.handlerCode} \u5728 handlers \u4E0E initial \u4E2D\u540C\u65F6\u51FA\u73B0\uFF0C\u8BF7\u7528 scope \u6307\u5B9A\u552F\u4E00\u5BB9\u5668`);let a=o[0].handler.actions??[],c;if(e.actionCode!=null){if(c=a.find(h=>h?.code===e.actionCode),!c)return t("NODE_NOT_FOUND",`handler ${e.handlerCode} \u4E2D\u672A\u627E\u5230 actionCode=${e.actionCode}`)}else{let h=e.actionIndex??0;if(h<0||h>=a.length)return t("NO_TARGET",`actionIndex=${h} \u8D8A\u754C\uFF0Chandler ${e.handlerCode} \u5171\u6709 ${a.length} \u4E2A action`);c=a[h]}let u=e.field??"script";if(e.replacement!=null)return c[u]=e.replacement,i({message:`\u5DF2\u6574\u6BB5\u8986\u76D6 ${e.handlerCode}.actions[${e.actionIndex??0}].${u}`});if(!e.ops||e.ops.length===0)return t("INVALID_PARAMS","replace_script \u9700\u63D0\u4F9B replacement \u6216 ops\uFF08oldString\u2192newString \u6570\u7EC4\uFF09");let m=c[u]??"",f=me([m],e.ops.map(dt),{contextLines:3}),y=f.results[0];return f.ok?(c[u]=f.scripts[0],i({message:`\u5DF2\u5C40\u90E8\u66FF\u6362 ${u}`,hunk:y?.hunk??null})):t("OPS_FAILED",y?.message??"\u811A\u672C\u66FF\u6362\u5931\u8D25",{hunk:y?.hunk??null,suggestions:y?.suggestions??null})}case"add_businessmodel":{let o=n.businessmodel??(n.businessmodel=[]),s=o.find(c=>c?.modellogiccode===e.modellogiccode);if(s&&!e.overwrite)return i({message:`businessmodel \u5DF2\u5B58\u5728 ${e.modellogiccode}\uFF0C\u8DF3\u8FC7\uFF08overwrite=false\uFF09`});let a;try{a=(await H({modellogiccode:e.modellogiccode})).resp_data}catch(c){return t("FETCH_FAILED",`\u83B7\u53D6\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5931\u8D25\uFF1A${F(c)}`)}return a?s&&e.overwrite?(Object.assign(s,a),i({message:`\u5DF2\u8986\u76D6 businessmodel \u4E2D\u7684 ${e.modellogiccode}`})):(o.push(a),i({message:`\u5DF2\u8FFD\u52A0\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5230 businessmodel`})):t("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${e.modellogiccode} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`)}case"remove_businessmodel":{let o=n.businessmodel??[],s=o.findIndex(a=>a?.modellogiccode===e.modellogiccode);return s<0?i({message:`businessmodel \u4E2D\u4E0D\u5B58\u5728 ${e.modellogiccode}\uFF0C\u65E0\u9700\u79FB\u9664`}):e.checkRefs!==!1&&mn(n).has(e.modellogiccode)?t("REF_VIOLATION",`\u4ECD\u6709\u4E8B\u4EF6/handler \u5F15\u7528 ${e.modellogiccode}\uFF0C\u79FB\u9664\u524D\u8BF7\u5148\u89E3\u9664\u5F15\u7528\uFF08\u6216 checkRefs=false\uFF09`):(o.splice(s,1),i({message:`\u5DF2\u4ECE businessmodel \u79FB\u9664 ${e.modellogiccode}`}))}}}function mt(n){let e=[];for(let t of n)t.hunk?e.push(`--- ops[${t.index}] ${t.op}\n${t.hunk}`):e.push(`ops[${t.index}] ${t.op} (${t.status}): ${t.message??""}`);let r=e.join(`\n`),i=r.split(`\n`);return i.length<=dn?r:`${i.slice(0,dn).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}function gt(n,e){let r=[],i=re(n),t=new Set(i.map(o=>o.code).filter(o=>!!o));for(let o=0;o<e.length;o++){let s=e[o];switch(s.op){case"set_pageinfo":for(let[a,c]of Object.entries(s.patch))JSON.stringify(n.pageinfo?.[a])!==JSON.stringify(c)&&r.push(`ops[${o}] set_pageinfo.${a} \u672A\u751F\u6548`);break;case"set_attrs":{let a=i.find(c=>c.code===s.code);if(!a){r.push(`ops[${o}] set_attrs \u8282\u70B9 ${s.code} \u6D88\u5931`);break}for(let[c,u]of Object.entries(s.patch))JSON.stringify(a[c])!==JSON.stringify(u)&&r.push(`ops[${o}] set_attrs.${c} \u672A\u751F\u6548`);break}case"patch_node_array_item":{let a=i.find(f=>f.code===s.nodeCode);if(!a){r.push(`ops[${o}] patch_node_array_item \u8282\u70B9 ${s.nodeCode} \u6D88\u5931`);break}let c=a[s.arrayProp];if(!Array.isArray(c)){r.push(`ops[${o}] patch_node_array_item ${s.arrayProp} \u975E\u6570\u7EC4`);break}let u=s.itemKey??"code",m=c.find(f=>f&&typeof f=="object"&&f[u]===s.itemKeyValue);if(!m){r.push(`ops[${o}] patch_node_array_item \u5143\u7D20 ${u}=${String(s.itemKeyValue)} \u672A\u627E\u5230`);break}for(let[f,y]of Object.entries(s.patch))JSON.stringify(m[f])!==JSON.stringify(y)&&r.push(`ops[${o}] patch_node_array_item.${f} \u672A\u751F\u6548`);break}case"insert_node":t.has(s.node.code)||r.push(`ops[${o}] insert_node \u8282\u70B9\u672A\u51FA\u73B0`);break;case"remove_node":t.has(s.code)&&r.push(`ops[${o}] remove_node \u8282\u70B9\u4ECD\u5B58\u5728`);break;case"move_node":t.has(s.code)||r.push(`ops[${o}] move_node \u8282\u70B9\u6D88\u5931`);break;case"set_section":break;case"replace_script":{let a=Ie(n,s.handlerCode,s.scope);if(a.length!==1){r.push(`ops[${o}] replace_script handler \u672A\u627E\u5230\u6216\u5B58\u5728\u540C\u540D\u6B67\u4E49`);break}let u=a[0].handler.actions??[],m=s.actionCode!=null?u.find(h=>h?.code===s.actionCode):u[s.actionIndex??0];if(!m){r.push(`ops[${o}] replace_script action \u672A\u627E\u5230`);break}let f=s.field??"script",y=m[f]??"";if(s.replacement!=null)M(y)!==M(s.replacement)&&r.push(`ops[${o}] replace_script \u6574\u6BB5\u8986\u76D6\u672A\u751F\u6548`);else if(s.ops)for(let h of s.ops){let N=h.matchMode??"normalized",w=M(y,N),b=M(h.newString,N),k=M(h.oldString,N);h.newString.length>0&&!w.includes(b)&&r.push(`ops[${o}] replace_script \u65B0\u5185\u5BB9\u672A\u51FA\u73B0`),!b.includes(k)&&w.includes(k)&&r.push(`ops[${o}] replace_script \u65E7\u5185\u5BB9\u4ECD\u5B58\u5728`)}break}case"add_businessmodel":{(n.businessmodel??[]).some(c=>c?.modellogiccode===s.modellogiccode)||r.push(`ops[${o}] add_businessmodel \u672A\u8FFD\u52A0`);break}case"remove_businessmodel":{(n.businessmodel??[]).some(c=>c?.modellogiccode===s.modellogiccode)&&r.push(`ops[${o}] remove_businessmodel \u672A\u79FB\u9664`);break}}}return{verified:r.length===0,problems:r}}async function _n(n,e,r,i={}){let t=i.dryRun??!1,o=i.verify??!0,s=(b,k)=>({ok:!1,applied:!1,verified:null,errorCode:b,message:k,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return s("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let a;try{a=(await G({code:n})).resp_data}catch(b){return s("FETCH_FAILED",F(b))}if(!a)return s("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 code=${n} \u5BF9\u5E94\u7684\u8868\u5355`);let c=structuredClone(a),u=[],m=!1;for(let b=0;b<e.length;b++)try{let k=await pt(c,e[b],b);u.push(k),k.status==="FAILED"&&(m=!0)}catch(k){u.push({index:b,op:e[b].op,status:"FAILED",errorCode:"OP_ERROR",message:F(k),hunk:null,suggestions:null}),m=!0}let f=mt(u);if(m){let b=u.filter(k=>k.status==="FAILED").map(k=>k.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${u.filter(k=>k.status==="FAILED").length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${b}]\uFF09\u3002\u672C\u6279\u6B21\u672A\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF0C\u8BF7\u6839\u636E ops[].message / suggestions \u4FEE\u6B63\u540E\u91CD\u8BD5`,diff:f,ops:u}}if(t)return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u6F14\u6210\u529F\uFF08dryRun=true\uFF09\uFF0C${e.length} \u4E2A op \u5168\u90E8\u547D\u4E2D\uFF0C\u672A\u843D\u5E93`,diff:f,ops:u};gn(r);let y=JSON.stringify(r),h;try{let b=await Pe({conf:c,message:y});h=typeof b?.resp_data=="string"?b.resp_data:JSON.stringify(b?.resp_data??null)}catch(b){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:F(b),diff:f,ops:u}}let N=null,w=h;if(o)try{let k=(await G({code:n})).resp_data;if(!k)N=!1,w=`${h} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let E=gt(k,e);N=E.verified,E.verified||(w=`${h} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${E.problems.join("\uFF1B")}`)}}catch(b){N=!1,w=`${h} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(b)}`}return{ok:N===null?!0:N,applied:!0,verified:N,errorCode:N===!1?"VERIFY_FAILED":"OK",message:w,diff:f,ops:u}}async function wn(n,e){gn(e);let r=JSON.stringify(e);try{let i=await Pe({conf:n,message:r}),t=typeof i?.resp_data=="string"?i.resp_data:JSON.stringify(i?.resp_data??null);return{ok:!0,code:n.pageinfo?.code??void 0,message:t}}catch(i){return{ok:!1,code:n.pageinfo?.code??void 0,message:F(i)}}}var ft=l.object({createtime:l.union([l.string(),l.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:l.union([l.string(),l.null()]).optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),createaccountname:l.union([l.string(),l.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u7F16\u7801"),clientcategorycode:l.union([l.string(),l.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),confsource:l.coerce.number().nullable().optional().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),directorytypecode:l.union([l.string(),l.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:l.union([l.string(),l.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),marktype:l.coerce.number().nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:l.union([l.string(),l.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C code \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),pagetemplatecode:l.union([l.string(),l.null()]).optional().describe("\u9875\u9762\u6A21\u677F\u7F16\u7801"),pagetypename:l.union([l.string(),l.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\u540D\u79F0"),pagedescr:l.union([l.string(),l.null()]).optional().describe("\u9875\u9762\u63CF\u8FF0"),ref:l.union([l.string(),l.null()]).optional().describe("\u5916\u90E8\u5F15\u7528\uFF0C\u4E00\u822C\u4F20\u7A7A\u5B57\u7B26\u4E32"),status:l.coerce.number().nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:l.union([l.string(),l.null()]).optional().describe("\u6807\u9898"),type:l.coerce.number().nullable().optional().describe("\u7C7B\u578B\uFF08\u6574\u6570\uFF09\u542B\u4E49\uFF1A5-\u5217\u8868\u67E5\u8BE2\uFF1B1-\u666E\u901A\u9875\u9762\uFF1B99-\u4E8C\u5F00\u9875\u9762\uFF1B10-switchpage\uFF1B11-\u6811\u5BFC\u822A\u5217\u8868\uFF1B100-\u539F\u751F\u9875\u9762\uFF1B101-\u7A7A\u767D\u9875\u9762\uFF1B7-\u62A5\u8868\u9875\u9762\uFF1B12-\u6392\u5E8F\u9875\u9762\uFF1B300-\u6B65\u9AA4\u7BA1\u7406\u8868\u5355\uFF1B1000-\u5168\u5C40\u51FD\u6570"),updatetime:l.union([l.string(),l.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountcode:l.union([l.string(),l.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:l.union([l.string(),l.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),versionnum:l.union([l.string(),l.null()]).optional().describe("\u7248\u672C\u53F7")}).catchall(l.unknown()),$e={renderinfo:l.any().optional().describe("IDE \u6E32\u67D3\u6807\u8BB0"),pageinfo:l.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 1\uFF1A\u9875\u9762\u57FA\u7840\u4FE1\u606F"),businessmodel:l.any().optional().describe("\u9875\u9762\u5F15\u7528\u5230\u7684\u540E\u7AEF\u4E1A\u52A1\u6A21\u578B\uFF08\u63A5\u53E3\uFF09\uFF0C\u7ED3\u6784\u540C logicClient \u7684 LogicResult"),actionlogic:l.any().optional().describe("\u52A8\u4F5C\u903B\u8F91\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),presenter:l.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 2\uFF1A\u5B9A\u4E49\u7684\u5404\u79CD\u4E8B\u4EF6\uFF0C\u5728\u4E0D\u540C\u65F6\u673A\u89E6\u53D1\uFF0C\u5982\u6309\u94AE\u70B9\u51FB\u3001\u4E0B\u62C9\u6846\u9009\u62E9\u7684\u503C\u6539\u53D8\u3001\u9996\u6B21\u52A0\u8F7D\u7B49"),view:l.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 3\uFF1A\u5B9A\u4E49\u7684\u9875\u9762\u7ED3\u6784\uFF0C\u9875\u9762\u7531\u54EA\u4E9B\u63A7\u4EF6\u6784\u6210\uFF0C\u63A7\u4EF6\u7684\u5C5E\u6027\u3001\u6837\u5F0F\uFF0C\u7ED1\u5B9A\u54EA\u4E9B\u4E8B\u4EF6\u7B49"),controls:l.any().optional().describe("\u63A7\u4EF6\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),pageswitch:l.any().optional().describe("\u4EC5 switchpage \u7C7B\u578B\u7684\u8868\u5355\u6709\u6B64\u5B57\u6BB5\uFF0C\u63CF\u8FF0 switchpage \u5305\u542B\u54EA\u4E9B\u9875\u9762"),message:l.string().nullable().optional().describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6BCF\u6B21\u4FDD\u5B58\u65F6\u586B\u5199\u7684\uFF0C\u7C7B\u4F3C git \u7684\u63D0\u4EA4\u4FE1\u606F")},Rn=[{name:"page_form_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u8868\u5355/\u9875\u9762",description:`\u5206\u9875\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u5217\u8868\uFF08Form/Page\uFF09\u3002\n\n${A}\n${z}`,inputSchema:{status:l.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),keys:l.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355 code / title"),keywords:l.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355\u4E2D\u7684\u5173\u952E\u8BCD"),clientcategorycode:l.string().optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),page:l.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:l.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),type:l.string().optional().describe("\u7C7B\u578B\uFF08\u6574\u6570\uFF09\u542B\u4E49\uFF1A5-\u5217\u8868\u67E5\u8BE2\uFF1B1-\u666E\u901A\u9875\u9762\uFF1B99-\u4E8C\u5F00\u9875\u9762\uFF1B10-switchpage\uFF1B11-\u6811\u5BFC\u822A\u5217\u8868\uFF1B100-\u539F\u751F\u9875\u9762\uFF1B101-\u7A7A\u767D\u9875\u9762\uFF1B7-\u62A5\u8868\u9875\u9762\uFF1B12-\u6392\u5E8F\u9875\u9762\uFF1B300-\u6B65\u9AA4\u7BA1\u7406\u8868\u5355\uFF1B1000-\u5168\u5C40\u51FD\u6570"),updateopname:l.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D"),updatetimestart:l.string().optional().describe("\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\uFF0C\u4E0E\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss"),updatetimeend:l.string().optional().describe("\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\uFF0C\u4E0E\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss")},outputSchema:{data:l.array(ft).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:l.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:l.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:l.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:l.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{status:e="",keys:r="",keywords:i="",clientcategorycode:t="",page:o=1,rows:s=20,type:a="",updateopname:c="",updatetimestart:u="",updatetimeend:m=""}=n;try{let f=await un({centercode:"",directorytypecode:"rootNode",starttime:"",status:e,keys:r,keywords:i,clientcategorycode:t,page:Number(o)||1,rows:Number(s)||20,type:a,updateopname:c,updatetimestart:u,updatetimeend:m});return I(f.resp_data)}catch(f){return $(f)}}},{name:"get_form",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u8BE6\u60C5",description:`\u6309 code \u83B7\u53D6\u8868\u5355\u5B8C\u6574\u8BE6\u60C5\uFF08pageinfo/businessmodel/presenter/view/controls/pageswitch/message\uFF09\uFF0C\u7ED3\u6784\u5D4C\u5957\u8F83\u6DF1\u3002\u5EFA\u8BAE\u5148 get_form_outline \u770B\u9AA8\u67B6\u3001get_form_fragment \u53D6\u5C40\u90E8\uFF0C\u518D\u7528 patch_form \u6539\uFF0C\u907F\u514D\u62C9\u53D6\u5E9E\u5927\u7684\u5B8C\u6574 JSON\u3002\n\n${A}\n${z}`,inputSchema:{code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:l.looseObject($e),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{code:e}=n;try{let r=await G({code:e});return I(r.resp_data)}catch(r){return $(r)}}},{name:"get_form_outline",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u9AA8\u67B6",description:`\u83B7\u53D6\u8868\u5355\u8F7B\u91CF\u9AA8\u67B6\uFF08\u7EA6 2\u20134KB\uFF09\uFF1Apageinfo \u5173\u952E\u5B57\u6BB5\u3001view \u6811\u9AA8\u67B6\u3001presenter \u7684 handlers \u4E0E initial \u5904\u7406\u5668\u6E05\u5355\uFF08\u6BCF\u9879\u5E26 scope \u6807\u6CE8\uFF09\u3001businessmodel \u903B\u8F91\u540D\u3002\u7528\u4E8E\u62FF\u5168\u8C8C\u4E0E\u6240\u6709\u53EF\u6539\u5BF9\u8C61 code\uFF0C\u907F\u514D\u76F2\u6539\u3002\u6CE8\u610F\u9875\u9762\u521D\u59CB\u5316\u811A\u672C\u5728 presenter.initial\uFF08scope='initial'\uFF09\u3002\n\n${z}`,inputSchema:{code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:{code:l.string().describe("\u8868\u5355\u7F16\u7801"),title:l.union([l.string(),l.null()]).optional().describe("\u6807\u9898"),type:l.union([l.string(),l.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\uFF08\u540C page_form_list \u7684 type\uFF09"),status:l.union([l.string(),l.null()]).optional().describe("\u72B6\u6001"),clientcategorycode:l.union([l.string(),l.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B"),marktype:l.union([l.string(),l.null()]).optional().describe("\u521B\u5EFA\u6807\u8BB0"),versionnum:l.union([l.string(),l.null()]).optional().describe("\u7248\u672C\u53F7"),viewTree:l.array(l.lazy(()=>l.object({code:l.union([l.string(),l.null()]).optional(),type:l.union([l.string(),l.null()]).optional(),title:l.union([l.string(),l.null()]).optional(),children:l.array(l.lazy(()=>l.object({code:l.union([l.string(),l.null()]).optional(),type:l.union([l.string(),l.null()]).optional(),title:l.union([l.string(),l.null()]).optional(),children:l.array(l.unknown()).optional()}))).optional()}))).optional().describe("view \u6811\u9AA8\u67B6\uFF08\u9012\u5F52\uFF0C\u4EC5 code/type/title + children\uFF09"),handlers:l.array(l.object({code:l.union([l.string(),l.null()]).optional(),name:l.union([l.string(),l.null()]).optional(),desc:l.union([l.string(),l.null()]).optional(),key:l.union([l.string(),l.null()]).optional(),condition:l.union([l.string(),l.null()]).optional(),actionCount:l.coerce.number().optional(),actionTypes:l.array(l.string()).optional(),scope:l.union([l.string(),l.null()]).optional().describe("\u5904\u7406\u5668\u5BB9\u5668\uFF1Ahandlers=\u4E8B\u4EF6\u5904\u7406\u5668 / initial=\u9875\u9762\u521D\u59CB\u5316\uFF08replace_script \u5BFB\u5740\u4F9D\u636E\uFF09")})).optional().describe("presenter \u4E8B\u4EF6\u5904\u7406\u5668\u6E05\u5355\uFF08\u542B\u9875\u9762\u521D\u59CB\u5316 initial\uFF0C\u6BCF\u9879\u5E26 scope \u6807\u6CE8\u6240\u5728\u5BB9\u5668\uFF09"),interfaces:l.array(l.object({code:l.union([l.string(),l.null()]).optional(),key:l.union([l.string(),l.null()]).optional(),desc:l.union([l.string(),l.null()]).optional(),actionCount:l.coerce.number().optional()})).optional().describe("presenter \u5BF9\u5916\u63A5\u53E3\u6E05\u5355"),businessModels:l.array(l.object({modelcode:l.union([l.string(),l.null()]).optional(),modellogiccode:l.union([l.string(),l.null()]).optional(),modellogicname:l.union([l.string(),l.null()]).optional(),actiontype:l.union([l.string(),l.null()]).optional()})).optional().describe("businessmodel \u5F15\u7528\u7684\u4E1A\u52A1\u903B\u8F91\u540D\u6E05\u5355\uFF08\u4EC5\u540D\u5B57\uFF0C\u4E0D\u56DE\u5185\u5BB9\uFF09"),message:l.union([l.string(),l.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{code:e}=n;try{let r=await yn(e);return I(r)}catch(r){return $(r)}}},{name:"get_form_fragment",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u5C40\u90E8\u5185\u5BB9",description:`\u6309 code \u53D6\u8868\u5355\u5C40\u90E8\u5185\u5BB9\uFF08\u51E0 KB\uFF09\uFF1AnodeCode \u8282\u70B9\u5B50\u6811\uFF08\u53EF\u914D itemCode \u94BB\u53D6\u67D0\u6570\u7EC4\u5143\u7D20\uFF09\u3001handlerCode \u5904\u7406\u5668\u5B9A\u4E49\u4E0E actionIndex \u6E05\u5355\uFF08handlers \u4E0E initial \u5747\u68C0\u7D22\uFF09\u3001section \u6574\u6BB5\u3002\u914D\u5408 patch_form \u4F7F\u7528\u3002\n\n${z}`,inputSchema:{code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),nodeCode:l.string().optional().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B50\u6811"),itemCode:l.string().optional().describe("\u5728 nodeCode \u547D\u4E2D\u7684\u8282\u70B9\u5185\u90E8\uFF0C\u6309 code \u6DF1\u5EA6\u4F18\u5148\u94BB\u53D6\u67D0\u4E2A\u6570\u7EC4\u5143\u7D20\uFF08\u5982\u8868\u683C\u7684\u67D0\u4E00\u5217\uFF09\u5E76\u8FD4\u56DE\u8BE5\u5143\u7D20\uFF0C\u800C\u975E\u6574\u68F5\u5B50\u6811\uFF1B\u672A\u627E\u5230\u65F6\u5728 message \u63D0\u793A"),handlerCode:l.string().optional().describe("\u76EE\u6807 presenter \u5904\u7406\u5668\u7F16\u7801\uFF08handlers \u4E0E initial \u5747\u68C0\u7D22\uFF09\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B9A\u4E49\u4E0E actionIndex \u6E05\u5355"),handlerScope:l.enum(["handlers","initial"]).optional().describe("\u9650\u5B9A\u5904\u7406\u5668\u5BB9\u5668\uFF1B\u9ED8\u8BA4\u540C\u65F6\u68C0\u7D22 handlers \u4E0E initial\uFF0C\u540C\u540D\u8DE8\u5BB9\u5668\u65F6\u987B\u6307\u5B9A\u4EE5\u6D88\u6B67"),section:l.enum(["pageinfo","view","presenter","controls","pageswitch","businessmodel"]).optional().describe("\u8FD4\u56DE\u6574\u6BB5\u5185\u5BB9\uFF08\u4EC5\u6838\u5BF9\u5F15\u7528\u7528\uFF09")},outputSchema:{code:l.string().describe("\u8868\u5355\u7F16\u7801"),node:l.any().optional().describe("nodeCode \u547D\u4E2D\u7684\u8282\u70B9\u5B50\u6811"),handler:l.any().optional().describe("handlerCode \u547D\u4E2D\u7684\u5904\u7406\u5668\u5B8C\u6574\u5B9A\u4E49"),section:l.any().optional().describe("section \u547D\u4E2D\u7684\u6574\u6BB5\u5185\u5BB9"),actionIndex:l.array(l.object({index:l.coerce.number().describe("action \u4E0B\u6807"),code:l.union([l.string(),l.null()]).optional().describe("action \u7F16\u7801"),type:l.union([l.string(),l.null()]).optional().describe("action \u7C7B\u578B"),scriptLen:l.coerce.number().describe("script \u5B57\u7B26\u957F\u5EA6"),conditionLen:l.coerce.number().describe("condition \u5B57\u7B26\u957F\u5EA6"),expressionLen:l.coerce.number().describe("expression \u5B57\u7B26\u957F\u5EA6")})).optional().describe("handler \u7684 action \u6E05\u5355\uFF0C\u4FBF\u4E8E\u7CBE\u786E\u6784\u9020 replace_script"),message:l.union([l.string(),l.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{code:e,nodeCode:r,itemCode:i,handlerCode:t,section:o}=n;try{let s=await hn(e,{nodeCode:r,itemCode:i,handlerCode:t,section:o});return I(s)}catch(s){return $(s)}}}];import{z as g}from"zod";var bt=g.discriminatedUnion("op",[g.object({op:g.literal("set_pageinfo"),patch:g.record(g.string(),g.unknown()).describe('\u6D45\u5408\u5E76\u8FDB pageinfo \u7684\u5B57\u6BB5\uFF0C\u5982 { "title": "\u65B0\u6807\u9898", "status": "1" }')}),g.object({op:g.literal("set_attrs"),code:g.string().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF08\u6574\u4E2A\u8868\u5355\u552F\u4E00\uFF09"),patch:g.record(g.string(),g.unknown()).describe('\u8981\u6539\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u6309 code \u5B9A\u4F4D\u540E\u6D45\u5408\u5E76\uFF0C\u5982 { "hidden": "1" }\u3002\u6CE8\u610F\uFF1A\u82E5 patch \u542B\u6570\u7EC4\u5C5E\u6027\uFF08\u5982\u8868\u683C\u7684 cols\u3001\u63A7\u4EF6\u7684 options\u3001handler \u7684 actions\uFF09\uFF0C\u4F1A**\u6574\u4F53\u8986\u76D6**\u8BE5\u6570\u7EC4\uFF1B\u53EA\u60F3\u6539\u6570\u7EC4\u5185\u67D0\u5143\u7D20\uFF08\u5982\u53EA\u6539\u67D0\u4E00\u5217\u7684\u989C\u8272\uFF09\u8BF7\u7528 patch_node_array_item\uFF0C\u907F\u514D\u5927 payload \u4E0E\u8BEF\u6539\u4E22\u5217')}),g.object({op:g.literal("patch_node_array_item"),nodeCode:g.string().describe("\u7236\u8282\u70B9 code\uFF08\u5982\u8868\u683C\u8282\u70B9 infotable-table-...\uFF09"),arrayProp:g.string().describe('\u8981\u6539\u7684\u6570\u7EC4\u5C5E\u6027\u540D\uFF0C\u5982 "cols" / "options" / "actions" / "content"'),itemKey:g.string().optional().describe('\u6570\u7EC4\u5143\u7D20\u5B9A\u4F4D\u952E\u5B57\u6BB5\u540D\uFF0C\u9ED8\u8BA4 "code"'),itemKeyValue:g.unknown().describe("\u8981\u5B9A\u4F4D\u7684\u5143\u7D20\u952E\u503C\uFF0C\u5982 dms_status \u5217\u7684 code=890419529224687617"),patch:g.record(g.string(),g.unknown()).describe('\u4EC5\u6D45\u5408\u5E76\u5230\u8BE5\u5143\u7D20\u7684\u5C5E\u6027\uFF0C\u5982 { "options": [...] }\uFF1B\u5176\u4F59\u5143\u7D20\u4E0E\u5176\u5B83\u5C5E\u6027\u4E0D\u53D7\u5F71\u54CD')}),g.object({op:g.literal("insert_node"),parentCode:g.string().describe("\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:g.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E"),node:g.record(g.string(),g.unknown()).describe("\u65B0\u8282\u70B9\u5BF9\u8C61\uFF08\u542B type/code/title/content \u7B49\uFF09\uFF0C\u540C view \u6811\u8282\u70B9\u7ED3\u6784")}),g.object({op:g.literal("remove_node"),code:g.string().describe("\u8981\u5220\u9664\u7684\u8282\u70B9 code"),checkRefs:g.boolean().optional().describe("\u524D\u7F6E\u5F15\u7528\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true\uFF1B\u5B58\u5728\u4E8B\u4EF6/handler \u5F15\u7528\u65F6\u62D2\u7EDD\u5220\u9664\uFF0C\u7F6E false \u8DF3\u8FC7\u6821\u9A8C")}),g.object({op:g.literal("move_node"),code:g.string().describe("\u79FB\u52A8\u8282\u70B9 code"),newParentCode:g.string().describe("\u65B0\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:g.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),g.object({op:g.literal("set_section"),section:g.enum(["view","presenter","controls","pageswitch"]).describe("\u6574\u6BB5\u66FF\u6362\u76EE\u6807"),value:g.unknown().describe("\u6574\u6BB5\u65B0\u5185\u5BB9\uFF08\u900F\u4F20\u539F\u6837\u4FDD\u5B58\uFF09")}),g.object({op:g.literal("replace_script"),handlerCode:g.string().describe("presenter \u5904\u7406\u5668 code\uFF08handlers \u4E0E initial \u5747\u68C0\u7D22\uFF09"),actionIndex:g.number().int().nonnegative().optional().describe("\u7B2C\u51E0\u4E2A action\uFF0C\u9ED8\u8BA4 0\uFF1B\u4E0E actionCode \u4E8C\u9009\u4E00"),actionCode:g.string().optional().describe("\u4EE5 action code \u5B9A\u4F4D\uFF08\u4E0E actionIndex \u4E8C\u9009\u4E00\uFF09"),field:g.enum(["script","condition","expression"]).optional().describe("\u76EE\u6807\u5B57\u7B26\u4E32\u5B57\u6BB5\uFF0C\u9ED8\u8BA4 script"),scope:g.enum(["handlers","initial"]).optional().describe("\u9650\u5B9A\u5904\u7406\u5668\u5BB9\u5668\uFF1B\u9ED8\u8BA4\u540C\u65F6\u68C0\u7D22 handlers \u4E0E initial\uFF0C\u540C\u540D\u8DE8\u5BB9\u5668\u65F6\u987B\u6307\u5B9A\u4EE5\u6D88\u6B67"),replacement:g.string().optional().describe("\u6574\u6BB5\u66FF\u6362\u6A21\u5F0F\uFF1A\u76F4\u63A5\u7ED9\u76EE\u6807\u5B57\u6BB5\u7684\u65B0\u5168\u6587\uFF0C\u4F18\u5148\u7EA7\u9AD8\u4E8E ops\uFF08\u9002\u5408\u6574\u6BB5\u91CD\u5199 action\uFF09"),ops:g.array(g.object({oldString:g.string().describe("\u5F85\u66FF\u6362\u7684\u539F\u6587\u7247\u6BB5\uFF0C\u5FC5\u987B\u975E\u7A7A\u4E14\u552F\u4E00\u547D\u4E2D\uFF1B\u8BF7\u4ECE\u67E5\u8BE2\u5230\u7684\u811A\u672C\u539F\u6587\u539F\u6837\u590D\u5236\uFF08\u542B\u7F29\u8FDB\u4E0E\u6362\u884C\uFF09"),newString:g.string().describe("\u66FF\u6362\u540E\u7684\u65B0\u6587\u672C\uFF1B\u4F20\u7A7A\u5B57\u7B26\u4E32\u8868\u793A\u5220\u9664 oldString \u8FD9\u6BB5\u5185\u5BB9"),replaceAll:g.boolean().optional().describe("\u662F\u5426\u66FF\u6362\u5168\u90E8\u5339\u914D\uFF0C\u9ED8\u8BA4 false\uFF1B\u4EC5\u5728\u4F60\u786E\u8BA4\u8981\u6539\u6389\u6240\u6709\u540C\u540D\u7247\u6BB5\u65F6\u7F6E true"),occurrence:g.number().int().positive().optional().describe("\u53EA\u66FF\u6362\u7B2C N \u4E2A\u5339\u914D\uFF081-based\uFF09\uFF0C\u7528\u4E8E\u591A\u5904\u76F8\u540C\u7247\u6BB5\u53EA\u6539\u5176\u4E2D\u4E00\u5904\uFF1B\u4E0E replaceAll \u4E92\u65A5"),matchMode:g.enum(["exact","normalized"]).optional().describe("\u5339\u914D\u4E25\u683C\u5EA6\uFF0C\u9ED8\u8BA4 normalized\uFF08\u5BB9\u5FCD CRLF/LF \u4E0E\u884C\u5C3E\u7A7A\u767D\u5DEE\u5F02\uFF09\uFF1Bexact \u4E3A\u5B57\u8282\u4E25\u683C\u76F8\u7B49"),label:g.string().optional().describe("\u53EF\u9009\u6807\u8BC6\uFF0C\u4EC5\u7528\u4E8E\u5728\u8FD4\u56DE\u62A5\u544A\u4E2D\u8FA8\u8BA4\u8BE5 op\uFF0C\u4E0D\u5F71\u54CD\u6267\u884C")})).min(1).optional().describe("\u5C40\u90E8\u6A21\u5F0F\uFF1AoldString\u2192newString \u6570\u7EC4\uFF1B\u63D0\u4F9B replacement \u65F6\u672C\u5B57\u6BB5\u5FFD\u7565")}),g.object({op:g.literal("add_businessmodel"),modellogiccode:g.string().describe("\u76EE\u6807\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF1BMCP \u81EA\u52A8\u8C03\u7528 getModelLogic \u62C9\u53D6\u5176\u5B8C\u6574 JSON \u8FFD\u52A0\u5230 businessmodel\uFF08\u65E0\u9700\u4F60\u4F20\u5165\u5927\u6BB5\u903B\u8F91 JSON\uFF09"),overwrite:g.boolean().optional().describe("\u5F53 businessmodel \u5DF2\u5B58\u5728\u8BE5 modellogiccode \u65F6\u662F\u5426\u8986\u76D6\uFF0C\u9ED8\u8BA4 false\uFF08\u8DF3\u8FC7\uFF09")}),g.object({op:g.literal("remove_businessmodel"),modellogiccode:g.string().describe("\u8981\u79FB\u9664\u7684\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),checkRefs:g.boolean().optional().describe("\u524D\u7F6E\u5F15\u7528\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true")})]),xn=[{name:"patch_form",config:{title:"\u5C40\u90E8\u8865\u4E01\u4FEE\u6539\u8868\u5355/\u9875\u9762",description:`\u4EE5 delta ops \u5C40\u90E8\u4FEE\u6539\u8868\u5355\uFF0C\u65E0\u9700\u56DE\u4F20\u5B8C\u6574 JSON\u300210 \u7C7B ops\uFF1Aset_pageinfo/set_attrs/patch_node_array_item/insert_node/remove_node/move_node/set_section/replace_script/add_businessmodel/remove_businessmodel\u3002\u63A8\u8350\u6D41\u7A0B\uFF1Aget_form_outline \u62FF code \u2192 get_form_fragment \u786E\u8BA4\u771F\u5B9E\u5C5E\u6027\u540D/\u811A\u672C \u2192 patch_form\u3002ops \u4E8B\u52A1\u6027\u9884\u6F14\uFF0C\u5931\u8D25\u6574\u6279\u56DE\u6EDA\uFF1B\u6539\u521D\u59CB\u5316\u811A\u672C\uFF08presenter.initial\uFF09\u4E0E\u6539\u6309\u94AE\u4E8B\u4EF6\u7528\u6CD5\u4E00\u81F4\u3002\n\n${z}`,inputSchema:{code:g.string().describe("\u76EE\u6807\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),ops:g.array(bt).min(1).describe("\u8865\u4E01\u64CD\u4F5C\u6570\u7EC4\uFF0C\u81F3\u5C11\u4E00\u4E2A\u5143\u7D20\uFF1B\u6309\u6570\u7EC4\u987A\u5E8F\u4F9D\u6B21\u4F5C\u7528\u4E8E\u4E0A\u4E00\u6B65\u7ED3\u679C"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6574\u6279 ops \u5171\u7528\u4E00\u4E2A\uFF1B\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF0Cmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B"),dryRun:g.boolean().optional().describe("\u53EA\u9884\u6F14\u5E76\u8F93\u51FA diff\u3001\u4E0D\u843D\u5E93\uFF0C\u9ED8\u8BA4 false\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u65F6\u5EFA\u8BAE\u5148\u7F6E true"),verify:g.boolean().optional().describe("\u4FDD\u5B58\u540E\u662F\u5426\u56DE\u8BFB\u6821\u9A8C\u6240\u6709\u6539\u52A8\u5DF2\u751F\u6548\uFF0C\u9ED8\u8BA4 true")},outputSchema:{ok:g.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:g.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:g.boolean().nullable().describe("\u4FDD\u5B58\u540E\u56DE\u8BFB\u6821\u9A8C\u7ED3\u679C\uFF1Atrue \u5168\u90E8\u751F\u6548\u3001false \u5B58\u5728\u5F02\u5E38\u3001null \u672A\u843D\u5E93\u6216\u672A\u5F00\u542F\u6821\u9A8C"),errorCode:g.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / NODE_NOT_FOUND / DUP_CODE / REF_VIOLATION / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:g.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:g.string().describe("\u5168\u90E8 op \u7684 diff \u7247\u6BB5\uFF0C\u8D85\u957F\u4F1A\u622A\u65AD\uFF1B\u53EA\u56DE\u6539\u52A8\u6458\u8981\uFF0C\u4E0D\u56DE\u6574\u4EFD\u8868\u5355"),ops:g.array(g.object({index:g.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:g.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:g.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:g.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801"),message:g.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),hunk:g.string().nullable().optional().describe("\u8BE5 op \u4EA7\u751F\u7684 diff \u7247\u6BB5\uFF08replace_script \u624D\u6709\uFF09"),suggestions:g.array(g.object({startLine:g.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:g.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:g.string().describe("\u5019\u9009\u7247\u6BB5\u9884\u89C8")})).nullable().optional().describe("NOT_FOUND \u65F6\u7684\u76F8\u4F3C\u5019\u9009")})).describe("\u6BCF\u4E2A op \u7684\u6267\u884C\u7ED3\u679C\uFF0C\u4E0E\u5165\u53C2 ops \u4E00\u4E00\u5BF9\u5E94")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{code:e,commitMessage:r,dryRun:i=!1,verify:t=!0}=n,o=n.ops,s=B(r);try{let a=await _n(e,o,s,{dryRun:i,verify:t});return{isError:!a.ok,content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a}}catch(a){let c=F(a);return{isError:!0,content:[{type:"text",text:c}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:c,diff:"",ops:[]}}}}},{name:"save_form",config:{title:"\u5168\u91CF\u4FDD\u5B58\u8868\u5355/\u9875\u9762",description:`\u6574\u9875\u91CD\u6784\uFF08\u91CD\u6392\u5E03\u5C40\u3001\u6A21\u677F\u8FC1\u79FB\uFF09\u624D\u7528\uFF1A\u56DE\u4F20\u5B8C\u6574 FormResult \u5168\u91CF\u4FDD\u5B58\u3002\u65E5\u5E38\u5C40\u90E8\u6539\u52A8\u4F18\u5148 patch_form\u3002businessmodel \u968F\u8868\u5355\u900F\u4F20\uFF0CMCP \u4E0D\u5265\u79BB\u3002\n\n${z}`,inputSchema:{form:g.looseObject($e).describe("\u5B8C\u6574\u7684\u8868\u5355 JSON \u5BF9\u8C61\uFF08FormResult\uFF09\uFF0C\u901A\u5E38\u6765\u81EA get_form \u7684\u8FD4\u56DE\uFF0C\u4FEE\u6539\u540E\u56DE\u4F20"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF1Bmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B")},outputSchema:{ok:g.boolean().describe("\u662F\u5426\u4FDD\u5B58\u6210\u529F"),code:g.string().optional().describe("\u4FDD\u5B58\u6210\u529F\u7684\u8868\u5355\u7F16\u7801"),message:g.string().describe("\u4FDD\u5B58\u7ED3\u679C\u6D88\u606F\uFF08\u670D\u52A1\u7AEF\u8FD4\u56DE\u7684 resp_data \u5B57\u7B26\u4E32\uFF1B\u5931\u8D25\u65F6\u8FD4\u56DE\u9519\u8BEF\u4F53 JSON\uFF09")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{form:e,commitMessage:r}=n,i=B(r);try{let t=await wn(e,i);return{isError:!t.ok,content:[{type:"text",text:JSON.stringify(t)}],structuredContent:t}}catch(t){let o=F(t);return{isError:!0,content:[{type:"text",text:o}],structuredContent:{ok:!1,code:void 0,message:o}}}}}];import{z as x}from"zod";function kn(n,e){return C({url:"/api/masterserv/hpage/listH5Page",method:"post",data:n,type:"business",token:e})}function On(n,e){return C({url:"/api/masterserv/hpage/listH5PageByOne",method:"post",data:n,type:"business",token:e})}function Nn(n){return C({url:"/pemission/rolepermission/account/getPreviewAccounts",method:"post",data:n,type:"tenant"})}async function vn(){let n=Z();if(!n)throw new Error("\u67E5\u8BE2 H5 \u8868\u5355\u524D\u5FC5\u987B\u5148\u8C03\u7528 setTenant() \u8BBE\u7F6E\u79DF\u6237\u4FE1\u606F\uFF08authenticate \u6D41\u7A0B\u4F1A\u5199\u5165\uFF09");let e;for(let r=1;r<=3;r++)try{let i=await Nn({pvcode:n.productVersionCode,rows:200}),o=(Array.isArray(i?.resp_data)?i.resp_data:[]).find(s=>s.positionname==="SFA\u7CFB\u7EDF\u7BA1\u7406\u5458");if(!o)throw new Error("\u672A\u5728\u9884\u89C8\u8D26\u53F7\u5217\u8868\u4E2D\u627E\u5230\u804C\u4F4D\u4E3A\u300CSFA\u7CFB\u7EDF\u7BA1\u7406\u5458\u300D\u7684\u8D26\u53F7");if(!o.token)throw new Error("\u627E\u5230\u804C\u4F4D\u4E3A\u300CSFA\u7CFB\u7EDF\u7BA1\u7406\u5458\u300D\u7684\u8D26\u53F7\uFF0C\u4F46\u5176 token \u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u7528\u4E8E H5 \u8868\u5355\u67E5\u8BE2");return o.token}catch(i){e=i,r<3&&await new Promise(t=>setTimeout(t,800))}throw e}async function Sn(n){let e=await vn();return kn(n,e)}async function Pn(n){let e=await vn();return On(n,e)}var Cn=x.object({confjson:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u5185\u5BB9 JSON \u5B57\u7B26\u4E32\uFF0C\u5305\u542B H5 \u8868\u5355\u7684 Vue \u4EE3\u7801\uFF0C\u5143\u6570\u636E\u914D\u7F6E"),directorytypecode:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF0C\u9884\u7559\u5B57\u6BB5"),pagecode:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801"),pagedescr:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u63CF\u8FF0"),pagetype:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u9875\u9762\u7C7B\u578B\uFF0C\u9884\u7559\u5B57\u6BB5"),platcreateop:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u4EBA\u59D3\u540D"),platcreatetime:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u65F6\u95F4"),platstatus:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u5E73\u53F0\u72B6\u6001"),platupdateop:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),platupdatetime:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),status:x.union([x.string(),x.number(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u72B6\u6001\uFF1B1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6807\u9898")}).catchall(x.unknown()),yt=Cn.omit({confjson:!0}),ht={data:x.array(yt).describe("\u8FD9\u4E00\u9875\u7684 H5 \u8868\u5355\u6570\u636E"),pageCount:x.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:x.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:x.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:x.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},_t=Cn.shape,Fn=[{name:"page_h5_form",config:{title:"\u5206\u9875\u67E5\u8BE2 H5 \u8868\u5355\u5217\u8868",description:"\u5206\u9875\u67E5\u8BE2\u667A\u6167100 H5 \u5F15\u64CE\u7684 H5 \u8868\u5355\u5217\u8868\uFF08\u4E0D\u542B confjson\uFF09\u3002\u79DF\u6237\u672A\u88C5 H5 \u5F15\u64CE\u65F6\u8FD4\u56DE HTTP 404\u3002",inputSchema:{keywords:x.string().optional().describe("H5 \u8868\u5355\u4EE3\u7801\u53CA\u5176\u5143\u6570\u636E\u4E2D\u5305\u542B\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),pagecode:x.string().optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),status:x.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),title:x.string().optional().describe("H5 \u8868\u5355\u7684\u6807\u9898\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),updateopname:x.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),page:x.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:x.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:ht,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{keywords:e="",pagecode:r="",status:i="",title:t="",updateopname:o="",page:s=1,rows:a=20}=n;try{let u=(await Sn({keywords:e,pagecode:r,status:i,title:t,updateopname:o,page:Number(s)||1,rows:Number(a)||20})).resp_data,m=Array.isArray(u?.data)?u.data.map(y=>{let h={...y};return delete h.confjson,h}):u?.data,f={...u,data:m};return I(f)}catch(c){return $(c)}}},{name:"get_h5_form",config:{title:"\u67E5\u8BE2 H5 \u8868\u5355\u8BE6\u60C5",description:"\u6309 pagecode \u83B7\u53D6 H5 \u8868\u5355\u8BE6\u60C5\uFF08\u542B confjson\uFF1AVue \u4EE3\u7801\u4E0E\u5143\u6570\u636E\uFF09\u3002\u5173\u952E\u5B57\u6BB5\uFF1Apagecode/title/status/pagedescr/confjson/platcreate*/platupdate*/platstatus\u3002\u672A\u88C5 H5 \u5F15\u64CE\u8FD4\u56DE HTTP 404\u3002",inputSchema:{pagecode:x.string().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:_t,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{pagecode:e}=n;try{let r=await Pn({pagecode:e});return{content:[{type:"text",text:JSON.stringify(r.resp_data)}],structuredContent:r.resp_data}}catch(r){return $(r)}}}];import{z as p}from"zod";function In(n){return C({url:"/bizserv/bizmodel/pageList",method:"post",data:n,type:"tenant"})}function $n(n){return C({url:"/bizserv/bizmodel/get",method:"post",data:n,type:"tenant"})}var wt=p.object({classname:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),createaccountcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:p.union([p.string(),p.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:p.union([p.string(),p.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),dddlayer:p.union([p.string(),p.number()]).nullable().optional().describe("\u51FD\u6570\u5C42\u7EA7\u6807\u8BC6\uFF0C\u5217\u8868\u67E5\u8BE2\u65F6\u56FA\u5B9A\u4F20 3\uFF0C\u8F93\u51FA\u540C\u6B65\u8FD4\u56DE\u8BE5\u503C"),directorytypecode:p.union([p.string(),p.number()]).nullable().optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:p.union([p.string(),p.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modelcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u51FD\u6570\u7684\u7F16\u7801"),modeldescr:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u63CF\u8FF0"),modelname:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),seq:p.union([p.string(),p.number()]).nullable().optional().describe("\u987A\u5E8F"),status:p.union([p.string(),p.number()]).nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:p.union([p.string(),p.null()]).optional().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u51FD\u6570\u4E00\u822C\u65E0\u5BF9\u5E94\u8868\uFF0C\u901A\u5E38\u4E3A\u7A7A\uFF09"),updateaccountcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7 code"),updateaccountname:p.union([p.string(),p.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),updatetime:p.union([p.string(),p.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(p.unknown()),Rt={classname:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),createaccountcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:p.union([p.string(),p.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:p.union([p.string(),p.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),dddlayer:p.union([p.string(),p.number()]).nullable().optional().describe("\u51FD\u6570\u5C42\u7EA7\u6807\u8BC6\uFF0C\u5217\u8868\u67E5\u8BE2\u65F6\u56FA\u5B9A\u4F20 3\uFF0C\u8F93\u51FA\u540C\u6B65\u8FD4\u56DE\u8BE5\u503C"),directorytypecode:p.union([p.string(),p.number()]).nullable().optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:p.union([p.string(),p.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modelcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u51FD\u6570\u7684\u7F16\u7801"),modeldescr:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u63CF\u8FF0"),modelname:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),seq:p.union([p.string(),p.number()]).nullable().optional().describe("\u987A\u5E8F"),status:p.union([p.string(),p.number()]).nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:p.union([p.string(),p.null()]).optional().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u51FD\u6570\u4E00\u822C\u65E0\u5BF9\u5E94\u8868\uFF0C\u901A\u5E38\u4E3A\u7A7A\uFF09"),updateaccountcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7 code"),updateaccountname:p.union([p.string(),p.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),updatetime:p.union([p.string(),p.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),confjson:p.string().nullable().optional().describe("flycode \u51FD\u6570\u4EE3\u7801\u5185\u5BB9")},Dn=[{name:"page_function_list",config:{title:"\u5206\u9875\u67E5\u8BE2 flycode \u51FD\u6570",description:`\u5206\u9875\u67E5\u8BE2 flycode \u51FD\u6570\u5217\u8868\u3002dddlayer \u56FA\u5B9A\u4F20 "3"\u3002\n\n${A}\n${ne}`,inputSchema:{classname:p.string().optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),name:p.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u901A\u5E38\u548C modelname \u4E00\u81F4"),modelname:p.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u901A\u5E38\u548C name \u4E00\u81F4"),flycodekey:p.string().optional().describe("\u51FD\u6570\u5185\u5BB9\u5173\u952E\u5B57"),page:p.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:p.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:p.array(wt).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:p.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:p.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:p.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:p.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{classname:e="",name:r="",modelname:i="",flycodekey:t="",page:o=1,rows:s=20}=n;try{let a=await In({dddlayer:3,directorytypecode:"",starttime:"",classname:e,name:r,modelname:i,flycodekey:t,page:Number(o)||1,rows:Number(s)||20});return I(a.resp_data)}catch(a){return $(a)}}},{name:"get_function",config:{title:"\u67E5\u8BE2 flycode \u51FD\u6570\u8BE6\u60C5",description:`\u6309 modelcode \u67E5\u8BE2\u51FD\u6570\u8BE6\u60C5\uFF08\u57FA\u672C\u4FE1\u606F + confjson \u4EE3\u7801\uFF09\u3002\u4EE3\u7801\u8FD0\u884C\u4E8E Java Nashorn \u7684 ES5 JS\uFF0C\u65E0 FlyQL \u7F16\u8BD1\u4E0E\u5185\u7F6E\u5BF9\u8C61\uFF1B\u4E1A\u52A1\u903B\u8F91\u4E2D\u901A\u8FC7 loadex('\u65B9\u6CD5\u540D') \u52A0\u8F7D\u3002\n\n${A}\n${ne}`,inputSchema:{modelcode:p.string().describe("\u51FD\u6570\u7684\u7F16\u7801")},outputSchema:p.looseObject(Rt),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{modelcode:e}=n;try{let r=await $n({modelcode:e});return I(r.resp_data)}catch(r){return $(r)}}}];import{z as O}from"zod";function En(n){return C({url:"/bizserv/customfunction/list",method:"post",data:n,type:"tenant"})}var xt=O.object({createtime:O.union([O.string(),O.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),creator:O.union([O.string(),O.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),dbfunctionname:O.union([O.string(),O.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D"),functioncode:O.union([O.string(),O.null()]).optional().describe("\u51FD\u6570\u552F\u4E00\u7F16\u7801"),functionname:O.union([O.string(),O.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),functionscript:O.union([O.string(),O.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u5185\u5BB9\uFF08PostgreSQL \u51FD\u6570\u4F53\uFF09"),marktype:O.union([O.string(),O.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:O.union([O.string(),O.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C functioncode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),publishstatus:O.union([O.string(),O.number()]).nullable().optional().describe("\u53D1\u5E03\u72B6\u6001\uFF0C1-\u672A\u53D1\u5E03\uFF1B2-\u5DF2\u53D1\u5E03"),remark:O.union([O.string(),O.null()]).optional().describe("\u5907\u6CE8"),status:O.union([O.string(),O.number()]).nullable().optional().describe("\u72B6\u6001\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),updatetime:O.union([O.string(),O.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updator:O.union([O.string(),O.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA")}).catchall(O.unknown()),An=[{name:"page_database_function_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u6570\u636E\u5E93\u51FD\u6570",description:`\u5206\u9875\u67E5\u8BE2\u6570\u636E\u5E93\u51FD\u6570\uFF08PostgreSQL \u81EA\u5B9A\u4E49\u51FD\u6570\uFF09\u5217\u8868\uFF1B\u7ED3\u679C\u5DF2\u968F\u884C\u8FD4\u56DE functionscript\uFF08\u51FD\u6570\u4F53\uFF09\uFF0C\u65E0\u9700\u8BE6\u60C5\u63A5\u53E3\u3002\n\n${A}\n${ne}`,inputSchema:{dbfunctionname:O.string().optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),name:O.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),pageindex:O.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),pagesize:O.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:O.array(xt).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:O.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:O.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:O.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:O.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{dbfunctionname:e="",name:r="",pageindex:i=1,pagesize:t=20}=n;try{let o=await En({dbfunctionname:e,name:r,pageindex:Number(i)||1,pagesize:Number(t)||20});return I(o.resp_data)}catch(o){return $(o)}}}];import{z as oe}from"zod";function Ln(n){return C({url:"/api/biz/sqlrun",method:"post",data:n,type:"business"})}var kt={data:oe.array(oe.unknown()).nullable().optional().describe("\u67E5\u8BE2\u7ED3\u679C\u6570\u636E\uFF0C\u6570\u7EC4\u4E2D\u7684\u6BCF\u4E00\u9879\u4E3A\u4E00\u6761\u67E5\u8BE2\u7ED3\u679C\u8BB0\u5F55\uFF08\u5BF9\u8C61\uFF09"),influenceCount:oe.coerce.number().nullable().optional().describe("\u67E5\u8BE2\u7ED3\u679C\u603B\u6570")},Tn=[{name:"run_sql",config:{title:"\u6267\u884C SQL \u67E5\u8BE2",description:"\u5728\u4E1A\u52A1\u5E93\uFF08PostgreSQL\uFF09\u4E2D\u6267\u884C\u4E00\u6761 SELECT \u67E5\u8BE2\uFF08\u63A5\u53E3\u4EC5\u652F\u6301 SELECT\uFF0C\u4E00\u6B21\u4E00\u6761\uFF0C\u53EA\u80FD\u67E5\u4E1A\u52A1\u8868\uFF1B\u67E5\u8868\u5B57\u6BB5\u7ED3\u6784\u8BF7\u7528 get_entity\uFF09\uFF0C\u8FD4\u56DE\u7ED3\u679C data \u4E0E\u603B\u6570 influenceCount\u3002\u9002\u7528\u4E8E\u76F4\u63A5\u63A2\u67E5\u4E1A\u52A1\u8868\u6570\u636E\u3001\u6838\u5BF9\u5B57\u6BB5\u503C\u3001\u9A8C\u8BC1\u540C\u6B65\u7ED3\u679C\u7B49\u53EA\u8BFB\u573A\u666F\u3002",inputSchema:{sql:oe.string().describe("\u8981\u6267\u884C\u7684 SQL \u67E5\u8BE2\u8BED\u53E5\uFF0C\u53EA\u652F\u6301 SELECT \u67E5\u8BE2\uFF0C\u4E00\u6B21\u53EA\u80FD\u4E00\u6761 SQL")},outputSchema:oe.looseObject(kt),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{sql:e}=n;try{let r=await Ln({sql:e});return I(r.resp_data)}catch(r){return $(r)}}}];import{z as jn}from"zod";var De=class{workerIdBits=5;datacenterIdBits=5;sequenceBits=12;maxWorkerId=-1^-1<<this.workerIdBits;maxDatacenterId=-1^-1<<this.datacenterIdBits;sequenceMask=-1^-1<<this.sequenceBits;workerIdShift=this.sequenceBits;datacenterIdShift=this.sequenceBits+this.workerIdBits;timestampShift=this.sequenceBits+this.workerIdBits+this.datacenterIdBits;epoch;lastTimestamp=-1n;sequence=0n;workerId;datacenterId;constructor(e,r,i=15778368e5){if(e>this.maxWorkerId||e<0)throw new Error(`workerId \u5FC5\u987B\u5728 0 ~ ${this.maxWorkerId} \u4E4B\u95F4`);if(r>this.maxDatacenterId||r<0)throw new Error(`datacenterId \u5FC5\u987B\u5728 0 ~ ${this.maxDatacenterId} \u4E4B\u95F4`);this.workerId=BigInt(e),this.datacenterId=BigInt(r),this.epoch=BigInt(i)}nextId(){let e=this.currentTimestamp();if(e<this.lastTimestamp){let i=this.lastTimestamp-e;if(i<=5n)for(;e<this.lastTimestamp;)e=this.currentTimestamp();else throw new Error(`\u65F6\u949F\u56DE\u62E8\u8FC7\u5927: ${i}ms\uFF0C\u65E0\u6CD5\u751F\u6210 ID`)}return e===this.lastTimestamp?(this.sequence=this.sequence+1n&BigInt(this.sequenceMask),this.sequence===0n&&(e=this.waitNextMillis(this.lastTimestamp))):this.sequence=0n,this.lastTimestamp=e,e-this.epoch<<BigInt(this.timestampShift)|this.datacenterId<<BigInt(this.datacenterIdShift)|this.workerId<<BigInt(this.workerIdShift)|this.sequence}waitNextMillis(e){let r=this.currentTimestamp();for(;r<=e;)r=this.currentTimestamp();return r}currentTimestamp(){return BigInt(Date.now())}parse(e){let r=(e>>BigInt(this.timestampShift))+this.epoch,i=e>>BigInt(this.datacenterIdShift)&BigInt(this.maxDatacenterId),t=e>>BigInt(this.workerIdShift)&BigInt(this.maxWorkerId),o=e&BigInt(this.sequenceMask);return{timestamp:r,datacenterId:i,workerId:t,sequence:o,generateTime:new Date(Number(r))}}},Ot=1,Nt=1,vt=new De(Ot,Nt),Mn=()=>vt.nextId();var Hn=[{name:"generate_unique_code",config:{title:"\u751F\u6210\u552F\u4E00\u7F16\u7801",description:"\u901A\u8FC7\u96EA\u82B1\u7B97\u6CD5\u751F\u6210\u5168\u5C40\u552F\u4E00 ID\uFF08code\uFF09\u3002\u65B0\u5EFA\u5B9E\u4F53/\u9886\u57DF/\u8868\u5355\u7B49\u5185\u5BB9\u65F6\u5176 JSON \u9700\u643A\u5E26\u552F\u4E00 code\uFF0C\u53EF\u8C03\u7528\u672C\u5DE5\u5177\u83B7\u53D6\uFF08\u53EF\u9009 prefix \u524D\u7F00\uFF09\u3002",inputSchema:{prefix:jn.string().optional().describe("\u53EF\u9009\u524D\u7F00\uFF0C\u62FC\u63A5\u5230\u751F\u6210\u7684\u552F\u4E00 ID \u4E4B\u524D\uFF08\u4F8B\u5982\u5B9E\u4F53\u7F16\u7801\u524D\u7F00\uFF09\uFF1B\u4E0D\u4F20\u5219\u53EA\u8FD4\u56DE\u7EAF\u6570\u5B57 ID \u5B57\u7B26\u4E32")},outputSchema:{code:jn.string().describe("\u751F\u6210\u7684\u552F\u4E00\u7F16\u7801\uFF08code\uFF09\u3002\u5B57\u7B26\u4E32\u5F62\u5F0F\u4EE5\u907F\u514D\u5927\u6574\u6570\u7CBE\u5EA6\u4E22\u5931")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{prefix:e=""}=n;try{let r=Mn().toString(),t={code:e?`${e}${r}`:r};return I(t)}catch(r){let t={error:r.message??String(r)};return{isError:!0,content:[{type:"text",text:JSON.stringify(t)}]}}}}];await Ke();var ie=new St({name:"flycode-mcp",version:"1.0.0"}),Un=(process.env.PROGRESSIVE_DISCLOSURE??"on").toLowerCase()!=="off",Ct=[...We,...on,...cn,...Rn,...xn,...Fn,...Dn,...An,...Tn,...Hn],zn=new ce(Un);zn.registerAll(ie,Ct);for(let n of Ye(zn))ie.registerTool(n.name,n.config,n.handler);async function Ft(){let n=new Pt;await ie.connect(n),process.on("SIGINT",async()=>{await ie.close(),process.exit(0)}),process.on("SIGTERM",async()=>{await ie.close(),process.exit(0)}),console.error(`flycode-mcp listening on stdio (progressive disclosure: ${Un?"on":"off"})`)}Ft().catch(n=>{console.error(n),process.exit(1)});
|
|
2
|
+
import{McpServer as $t}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as Dt}from"@modelcontextprotocol/sdk/server/stdio.js";var he="http://mconfig.xuantongkeji.com:51074",Jn="username",Gn="password",Zn="tenantCode",Qn="envName";function ae(n,e){let i=process.argv.slice(2).join("&"),o=new URLSearchParams(i).get(n);if(o!==null&&o!=="")return o;if(e!==void 0)return e;throw new Error(`Missing required arg: ${n}`)}var j={username:ae(Jn),password:ae(Gn),tenantCode:ae(Zn),envName:ae(Qn)};import Wn from"axios";var He=null;function _e(n){He=n}function Ue(){return He}var ze=null;function Ve(n){ze=n}function Z(){return ze}var we=Wn.create({baseURL:he||"",timeout:2e4,headers:{"Content-Type":"application/json"}});we.interceptors.request.use(n=>{let r=n.token??Ue();return r&&(n.headers=n.headers||{},n.headers.token=r),delete n.token,n});we.interceptors.response.use(n=>n.data,n=>Promise.reject(n));function C(n){let{type:e="center",...r}=n,i;switch(e){case"center":i=he||"";break;case"tenant":case"business":{let t=Z();if(!t)return Promise.reject(new Error(`type \u4E3A ${e} \u65F6\uFF0C\u5FC5\u987B\u5148\u8C03\u7528 setTenant() \u8BBE\u7F6E\u79DF\u6237\u4FE1\u606F`));i=e==="tenant"?t.conn.config:t.conn.business;break}}return we({...r,baseURL:i})}var ce="1";function Ke(n){return C({url:"/api/multiplat/auth/login",method:"post",data:n})}function qe(){return C({url:"/api/multiplat/auth/getTenantInfo",method:"post",data:{appid:ce}})}function Ye(n){return C({url:"/api/multiplat/auth/getIdeToken",method:"post",data:n})}async function Be(){let n=await Ke({appid:ce,username:j.username,password:j.password});if(n.code!==200)throw new Error(`Unable to login: ${n.msg}`);_e(n.data.token),console.error("flycode-mcp \u767B\u5F55\u5B8C\u6210");let r=(await qe()).resp_data.find(a=>a.tenantcode===j.tenantCode),i=r?.envs.find(a=>a.envname===j.envName);if(r&&i){let a;try{a=JSON.parse(i.conn)}catch{throw new Error(`\u79DF\u6237\u73AF\u5883\u8FDE\u63A5\u4FE1\u606F\u89E3\u6790\u5931\u8D25, \u79DF\u6237\u53F7: ${j.tenantCode}, \u73AF\u5883\u540D: ${j.envName}, env.conn \u4E0D\u662F\u5408\u6CD5\u7684 JSON: ${i.conn}`)}Ve({metaModelCode:r.metamodelcode,metaModelType:r.metamodeltype,productCode:r.productcode,productName:r.productname,productSeriesCode:r.productseriescode,productVersionCode:r.productversioncode,productVersionName:r.productversionname,tenantCode:r.tenantcode,tenantName:r.tenantname,conn:a,envId:i.envid,envName:i.envname,tenantEnvName:i.tenantenvname})}let t=Z();if(!t)throw new Error(`\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u79DF\u6237\u4FE1\u606F, \u79DF\u6237\u53F7: ${j.tenantCode}, \u73AF\u5883\u540D: ${j.envName}`);console.error("flycode-mcp \u83B7\u53D6\u79DF\u6237\u4FE1\u606F\u5B8C\u6210");let s=(await Ye({appid:ce,envid:t.envId,metamodeltype:t.metaModelType,productcode:t.productCode,productversioncode:t.productVersionCode,tenantcode:t.tenantCode})).resp_data?.idetoken;if(!s)throw new Error(`\u83B7\u53D6 IDE Token \u5931\u8D25, \u79DF\u6237\u53F7: ${t.tenantCode}, \u73AF\u5883\u540D: ${t.envName}, \u8FD4\u56DE\u4F53\u4E2D\u672A\u5305\u542B\u6709\u6548\u7684 idetoken`);_e(s),console.error("flycode-mcp \u83B7\u53D6 IDE Token \u5B8C\u6210")}var Re=[{name:"core",title:"\u6838\u5FC3\u5DE5\u5177",description:"\u8DE8\u57DF\u901A\u7528\u5DE5\u5177\uFF08\u5982\u6267\u884C SQL\u3001\u751F\u6210\u552F\u4E00\u7F16\u7801\uFF09\uFF0C\u59CB\u7EC8\u53EF\u7528",alwaysOn:!0},{name:"entity",title:"\u5B9E\u4F53",description:"\u5B9E\u4F53\uFF08\u6570\u636E\u8868\uFF09\u7684\u67E5\u8BE2",alwaysOn:!1},{name:"form",title:"\u8868\u5355",description:"\u8868\u5355\u7684\u67E5\u8BE2\u4E0E\u4FEE\u6539\uFF08\u542B flycode \u811A\u672C\u7247\u6BB5\uFF09",alwaysOn:!1},{name:"logic",title:"\u4E1A\u52A1\u903B\u8F91",description:"FlyCode \u4E1A\u52A1\u903B\u8F91\u7684\u67E5\u8BE2\u4E0E\u4FEE\u6539",alwaysOn:!1},{name:"function",title:"\u51FD\u6570",description:"\u5E73\u53F0\u51FD\u6570\u4E0E\u6570\u636E\u5E93\u51FD\u6570\u7684\u67E5\u8BE2",alwaysOn:!1},{name:"h5",title:"H5 \u8868\u5355",description:"H5 \u9875\u9762\u7684\u67E5\u8BE2",alwaysOn:!1}],ee={run_sql:"core",generate_unique_code:"core",page_entity_list:"entity",get_entity:"entity",page_form_list:"form",get_form:"form",get_form_outline:"form",get_form_fragment:"form",patch_form:"form",save_form:"form",page_model_logic_list:"logic",get_model_logic:"logic",save_model_logic:"logic",patch_model_logic:"logic",str_replace_flycode:"logic",page_function_list:"function",get_function:"function",page_database_function_list:"function",page_h5_form:"h5",get_h5_form:"h5"};function Xn(n){return n?Re.find(e=>e.name===n)?.alwaysOn??!1:!1}var ue=class{handles=new Map;toolNames=[];progressive;constructor(e){this.progressive=e}registerAll(e,r){for(let i of r){let t=e.registerTool(i.name,i.config,i.handler);this.handles.set(i.name,t),this.toolNames.push(i.name);let o=ee[i.name];this.progressive&&!Xn(o)&&t.disable()}}activate(e,r=!1){let i=this.toolNames.filter(t=>ee[t]===e);for(let t of i){let o=this.handles.get(t);o&&(r&&o.enabled?o.disable():!r&&!o.enabled&&o.enable())}return i}isProgressive(){return this.progressive}domainActive(e){let r=this.toolNames.filter(i=>ee[i]===e);return r.length===0?!1:r.every(i=>this.handles.get(i)?.enabled??!1)}status(){return Re.map(e=>{let r=this.toolNames.filter(i=>ee[i]===e.name).map(i=>{let t=this.handles.get(i);return{name:i,description:t?.description??"",active:t?.enabled??!1}});return{name:e.name,title:e.title,description:e.description,alwaysOn:e.alwaysOn,active:this.domainActive(e.name),tools:r}})}focus(e){let r=Re.find(t=>t.name===e);if(!r)return null;let i=this.toolNames.filter(t=>ee[t]===e).map(t=>{let o=this.handles.get(t);return{name:t,description:o?.description??"",active:o?.enabled??!1}});return{name:e,title:r.title,tools:i}}};import{z as P}from"zod";function F(n){let e=n;if(e?.response?.data!=null)try{return JSON.stringify(e.response.data)}catch{return String(e.response.data)}return n instanceof Error?n.message:String(n)}function I(n){return{content:[{type:"text",text:JSON.stringify(n)}],structuredContent:n}}function $(n){return{isError:!0,content:[{type:"text",text:F(n)}]}}var Je=P.enum(["core","entity","form","logic","function","h5"]),Q=32*1024,xe=160,ke="\u964D\u7EA7\u4E0D\u5F71\u54CD\u5DE5\u5177\u53EF\u7528\u6027\uFF1B\u5B8C\u6574\u53C2\u6570\u8BF7\u4EE5 mcp_activate \u542F\u7528\u540E\u5BA2\u6237\u7AEF\u91CD\u62C9\u7684 tools/list \u4E3A\u51C6\u3002";function Ge(n){return n.length<=xe?n:`${n.slice(0,xe)}\u2026(\u7701\u7565 ${n.length-xe} \u5B57\u7B26)`}function et(n){let e=(a,c)=>JSON.stringify({progressive:n.progressive,domains:a,focus:c}).length;if(e(n.domains,n.focus)<=Q)return{...n,truncated:!1};let r=(a,c)=>a.map(u=>({...u,description:c(u.description)})),i=n.domains.map(a=>({...a,tools:r(a.tools,Ge)})),t=n.focus?{...n.focus,tools:r(n.focus.tools,Ge)}:null;if(e(i,t)<=Q)return{progressive:n.progressive,domains:i,focus:t,truncated:!0,note:`catalog \u8FD4\u56DE\u4F53\u8D85\u8FC7 ${Q} \u5B57\u7B26\u4E0A\u9650\uFF0C\u5DF2\u622A\u65AD\u5DE5\u5177\u63CF\u8FF0\u3002${ke}`};let o=i.map(a=>({...a,tools:r(a.tools,()=>"")})),s=t?{...t,tools:r(t.tools,()=>"")}:null;return e(o,s)<=Q?{progressive:n.progressive,domains:o,focus:s,truncated:!0,note:`catalog \u8FD4\u56DE\u4F53\u8D85\u8FC7 ${Q} \u5B57\u7B26\u4E0A\u9650\uFF0C\u5DF2\u79FB\u9664\u5DE5\u5177\u63CF\u8FF0\uFF08\u4EC5\u4FDD\u7559\u5DE5\u5177\u540D\u4E0E\u542F\u7528\u6001\uFF09\u3002${ke}`}:{progressive:n.progressive,domains:o.map(a=>({...a,tools:[]})),focus:s?{...s,tools:[]}:null,truncated:!0,note:`catalog \u8FD4\u56DE\u4F53\u5373\u4F7F\u964D\u7EA7\u4ECD\u8D85\u8FC7 ${Q} \u5B57\u7B26\u4E0A\u9650\uFF0C\u5DF2\u4E22\u5F03\u5DE5\u5177\u6E05\u5355\u3002${ke}`}}function Ze(n){let e={name:"mcp_catalog",config:{title:"\u5DE5\u5177\u76EE\u5F55\uFF08\u6E10\u8FDB\u5F0F\u62AB\u9732\uFF09",description:"\u67E5\u770B\u5F53\u524D\u53EF\u7528\u7684\u5DE5\u5177\u57DF\u4E0E\u72B6\u6001\u3002\u4E0D\u4F20 domain \u65F6\u8FD4\u56DE\u5168\u90E8\u57DF\uFF08core/entity/form/logic/function/h5\uFF09\u7684\u542F\u7528\u72B6\u6001\u4E0E\u5404\u57DF\u5185\u5DE5\u5177\u6E05\u5355\uFF1B\u4F20 domain \u65F6\u53EA\u805A\u7126\u8FD4\u56DE\u8BE5\u57DF\u7684\u5DE5\u5177\u6E05\u5355\uFF08\u540D\u79F0 + \u8BF4\u660E + \u542F\u7528\u72B6\u6001\uFF09\u3002\u5F53\u5BA2\u6237\u7AEF\u56E0\u4E0A\u4E0B\u6587\u9650\u5236\u53EA\u66B4\u9732\u4E86\u90E8\u5206\u5DE5\u5177\u65F6\uFF0C\u5148\u8C03\u7528\u672C\u5DE5\u5177\u4E86\u89E3\u8FD8\u6709\u54EA\u4E9B\u80FD\u529B\u53EF\u7ECF mcp_activate \u89E3\u9501\u3002\u672C\u5DE5\u5177**\u4E0D\u8FD4\u56DE**\u5DE5\u5177\u7684\u5165\u53C2 schema\uFF1A\u5B8C\u6574\u53C2\u6570\u8BF7\u4EE5 mcp_activate \u542F\u7528\u8BE5\u57DF\u540E\u5BA2\u6237\u7AEF\u91CD\u65B0\u62C9\u53D6\u7684 tools/list \u4E3A\u51C6\uFF08\u9012\u5F52\u7ED3\u6784\u7684\u5168\u91CF schema \u5355\u57DF\u53EF\u8FBE\u6570\u767E KB\uFF0C\u56DE\u4F20\u4F1A\u6491\u7206\u4E0A\u4E0B\u6587\uFF09\u3002",inputSchema:{domain:Je.optional().describe("\u53EF\u9009\uFF1A\u805A\u7126\u67D0\u57DF\uFF08core/entity/form/logic/function/h5\uFF09\uFF0C\u53EA\u8FD4\u56DE\u8BE5\u57DF\u7684\u5DE5\u5177\u6E05\u5355")},outputSchema:{progressive:P.boolean().describe("\u662F\u5426\u5904\u4E8E\u6E10\u8FDB\u5F0F\u62AB\u9732\u6A21\u5F0F"),domains:P.array(P.object({name:P.string(),title:P.string(),description:P.string(),alwaysOn:P.boolean(),active:P.boolean(),tools:P.array(P.object({name:P.string(),description:P.string(),active:P.boolean()}))})).describe("\u5168\u90E8\u57DF\u7684\u72B6\u6001\u4E0E\u5DE5\u5177\u6E05\u5355"),focus:P.object({name:P.string(),title:P.string(),tools:P.array(P.object({name:P.string(),description:P.string(),active:P.boolean()}))}).nullable().optional().describe("\u4EC5\u5F53\u4F20\u5165 domain \u65F6\u8FD4\u56DE\uFF1A\u8BE5\u57DF\u5DE5\u5177\u6E05\u5355\uFF08\u540D\u79F0 + \u8BF4\u660E + \u542F\u7528\u72B6\u6001\uFF0C\u4E0D\u542B\u5165\u53C2 schema\uFF09"),truncated:P.boolean().describe("\u8FD4\u56DE\u4F53\u662F\u5426\u56E0\u8D85\u8FC7\u4F53\u79EF\u786C\u4E0A\u9650\u800C\u88AB\u81EA\u52A8\u964D\u7EA7"),note:P.string().optional().describe("\u88AB\u964D\u7EA7\u65F6\u7684\u8BF4\u660E\uFF08\u6B63\u5E38\u60C5\u51B5\u4E0B\u4E0D\u5B58\u5728\uFF09")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},handler:async i=>{let t=i?.domain??void 0,o=t?n.focus(t):null;return I(et({progressive:n.isProgressive(),domains:n.status(),focus:o}))}},r={name:"mcp_activate",config:{title:"\u542F\u7528/\u6536\u8D77\u5DE5\u5177\u57DF\uFF08\u6E10\u8FDB\u5F0F\u62AB\u9732\uFF09",description:'\u5207\u6362\u67D0\u4E2A\u80FD\u529B\u57DF\uFF08entity/form/logic/function/h5\uFF09\u7684\u5DE5\u5177\u53EF\u89C1\u6027\u3002\u542F\u7528\u540E\u670D\u52A1\u7AEF\u4F1A\u63A8\u9001 tools/list_changed \u901A\u77E5\uFF0C\u5408\u89C4\u5BA2\u6237\u7AEF\u5C06\u91CD\u65B0\u62C9\u53D6\u5DE5\u5177\u6E05\u5355\u5E76\u53EF\u89C1\u8BE5\u57DF\u5DE5\u5177\uFF1B\u6536\u8D77\u5219\u5C06\u5176\u4ECE\u6E05\u5355\u79FB\u9664\u4EE5\u56DE\u6536\u4E0A\u4E0B\u6587\u3002core \u57DF\u5DE5\u5177\u59CB\u7EC8\u542F\u7528\uFF0C\u65E0\u9700\u4E5F\u4E0D\u5E94\u5207\u6362\u3002\u82E5\u542F\u7528\u540E\u8C03\u7528\u57DF\u5DE5\u5177\u4ECD\u62A5 "tool not found"\uFF0C\u8BF4\u660E\u5F53\u524D\u5BA2\u6237\u7AEF\u672A\u5B9E\u73B0 list_changed \u91CD\u62C9\uFF0C\u8BF7\u5C06\u73AF\u5883\u53D8\u91CF PROGRESSIVE_DISCLOSURE \u8BBE\u4E3A off \u9000\u56DE\u5168\u90E8\u542F\u7528\u7684\u6A21\u5F0F\u3002',inputSchema:{domain:Je.describe("\u8981\u542F\u7528\u6216\u6536\u8D77\u7684\u57DF\uFF1Aentity / form / logic / function / h5"),deactivate:P.boolean().optional().describe("true=\u6536\u8D77\u8BE5\u57DF\u5DE5\u5177\uFF08\u4ECE tools/list \u79FB\u9664\uFF09\uFF1B\u7701\u7565\u6216 false=\u542F\u7528\u8BE5\u57DF\u5DE5\u5177")},outputSchema:{domain:P.string(),deactivated:P.boolean(),tools:P.array(P.string()).describe("\u53D7\u672C\u6B21\u5207\u6362\u5F71\u54CD\u7684\u5DE5\u5177\u540D\u5217\u8868"),progressive:P.boolean(),note:P.string().describe("\u7ED9\u6A21\u578B/\u4F7F\u7528\u8005\u7684\u63D0\u793A\u4FE1\u606F")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1}},handler:async i=>{let t=i?.domain??"core",o=i?.deactivate===!0,s=n.activate(t,o),a=n.isProgressive()?"\u5DF2\u5207\u6362\u53EF\u89C1\u6027\uFF0C\u670D\u52A1\u7AEF\u5DF2\u63A8\u9001 tools/list_changed\uFF1B\u82E5\u5BA2\u6237\u7AEF\u672A\u91CD\u65B0\u62C9\u53D6\u5DE5\u5177\u6E05\u5355\uFF08\u4E0D\u652F\u6301\u8BE5\u901A\u77E5\uFF09\uFF0C\u8BF7\u6539\u7528 PROGRESSIVE_DISCLOSURE=off\u3002":"\u6E10\u8FDB\u5F0F\u62AB\u9732\u5DF2\u5173\u95ED\uFF08PROGRESSIVE_DISCLOSURE=off\uFF09\uFF1A\u5168\u90E8\u5DE5\u5177\u59CB\u7EC8\u542F\u7528\uFF0C\u672C\u6B21\u5207\u6362\u4E3A\u65E0\u5BB3\u7A7A\u64CD\u4F5C\u3002";return I({domain:t,deactivated:o,tools:s,progressive:n.isProgressive(),note:a})}};return[e,r]}var A='\u901A\u7528\u7EA6\u5B9A\uFF1A\u7B5B\u9009\u679A\u4E3E\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF08\u5982 actiontype \u4F20 "3"\uFF09\uFF1B\u5217\u8868 / \u8BE6\u60C5\u8FD4\u56DE\u5B57\u6BB5\u4EE5\u6570\u5B57\u6216\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u4E24\u8005\u517C\u5BB9\u3002marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0 / 1-\u4EA7\u54C1 / 2-\u79DF\u6237\uFF1Bstatus\uFF1A1-\u542F\u7528 / 2-\u505C\u7528\uFF1Bconfsource\uFF1A1-IDE \u914D\u7F6E / 2-\u7528\u6237\u7EA7\u914D\u7F6E\u3002',ne="\u3010logic \u679A\u4E3E\u3011actiontype\uFF08\u64CD\u4F5C\u7C7B\u578B\uFF09\uFF1A1-\u5217\u8868\u67E5\u8BE2 / 2-\u5355\u4E2A\u67E5\u8BE2 / 3-\u6570\u636E\u63D0\u4EA4 / 4-\u6279\u91CF\u63D0\u4EA4 / 5-\u5BFC\u5165 / 6-\u5BFC\u51FA / 7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6 / 8-\u6D41\u7A0B / 9-\u4E1A\u52A1\u8C03\u5EA6 / 10-ipaas \u63A5\u53E3\u3002actioncategory\uFF08\u884C\u4E3A\u7C7B\u578B\uFF09\uFF1A1-flycode \u63A5\u53E3 / 2-\u5FAE\u670D\u52A1 / 3-\u5185\u90E8\u51FD\u6570 / 4-\u5BFC\u5165 / 5-\u5BFC\u51FA / 6-flycode \u5BFC\u5165 / 7-flycode \u5BFC\u51FA\u3002execmode\uFF1A1-\u540C\u6B65 / 2-\u5F02\u6B65\uFF1Bexecutionmode\uFF1Astandard-\u6807\u51C6 / strict-\u4E25\u683C\u3002tenantdbname\uFF08\u79DF\u6237\u5E93\u6743\u9650\uFF09\uFF1A\u53EA\u8BFB-\u67E5\u8BE2 / \u8BFB\u5199-\u589E\u5220\u6539\u67E5 / \u62A5\u8868-\u4FDD\u7559\u3002usedatarule\uFF1A1-\u4F7F\u7528\u6570\u636E\u6743\u9650\u3002input/output[].datatype\uFF08\u53C2\u6570\u5F62\u6001\uFF09\uFF1A0-\u5355\u5B9E\u4F53 / 1-\u6570\u7EC4\u3002",de="properties[].propertytypecode\uFF08\u5B57\u6BB5\u7C7B\u578B\uFF09\uFF1A1-\u4E3B\u952E(int8) / 2-\u540D\u79F0(200) / 3-\u6587\u672C(200) / 4-\u957F\u6587\u672C / 5-\u6574\u6570(int4) / 6-\u957F\u6574\u6570(int8) / 10-\u6570\u5B57(numeric) / 7-\u65E5\u671F\u65F6\u95F4(ts) / 29-\u5E74\u6708\u65E5(date) / 30-\u65F6\u95F4\u8303\u56F4 / 18-\u72B6\u6001(int4) / 16-\u56FE\u7247 / 26-\u9644\u4EF6 / 17-\u5B9A\u4F4D / 19-\u9009\u9879\u96C6 / 8-\u521B\u5EFA\u4EBA / 9-\u4FEE\u6539\u4EBA / 11-\u521B\u5EFA\u65F6\u95F4 / 12-\u4FEE\u6539\u65F6\u95F4 / 31-\u62FC\u97F3 / 100-\u662F\u5426\u9ED8\u8BA4 / 13-\u624B\u673A\u53F7 / 15-\u56FA\u5B9A\u7535\u8BDD / 14-\u90AE\u7BB1 / 27-\u90AE\u7F16 / 20-\u6392\u5E8F / 200000000000-\u5173\u8054\u5BF9\u8C61 / 100000000000-\u4E1A\u52A1\u5BF9\u8C61 / 10000000000-\u5B57\u5178\u5BF9\u8C61 / 300000000000-\u590D\u6742\u5173\u8054\u5BF9\u8C61 / 1000000000-\u672C\u5BF9\u8C61\u3002",Oe="\u3010entity \u679A\u4E3E\u3011datapattern\uFF08\u5B9E\u4F53\u7C7B\u578B\uFF09\uFF1A1-\u539F\u751F / 2-\u884D\u751F / 3-\u89C6\u56FE / 4-\u8D85\u7EA7\u8868\u5355\u3002objecttypecode\uFF08\u5206\u7C7B\uFF09\uFF1A1-\u57FA\u672C / 2-\u6811\u5F62 / 3-\u6570\u636E\u5B57\u5178 / 4-\u5173\u8054\u3002objectcatgory\uFF1A1-\u6743\u9650\u5BF9\u8C61 / 2-\u5426\u3002publishstatus\uFF1A1-\u5DF2\u53D1\u5E03 / 2-\u672A\u53D1\u5E03\u3002hasoffline\uFF1A1-\u6709 / 0-\u65E0\u3002properties[].idxtype\uFF08\u7D22\u5F15\uFF09\uFF1A1-\u65E0 / 2-\u4E3B\u952E\u7D22\u5F15\u3002",z="\u3010form \u679A\u4E3E\u3011type\uFF08\u9875\u9762\u7C7B\u578B\uFF09\uFF1A5-\u5217\u8868\u67E5\u8BE2 / 1-\u666E\u901A\u9875\u9762 / 99-\u4E8C\u5F00 / 10-switchpage / 11-\u6811\u5BFC\u822A\u5217\u8868 / 100-\u539F\u751F / 101-\u7A7A\u767D / 7-\u62A5\u8868 / 12-\u6392\u5E8F / 300-\u6B65\u9AA4\u7BA1\u7406 / 1000-\u5168\u5C40\u51FD\u6570\u3002clientcategorycode\uFF08\u7528\u6237\u7AEF\uFF09\uFF1A1-web / 2-app / 6-\u5C0F\u7A0B\u5E8F\u3002",te='\u3010function \u679A\u4E3E\u3011dddlayer\uFF08\u51FD\u6570\u5C42\u7EA7\uFF09\uFF1A\u56FA\u5B9A\u4F20 "3"\uFF08\u51FD\u6570\u7C7B\uFF09\u3002\u6570\u636E\u5E93\u51FD\u6570 publishstatus\uFF1A1-\u672A\u53D1\u5E03 / 2-\u5DF2\u53D1\u5E03\u3002';import{z as S}from"zod";function Qe(n){return C({url:"/bizserv/bizmodel/pageModelLogicList",method:"post",data:n,type:"tenant"})}function H(n){return C({url:"/bizserv/bizmodel/getModelLogic",method:"post",data:n,type:"tenant"})}function pe(n){return C({url:"/bizserv/bizmodel/saveModelLogic",method:"post",data:{...n,overwrite:!1},type:"tenant"})}import{z as d}from"zod";var ve=d.object({marktype:d.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),name:d.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u540D\u79F0\uFF0C\u4EE3\u7801\u4E2D\u7528\u6B64\u540D\u5B57\u8BBF\u95EE"),objectcode:d.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u6240\u5C5E\u7684\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u5982\u679C\u662F\u81EA\u5B9A\u4E49\u53C2\u6570\u5219\u6B64\u7F16\u7801\u4E3A\u7A7A\u5B57\u7B26\u4E32"),propertycode:d.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u7F16\u7801\uFF0C\u53EA\u6709\u5F53\u6B64\u5B57\u6BB5\u6709\u6240\u5C5E\u5B9E\u4F53\u65F6\u624D\u6709\u503C\uFF0C\u4E34\u65F6\u521B\u5EFA\u7684\u81EA\u5B9A\u4E49\u5B9E\u4F53\u7684\u5B57\u6BB5\u5219\u4E3A\u7A7A\u5B57\u7B26\u4E32"),propertyname:d.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u4E2D\u6587\u540D\uFF0C\u9605\u8BFB\u53CB\u597D"),propertytypecode:d.string().optional().nullable().describe("\u5B57\u6BB5\u7C7B\u578B\uFF0C\u6574\u6570\u5B57\u7B26\u4E32\uFF0C\u542B\u4E49\uFF1A1-\u4E3B\u952E(int8)\uFF1B2-\u540D\u79F0(200)\uFF1B3-\u6587\u672C(200)\uFF1B4-\u957F\u6587\u672C\uFF1B5-\u6574\u6570(int4)\uFF1B6-\u957F\u6574\u6570(int8)\uFF1B10-\u6570\u5B57(numeric)\uFF1B7-\u65E5\u671F\u65F6\u95F4(ts)\uFF1B30-\u65F6\u95F4\u8303\u56F4\uFF1B29-\u5E74\u6708\u65E5(date)\uFF1B18-\u72B6\u6001(int4)\uFF1B16-\u56FE\u7247\uFF1B26-\u9644\u4EF6\uFF1B17-\u5B9A\u4F4D\uFF1B19-\u9009\u9879\u96C6\uFF1B200000000000-\u5173\u8054\u5BF9\u8C61\uFF1B100000000000-\u4E1A\u52A1\u5BF9\u8C61\uFF1B10000000000-\u5B57\u5178\u5BF9\u8C61\uFF1B300000000000-\u590D\u6742\u5173\u8054\u5BF9\u8C61\uFF1B1000000000-\u672C\u5BF9\u8C61\uFF1B8-\u521B\u5EFA\u4EBA(int8)\uFF1B9-\u4FEE\u6539\u4EBA(int8)\uFF1B11-\u521B\u5EFA\u65F6\u95F4(ts)\uFF1B12-\u4FEE\u6539\u65F6\u95F4(ts)\uFF1B31-\u62FC\u97F3\uFF1B100-\u662F\u5426\u9ED8\u8BA4\uFF1B13-\u624B\u673A\u53F7\uFF1B15-\u56FA\u5B9A\u7535\u8BDD\uFF1B14-\u90AE\u7BB1\uFF1B27-\u90AE\u7F16\uFF1B20-\u6392\u5E8F(int4)")}).catchall(d.unknown()),nt=d.array(ve),Xe=d.object({datatype:d.string().optional().nullable().describe("\u6574\u6570\u5B57\u7B26\u4E32\uFF1A0-\u5355\u5B9E\u4F53\uFF1B1-\u6570\u7EC4\u30020 \u8868\u793A IN.name \u6216 OUT.xxx \u662F\u4E2A\u5BF9\u8C61\uFF1B1 \u8868\u793A\u662F\u4E2A\u6570\u7EC4"),marktype:d.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),name:d.string().optional().nullable().describe("\u6B64\u53C2\u6570\u5BF9\u8C61/\u6570\u7EC4\u7684\u540D\u5B57\uFF0C\u4EE3\u7801\u4E2D\u7528\u6B64\u540D\u5B57\u8BBF\u95EE"),objectcode:d.string().optional().nullable().describe("\u6B64\u53C2\u6570\u5173\u8054\u7684\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u5982\u679C\u662F\u81EA\u5B9A\u4E49\u53C2\u6570\u5219\u6B64\u7F16\u7801\u4E3A\u7A7A\u5B57\u7B26\u4E32"),objectname:d.string().optional().nullable().describe("\u6B64\u53C2\u6570\u7684\u4E2D\u6587\u540D\u79F0\uFF0C\u9605\u8BFB\u53CB\u597D"),properties:nt.optional().nullable().describe("\u6B64\u53C2\u6570\u7684\u5C5E\u6027\u6570\u7EC4\uFF1A\u5355\u5B9E\u4F53\u65F6\u662F IN.name \u8FD9\u4E2A\u5BF9\u8C61\u6709\u7684\u5C5E\u6027\uFF1B\u6570\u7EC4\u65F6\u662F IN.name \u8FD9\u4E2A\u6570\u7EC4\u4E2D\u7684\u5143\u7D20\u5BF9\u8C61\u7684\u5C5E\u6027"),customcode:d.string().optional().nullable().describe("\u81EA\u5B9A\u4E49\u8F93\u51FA\u5BF9\u8C61\u7684\u7F16\u7801\uFF08\u4EC5\u81EA\u5B9A\u4E49\u8F93\u51FA\u53C2\u6570\u53EF\u80FD\u643A\u5E26\uFF0C\u5982\u5185\u90E8\u51FD\u6570 output\uFF09")}).catchall(d.unknown()),We=d.array(Xe),tt=d.array(d.object({dynamic:d.object({fieldblacklist:d.unknown().optional().nullable().describe("\u5B57\u6BB5\u9ED1\u540D\u5355"),fieldmap:d.unknown().optional().nullable().describe("\u5B57\u6BB5\u6620\u5C04")}).catchall(d.unknown()).optional().nullable().describe("\u52A8\u6001\u914D\u7F6E"),marktype:d.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0"),modellogiccode:d.string().describe("\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),modellogicstepcode:d.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u6B65\u9AA4\u7F16\u7801"),modellogicstepname:d.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u6B65\u9AA4\u540D\u79F0"),seq:d.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:d.string().optional().nullable().describe("\u72B6\u6001"),templateparams:d.object({flycode:d.string().optional().nullable().describe("flycode \u811A\u672C\u4EE3\u7801\u5B57\u7B26\u4E32"),sourcemap:d.string().optional().nullable().describe("\u6E90\u6620\u5C04"),tempcompiledflycode:d.string().optional().nullable().describe("\u7F16\u8BD1\u540E\u7684 flycode")}).catchall(d.unknown()).optional().nullable().describe("\u6A21\u677F\u53C2\u6570\uFF0C\u5185\u542B\u5177\u4F53\u7684 flycode \u4EE3\u7801\uFF08\u5BFC\u51FA\u7ED3\u6784\u4EC5\u542B flycode\uFF09"),templateref:d.string().optional().nullable().describe("\u6A21\u677F\u5F15\u7528")}).catchall(d.unknown())),Ne=d.object({field:d.string().optional().nullable().describe("\u5B57\u6BB5\u540D\uFF08\u5BF9\u5E94\u4E1A\u52A1\u5BF9\u8C61\u7684\u5C5E\u6027\u540D\uFF09\uFF0C\u5BFC\u51FA\u5217\u7684\u6700\u4F73\u5B9A\u4F4D\u952E"),column:d.string().optional().nullable().describe("\u5BFC\u51FA\u540E\u7684\u5217\u6807\u9898"),width:d.string().optional().nullable().describe("\u5217\u5BBD"),type:d.string().optional().nullable().describe("\u5B57\u6BB5\u7C7B\u578B\uFF0C\u5982 string"),dynamictext:d.unknown().optional().nullable().describe("\u52A8\u6001\u6587\u672C\u914D\u7F6E")}).catchall(d.unknown()),rt=d.object({bindcols:d.array(Ne).optional().nullable().describe("\u5BFC\u51FA\u7684\u5217\u5B9A\u4E49"),modelcode:d.string().describe("\u4E1A\u52A1\u6A21\u578B\u7F16\u7801"),logiccode:d.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),logicname:d.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u540D\u79F0")}).catchall(d.unknown()),Se={actioncategory:d.string().optional().nullable().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),actiontype:d.string().optional().nullable().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),description:d.string().optional().nullable().describe("\u5BF9\u6B64\u4E1A\u52A1\u9886\u57DF\u7684\u63CF\u8FF0\u8BF4\u660E\uFF08\u5FAE\u670D\u52A1\u7ED3\u6784\u7528 descr \u4EE3\u66FF\uFF09"),descr:d.string().optional().nullable().describe("\u63CF\u8FF0\u8BF4\u660E\u7684\u66FF\u7528\u5B57\u6BB5\uFF0C\u4EC5\u5FAE\u670D\u52A1\uFF08actioncategory=2\uFF09\u8FD4\u56DE\uFF0C\u7B49\u4EF7\u4E8E description"),execmode:d.string().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),executionmode:d.string().optional().nullable().describe("\u6267\u884C\u6A21\u5F0F\uFF0Cstandard-\u6807\u51C6\u6A21\u5F0F\uFF1Bstrict-\u4E25\u683C\u6A21\u5F0F"),functionname:d.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u51FD\u6570\u547D\u540D\uFF08A\u4E1A\u52A1\u903B\u8F91\u4E2D\u8C03\u7528B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u5199\u51FD\u6570\u540D\uFF09"),idempotenttype:d.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u7A7A\u5B57\u7B26\u4E32"),input:We.optional().nullable().describe("\u8BE5\u5B57\u6BB5\u5B9A\u4E49\u4E86\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u8F93\u5165\uFF1Aflycode \u4E2D\u7684\u5185\u7F6E\u5BF9\u8C61 IN \u4E2D\u53EF\u83B7\u53D6\u5230\u7684\u5185\u5BB9\uFF08\u5FAE\u670D\u52A1\u7ED3\u6784\u65E0\u6B64\u5B57\u6BB5\uFF09"),logicscript:d.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u7A7A\u5B57\u7B26\u4E32"),marktype:d.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:d.string().optional().nullable().describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6BCF\u6B21\u4FDD\u5B58\u65F6\u586B\u5199\u7684\uFF0C\u7C7B\u4F3C git \u7684\u63D0\u4EA4\u4FE1\u606F\uFF08\u5BFC\u51FA\u7C7B\u7ED3\u6784\u53EF\u80FD\u7F3A\uFF09"),modelcode:d.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),modellogiccode:d.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801"),modellogicname:d.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),operations:tt.optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u64CD\u4F5C\u4FE1\u606F\uFF08\u5FAE\u670D\u52A1\u7ED3\u6784\u65E0\u6B64\u5B57\u6BB5\uFF09\uFF1B\u901A\u5E38\u6570\u7EC4\u4E2D\u53EA\u6709\u5355\u4E2A\u5143\u7D20\uFF0C\u8BE5\u5143\u7D20\u5BF9\u8C61\u4E2D\u5C31\u6709 flycode \u4EE3\u7801\u5B57\u7B26\u4E32"),output:We.optional().nullable().describe("\u8BE5\u5B57\u6BB5\u5B9A\u4E49\u4E86\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u8F93\u51FA\uFF1Aflycode \u4E2D\u5C06\u4F1A\u8D4B\u503C\u7ED9\u5185\u7F6E\u5BF9\u8C61 OUT \u7684\u5185\u5BB9\uFF08\u5FAE\u670D\u52A1\u7ED3\u6784\u65E0\u6B64\u5B57\u6BB5\uFF09"),rest:d.object({server:d.string().optional().nullable().describe("\u5FAE\u670D\u52A1\u5730\u5740"),url:d.string().optional().nullable().describe("\u5FAE\u670D\u52A1\u8DEF\u5F84")}).catchall(d.unknown()).optional().nullable().describe("\u5FAE\u670D\u52A1\u7684 REST \u914D\u7F6E\uFF0C\u4EC5 actioncategory=2 \u5FAE\u670D\u52A1 \u65F6\u5B58\u5728"),bindjson:rt.optional().nullable().describe("\u5BFC\u51FA\u7ED1\u5B9A\u7684 Excel \u5217\u914D\u7F6E\uFF0C\u4EC5 actioncategory=5 \u5BFC\u51FA \u65F6\u5B58\u5728"),status:d.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),tenantdbcode:d.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u79DF\u6237\u6570\u636E\u5E93\u7F16\u7801"),tenantdbname:d.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u79DF\u6237\u6570\u636E\u5E93\u64CD\u4F5C\u6743\u9650\uFF0C\u679A\u4E3E\u503C\u542B\u4E49\uFF1A\u53EA\u8BFB-\u6570\u636E\u5E93\u53EA\u80FD\u67E5\u8BE2\u4E0D\u80FD\u589E\u5220\u6539\uFF1B\u8BFB\u5199-\u6570\u636E\u5E93\u53EF\u589E\u5220\u6539\u67E5\uFF1B\u62A5\u8868-\u4FDD\u7559\u5B57\u6BB5"),tenantdbtype:d.string().optional().nullable().describe("tenantdbname \u5BF9\u5E94\u7684 key \u503C"),uilogicscript:d.string().optional().nullable().describe("\u79BB\u7EBF\u811A\u672C\uFF0C\u4EC5\u7528\u4E8E app \u7AEF\u79BB\u7EBF\u6570\u636E\u63D0\u4EA4"),usedatarule:d.string().optional().nullable().describe("1 \u4EE3\u8868\u4F7F\u7528\u6570\u636E\u6743\u9650")},en=d.looseObject(Se),nn=d.discriminatedUnion("op",[d.object({op:d.literal("add_param").describe("\u5411 input / output \u8FFD\u52A0\u4E00\u6761\u53C2\u6570\uFF08\u589E\u52A0\u4E00\u4E2A input / \u589E\u52A0\u4E00\u4E2A output\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),param:Xe.describe("\u8981\u8FFD\u52A0\u7684\u4E00\u6761\u8F93\u5165/\u8F93\u51FA\u53C2\u6570\uFF08\u5355\u4E2A LogicParameters \u5BF9\u8C61\uFF09"),position:d.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),d.object({op:d.literal("remove_param").describe("\u4ECE input / output \u6309 name \u5220\u9664\u6574\u6761\u53C2\u6570\uFF08\u5220\u9664\u4E00\u4E2A input / output\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),name:d.string().describe("\u8981\u5220\u9664\u7684\u53C2\u6570\u7684 name\uFF08\u5728 target \u5185\u552F\u4E00\uFF09")}),d.object({op:d.literal("set_param_attrs").describe("\u6309 name \u5B9A\u4F4D\u53C2\u6570\uFF0C\u6D45\u5408\u5E76\u5176\u9876\u5C42\u5C5E\u6027\uFF08\u5982 datatype / objectcode / objectname \u7B49\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),name:d.string().describe("\u76EE\u6807\u53C2\u6570\u7684 name\uFF08\u5728 target \u5185\u552F\u4E00\uFF09"),patch:d.record(d.string(),d.unknown()).describe('\u8981\u6D45\u5408\u5E76\u8FDB\u8BE5\u53C2\u6570\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u5982 { "datatype": "1", "objectname": "\u5BA2\u6237" }')}),d.object({op:d.literal("add_property").describe("\u5411\u6307\u5B9A\u53C2\u6570\u7684 properties[] \u8FFD\u52A0\u4E00\u4E2A\u5B57\u6BB5\uFF08\u589E\u52A0 input \u5C5E\u6027 / \u589E\u52A0 output \u5C5E\u6027\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:d.string().describe("\u6240\u5C5E\u53C2\u6570\u7684 name"),property:ve.describe("\u8981\u8FFD\u52A0\u7684\u4E00\u4E2A\u5B57\u6BB5\uFF08\u5355\u4E2A LogicParameterProperties \u5BF9\u8C61\uFF09"),position:d.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),d.object({op:d.literal("remove_property").describe("\u4ECE\u6307\u5B9A\u53C2\u6570\u7684 properties[] \u5220\u9664\u4E00\u4E2A\u5B57\u6BB5\uFF08\u5220\u9664 input/output \u4E2D\u67D0\u5C5E\u6027\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:d.string().describe("\u6240\u5C5E\u53C2\u6570\u7684 name"),propertyName:d.string().optional().describe("\u6309\u5B57\u6BB5\u8BBF\u95EE\u540D name \u5B9A\u4F4D\uFF08\u4E0E propertyCode \u4E8C\u9009\u4E00\uFF09"),propertyCode:d.string().optional().describe("\u6309\u5B57\u6BB5\u7F16\u7801 propertycode \u5B9A\u4F4D\uFF08\u4E0E propertyName \u4E8C\u9009\u4E00\uFF09")}),d.object({op:d.literal("replace_property").describe("\u6309 name \u6216 propertycode \u5B9A\u4F4D\u5E76\u6574\u4F53\u66FF\u6362\u4E00\u4E2A\u5B57\u6BB5\uFF08\u66FF\u6362 input/output \u4E2D\u67D0\u5C5E\u6027\uFF09"),target:d.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:d.string().describe("\u6240\u5C5E\u53C2\u6570\u7684 name"),propertyName:d.string().optional().describe("\u6309\u5B57\u6BB5\u8BBF\u95EE\u540D name \u5B9A\u4F4D\uFF08\u4E0E propertyCode \u4E8C\u9009\u4E00\uFF09"),propertyCode:d.string().optional().describe("\u6309\u5B57\u6BB5\u7F16\u7801 propertycode \u5B9A\u4F4D\uFF08\u4E0E propertyName \u4E8C\u9009\u4E00\uFF09"),property:ve.describe("\u7528\u6765\u6574\u4F53\u66FF\u6362\u76EE\u6807\u5B57\u6BB5\u7684\u65B0\u5B57\u6BB5\u5BF9\u8C61")}),d.object({op:d.literal("set_meta").describe("\u6D45\u5408\u5E76\u9876\u5C42\u4E1A\u52A1\u903B\u8F91\u5143\u6570\u636E\uFF08\u5982 modellogicname / description / actiontype / execmode / functionname / marktype\uFF09\uFF1B\u4E0D\u80FD\u542B input/output/operations"),patch:d.record(d.string(),d.unknown()).describe('\u6D45\u5408\u5E76\u8FDB\u4E1A\u52A1\u903B\u8F91\u9876\u5C42\u5143\u6570\u636E\u7684\u5B57\u6BB5\uFF0C\u5982 { "modellogicname": "\u65B0\u6807\u9898", "description": "\u8BF4\u660E" }')}),d.object({op:d.literal("add_export_column").describe("\u5411\u5BFC\u51FA\u5217\uFF08bindjson.bindcols\uFF09\u8FFD\u52A0\u4E00\u5217\uFF08\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528\uFF09"),column:Ne.describe("\u8981\u8FFD\u52A0\u7684\u4E00\u5217\uFF08\u5355\u4E2A LogicBindColumn \u5BF9\u8C61\uFF0C\u5EFA\u8BAE\u81F3\u5C11\u5E26 field\uFF09"),position:d.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),d.object({op:d.literal("remove_export_column").describe("\u4ECE\u5BFC\u51FA\u5217\uFF08bindjson.bindcols\uFF09\u6309 field \u6216 column \u5220\u9664\u4E00\u5217\uFF08\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528\uFF09"),field:d.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:d.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09")}),d.object({op:d.literal("replace_export_column").describe("\u6309 field \u6216 column \u5B9A\u4F4D\u5E76\u6574\u4F53\u66FF\u6362\u4E00\u5217\uFF08\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528\uFF09"),field:d.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:d.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09"),newColumn:Ne.describe("\u7528\u6765\u6574\u4F53\u66FF\u6362\u76EE\u6807\u5217\u7684\u65B0\u5217\u5BF9\u8C61")}),d.object({op:d.literal("set_export_column_attrs").describe("\u6309 field \u6216 column \u5B9A\u4F4D\u67D0\u5217\uFF0C\u6D45\u5408\u5E76\u5176\u90E8\u5206\u5C5E\u6027\uFF08\u5982\u6539 column \u6807\u9898 / width \u5217\u5BBD / type \u7C7B\u578B\uFF0C\u4E0D\u6539 field\uFF09\uFF1B\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528"),field:d.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:d.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09"),patch:d.record(d.string(),d.unknown()).describe('\u8981\u6D45\u5408\u5E76\u8FDB\u8BE5\u5217\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u5982 { "column": "\u65B0\u6807\u9898", "width": "20" }')}),d.object({op:d.literal("set_bind_meta").describe("\u5B89\u5168\u6D45\u5408\u5E76 bindjson \u9876\u5C42\uFF08\u5982 logicname\uFF09\uFF0C\u4E0D\u5F71\u54CD bindcols \u5217\u5B9A\u4E49\uFF1B\u4EC5 actioncategory=5 \u5BFC\u51FA \u7C7B\u53EF\u7528\uFF1B\u4E0D\u80FD\u542B bindcols"),patch:d.record(d.string(),d.unknown()).describe('\u6D45\u5408\u5E76\u8FDB bindjson \u9876\u5C42\u7684\u5B57\u6BB5\uFF08\u9664 bindcols \u5916\uFF09\uFF0C\u5982 { "logicname": "\u65B0\u5BFC\u51FA\u540D" }')})]);var tn=[{name:"page_model_logic_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91",description:`\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u5217\u8868\uFF08ModelLogic\uFF09\u3002\u652F\u6301\u6309\u6807\u9898/\u7F16\u7801/\u65B9\u6CD5\u540D/\u5173\u952E\u5B57/\u4FEE\u6539\u4EBA/\u7C7B\u578B\u7B5B\u9009\u3002\n\n${A}\n${ne}`,inputSchema:{keys:S.string().optional().describe("\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898\u3001modellogiccode\u3001\u6216\u8005\u884C\u4E3A\u65B9\u6CD5\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),keywords:S.string().optional().describe("\u5B8C\u6574 JSON (\u5185\u542B\u4EE3\u7801) \u4E2D\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u5339\u914D"),page:S.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:S.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updateopname:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),updatetimestart:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4 - \u5F00\u59CB\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u6700\u8FD1\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),updatetimeend:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4 - \u7ED3\u675F\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u6700\u8FD1\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),actiontype:S.string().optional().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),actioncategory:S.string().optional().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),tenantdbname:S.string().optional().describe("\u811A\u672C\u64CD\u4F5C\u6570\u636E\u5E93\u7684\u7C7B\u578B\uFF0C\u5B57\u7B26\u4E32\u679A\u4E3E\uFF0C\u679A\u4E3E\u503C\uFF1A\u53EA\u8BFB\u3001\u8BFB\u5199\u3001\u62A5\u8868"),jobstatus:S.string().optional().describe("\u5B9A\u65F6\u8C03\u5EA6\u4EFB\u52A1\u72B6\u6001\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B0-\u505C\u7528\uFF1B2-\u65E0\u8C03\u5EA6")},outputSchema:{data:S.array(S.object({actiontype:S.coerce.number().optional().nullable().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),createtime:S.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801"),modelname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u540D"),modellogiccode:S.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modellogicname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),metamodelcode:S.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modellogiccode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),execmode:S.coerce.number().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),functionname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u51FD\u6570\u547D\u540D\uFF08A\u4E1A\u52A1\u903B\u8F91\u4E2D\u8C03\u7528B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u5199\u51FD\u6570\u540D\uFF09"),actioncategory:S.coerce.number().optional().nullable().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),modelcode:S.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),marktype:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),updatetime:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountname:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),createaccountname:S.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),seq:S.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:S.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),confsource:S.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),updateaccountcode:S.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801")}).catchall(S.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:S.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:S.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:S.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:S.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{keys:e="",keywords:r="",page:i=1,rows:t=20,updateopname:o="",updatetimestart:s="",updatetimeend:a="",actiontype:c="",actioncategory:u="",tenantdbname:m="",jobstatus:f=null}=n;try{let y=await Qe({actioncategory:u,actiontype:c,centercode:"",directorytypecode:"rootNode",jobstatus:f,keys:e,keywords:r,modelcode:"rootNode",page:Number(i)||1,rows:Number(t)||20,tenantdbname:m,updateopname:o,updatetimeend:a,updatetimestart:s});return I(y.resp_data)}catch(y){return $(y)}}},{name:"get_model_logic",config:{title:"\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u8BE6\u60C5",description:`\u6309 modellogiccode \u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u5B8C\u6574\u8BE6\u60C5\uFF1Aflycode \u811A\u672C\u3001input/output \u53C2\u6570\u53CA\u5B57\u6BB5\u5C5E\u6027\u3001\u64CD\u4F5C\u6B65\u9AA4\u3002\u6CE8\u610F\uFF1A\u8BE6\u60C5\u63A5\u53E3 status \u8FD4\u56DE\u4E0D\u7A33\u5B9A\uFF08\u90E8\u5206\u8C03\u7528\u4E0D\u8FD4\u56DE\uFF09\uFF0Cdatapattern \u662F\u5217\u8868\u63A5\u53E3\u5B57\u6BB5\uFF08\u8BE6\u60C5\u591A\u6570\u4E0D\u8FD4\u56DE\uFF09\u3002\n\n${A}\n${ne}\n${de}`,inputSchema:{modellogiccode:S.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801")},outputSchema:Se,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{modellogiccode:e}=n;try{let r=await H({modellogiccode:e});return I(r.resp_data)}catch(r){return $(r)}}}];import{z as _}from"zod";import{z as me}from"zod";var Y=me.object({committype:me.enum(["saverecord","feature","fix","stylefix","refactor","testfix"]).describe("\u63D0\u4EA4\u7C7B\u578B\uFF0C\u7C7B\u578B committype \u548C\u540D\u79F0 committypetext \u4E00\u4E00\u5BF9\u5E94"),committypetext:me.enum(["\u4FDD\u5B58\u8BB0\u5F55","\u65B0\u529F\u80FD\u6DFB\u52A0","bug\u4FEE\u6539","\u6837\u5F0F\u4FEE\u6539","\u91CD\u6784","\u6D4B\u8BD5"]).describe("\u63D0\u4EA4\u7C7B\u578B\u540D\u79F0\uFF0C\u4E0E committype \u4E00\u4E00\u5BF9\u5E94"),msgbody:me.string().optional().describe("\u6D88\u606F\u5185\u5BB9\u3002\u63D0\u4EA4\u7C7B\u578B\u4E3A saverecord \u65F6\u5FFD\u7565\uFF08\u670D\u52A1\u7AEF\u81EA\u52A8\u586B\u5F53\u524D\u65F6\u95F4\uFF0C\u683C\u5F0F yyyy-MM-dd hh:mm\uFF09\uFF1B\u5176\u4ED6\u7C7B\u578B\u586B\u5199\u5BF9\u5E94\u63D0\u4EA4\u5185\u5BB9\uFF0C\u6309 git \u63D0\u4EA4\u89C4\u8303\u5199")});function B(n){return{committype:n.committype,committypetext:n.committypetext,msgbody:n.msgbody??""}}function V(n,e="YYYY-MM-DD HH:mm:ss"){if(isNaN(n.getTime()))throw new Error("Invalid date provided");let r={YYYY:n.getFullYear().toString(),YY:n.getFullYear().toString().slice(-2),MM:String(n.getMonth()+1).padStart(2,"0"),M:String(n.getMonth()+1),DD:String(n.getDate()).padStart(2,"0"),D:String(n.getDate()),HH:String(n.getHours()).padStart(2,"0"),H:String(n.getHours()),mm:String(n.getMinutes()).padStart(2,"0"),m:String(n.getMinutes()),ss:String(n.getSeconds()).padStart(2,"0"),s:String(n.getSeconds()),SSS:String(n.getMilliseconds()).padStart(3,"0")},i=Object.keys(r).sort((o,s)=>s.length-o.length),t=e;for(let o of i)t=t.replace(new RegExp(o,"g"),r[o]);return t}function Pe(n,e){let r=[],i=[];if(e==="exact"){for(let t=0;t<n.length;t++)r.push(n[t]),i.push(t);return{text:r.join(""),map:i}}for(let t=0;t<n.length;t++){let o=n[t];if(o==="\r"){r.push(`\n`),i.push(t),n[t+1]===`\n`&&t++;continue}if(o===" "||o===" "){let s=t;for(;s<n.length&&(n[s]===" "||n[s]===" ");)s++;if(s>=n.length||n[s]===`\n`||n[s]==="\r"){t=s-1;continue}r.push(o),i.push(t);continue}r.push(o),i.push(t)}return{text:r.join(""),map:i}}function M(n,e="normalized"){return Pe(n,e).text}function Ce(n){return n.replace(/\r\n?/g,`\n`)}function Fe(n,e){let r=1,i=Math.min(e,n.length);for(let t=0;t<i;t++)n[t]===`\n`&&r++;return r}function ot(n,e,r="normalized"){if(e.length===0)return[];let i=Pe(n,r),t=Pe(e,r);if(t.text.length===0)return[];let o=[],s=0;for(;;){let a=i.text.indexOf(t.text,s);if(a===-1)break;let c=i.map[a],u=i.map[a+t.text.length-1]+1;o.push({startOffset:c,endOffset:u,startLine:Fe(n,c),endLine:Fe(n,Math.max(u-1,0))}),s=a+t.text.length}return o}function rn(n){let e=new Map;if(n.length<2)return n.length===1&&e.set(n,1),e;for(let r=0;r<n.length-1;r++){let i=n.slice(r,r+2);e.set(i,(e.get(i)??0)+1)}return e}function it(n,e){if(n.size===0&&e.size===0)return 1;if(n.size===0||e.size===0)return 0;let r=0,[i,t]=n.size<=e.size?[n,e]:[e,n];for(let[s,a]of i){let c=t.get(s);c&&(r+=Math.min(a,c))}let o=0;for(let s of n.values())o+=s;for(let s of e.values())o+=s;return o===0?0:2*r/o}function st(n,e,r=3){let i=Ce(n).split(`\n`),t=Ce(e).split(`\n`);if(i.length===0||t.length===0)return[];let o=t.map(m=>m.trim()).join(`\n`),s=rn(o),a=i.map(m=>m.trim()),c=new Map,u=new Set([t.length-1,t.length,t.length+1]);for(let m of u)if(!(m<1))for(let f=0;f+m<=i.length;f++){let y=a.slice(f,f+m).join(`\n`),h=it(rn(y),s);if(h<=.3)continue;let v=c.get(f);(!v||h>v.score)&&c.set(f,{score:h,preview:i.slice(f,f+m).join(`\n`).slice(0,120)})}return Array.from(c.entries()).map(([m,f])=>({startLine:m+1,score:Math.round(f.score*100)/100,preview:f.preview})).sort((m,f)=>f.score-m.score).slice(0,r)}function lt(n){let e=(n.match(/\r\n/g)??[]).length,r=(n.match(/\n/g)??[]).length-e;return e>r?`\r\n`:`\n`}function on(n,e){let r=lt(e);return n.replace(/\r\n?|\n/g,r)}var W=40;function at(n,e,r,i=3){let t=Ce(n).split(`\n`),o=[],s=e.slice().sort((a,c)=>a.startOffset-c.startOffset);for(let a of s){let c=Math.max(1,a.startLine-i),u=Math.min(t.length,a.endLine+i),m=n.slice(a.startOffset,a.endOffset).split(`\n`).map(b=>b.replace(/\r$/,"")),f=r.split(`\n`),y=m.length,h=f.length,w=[["@@",`-${a.startLine},${y}`,`+${a.startLine},${h}`,"@@"].join(" ")];for(let b=c;b<a.startLine;b++)w.push(` ${t[b-1]}`);for(let b of m.slice(0,W))w.push(`-${b}`);y>W&&w.push(`... \u7701\u7565 ${y-W} \u884C`);for(let b of f.slice(0,W))w.push(`+${b}`);h>W&&w.push(`... \u7701\u7565 ${h-W} \u884C`);for(let b=a.endLine+1;b<=u;b++)w.push(` ${t[b-1]}`);o.push(w.join(`\n`))}return o.join(`\n`)}function ge(n,e,r={}){let i=r.contextLines??3,t=r.topN??3,o=n.slice(),s=[],a=!1;for(let c=0;c<e.length;c++){let u=e[c],m=u.operationIndex??0,f=()=>({index:c,label:u.label??null,status:"FAILED",errorCode:"OK",message:null,operationIndex:m,matchCount:0,replacedCount:0,range:null,suggestions:null,dependentOnFailedOp:a,hunk:null}),y=(D,T,q={})=>{s.push({...f(),status:"FAILED",errorCode:D,message:T,...q}),a=!0};if(!Number.isInteger(m)||m<0||m>=o.length){y("NO_TARGET",`operationIndex=${m} \u4E0D\u5B58\u5728\uFF0C\u5F53\u524D\u5171\u6709 ${o.length} \u4E2A operation\uFF08\u53EF\u7528\u4E0B\u6807 0~${Math.max(o.length-1,0)}\uFF09`);continue}if(u.rewrite!==!0&&(typeof u.oldString!="string"||u.oldString.length===0)){y("EMPTY_OLD_STRING","oldString \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32\uFF1B\u6574\u4EFD\u811A\u672C\u91CD\u5199\u8BF7\u6539\u7528 rewrite=true\uFF08\u4EC5\u4F20 newString\uFF0C\u4E0D\u5FC5\u56DE\u4F20\u65E7\u5168\u6587\uFF09\uFF0C\u6539 input/output \u7ED3\u6784\u8BF7\u7528 patch_model_logic");continue}if(u.replaceAll===!0&&u.occurrence!=null){y("INVALID_PARAMS","replaceAll \u4E0E occurrence \u4E92\u65A5\uFF0C\u53EA\u80FD\u4E8C\u9009\u4E00");continue}if(u.rewrite===!0){if(typeof u.newString!="string"){y("INVALID_PARAMS","rewrite=true \u65F6 newString \u5FC5\u586B\u4E14\u4E3A\u5B57\u7B26\u4E32\uFF08\u6574\u4EFD\u66FF\u6362\u7684\u76EE\u6807\u6587\u672C\uFF09");continue}let D=o[m],T=on(u.newString,D),q=Fe(D,D.length);o[m]=T,s.push({...f(),status:"OK",errorCode:"OK",matchCount:1,replacedCount:1,range:{startOffset:0,endOffset:D.length,startLine:1,endLine:q},hunk:`\u6574\u4EFD\u66FF\u6362\uFF1A${D.length} \u2192 ${T.length} \u5B57\u7B26\uFF08rewrite \u6A21\u5F0F\uFF0C\u672A\u56DE\u663E\u65E7\u5168\u6587\uFF09`});continue}let h=u.matchMode??"normalized",v=o[m],w=ot(v,u.oldString,h);if(w.length===0){y("NOT_FOUND",`oldString \u5728 operation[${m}] \u7684\u811A\u672C\u4E2D\u672A\u5339\u914D\u5230\u4EFB\u4F55\u5185\u5BB9\uFF08matchMode=${h}\uFF09`,{suggestions:st(v,u.oldString,t)});continue}let b;if(u.replaceAll===!0)b=w;else if(u.occurrence!=null){if(!Number.isInteger(u.occurrence)||u.occurrence<1||u.occurrence>w.length){y("OCCURRENCE_OUT_OF_RANGE",`occurrence=${u.occurrence} \u8D8A\u754C\uFF0C\u5B9E\u9645\u5339\u914D\u6570\u4E3A ${w.length}`,{matchCount:w.length});continue}b=[w[u.occurrence-1]]}else if(w.length>1){let D=w.map(T=>`\u7B2C ${T.startLine}~${T.endLine} \u884C`).join("\u3001");y("NOT_UNIQUE",`oldString \u5339\u914D\u5230 ${w.length} \u5904\uFF08${D}\uFF09\u3002\u8BF7\u6269\u5927 oldString \u7684\u4E0A\u4E0B\u6587\u4F7F\u5176\u552F\u4E00\uFF0C\u6216\u4F7F\u7528 occurrence \u6307\u5B9A\u7B2C\u51E0\u5904\uFF0C\u6216 replaceAll=true \u5168\u90E8\u66FF\u6362`,{matchCount:w.length});continue}else b=w;let k=on(u.newString,v),E=v;for(let D=b.length-1;D>=0;D--)E=E.slice(0,b[D].startOffset)+k+E.slice(b[D].endOffset);let K=at(v,b,k,i);o[m]=E,s.push({...f(),status:"OK",errorCode:"OK",matchCount:w.length,replacedCount:b.length,range:b[0],hunk:K})}return{scripts:o,results:s,ok:s.length>0&&s.every(c=>c.status==="OK")}}async function sn(n,e){e.committype==="saverecord"&&(e.msgbody=V(new Date,"YYYY-MM-DD HH:mm")),n.message=JSON.stringify(e);try{return(await pe(n)).resp_data}catch(r){return F(r)}}function X(n,e){return(e==="input"?n.input:n.output)??[]}function re(n){return n.actioncategory!=null&&String(n.actioncategory)!=="5"?null:(n.bindjson==null&&(n.bindjson={modelcode:n.modelcode}),n.bindjson.bindcols==null&&(n.bindjson.bindcols=[]),n.bindjson.bindcols)}function J(n){let e=L(n.field)?n.field:void 0,r=L(n.column)?n.column:void 0;return{fieldKey:e,colKey:r}}function U(n,e,r){return e!==void 0&&n?.field===e||r!==void 0&&e===void 0&&n?.column===r}function L(n){return n==null?!1:typeof n=="string"?n.trim().length>0:!0}async function ct(n,e,r){let i=(o={})=>({index:r,op:e.op,status:"OK",errorCode:"OK",message:null,...o}),t=(o,s,a={})=>({index:r,op:e.op,status:"FAILED",errorCode:o,message:s,...a});switch(e.op){case"add_param":{let o=X(n,e.target);if(L(e.param.name)&&o.some(a=>a?.name===e.param.name))return t("DUP_NAME",`target=${e.target} \u4E2D\u5DF2\u5B58\u5728 name=${e.param.name} \u7684\u53C2\u6570\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);let s=e.position??o.length;return o.splice(s,0,e.param),e.target==="input"?n.input=o:n.output=o,i({message:`\u5DF2\u5728 ${e.target} \u7684 position=${s} \u8FFD\u52A0\u53C2\u6570 ${e.param.name??"(\u672A\u547D\u540D)"}`})}case"remove_param":{let o=X(n,e.target),s=o.filter(c=>c?.name===e.name);if(s.length===0)return t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`);if(s.length>1)return t("DUP_NAME",`name=${e.name} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`);let a=o.findIndex(c=>c?.name===e.name);return o.splice(a,1),e.target==="input"?n.input=o:n.output=o,i({message:`\u5DF2\u4ECE ${e.target} \u79FB\u9664\u53C2\u6570 ${e.name}`})}case"set_param_attrs":{let s=X(n,e.target).filter(a=>a?.name===e.name);return s.length===0?t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`):s.length>1?t("DUP_NAME",`name=${e.name} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):(Object.assign(s[0],e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230 ${e.target} \u53C2\u6570 ${e.name}`}))}case"add_property":{let s=X(n,e.target).filter(h=>h?.name===e.paramName);if(s.length===0)return t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(s.length>1)return t("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let a=s[0],c=a.properties??(a.properties=[]),u=L(e.property.name)?e.property.name:void 0,m=L(e.property.propertycode)?e.property.propertycode:void 0,f=c.find(h=>u!==void 0&&h?.name===u||m!==void 0&&h?.propertycode===m);if(f){let h=u!==void 0&&f?.name===u?`name=${u}`:`propertycode=${m}`;return t("DUP_NAME",`\u53C2\u6570 ${e.paramName} \u4E2D\u5DF2\u5B58\u5728 ${h} \u7684\u5C5E\u6027\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`)}let y=e.position??c.length;return c.splice(y,0,e.property),i({message:`\u5DF2\u5728 ${e.target}.${e.paramName} \u7684 position=${y} \u8FFD\u52A0\u5C5E\u6027 ${e.property.name??e.property.propertycode??"(\u672A\u547D\u540D)"}`})}case"remove_property":{let o=L(e.propertyName)?e.propertyName:void 0,s=L(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&s===void 0)return t("INVALID_PARAMS","remove_property \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 propertyName \u6216 propertyCode\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E\uFF08\u5E73\u53F0\u4E0A\u81EA\u5B9A\u4E49\u5B57\u6BB5\u7684 propertycode \u6052\u4E3A\u7A7A\u4E32\uFF09");let c=X(n,e.target).filter(v=>v?.name===e.paramName);if(c.length===0)return t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(c.length>1)return t("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${c.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let m=c[0].properties??[],f=v=>o!==void 0&&v?.name===o||s!==void 0&&v?.propertycode===s,y=m.filter(f);if(y.length===0)return t("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(y.length>1)return t("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${y.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let h=m.findIndex(f);return m.splice(h,1),i({message:`\u5DF2\u4ECE ${e.target}.${e.paramName} \u79FB\u9664\u5C5E\u6027 ${e.propertyName??e.propertyCode}`})}case"replace_property":{let o=L(e.propertyName)?e.propertyName:void 0,s=L(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&s===void 0)return t("INVALID_PARAMS","replace_property \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 propertyName \u6216 propertyCode\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E\uFF08\u5E73\u53F0\u4E0A\u81EA\u5B9A\u4E49\u5B57\u6BB5\u7684 propertycode \u6052\u4E3A\u7A7A\u4E32\uFF09");let c=X(n,e.target).filter(v=>v?.name===e.paramName);if(c.length===0)return t("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(c.length>1)return t("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${c.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let m=c[0].properties??[],f=v=>o!==void 0&&v?.name===o||s!==void 0&&v?.propertycode===s,y=m.filter(f);if(y.length===0)return t("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(y.length>1)return t("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${y.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let h=m.findIndex(f);return m[h]=e.property,i({message:`\u5DF2\u5728 ${e.target}.${e.paramName} \u66FF\u6362\u5C5E\u6027 ${e.propertyName??e.propertyCode}`})}case"set_meta":{let o=["input","output","operations"].filter(s=>s in e.patch);return o.length>0?t("INVALID_PARAMS",`set_meta \u4E0D\u80FD\u4FEE\u6539 ${o.join("/")}\uFF0C\u8BF7\u4F7F\u7528\u5BF9\u5E94\u7684 param/property \u7C7B op`):(Object.assign(n,e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u9876\u5C42\u5143\u6570\u636E\u5B57\u6BB5\u5230\u4E1A\u52A1\u903B\u8F91`}))}case"add_export_column":{let o=re(n);if(o===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 add_export_column\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let{fieldKey:s,colKey:a}=J(e.column);if(s!==void 0&&o.some(u=>u?.field===s))return t("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 field=${s} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);if(a!==void 0&&s===void 0&&o.some(u=>u?.column===a))return t("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 column=${a} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);let c=e.position??o.length;return o.splice(c,0,e.column),i({message:`\u5DF2\u5728 bindcols \u7684 position=${c} \u8FFD\u52A0\u5BFC\u51FA\u5217 ${s??a??"(\u672A\u547D\u540D)"}`})}case"remove_export_column":{let{fieldKey:o,colKey:s}=J(e);if(o===void 0&&s===void 0)return t("INVALID_PARAMS","remove_export_column \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 field \u6216 column\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E");let a=re(n);if(a===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 remove_export_column\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(m=>U(m,o,s));if(c.length===0)return t("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(c.length>1)return t("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00\uFF08field/column \u7EC4\u5408\u4E0D\u8DB3\u4EE5\u552F\u4E00\u5B9A\u4F4D\uFF09`);let u=a.findIndex(m=>U(m,o,s));return a.splice(u,1),i({message:`\u5DF2\u4ECE bindcols \u79FB\u9664\u5BFC\u51FA\u5217 ${o??s}`})}case"replace_export_column":{let{fieldKey:o,colKey:s}=J(e);if(o===void 0&&s===void 0)return t("INVALID_PARAMS","replace_export_column \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 field \u6216 column\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E");let a=re(n);if(a===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 replace_export_column\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(m=>U(m,o,s));if(c.length===0)return t("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(c.length>1)return t("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let u=a.findIndex(m=>U(m,o,s));return a[u]=e.newColumn,i({message:`\u5DF2\u5728 bindcols \u66FF\u6362\u5BFC\u51FA\u5217 ${o??s}`})}case"set_export_column_attrs":{let{fieldKey:o,colKey:s}=J(e);if(o===void 0&&s===void 0)return t("INVALID_PARAMS","set_export_column_attrs \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 field \u6216 column\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E");let a=re(n);if(a===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 set_export_column_attrs\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(u=>U(u,o,s));return c.length===0?t("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217"):c.length>1?t("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`):(Object.assign(c[0],e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230\u5BFC\u51FA\u5217 ${o??s}`}))}case"set_bind_meta":{if(re(n)===null)return t("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 set_bind_meta\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");if("bindcols"in e.patch)return t("INVALID_PARAMS","set_bind_meta \u4E0D\u80FD\u4FEE\u6539 bindcols\uFF08\u5BFC\u51FA\u5217\u5B9A\u4E49\uFF09\uFF0C\u8BF7\u4F7F\u7528 add_export_column / remove_export_column \u7B49\u5217\u7EA7 op");let s=n.bindjson;return s?(Object.assign(s,e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A bindjson \u9876\u5C42\u5B57\u6BB5`})):t("INVALID_PARAMS","bindjson \u7F3A\u5931\uFF0C\u65E0\u6CD5\u6267\u884C set_bind_meta")}default:return t("OP_ERROR",`\u672A\u77E5 op \u7C7B\u578B\uFF1A${e.op}`)}}function ut(n){let e=n.map(i=>`ops[${i.index}] ${i.op} (${i.status}): ${i.message??""}`).join(`\n`),r=e.split(`\n`);return r.length<=fe?e:`${r.slice(0,fe).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${r.length} \u884C\uFF09`}function dt(n,e){let r=[],i=t=>(t==="input"?n.input:n.output)??[];for(let t=0;t<e.length;t++){let o=e[t];switch(o.op){case"set_meta":for(let[s,a]of Object.entries(o.patch))JSON.stringify(n[s])!==JSON.stringify(a)&&r.push(`ops[${t}] set_meta.${s} \u672A\u751F\u6548`);break;case"add_param":{i(o.target).some(a=>a?.name===o.param.name)||r.push(`ops[${t}] add_param \u53C2\u6570\u672A\u8FFD\u52A0`);break}case"remove_param":{i(o.target).some(a=>a?.name===o.name)&&r.push(`ops[${t}] remove_param \u53C2\u6570\u4ECD\u5B58\u5728`);break}case"set_param_attrs":{let a=i(o.target).find(c=>c?.name===o.name);if(!a){r.push(`ops[${t}] set_param_attrs \u53C2\u6570\u6D88\u5931`);break}for(let[c,u]of Object.entries(o.patch))JSON.stringify(a[c])!==JSON.stringify(u)&&r.push(`ops[${t}] set_param_attrs.${c} \u672A\u751F\u6548`);break}case"add_property":{let a=i(o.target).find(y=>y?.name===o.paramName);if(!a){r.push(`ops[${t}] add_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],u=L(o.property.name)?o.property.name:void 0,m=L(o.property.propertycode)?o.property.propertycode:void 0;c.some(y=>u!==void 0&&y?.name===u||m!==void 0&&y?.propertycode===m)||r.push(`ops[${t}] add_property \u5C5E\u6027\u672A\u8FFD\u52A0`);break}case"remove_property":{let a=i(o.target).find(y=>y?.name===o.paramName);if(!a){r.push(`ops[${t}] remove_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],u=L(o.propertyName)?o.propertyName:void 0,m=L(o.propertyCode)?o.propertyCode:void 0,f=y=>u!==void 0&&y?.name===u||m!==void 0&&y?.propertycode===m;c.some(f)&&r.push(`ops[${t}] remove_property \u5C5E\u6027\u4ECD\u5B58\u5728`);break}case"replace_property":{let a=i(o.target).find(h=>h?.name===o.paramName);if(!a){r.push(`ops[${t}] replace_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],u=L(o.propertyName)?o.propertyName:void 0,m=L(o.propertyCode)?o.propertyCode:void 0,f=h=>u!==void 0&&h?.name===u||m!==void 0&&h?.propertycode===m,y=c.find(f);if(!y){r.push(`ops[${t}] replace_property \u5C5E\u6027\u6D88\u5931`);break}for(let[h,v]of Object.entries(o.property))JSON.stringify(y[h])!==JSON.stringify(v)&&r.push(`ops[${t}] replace_property.${h} \u672A\u751F\u6548`);break}case"add_export_column":{let s=n.bindjson?.bindcols??[],a=L(o.column.field)?o.column.field:void 0,c=L(o.column.column)?o.column.column:void 0;s.some(m=>U(m,a,c))||r.push(`ops[${t}] add_export_column \u5217\u672A\u8FFD\u52A0`);break}case"remove_export_column":{let s=n.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=J(o);s.some(u=>U(u,a,c))&&r.push(`ops[${t}] remove_export_column \u5217\u4ECD\u5B58\u5728`);break}case"replace_export_column":{let s=n.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=J(o),u=s.find(m=>U(m,a,c));if(!u){r.push(`ops[${t}] replace_export_column \u5217\u6D88\u5931`);break}for(let[m,f]of Object.entries(o.newColumn))JSON.stringify(u[m])!==JSON.stringify(f)&&r.push(`ops[${t}] replace_export_column.${m} \u672A\u751F\u6548`);break}case"set_export_column_attrs":{let s=n.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=J(o),u=s.find(m=>U(m,a,c));if(!u){r.push(`ops[${t}] set_export_column_attrs \u5217\u6D88\u5931`);break}for(let[m,f]of Object.entries(o.patch))JSON.stringify(u[m])!==JSON.stringify(f)&&r.push(`ops[${t}] set_export_column_attrs.${m} \u672A\u751F\u6548`);break}case"set_bind_meta":{let s=n.bindjson;if(!s){r.push(`ops[${t}] set_bind_meta bindjson \u672A\u751F\u6548`);break}for(let[a,c]of Object.entries(o.patch))JSON.stringify(s[a])!==JSON.stringify(c)&&r.push(`ops[${t}] set_bind_meta.${a} \u672A\u751F\u6548`);break}}}return{verified:r.length===0,problems:r}}async function ln(n,e,r,i={}){let t=i.dryRun??!1,o=i.verify??!0,s=(w,b)=>({ok:!1,applied:!1,verified:null,errorCode:w,message:b,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return s("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let a;try{a=(await H({modellogiccode:n})).resp_data}catch(w){return s("FETCH_FAILED",F(w))}if(!a)return s("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${n} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);let c=structuredClone(a),u=[],m=!1;for(let w=0;w<e.length;w++)try{let b=await ct(c,e[w],w);u.push(b),b.status==="FAILED"&&(m=!0)}catch(b){u.push({index:w,op:e[w].op,status:"FAILED",errorCode:"OP_ERROR",message:F(b)}),m=!0}let f=ut(u);if(m){let w=u.filter(b=>b.status==="FAILED").map(b=>b.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${u.filter(b=>b.status==="FAILED").length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${w}]\uFF09\u3002\u672C\u6279\u6B21\u672A\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF0C\u8BF7\u6839\u636E ops[].message \u4FEE\u6B63\u540E\u91CD\u8BD5`,diff:f,ops:u}}if(t)return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u6F14\u6210\u529F\uFF08dryRun=true\uFF09\uFF0C${e.length} \u4E2A op \u5168\u90E8\u547D\u4E2D\uFF0C\u672A\u843D\u5E93`,diff:f,ops:u};r.committype==="saverecord"&&(r.msgbody=V(new Date,"YYYY-MM-DD HH:mm")),c.message=JSON.stringify(r);let y;try{let w=await pe(c);y=typeof w?.resp_data=="string"?w.resp_data:JSON.stringify(w?.resp_data??null)}catch(w){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:F(w),diff:f,ops:u}}let h=null,v=y;if(o)try{let b=(await H({modellogiccode:n})).resp_data;if(!b)h=!1,v=`${y} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let k=dt(b,e);h=k.verified,k.verified||(v=`${y} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${k.problems.join("\uFF1B")}`)}}catch(w){h=!1,v=`${y} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(w)}`}return{ok:h===null?!0:h,applied:!0,verified:h,errorCode:h===!1?"VERIFY_FAILED":"OK",message:v,diff:f,ops:u}}var fe=150;function pt(n){let e=n.filter(t=>t.hunk).map(t=>`--- ops[${t.index}]${t.label?` (${t.label})`:""} @ operation[${t.operationIndex}]\n${t.hunk}`);if(e.length===0)return"";let r=e.join(`\n`),i=r.split(`\n`);return i.length<=fe?r:`${i.slice(0,fe).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}async function mt(n,e){e.committype==="saverecord"&&(e.msgbody=V(new Date,"YYYY-MM-DD HH:mm")),n.message=JSON.stringify(e);try{let r=await pe(n);return{ok:!0,text:typeof r?.resp_data=="string"?r.resp_data:JSON.stringify(r?.resp_data??null)}}catch(r){return{ok:!1,text:F(r)}}}async function an(n,e,r,i={}){let t=i.contextLines??3,o=i.dryRun??!1,s=i.verify??!0,a=(k,E)=>({ok:!1,applied:!1,verified:null,errorCode:k,message:E,lengthBefore:0,lengthAfter:0,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return a("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let c;try{c=(await H({modellogiccode:n})).resp_data}catch(k){return a("FETCH_FAILED",F(k))}if(!c)return a("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${n} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);if(!c.operations||c.operations.length===0)return a("NO_OPERATIONS","\u8BE5\u4E1A\u52A1\u903B\u8F91\u4E0D\u542B operations\uFF08\u5373\u6CA1\u6709 flycode \u811A\u672C\uFF09\uFF0C\u8BF7\u6539\u7528 save_model_logic \u4FDD\u5B58");let u=c.operations.map(k=>k.templateparams?.flycode??""),m=u.reduce((k,E)=>k+E.length,0),f=ge(u,e,{contextLines:t}),y=pt(f.results),h=f.scripts.reduce((k,E)=>k+E.length,0);if(!f.ok){let k=f.results.filter(K=>K.status==="FAILED"),E=k.map(K=>K.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${k.length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${E}]\uFF09\u3002\u672C\u6279\u6B21\u672A\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF0C\u8BF7\u6839\u636E ops[].message / suggestions \u4FEE\u6B63\u540E\u91CD\u8BD5`,lengthBefore:m,lengthAfter:h,diff:y,ops:f.results}}if(o)return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u6F14\u6210\u529F\uFF08dryRun=true\uFF09\uFF0C${e.length} \u4E2A op \u5168\u90E8\u547D\u4E2D\uFF0C\u672A\u843D\u5E93`,lengthBefore:m,lengthAfter:h,diff:y,ops:f.results};for(let k=0;k<f.scripts.length;k++)if(f.scripts[k]!==u[k]){let E=c.operations[k].templateparams;c.operations[k].templateparams={...E??{},flycode:f.scripts[k]}}let v=await mt(c,r);if(!v.ok)return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:v.text,lengthBefore:m,lengthAfter:h,diff:y,ops:f.results};let w=null,b=v.text;if(s)try{let K=((await H({modellogiccode:n})).resp_data?.operations??[]).map(T=>T.templateparams?.flycode??""),D=[];f.results.forEach((T,q)=>{let le=e[q],Bn=K[T.operationIndex]??"",ye=le.matchMode??"normalized",Te=M(Bn,ye),Me=M(le.newString,ye),je=M(le.oldString,ye);le.newString.length>0&&!Te.includes(Me)&&D.push(`ops[${q}] \u7684\u65B0\u5185\u5BB9\u672A\u51FA\u73B0\u5728\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`),!Me.includes(je)&&Te.includes(je)&&D.push(`ops[${q}] \u7684 oldString \u4ECD\u7136\u5B58\u5728\u4E8E\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`)}),w=D.length===0,D.length>0&&(b=`${v.text} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${D.join("\uFF1B")}`)}catch(k){w=!1,b=`${v.text} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(k)}`}return{ok:w===null?!0:w,applied:!0,verified:w,errorCode:w===!1?"VERIFY_FAILED":"OK",message:b,lengthBefore:m,lengthAfter:h,diff:y,ops:f.results}}var cn=[{name:"save_model_logic",config:{title:"\u4FDD\u5B58\u4E1A\u52A1\u903B\u8F91\uFF08\u4EC5\u65B0\u589E / \u6216\u5168\u91CF JSON \u5F88\u5C0F\u5982\u5FAE\u670D\u52A1\uFF09",description:`\u5168\u91CF\u4FDD\u5B58\u4E00\u6761\u4E1A\u52A1\u903B\u8F91\u3002\u4EC5\u7528\u4E8E\uFF1A\u2460\u65B0\u589E\uFF1B\u2461\u5DF2\u6709\u903B\u8F91 JSON \u5F88\u5C0F\uFF08\u5982\u5FAE\u670D\u52A1 actioncategory=2\uFF09\u3002\u7F16\u8F91\u666E\u901A flycode \u63A5\u53E3\u7684\u5DF2\u6709\u903B\u8F91\u8BF7\u52FF\u56DE\u4F20\u6574\u4EFD\u5927\u5BF9\u8C61\u2014\u2014\u6539\u811A\u672C\u7528 str_replace_flycode\uFF0C\u6539\u7ED3\u6784/\u5143\u6570\u636E\u7528 patch_model_logic\u3002\nactioncategory \u679A\u4E3E\u89C1 get_model_logic / page_model_logic_list\u3002\n\n${A}`,inputSchema:{logic:en.describe("\u5B8C\u6574\u7684\u4E1A\u52A1\u903B\u8F91 JSON \u5BF9\u8C61\uFF08LogicResult\uFF09\uFF0C\u901A\u5E38\u6765\u81EA get_model_logic \u7684\u8FD4\u56DE\uFF0C\u4FEE\u6539\u540E\u56DE\u4F20"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF1Bmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B")},outputSchema:{result:_.string().describe("\u4FDD\u5B58\u64CD\u4F5C\u7684\u7ED3\u679C\u6D88\u606F\uFF08\u670D\u52A1\u7AEF\u8FD4\u56DE\u7684 resp_data \u5B57\u7B26\u4E32\uFF1B\u5931\u8D25\u65F6\u8FD4\u56DE\u9519\u8BEF\u4F53 JSON\uFF09")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{logic:e,commitMessage:r}=n,i=B(r);try{let t=await sn(e,i);return{content:[{type:"text",text:t}],structuredContent:{result:t}}}catch(t){let o=F(t);return{isError:!0,content:[{type:"text",text:o}],structuredContent:{result:o}}}}},{name:"patch_model_logic",config:{title:"\u5C40\u90E8\u8865\u4E01\u4FEE\u6539\u4E1A\u52A1\u903B\u8F91\uFF08input/output/\u5143\u6570\u636E\uFF09",description:`\u4EE5 delta ops \u5C40\u90E8\u4FEE\u6539 input/output \u7ED3\u6784\u6216\u9876\u5C42\u5143\u6570\u636E\uFF0C\u65E0\u9700\u56DE\u4F20\u6574\u4EFD LogicResult\u3002ops \u5206\u4E09\u7C7B\uFF1A\u2460input/output \u7ED3\u6784\uFF08add_param/remove_param/set_param_attrs/add_property/remove_property/replace_property\uFF09\uFF1B\u2461\u5143\u6570\u636E\uFF08set_meta\uFF0C\u4E0D\u542B input/output/operations\uFF09\uFF1B\u2462\u5BFC\u51FA\u5217\uFF08\u4EC5 actioncategory=5\uFF1Aadd_export_column/remove_export_column/replace_export_column/set_export_column_attrs/set_bind_meta\uFF09\u3002\u5168\u90E8 op \u9884\u6F14\u6210\u529F\u624D\u843D\u5E93\uFF0C\u4EFB\u4E00\u5931\u8D25\u6574\u6279\u56DE\u6EDA\u3002\u6539 flycode \u811A\u672C\u8BF7\u7528 str_replace_flycode\uFF1B\u5FAE\u670D\u52A1 JSON \u5C0F\u8BF7\u76F4\u63A5\u7528 save_model_logic\u3002\n\n${A}\n${ne}\n${de}`,inputSchema:{modellogiccode:_.string().describe("\u76EE\u6807\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:_.array(nn).min(1).describe("\u8865\u4E01\u64CD\u4F5C\u6570\u7EC4\uFF0C\u81F3\u5C11\u4E00\u4E2A\u5143\u7D20\uFF1B\u6309\u6570\u7EC4\u987A\u5E8F\u4F9D\u6B21\u4F5C\u7528\u4E8E\u4E0A\u4E00\u6B65\u7ED3\u679C"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6574\u6279 ops \u5171\u7528\u4E00\u4E2A\uFF1B\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF0Cmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B"),dryRun:_.boolean().optional().describe("\u53EA\u9884\u6F14\u5E76\u8F93\u51FA\u6458\u8981\u3001\u4E0D\u843D\u5E93\uFF0C\u9ED8\u8BA4 false\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u65F6\u5EFA\u8BAE\u5148\u7F6E true"),verify:_.boolean().optional().describe("\u4FDD\u5B58\u540E\u662F\u5426\u56DE\u8BFB\u6821\u9A8C\u6240\u6709\u6539\u52A8\u5DF2\u751F\u6548\uFF0C\u9ED8\u8BA4 true")},outputSchema:{ok:_.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:_.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:_.boolean().nullable().describe("\u4FDD\u5B58\u540E\u56DE\u8BFB\u6821\u9A8C\u7ED3\u679C\uFF1Atrue \u5168\u90E8\u751F\u6548\u3001false \u5B58\u5728\u5F02\u5E38\u3001null \u672A\u843D\u5E93\u6216\u672A\u5F00\u542F\u6821\u9A8C"),errorCode:_.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / PARAM_NOT_FOUND / PROP_NOT_FOUND / DUP_NAME / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:_.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:_.string().describe("\u5168\u90E8 op \u7684\u6267\u884C\u6458\u8981\uFF0C\u8D85\u957F\u4F1A\u622A\u65AD\uFF1B\u53EA\u56DE\u6539\u52A8\u6458\u8981\uFF0C\u4E0D\u56DE\u6574\u4EFD\u5BF9\u8C61"),ops:_.array(_.object({index:_.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:_.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:_.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:_.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801\uFF1AOK / PARAM_NOT_FOUND / PROP_NOT_FOUND / DUP_NAME / INVALID_PARAMS / OP_ERROR"),message:_.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null")})).describe("\u6BCF\u4E2A op \u7684\u6267\u884C\u7ED3\u679C\uFF0C\u4E0E\u5165\u53C2 ops \u4E00\u4E00\u5BF9\u5E94")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{modellogiccode:e,commitMessage:r,dryRun:i=!1,verify:t=!0}=n,o=n.ops,s=B(r);try{let a=await ln(e,o,s,{dryRun:i,verify:t});return{isError:!a.ok,content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a}}catch(a){let c=F(a);return{isError:!0,content:[{type:"text",text:c}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:c,diff:"",ops:[]}}}}},{name:"str_replace_flycode",config:{title:"\u6279\u91CF\u5C40\u90E8\u66FF\u6362 flycode \u811A\u672C",description:"\u4EE5 oldString\u2192newString \u5C40\u90E8\u66FF\u6362 flycode \u811A\u672C\uFF0C\u4E0D\u5FC5\u56DE\u4F20\u6574\u4EFD\u3002\u652F\u6301\u591A ops \u6279\u91CF\u3001rewrite=true \u6574\u4EFD\u91CD\u5199\uFF08\u53EA\u4F20 newString\uFF09\u3001dryRun \u9884\u89C8\u3001occurrence/replaceAll \u6D88\u6B67\uFF1B\u9ED8\u8BA4\u5BB9\u5FCD CRLF/LF \u5DEE\u5F02\u3002\u5168\u90E8 op \u4E8B\u52A1\u6027\u9884\u6F14\uFF0C\u4EFB\u4E00\u5931\u8D25\u6574\u6279\u56DE\u6EDA\u3002\u6539\u7ED3\u6784/\u5143\u6570\u636E\u8BF7\u7528 patch_model_logic\u3002",inputSchema:{modelLogicCode:_.string().describe("\u8981\u4FEE\u6539\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:_.array(_.object({oldString:_.string().describe("\u5F85\u66FF\u6362\u7684\u539F\u6587\u7247\u6BB5\uFF0C\u5728 partial \u6A21\u5F0F\uFF08\u9ED8\u8BA4\uFF0Crewrite \u975E true\uFF09\u4E0B\u5FC5\u987B\u975E\u7A7A\u4E14\u5728\u76EE\u6807\u811A\u672C\u4E2D\u552F\u4E00\u547D\u4E2D\uFF1B\u8BF7\u4ECE\u67E5\u8BE2\u5230\u7684\u811A\u672C\u539F\u6587\u539F\u6837\u590D\u5236\uFF08\u542B\u7F29\u8FDB\u4E0E\u6362\u884C\uFF09\u3002rewrite=true \u65F6\u672C\u5B57\u6BB5\u88AB\u5FFD\u7565"),newString:_.string().describe("\u66FF\u6362\u540E\u7684\u65B0\u6587\u672C\uFF1Bpartial \u6A21\u5F0F\u4E0B\u4F20\u7A7A\u5B57\u7B26\u4E32\u8868\u793A\u5220\u9664 oldString \u8FD9\u6BB5\u5185\u5BB9\uFF1Brewrite=true \u65F6\u672C\u5B57\u6BB5\u4E3A\u6574\u4EFD\u66FF\u6362\u7684\u76EE\u6807\u5168\u6587\uFF08\u5FC5\u586B\uFF09"),rewrite:_.boolean().optional().describe("\u6574\u4EFD\u66FF\u6362\u5F00\u5173\uFF1A\u4E3A true \u65F6\u5FFD\u7565 oldString\uFF0C\u628A\u6574\u4E2A operation \u7684 flycode \u811A\u672C\u6574\u4F53\u66FF\u6362\u4E3A newString\uFF0C\u7528\u4E8E\u6574\u4EFD\u811A\u672C\u91CD\u5199\uFF08\u5927\u8303\u56F4\u91CD\u6784\uFF09\uFF0C\u7701\u53BB\u56DE\u4F20\u65E7\u5168\u6587\uFF1B\u7F3A\u7701/false \u7EF4\u6301\u539F\u6709 str_replace \u5C40\u90E8\u66FF\u6362\u884C\u4E3A"),operationIndex:_.number().int().nonnegative().optional().describe("\u4F5C\u7528\u4E8E\u7B2C\u51E0\u4E2A operation \u7684 flycode \u811A\u672C\uFF0C\u9ED8\u8BA4 0\u3002\u591A\u6570\u4E1A\u52A1\u903B\u8F91\u53EA\u6709\u4E00\u4E2A operation\uFF0C\u65E0\u9700\u4F20"),replaceAll:_.boolean().optional().describe("\u662F\u5426\u66FF\u6362\u5168\u90E8\u5339\u914D\uFF0C\u9ED8\u8BA4 false\u3002\u4E0E occurrence \u4E92\u65A5\uFF0C\u4EC5\u5728\u4F60\u786E\u8BA4\u8981\u6539\u6389\u6240\u6709\u540C\u540D\u7247\u6BB5\u65F6\u7F6E true"),occurrence:_.number().int().positive().optional().describe("\u53EA\u66FF\u6362\u7B2C N \u4E2A\u5339\u914D\uFF081-based\uFF09\uFF0C\u7528\u4E8E\u300C\u591A\u5904\u76F8\u540C\u7247\u6BB5\u53EA\u6539\u5176\u4E2D\u4E00\u5904\u300D\uFF1B\u4E0E replaceAll \u4E92\u65A5"),matchMode:_.enum(["exact","normalized"]).optional().describe("\u5339\u914D\u4E25\u683C\u5EA6\uFF0C\u9ED8\u8BA4 normalized\uFF08\u5BB9\u5FCD CRLF/LF \u4E0E\u884C\u5C3E\u7A7A\u767D\u5DEE\u5F02\uFF09\uFF1Bexact \u4E3A\u5B57\u8282\u4E25\u683C\u76F8\u7B49"),label:_.string().optional().describe("\u53EF\u9009\u6807\u8BC6\uFF0C\u4EC5\u7528\u4E8E\u5728\u8FD4\u56DE\u62A5\u544A\u4E2D\u8FA8\u8BA4\u8BE5 op\uFF0C\u4E0D\u5F71\u54CD\u6267\u884C")})).min(1).describe("\u66FF\u6362\u64CD\u4F5C\u6570\u7EC4\uFF0C\u81F3\u5C11\u4E00\u4E2A\u5143\u7D20\uFF1B\u6309\u6570\u7EC4\u987A\u5E8F\u4F9D\u6B21\u6267\u884C\uFF0C\u5168\u90E8\u6210\u529F\u624D\u843D\u5E93\u3002\u6574\u4EFD\u91CD\u5199\u7528 rewrite=true \u7684\u5355 op\uFF0C\u5C40\u90E8\u6539\u52A8\u7528 oldString/newString \u7684\u591A op"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6574\u6279 ops \u5171\u7528\u4E00\u4E2A\uFF1B\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF0Cmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B"),dryRun:_.boolean().optional().describe("\u53EA\u9884\u6F14\u5E76\u8F93\u51FA diff\u3001\u4E0D\u843D\u5E93\uFF0C\u9ED8\u8BA4 false\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A oldString \u662F\u5426\u552F\u4E00\u65F6\u5EFA\u8BAE\u5148\u7F6E true"),contextLines:_.number().int().min(0).max(10).optional().describe("diff \u4E2D\u6BCF\u4E2A\u6539\u52A8\u70B9\u4E0A\u4E0B\u4FDD\u7559\u7684\u4E0A\u4E0B\u6587\u884C\u6570\uFF0C\u9ED8\u8BA4 3"),verify:_.boolean().optional().describe("\u4FDD\u5B58\u540E\u662F\u5426\u56DE\u8BFB\u6821\u9A8C\u6240\u6709\u6539\u52A8\u5DF2\u751F\u6548\uFF0C\u9ED8\u8BA4 true")},outputSchema:{ok:_.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:_.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:_.boolean().nullable().describe("\u4FDD\u5B58\u540E\u56DE\u8BFB\u6821\u9A8C\u7ED3\u679C\uFF1Atrue \u5168\u90E8\u751F\u6548\u3001false \u5B58\u5728\u5F02\u5E38\u3001null \u672A\u843D\u5E93\u6216\u672A\u5F00\u542F\u6821\u9A8C"),errorCode:_.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / NO_OPERATIONS / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:_.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),lengthBefore:_.coerce.number().describe("\u66FF\u6362\u524D\u811A\u672C\u603B\u5B57\u7B26\u6570"),lengthAfter:_.coerce.number().describe("\u66FF\u6362\u540E\u811A\u672C\u603B\u5B57\u7B26\u6570"),diff:_.string().describe("\u5168\u90E8 op \u7684 diff \u7247\u6BB5\uFF08unified hunk \u5F62\u6001\uFF09\uFF0C\u8D85\u957F\u4F1A\u622A\u65AD\uFF1B\u6B64\u5904\u53EA\u56DE\u6539\u52A8\u7247\u6BB5\uFF0C\u4E0D\u56DE\u6574\u4EFD\u811A\u672C"),ops:_.array(_.object({index:_.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),label:_.string().nullable().describe("\u8C03\u7528\u65B9\u4F20\u5165\u7684\u6807\u8BC6"),status:_.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:_.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801\uFF1AOK / EMPTY_OLD_STRING / NOT_FOUND / NOT_UNIQUE / NO_TARGET / INVALID_PARAMS / OCCURRENCE_OUT_OF_RANGE"),message:_.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),operationIndex:_.coerce.number().describe("\u5B9E\u9645\u4F5C\u7528\u7684 operation \u4E0B\u6807"),matchCount:_.coerce.number().describe("oldString \u7684\u5339\u914D\u603B\u6570"),replacedCount:_.coerce.number().describe("\u5B9E\u9645\u66FF\u6362\u7684\u5904\u6570"),range:_.object({startOffset:_.coerce.number().describe("\u8D77\u59CB\u5B57\u7B26\u504F\u79FB"),endOffset:_.coerce.number().describe("\u7ED3\u675F\u5B57\u7B26\u504F\u79FB\uFF08\u4E0D\u542B\uFF09"),startLine:_.coerce.number().describe("\u8D77\u59CB\u884C\u53F7\uFF0C1-based"),endLine:_.coerce.number().describe("\u7ED3\u675F\u884C\u53F7\uFF0C1-based")}).nullable().describe("\u9996\u4E2A\u66FF\u6362\u70B9\u7684\u4F4D\u7F6E\uFF0C\u672A\u6267\u884C\u65F6\u4E3A null"),suggestions:_.array(_.object({startLine:_.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:_.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:_.string().describe("\u5019\u9009\u7247\u6BB5\u9884\u89C8")})).nullable().describe("NOT_FOUND \u65F6\u7684\u76F8\u4F3C\u5019\u9009\uFF0C\u4F9B\u4FEE\u6B63 oldString \u53C2\u8003"),dependentOnFailedOp:_.boolean().describe("\u524D\u5E8F op \u5DF2\u5931\u8D25\u65F6\u4E3A true\uFF0C\u8868\u793A\u672C op \u7684\u7ED3\u679C\u53EF\u80FD\u53D7\u5176\u5F71\u54CD"),hunk:_.string().nullable().describe("\u8BE5 op \u4EA7\u751F\u7684 diff \u7247\u6BB5")})).describe("\u6BCF\u4E2A op \u7684\u6267\u884C\u7ED3\u679C\uFF0C\u4E0E\u5165\u53C2 ops \u4E00\u4E00\u5BF9\u5E94")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{modelLogicCode:e,ops:r,commitMessage:i,dryRun:t=!1,contextLines:o=3,verify:s=!0}=n,a=B(i);try{let c=await an(e,r,a,{dryRun:t,contextLines:o,verify:s});return{isError:!c.ok,content:[{type:"text",text:JSON.stringify({ok:c.ok,applied:c.applied,verified:c.verified,errorCode:c.errorCode,message:c.message,ops:c.ops.map(u=>({index:u.index,status:u.status,errorCode:u.errorCode,message:u.message,operationIndex:u.operationIndex,matchCount:u.matchCount,replacedCount:u.replacedCount,range:u.range,suggestions:u.suggestions,dependentOnFailedOp:u.dependentOnFailedOp})),diff:c.diff})}],structuredContent:c}}catch(c){let u=F(c);return{isError:!0,content:[{type:"text",text:u}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:u,lengthBefore:0,lengthAfter:0,diff:"",ops:[]}}}}}];import{z as N}from"zod";function un(n){return C({url:"/bizserv/biz/pageList",method:"post",data:n,type:"tenant"})}function dn(n){return C({url:"/bizserv/biz/getBizObject",method:"post",data:n,type:"tenant"})}import{z as R}from"zod";var gt=R.array(R.object({columnname:R.string().optional().nullable().describe("\u5C5E\u6027\u5217\u7684\u5217\u540D\uFF0C\u5373\u6570\u636E\u5E93\u8868\u7684\u5B57\u6BB5\u7684\u540D\u5B57"),idxtype:R.union([R.string(),R.number()]).optional().nullable().describe("\u7D22\u5F15\u65B9\u5F0F\uFF1A1-\u65E0\uFF1B2-\u4E3B\u952E\u7D22\u5F15\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),ismaster:R.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u6682\u65E0\u7279\u6B8A\u542B\u4E49\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u7F3A\u7701"),marktype:R.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),propertycategorycode:R.string().optional().nullable().describe("\u5C5E\u6027\u7C7B\u522B\u7F16\u7801"),propertycode:R.string().optional().nullable().describe("\u5C5E\u6027\u7F16\u7801\uFF0C\u552F\u4E00\u6807\u8BC6\u4E00\u4E2A\u5C5E\u6027"),propertydescr:R.string().optional().nullable().describe("\u5C5E\u6027\u63CF\u8FF0"),propertyname:R.string().optional().nullable().describe("\u5C5E\u6027\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),propertytypecode:R.string().optional().nullable().describe("\u5C5E\u6027\u7C7B\u578B\u7F16\u7801\uFF0C\u7F16\u7801\u548C\u503C\u7684\u5BF9\u5E94\u5173\u7CFB\uFF1A1-\u4E3B\u952E(int8)\uFF1B2-\u540D\u79F0(200)\uFF1B3-\u6587\u672C(200)\uFF1B4-\u957F\u6587\u672C\uFF1B5-\u6574\u6570(int4)\uFF1B6-\u957F\u6574\u6570(int8)\uFF1B10-\u6570\u5B57(numeric)\uFF1B7-\u65E5\u671F\u65F6\u95F4(ts)\uFF1B30-\u65F6\u95F4\u8303\u56F4\uFF1B29-\u5E74\u6708\u65E5(date)\uFF1B18-\u72B6\u6001(int4)\uFF1B16-\u56FE\u7247\uFF1B26-\u9644\u4EF6\uFF1B17-\u5B9A\u4F4D\uFF1B19-\u9009\u9879\u96C6\uFF1B200000000000-\u5173\u8054\u5BF9\u8C61\uFF1B100000000000-\u4E1A\u52A1\u5BF9\u8C61\uFF1B10000000000-\u5B57\u5178\u5BF9\u8C61\uFF1B300000000000-\u590D\u6742\u5173\u8054\u5BF9\u8C61\uFF1B1000000000-\u672C\u5BF9\u8C61\uFF1B8-\u521B\u5EFA\u4EBA(int8)\uFF1B9-\u4FEE\u6539\u4EBA(int8)\uFF1B11-\u521B\u5EFA\u65F6\u95F4(ts)\uFF1B12-\u4FEE\u6539\u65F6\u95F4(ts)\uFF1B31-\u62FC\u97F3\uFF1B100-\u662F\u5426\u9ED8\u8BA4\uFF1B13-\u624B\u673A\u53F7\uFF1B15-\u56FA\u5B9A\u7535\u8BDD\uFF1B14-\u90AE\u7BB1\uFF1B27-\u90AE\u7F16\uFF1B20-\u6392\u5E8F(int4)"),publishstatus:R.union([R.string(),R.number()]).optional().nullable().describe("\u5C5E\u6027\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03\u3002\u884D\u751F\u5B9E\u4F53\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE"),relationobjectcode:R.string().optional().nullable().describe("\u5173\u8054\u7684\u5B9E\u4F53\u7F16\u7801\uFF0C\u6B64\u5C5E\u6027\u5173\u8054\u4E86\u5176\u4ED6\u5B9E\u4F53\uFF0C\u5219\u8BF4\u660E SQL \u67E5\u8BE2\u7684\u65F6\u5019\u53EF\u4EE5\u7528\u6B64\u5B57\u6BB5\u8FDE\u5176\u4ED6\u5B9E\u4F53\u5BF9\u5E94\u7684\u8868\u7684\u4E3B\u952E"),relationpropertycode:R.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u4E00\u822C\u4E3A\u7A7A\u5B57\u7B26\u4E32\u3002\u89C6\u56FE/\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u7F3A\u7701"),status:R.union([R.string(),R.number()]).optional().nullable().describe("\u5C5E\u6027\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),seq:R.coerce.number().optional().nullable().describe("\u5C5E\u6027\u5E8F\u53F7\u3002\u89C6\u56FE/\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u8FD4\u56DE"),columnnameError:R.boolean().optional().nullable().describe("\u89C6\u56FE\u5B9E\u4F53\u5C5E\u6027\u5B57\u6BB5\uFF0C\u6807\u8BB0\u5217\u540D\u662F\u5426\u9519\u8BEF\uFF0C\u4EC5\u89C6\u56FE\u8FD4\u56DE"),candelete:R.boolean().optional().nullable().describe("\u89C6\u56FE\u5B9E\u4F53\u5C5E\u6027\u5B57\u6BB5\uFF0C\u6807\u8BB0\u662F\u5426\u53EF\u5220\u9664\uFF0C\u4EC5\u89C6\u56FE\u8FD4\u56DE"),parentpropertycode:R.string().optional().nullable().describe("\u6570\u636E\u5B57\u5178\u5C5E\u6027\u5B57\u6BB5\uFF0C\u7236\u5C5E\u6027\u7F16\u7801\uFF0C\u4EC5\u6570\u636E\u5B57\u5178\u8FD4\u56DE"),defaultvalue:R.string().optional().nullable().describe("\u6570\u636E\u5B57\u5178\u5C5E\u6027\u5B57\u6BB5\uFF0C\u9ED8\u8BA4\u503C\uFF0C\u4EC5\u6570\u636E\u5B57\u5178\u8FD4\u56DE")}).catchall(R.unknown())),ft={confsource:R.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E\u3002\u6570\u636E\u5B57\u5178\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),datapattern:R.union([R.string(),R.number()]).optional().nullable().describe("\u6570\u636E\u6A21\u5F0F\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u3002\u6CE8\u610F\uFF1A\u8BE6\u60C5\u63A5\u53E3(getBizObject)\u591A\u6570\u5B9E\u4F53\u7C7B\u578B\u4E0D\u8FD4\u56DE\u8BE5\u5B57\u6BB5\uFF08\u5B83\u662F\u5217\u8868\u63A5\u53E3\u5B57\u6BB5\uFF09\uFF0C\u6545\u58F0\u660E\u4E3A\u53EF\u9009\uFF1B\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),diclayer:R.union([R.string(),R.number()]).optional().nullable().describe("\u5B57\u5178\u5C42\u7EA7\uFF0C\u539F\u751F/\u5173\u8054\u5B9E\u4F53/\u6570\u636E\u5B57\u5178\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),directorytypecode:R.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:R.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:R.string().optional().nullable().describe("\u4FDD\u5B58\u65F6\u7F16\u5199\u7684\u63D0\u4EA4\u4FE1\u606F\uFF0C\u4F5C\u7528\u7C7B\u4F3C git \u63D0\u4EA4\u4FE1\u606F\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),objectcatgory:R.union([R.string(),R.number()]).optional().nullable().describe("\u5BF9\u8C61\u7C7B\u522B\uFF0C\u8868\u793A\u662F\u5426\u4E3A\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF0C1-\u662F\uFF1B2-\u5426\u3002\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE"),objectcode:R.string().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:R.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:R.string().optional().nullable().describe("\u5B9E\u4F53\u6807\u8BB0\uFF0C\u4E00\u822C\u548C\u6570\u636E\u5E93\u8868\u540D\u540C\u540D\uFF0C\u5B57\u5178\u7C7B\u578B\u7684\u5B9E\u4F53\u6709\u81EA\u5DF1\u7684\u6807\u8BB0"),objectname:R.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:R.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801\u3002\u4EC5\u6570\u636E\u5B57\u5178\u5B9E\u4F53\u8FD4\u56DE"),objecttypecode:R.union([R.string(),R.number()]).optional().nullable().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53\u3002\u6570\u636E\u5B57\u5178\u4EE5\u6570\u5B57\u8FD4\u56DE"),parentobjectcode:R.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode\u3002\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),properties:gt.optional().nullable().describe("\u5B9E\u4F53\u7684\u5C5E\u6027\u6570\u7EC4\uFF1A\u6BCF\u4E2A\u5C5E\u6027\u5B9A\u4E49\u5B9E\u4F53\u7684\u4E00\u4E2A\u5B57\u6BB5\uFF08\u5217\u540D\u3001\u7C7B\u578B\u3001\u5173\u8054\u5B9E\u4F53\u3001\u7D22\u5F15\u65B9\u5F0F\u7B49\uFF09"),publishstatus:R.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),script:R.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5/\u5B9A\u4E49\u811A\u672C\uFF0C\u539F\u751F/\u89C6\u56FE/\u5173\u8054\u5B9E\u4F53\u8FD4\u56DE\uFF0C\u4E00\u822C\u4E3A\u7A7A\u5B57\u7B26\u4E32"),status:R.union([R.string(),R.number()]).optional().nullable().describe("\u5B9E\u4F53\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u6570\u636E\u5B57\u5178/\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF1B\u8BE6\u60C5\u63A5\u53E3\u5BF9\u8BE5\u5B57\u6BB5\u8FD4\u56DE\u4E0D\u7A33\u5B9A\uFF08\u90E8\u5206\u8C03\u7528\u4E0D\u8FD4\u56DE\uFF09\uFF0C\u6545\u58F0\u660E\u4E3A\u53EF\u9009"),storagelevel:R.coerce.number().optional().nullable().describe("\u5B58\u50A8\u7B49\u7EA7\u3002\u89C6\u56FE/\u6570\u636E\u5B57\u5178/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),seq:R.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u5E8F\u53F7\u3002\u4EC5\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u8FD4\u56DE"),tablename:R.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D")},pn=R.looseObject(ft);var mn=[{name:"page_entity_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u5B9E\u4F53",description:`\u5206\u9875\u67E5\u8BE2\u5B9E\u4F53\u5217\u8868\u3002\u652F\u6301\u6309\u540D\u79F0/\u7C7B\u578B\u7B5B\u9009\u3002\n\n${A}\n${Oe}`,inputSchema:{objectname:N.string().optional().describe("\u5B9E\u4F53\u4E2D\u6587\u540D\u3001\u5B9E\u4F53\u8868\u540D\u3001\u5B9E\u4F53 objectcode \u6A21\u7CCA\u5339\u914D"),page:N.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:N.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updatetimestart:N.string().optional().describe("\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),updatetimeend:N.string().optional().describe("\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),datapattern:N.string().optional().describe("\u5B9E\u4F53\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53"),objecttypecode:N.string().optional().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53")},outputSchema:{data:N.array(N.object({confsource:N.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),createaccountcode:N.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:N.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:N.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),datapattern:N.coerce.number().optional().nullable().describe("\u6570\u636E\u6A21\u5F0F\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u3002\u539F\u751F\u5B9E\u4F53\uFF1A\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF1B\u884D\u751F\u3001\u89C6\u56FE\uFF1A\u4E0D\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF1B\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\uFF1A\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF0C\u4F46\u662F\u662F\u5E73\u53F0\u6839\u636E\u7528\u6237\u7684\u914D\u7F6E\u81EA\u52A8\u521B\u5EFA\u7684\uFF0C\u8868\u540D\u65E0\u542B\u4E49"),directorytypecode:N.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:N.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),hasoffline:N.string().optional().nullable().describe("\u5B9E\u4F53\u662F\u5426\u6709\u79BB\u7EBF\u8BBE\u7F6E\uFF0C1-\u6709\uFF1B0-\u65E0"),marktype:N.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:N.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C objectcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectcatgory:N.coerce.number().optional().nullable().describe("\u5BF9\u8C61\u7C7B\u522B\uFF0C\u8868\u793A\u662F\u5426\u4E3A\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF0C1-\u662F\uFF1B2-\u5426"),objectcode:N.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:N.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:N.string().optional().nullable().describe("\u5B9E\u4F53\u6807\u8BB0\uFF0C\u4E00\u822C\u548C\u6570\u636E\u5E93\u8868\u540D\u540C\u540D\uFF0C\u5B57\u5178\u7C7B\u578B\u7684\u5B9E\u4F53\u6709\u81EA\u5DF1\u7684\u6807\u8BB0"),objectname:N.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:N.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801"),objecttypecode:N.string().optional().nullable().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53"),parentobjectcode:N.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode"),publishstatus:N.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),status:N.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:N.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D"),updateaccountcode:N.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:N.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),updatetime:N.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(N.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:N.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:N.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:N.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:N.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{objectname:e="",page:r=1,rows:i=20,updatetimestart:t="",updatetimeend:o="",datapattern:s="",objecttypecode:a=""}=n;try{let c=await un({centercode:"",directorytypecode:"rootNode",starttime:"",objectname:e,page:Number(r)||1,rows:Number(i)||20,updatetimestart:t,updatetimeend:o,datapattern:s,objecttypecode:a});return I(c.resp_data)}catch(c){return $(c)}}},{name:"get_entity",config:{title:"\u67E5\u8BE2\u5B9E\u4F53\u8BE6\u60C5",description:`\u6309 objectcode \u67E5\u8BE2\u5B9E\u4F53\u8BE6\u60C5\uFF1A\u57FA\u672C\u4FE1\u606F\u4E0E\u5C5E\u6027\u6570\u7EC4 properties\u3002\u6CE8\u610F\uFF1A\u8BE6\u60C5\u63A5\u53E3 status \u8FD4\u56DE\u4E0D\u7A33\u5B9A\uFF08\u90E8\u5206\u8C03\u7528\u4E0D\u8FD4\u56DE\uFF09\uFF0Cdatapattern \u662F\u5217\u8868\u63A5\u53E3\u5B57\u6BB5\u3001\u8BE6\u60C5\u591A\u6570\u4E0D\u8FD4\u56DE\u3002\npropertytypecode \u5B8C\u6574\u679A\u4E3E\u89C1 get_model_logic\u3002\n\n${A}\n${Oe}`,inputSchema:{objectcode:N.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u5B9E\u4F53\u7684\u7F16\u7801")},outputSchema:pn,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{objectcode:e}=n;try{let r=await dn({objectcode:e});return I(r.resp_data)}catch(r){return $(r)}}}];import{z as l}from"zod";function gn(n){return C({url:"/bizserv/bizpage/pageList",method:"post",data:n,type:"tenant"})}function G(n){return C({url:"/bizserv/bizpage/getPage",method:"post",data:n,type:"tenant"})}function Ie(n){let{conf:e,message:r,ui:i,edittime:t=V(new Date,"YYYY-MM-DD HH:mm:ss"),overwrite:o=!1,clearuserconfig:s=!0}=n;return C({url:"/biserv/bizpage/saveNewPage",method:"post",data:{clearuserconfig:s,conf:e,edittime:t,message:r,overwrite:o,ui:i??e},type:"tenant"})}function De(n){return n?Array.isArray(n)?n.filter(Boolean):[n]:[]}function Ee(n,e,r){let i=[{scope:"handlers",list:n.presenter?.handlers??[]},{scope:"initial",list:De(n.presenter?.initial)}],t=[];for(let o of i)if(!(r&&o.scope!==r))for(let s of o.list)s&&s.code===e&&t.push({handler:s,scope:o.scope});return t}var fn=150;function hn(n){n.committype==="saverecord"&&(n.msgbody=V(new Date,"YYYY-MM-DD HH:mm"))}function be(n,e){if(!n)return null;if(n.code===e)return n;if(Array.isArray(n.content))for(let r of n.content){let i=be(r,e);if(i)return i}return null}function oe(n){let e=[],r=i=>{i&&(e.push(i),Array.isArray(i.content)&&i.content.forEach(r))};return r(n.view?.body??null),Array.isArray(n.controls)&&n.controls.forEach(i=>{i&&e.push(i)}),e}function $e(n,e){if(Array.isArray(n)){for(let r of n)if(r&&typeof r=="object"){if(r.code===e)return r;let i=$e(r,e);if(i)return i}return null}if(n&&typeof n=="object")for(let r of Object.values(n)){let i=$e(r,e);if(i)return i}return null}function _n(n,e){if(!n?.content)return null;let r=n.content.findIndex(i=>i?.code===e);if(r>=0){let[i]=n.content.splice(r,1);return i??null}for(let i of n.content){let t=_n(i,e);if(t)return t}return null}function bn(n,e){let r=_n(n.view?.body??null,e);if(r)return r;if(Array.isArray(n.controls)){let i=n.controls.findIndex(t=>t?.code===e);if(i>=0){let[t]=n.controls.splice(i,1);return t??null}}return null}function yn(n){let e=new Set,r=i=>{if(i){for(let t of i.eventlist??[])t?.handler&&e.add(t.handler);Array.isArray(i.content)&&i.content.forEach(r)}};r(n.view?.body??null);for(let i of n.presenter?.handlers??[]){for(let t of i?.actions??[])t?.handler&&e.add(t.handler),t?.logiccode&&e.add(t.logiccode);for(let t of i?.eventlist??[])t?.handler&&e.add(t.handler)}for(let i of De(n.presenter?.initial)){for(let t of i?.actions??[])t?.handler&&e.add(t.handler),t?.logiccode&&e.add(t.logiccode);for(let t of i?.eventlist??[])t?.handler&&e.add(t.handler)}for(let i of n.presenter?.interface??[])for(let t of i?.actions??[])t?.handler&&e.add(t.handler);return e}function bt(n){return{oldString:n.oldString,newString:n.newString,replaceAll:n.replaceAll,occurrence:n.occurrence,matchMode:n.matchMode,label:n.label}}function wn(n){let e={code:n.code??null,type:n.type??null,title:n.title??null};return Array.isArray(n.content)&&n.content.length>0&&(e.children=n.content.map(wn)),e}async function Rn(n){let r=(await G({code:n})).resp_data;if(!r)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${n} \u5BF9\u5E94\u7684\u8868\u5355`);let i=(()=>{let s=(a,c)=>(a??[]).map(u=>({code:u?.code??null,name:u?.name??null,desc:u?.desc??null,key:u?.key??null,condition:u?.condition??null,actionCount:u?.actions?.length??0,actionTypes:(u?.actions??[]).map(m=>m?.type??"").filter(m=>!!m),scope:c}));return[...s(r.presenter?.handlers??[],"handlers"),...s(De(r.presenter?.initial),"initial")]})(),t=(r.presenter?.interface??[]).map(s=>({code:s?.code??null,key:s?.key??null,desc:s?.desc??null,actionCount:s?.actions?.length??0})),o=(r.businessmodel??[]).map(s=>({modelcode:s?.modelcode??null,modellogiccode:s?.modellogiccode??null,modellogicname:s?.modellogicname??null,actiontype:s?.actiontype??null}));return{code:n,title:r.pageinfo?.title??null,type:r.pageinfo?.type??null,status:r.pageinfo?.status??null,clientcategorycode:r.pageinfo?.clientcategorycode??null,marktype:r.pageinfo?.marktype??null,versionnum:r.pageinfo?.versionnum??null,viewTree:r.view?.body?[wn(r.view.body)]:[],handlers:i,interfaces:t,businessModels:o,message:r.message??null}}async function xn(n,e){let i=(await G({code:n})).resp_data;if(!i)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${n} \u5BF9\u5E94\u7684\u8868\u5355`);let t,o,s,a=i.message??null;if(e.nodeCode&&(t=be(i.view?.body??null,e.nodeCode)??i.controls?.find(u=>u?.code===e.nodeCode)??null,t&&e.itemCode)){let u=$e(t,e.itemCode);u?t=u:(t=null,a=`nodeCode=${e.nodeCode} \u4E0B\u672A\u627E\u5230 code=${e.itemCode} \u7684\u5143\u7D20`)}if(e.handlerCode){let u=Ee(i,e.handlerCode,e.handlerScope);u.length===1?o=u[0].handler:u.length>1&&(o=null,a=`handlerCode=${e.handlerCode} \u5728 handlers \u4E0E initial \u4E2D\u540C\u65F6\u51FA\u73B0\uFF0C\u8BF7\u7528 handlerScope \u6307\u5B9A\u552F\u4E00\u5BB9\u5668`)}e.section&&(s=i[e.section]??null);let c=o?.actions?o.actions.map((u,m)=>({index:m,code:u?.code??null,type:u?.type??null,scriptLen:(u?.script??"")?.length??0,conditionLen:(u?.condition??"")?.length??0,expressionLen:(u.expression??"")?.length??0})):void 0;return{code:n,node:t??void 0,handler:o??void 0,section:s??void 0,actionIndex:c,message:a}}async function yt(n,e,r){let i=(o={})=>({index:r,op:e.op,status:"OK",errorCode:"OK",message:null,hunk:null,suggestions:null,...o}),t=(o,s,a={})=>({index:r,op:e.op,status:"FAILED",errorCode:o,message:s,hunk:null,suggestions:null,...a});switch(e.op){case"set_pageinfo":return n.pageinfo={...n.pageinfo??{},...e.patch},i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5B57\u6BB5\u5230 pageinfo`});case"set_attrs":{let o=oe(n).filter(c=>c.code===e.code);if(o.length===0)return t("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return t("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`);Object.assign(o[0],e.patch);let s=Object.entries(e.patch).filter(([,c])=>Array.isArray(c)),a=s.length>0?`\uFF08\u6CE8\u610F\uFF1Apatch \u542B\u6570\u7EC4\u5C5E\u6027 ${s.map(([c])=>`"${c}"`).join("\u3001")}\uFF0C\u5C06\u6574\u4F53\u8986\u76D6\u8BE5\u6570\u7EC4\uFF1B\u5982\u4EC5\u6539\u5176\u4E2D\u67D0\u5143\u7D20\u8BF7\u7528 patch_node_array_item\uFF09`:"";return i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230\u8282\u70B9 ${e.code}${a}`})}case"patch_node_array_item":{let o=oe(n).find(u=>u.code===e.nodeCode);if(!o)return t("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 nodeCode=${e.nodeCode} \u7684\u8282\u70B9`);let s=o[e.arrayProp];if(!Array.isArray(s))return t("INVALID_PARAMS",`\u8282\u70B9 ${e.nodeCode} \u7684 ${e.arrayProp} \u4E0D\u662F\u6570\u7EC4\uFF08\u5B9E\u9645\u4E3A ${s===null?"null":typeof s}\uFF09\uFF0C\u65E0\u6CD5\u5B9A\u4F4D\u5143\u7D20`);let a=e.itemKey??"code",c=s.filter(u=>u&&typeof u=="object"&&u[a]===e.itemKeyValue);return c.length===0?t("NODE_NOT_FOUND",`\u672A\u5728 ${e.nodeCode}.${e.arrayProp} \u4E2D\u627E\u5230 ${a}=${String(e.itemKeyValue)} \u7684\u5143\u7D20`):c.length>1?t("DUP_CODE",`\u5143\u7D20 ${a}=${String(e.itemKeyValue)} \u5728 ${e.nodeCode}.${e.arrayProp} \u4E2D\u51FA\u73B0 ${c.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`):(Object.assign(c[0],e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230 ${e.nodeCode}.${e.arrayProp}[${a}=${String(e.itemKeyValue)}]`}))}case"insert_node":{let o=be(n.view?.body??null,e.parentCode);if(!o)return t("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 parentCode=${e.parentCode} \u7684\u7236\u8282\u70B9`);o.content||(o.content=[]);let s=e.position??o.content.length;return o.content.splice(s,0,e.node),i({message:`\u5DF2\u5728 ${e.parentCode} \u7684 position=${s} \u63D2\u5165\u8282\u70B9`})}case"remove_node":{let o=oe(n).filter(a=>a.code===e.code);return o.length===0?t("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`):o.length>1?t("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):e.checkRefs!==!1&&yn(n).has(e.code)?t("REF_VIOLATION",`\u4ECD\u6709\u4E8B\u4EF6/handler \u5F15\u7528 ${e.code}\uFF0C\u79FB\u9664\u524D\u8BF7\u5148\u89E3\u9664\u5F15\u7528\uFF08\u6216 checkRefs=false\uFF09`):bn(n,e.code)?i({message:`\u5DF2\u79FB\u9664\u8282\u70B9 ${e.code}`}):t("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`)}case"move_node":{let o=oe(n).filter(u=>u.code===e.code);if(o.length===0)return t("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return t("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let s=bn(n,e.code);if(!s)return t("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`);let a=be(n.view?.body??null,e.newParentCode);if(!a)return t("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 newParentCode=${e.newParentCode} \u7684\u7236\u8282\u70B9`);a.content||(a.content=[]);let c=e.position??a.content.length;return a.content.splice(c,0,s),i({message:`\u5DF2\u5C06 ${e.code} \u79FB\u52A8\u5230 ${e.newParentCode} \u7684 position=${c}`})}case"set_section":return n[e.section]=e.value,i({message:`\u5DF2\u6574\u6BB5\u66FF\u6362 ${e.section}`});case"replace_script":{let o=Ee(n,e.handlerCode,e.scope);if(o.length===0)return t("NODE_NOT_FOUND",`\u672A\u5728 presenter\uFF08handlers \u4E0E initial\uFF09\u4E2D\u627E\u5230 handlerCode=${e.handlerCode}`);if(o.length>1)return t("DUP_CODE",`handlerCode=${e.handlerCode} \u5728 handlers \u4E0E initial \u4E2D\u540C\u65F6\u51FA\u73B0\uFF0C\u8BF7\u7528 scope \u6307\u5B9A\u552F\u4E00\u5BB9\u5668`);let a=o[0].handler.actions??[],c;if(e.actionCode!=null){if(c=a.find(h=>h?.code===e.actionCode),!c)return t("NODE_NOT_FOUND",`handler ${e.handlerCode} \u4E2D\u672A\u627E\u5230 actionCode=${e.actionCode}`)}else{let h=e.actionIndex??0;if(h<0||h>=a.length)return t("NO_TARGET",`actionIndex=${h} \u8D8A\u754C\uFF0Chandler ${e.handlerCode} \u5171\u6709 ${a.length} \u4E2A action`);c=a[h]}let u=e.field??"script";if(e.replacement!=null)return c[u]=e.replacement,i({message:`\u5DF2\u6574\u6BB5\u8986\u76D6 ${e.handlerCode}.actions[${e.actionIndex??0}].${u}`});if(!e.ops||e.ops.length===0)return t("INVALID_PARAMS","replace_script \u9700\u63D0\u4F9B replacement \u6216 ops\uFF08oldString\u2192newString \u6570\u7EC4\uFF09");let m=c[u]??"",f=ge([m],e.ops.map(bt),{contextLines:3}),y=f.results[0];return f.ok?(c[u]=f.scripts[0],i({message:`\u5DF2\u5C40\u90E8\u66FF\u6362 ${u}`,hunk:y?.hunk??null})):t("OPS_FAILED",y?.message??"\u811A\u672C\u66FF\u6362\u5931\u8D25",{hunk:y?.hunk??null,suggestions:y?.suggestions??null})}case"add_businessmodel":{let o=n.businessmodel??(n.businessmodel=[]),s=o.find(c=>c?.modellogiccode===e.modellogiccode);if(s&&!e.overwrite)return i({message:`businessmodel \u5DF2\u5B58\u5728 ${e.modellogiccode}\uFF0C\u8DF3\u8FC7\uFF08overwrite=false\uFF09`});let a;try{a=(await H({modellogiccode:e.modellogiccode})).resp_data}catch(c){return t("FETCH_FAILED",`\u83B7\u53D6\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5931\u8D25\uFF1A${F(c)}`)}return a?s&&e.overwrite?(Object.assign(s,a),i({message:`\u5DF2\u8986\u76D6 businessmodel \u4E2D\u7684 ${e.modellogiccode}`})):(o.push(a),i({message:`\u5DF2\u8FFD\u52A0\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5230 businessmodel`})):t("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${e.modellogiccode} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`)}case"remove_businessmodel":{let o=n.businessmodel??[],s=o.findIndex(a=>a?.modellogiccode===e.modellogiccode);return s<0?i({message:`businessmodel \u4E2D\u4E0D\u5B58\u5728 ${e.modellogiccode}\uFF0C\u65E0\u9700\u79FB\u9664`}):e.checkRefs!==!1&&yn(n).has(e.modellogiccode)?t("REF_VIOLATION",`\u4ECD\u6709\u4E8B\u4EF6/handler \u5F15\u7528 ${e.modellogiccode}\uFF0C\u79FB\u9664\u524D\u8BF7\u5148\u89E3\u9664\u5F15\u7528\uFF08\u6216 checkRefs=false\uFF09`):(o.splice(s,1),i({message:`\u5DF2\u4ECE businessmodel \u79FB\u9664 ${e.modellogiccode}`}))}}}function ht(n){let e=[];for(let t of n)t.hunk?e.push(`--- ops[${t.index}] ${t.op}\n${t.hunk}`):e.push(`ops[${t.index}] ${t.op} (${t.status}): ${t.message??""}`);let r=e.join(`\n`),i=r.split(`\n`);return i.length<=fn?r:`${i.slice(0,fn).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}function _t(n,e){let r=[],i=oe(n),t=new Set(i.map(o=>o.code).filter(o=>!!o));for(let o=0;o<e.length;o++){let s=e[o];switch(s.op){case"set_pageinfo":for(let[a,c]of Object.entries(s.patch))JSON.stringify(n.pageinfo?.[a])!==JSON.stringify(c)&&r.push(`ops[${o}] set_pageinfo.${a} \u672A\u751F\u6548`);break;case"set_attrs":{let a=i.find(c=>c.code===s.code);if(!a){r.push(`ops[${o}] set_attrs \u8282\u70B9 ${s.code} \u6D88\u5931`);break}for(let[c,u]of Object.entries(s.patch))JSON.stringify(a[c])!==JSON.stringify(u)&&r.push(`ops[${o}] set_attrs.${c} \u672A\u751F\u6548`);break}case"patch_node_array_item":{let a=i.find(f=>f.code===s.nodeCode);if(!a){r.push(`ops[${o}] patch_node_array_item \u8282\u70B9 ${s.nodeCode} \u6D88\u5931`);break}let c=a[s.arrayProp];if(!Array.isArray(c)){r.push(`ops[${o}] patch_node_array_item ${s.arrayProp} \u975E\u6570\u7EC4`);break}let u=s.itemKey??"code",m=c.find(f=>f&&typeof f=="object"&&f[u]===s.itemKeyValue);if(!m){r.push(`ops[${o}] patch_node_array_item \u5143\u7D20 ${u}=${String(s.itemKeyValue)} \u672A\u627E\u5230`);break}for(let[f,y]of Object.entries(s.patch))JSON.stringify(m[f])!==JSON.stringify(y)&&r.push(`ops[${o}] patch_node_array_item.${f} \u672A\u751F\u6548`);break}case"insert_node":t.has(s.node.code)||r.push(`ops[${o}] insert_node \u8282\u70B9\u672A\u51FA\u73B0`);break;case"remove_node":t.has(s.code)&&r.push(`ops[${o}] remove_node \u8282\u70B9\u4ECD\u5B58\u5728`);break;case"move_node":t.has(s.code)||r.push(`ops[${o}] move_node \u8282\u70B9\u6D88\u5931`);break;case"set_section":break;case"replace_script":{let a=Ee(n,s.handlerCode,s.scope);if(a.length!==1){r.push(`ops[${o}] replace_script handler \u672A\u627E\u5230\u6216\u5B58\u5728\u540C\u540D\u6B67\u4E49`);break}let u=a[0].handler.actions??[],m=s.actionCode!=null?u.find(h=>h?.code===s.actionCode):u[s.actionIndex??0];if(!m){r.push(`ops[${o}] replace_script action \u672A\u627E\u5230`);break}let f=s.field??"script",y=m[f]??"";if(s.replacement!=null)M(y)!==M(s.replacement)&&r.push(`ops[${o}] replace_script \u6574\u6BB5\u8986\u76D6\u672A\u751F\u6548`);else if(s.ops)for(let h of s.ops){let v=h.matchMode??"normalized",w=M(y,v),b=M(h.newString,v),k=M(h.oldString,v);h.newString.length>0&&!w.includes(b)&&r.push(`ops[${o}] replace_script \u65B0\u5185\u5BB9\u672A\u51FA\u73B0`),!b.includes(k)&&w.includes(k)&&r.push(`ops[${o}] replace_script \u65E7\u5185\u5BB9\u4ECD\u5B58\u5728`)}break}case"add_businessmodel":{(n.businessmodel??[]).some(c=>c?.modellogiccode===s.modellogiccode)||r.push(`ops[${o}] add_businessmodel \u672A\u8FFD\u52A0`);break}case"remove_businessmodel":{(n.businessmodel??[]).some(c=>c?.modellogiccode===s.modellogiccode)&&r.push(`ops[${o}] remove_businessmodel \u672A\u79FB\u9664`);break}}}return{verified:r.length===0,problems:r}}async function kn(n,e,r,i={}){let t=i.dryRun??!1,o=i.verify??!0,s=(b,k)=>({ok:!1,applied:!1,verified:null,errorCode:b,message:k,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return s("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let a;try{a=(await G({code:n})).resp_data}catch(b){return s("FETCH_FAILED",F(b))}if(!a)return s("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 code=${n} \u5BF9\u5E94\u7684\u8868\u5355`);let c=structuredClone(a),u=[],m=!1;for(let b=0;b<e.length;b++)try{let k=await yt(c,e[b],b);u.push(k),k.status==="FAILED"&&(m=!0)}catch(k){u.push({index:b,op:e[b].op,status:"FAILED",errorCode:"OP_ERROR",message:F(k),hunk:null,suggestions:null}),m=!0}let f=ht(u);if(m){let b=u.filter(k=>k.status==="FAILED").map(k=>k.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${u.filter(k=>k.status==="FAILED").length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${b}]\uFF09\u3002\u672C\u6279\u6B21\u672A\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF0C\u8BF7\u6839\u636E ops[].message / suggestions \u4FEE\u6B63\u540E\u91CD\u8BD5`,diff:f,ops:u}}if(t)return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u6F14\u6210\u529F\uFF08dryRun=true\uFF09\uFF0C${e.length} \u4E2A op \u5168\u90E8\u547D\u4E2D\uFF0C\u672A\u843D\u5E93`,diff:f,ops:u};hn(r);let y=JSON.stringify(r),h;try{let b=await Ie({conf:c,message:y});h=typeof b?.resp_data=="string"?b.resp_data:JSON.stringify(b?.resp_data??null)}catch(b){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:F(b),diff:f,ops:u}}let v=null,w=h;if(o)try{let k=(await G({code:n})).resp_data;if(!k)v=!1,w=`${h} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let E=_t(k,e);v=E.verified,E.verified||(w=`${h} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${E.problems.join("\uFF1B")}`)}}catch(b){v=!1,w=`${h} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(b)}`}return{ok:v===null?!0:v,applied:!0,verified:v,errorCode:v===!1?"VERIFY_FAILED":"OK",message:w,diff:f,ops:u}}async function On(n,e){hn(e);let r=JSON.stringify(e);try{let i=await Ie({conf:n,message:r}),t=typeof i?.resp_data=="string"?i.resp_data:JSON.stringify(i?.resp_data??null);return{ok:!0,code:n.pageinfo?.code??void 0,message:t}}catch(i){return{ok:!1,code:n.pageinfo?.code??void 0,message:F(i)}}}var wt=l.object({createtime:l.union([l.string(),l.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:l.union([l.string(),l.null()]).optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),createaccountname:l.union([l.string(),l.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u7F16\u7801"),clientcategorycode:l.union([l.string(),l.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),confsource:l.coerce.number().nullable().optional().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),directorytypecode:l.union([l.string(),l.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:l.union([l.string(),l.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),marktype:l.coerce.number().nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:l.union([l.string(),l.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C code \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),pagetemplatecode:l.union([l.string(),l.null()]).optional().describe("\u9875\u9762\u6A21\u677F\u7F16\u7801"),pagetypename:l.union([l.string(),l.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\u540D\u79F0"),pagedescr:l.union([l.string(),l.null()]).optional().describe("\u9875\u9762\u63CF\u8FF0"),ref:l.union([l.string(),l.null()]).optional().describe("\u5916\u90E8\u5F15\u7528\uFF0C\u4E00\u822C\u4F20\u7A7A\u5B57\u7B26\u4E32"),status:l.coerce.number().nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:l.union([l.string(),l.null()]).optional().describe("\u6807\u9898"),type:l.coerce.number().nullable().optional().describe("\u7C7B\u578B\uFF08\u6574\u6570\uFF09\u542B\u4E49\uFF1A5-\u5217\u8868\u67E5\u8BE2\uFF1B1-\u666E\u901A\u9875\u9762\uFF1B99-\u4E8C\u5F00\u9875\u9762\uFF1B10-switchpage\uFF1B11-\u6811\u5BFC\u822A\u5217\u8868\uFF1B100-\u539F\u751F\u9875\u9762\uFF1B101-\u7A7A\u767D\u9875\u9762\uFF1B7-\u62A5\u8868\u9875\u9762\uFF1B12-\u6392\u5E8F\u9875\u9762\uFF1B300-\u6B65\u9AA4\u7BA1\u7406\u8868\u5355\uFF1B1000-\u5168\u5C40\u51FD\u6570"),updatetime:l.union([l.string(),l.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountcode:l.union([l.string(),l.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:l.union([l.string(),l.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),versionnum:l.union([l.string(),l.null()]).optional().describe("\u7248\u672C\u53F7")}).catchall(l.unknown()),Ae={renderinfo:l.any().optional().describe("IDE \u6E32\u67D3\u6807\u8BB0"),pageinfo:l.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 1\uFF1A\u9875\u9762\u57FA\u7840\u4FE1\u606F"),businessmodel:l.any().optional().describe("\u9875\u9762\u5F15\u7528\u5230\u7684\u540E\u7AEF\u4E1A\u52A1\u6A21\u578B\uFF08\u63A5\u53E3\uFF09\uFF0C\u7ED3\u6784\u540C logicClient \u7684 LogicResult"),actionlogic:l.any().optional().describe("\u52A8\u4F5C\u903B\u8F91\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),presenter:l.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 2\uFF1A\u5B9A\u4E49\u7684\u5404\u79CD\u4E8B\u4EF6\uFF0C\u5728\u4E0D\u540C\u65F6\u673A\u89E6\u53D1\uFF0C\u5982\u6309\u94AE\u70B9\u51FB\u3001\u4E0B\u62C9\u6846\u9009\u62E9\u7684\u503C\u6539\u53D8\u3001\u9996\u6B21\u52A0\u8F7D\u7B49"),view:l.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 3\uFF1A\u5B9A\u4E49\u7684\u9875\u9762\u7ED3\u6784\uFF0C\u9875\u9762\u7531\u54EA\u4E9B\u63A7\u4EF6\u6784\u6210\uFF0C\u63A7\u4EF6\u7684\u5C5E\u6027\u3001\u6837\u5F0F\uFF0C\u7ED1\u5B9A\u54EA\u4E9B\u4E8B\u4EF6\u7B49"),controls:l.any().optional().describe("\u63A7\u4EF6\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),pageswitch:l.any().optional().describe("\u4EC5 switchpage \u7C7B\u578B\u7684\u8868\u5355\u6709\u6B64\u5B57\u6BB5\uFF0C\u63CF\u8FF0 switchpage \u5305\u542B\u54EA\u4E9B\u9875\u9762"),message:l.string().nullable().optional().describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6BCF\u6B21\u4FDD\u5B58\u65F6\u586B\u5199\u7684\uFF0C\u7C7B\u4F3C git \u7684\u63D0\u4EA4\u4FE1\u606F")},vn=[{name:"page_form_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u8868\u5355/\u9875\u9762",description:`\u5206\u9875\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u5217\u8868\uFF08Form/Page\uFF09\u3002\n\n${A}\n${z}`,inputSchema:{status:l.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),keys:l.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355 code / title"),keywords:l.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355\u4E2D\u7684\u5173\u952E\u8BCD"),clientcategorycode:l.string().optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),page:l.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:l.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),type:l.string().optional().describe("\u7C7B\u578B\uFF08\u6574\u6570\uFF09\u542B\u4E49\uFF1A5-\u5217\u8868\u67E5\u8BE2\uFF1B1-\u666E\u901A\u9875\u9762\uFF1B99-\u4E8C\u5F00\u9875\u9762\uFF1B10-switchpage\uFF1B11-\u6811\u5BFC\u822A\u5217\u8868\uFF1B100-\u539F\u751F\u9875\u9762\uFF1B101-\u7A7A\u767D\u9875\u9762\uFF1B7-\u62A5\u8868\u9875\u9762\uFF1B12-\u6392\u5E8F\u9875\u9762\uFF1B300-\u6B65\u9AA4\u7BA1\u7406\u8868\u5355\uFF1B1000-\u5168\u5C40\u51FD\u6570"),updateopname:l.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D"),updatetimestart:l.string().optional().describe("\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\uFF0C\u4E0E\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss"),updatetimeend:l.string().optional().describe("\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\uFF0C\u4E0E\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss")},outputSchema:{data:l.array(wt).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:l.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:l.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:l.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:l.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{status:e="",keys:r="",keywords:i="",clientcategorycode:t="",page:o=1,rows:s=20,type:a="",updateopname:c="",updatetimestart:u="",updatetimeend:m=""}=n;try{let f=await gn({centercode:"",directorytypecode:"rootNode",starttime:"",status:e,keys:r,keywords:i,clientcategorycode:t,page:Number(o)||1,rows:Number(s)||20,type:a,updateopname:c,updatetimestart:u,updatetimeend:m});return I(f.resp_data)}catch(f){return $(f)}}},{name:"get_form",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u8BE6\u60C5",description:`\u6309 code \u83B7\u53D6\u8868\u5355\u5B8C\u6574\u8BE6\u60C5\uFF08pageinfo/businessmodel/presenter/view/controls/pageswitch/message\uFF09\uFF0C\u7ED3\u6784\u5D4C\u5957\u8F83\u6DF1\u3002\u5EFA\u8BAE\u5148 get_form_outline \u770B\u9AA8\u67B6\u3001get_form_fragment \u53D6\u5C40\u90E8\uFF0C\u518D\u7528 patch_form \u6539\uFF0C\u907F\u514D\u62C9\u53D6\u5E9E\u5927\u7684\u5B8C\u6574 JSON\u3002\n\n${A}\n${z}`,inputSchema:{code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:l.looseObject(Ae),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{code:e}=n;try{let r=await G({code:e});return I(r.resp_data)}catch(r){return $(r)}}},{name:"get_form_outline",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u9AA8\u67B6",description:`\u83B7\u53D6\u8868\u5355\u8F7B\u91CF\u9AA8\u67B6\uFF08\u7EA6 2\u20134KB\uFF09\uFF1Apageinfo \u5173\u952E\u5B57\u6BB5\u3001view \u6811\u9AA8\u67B6\u3001presenter \u7684 handlers \u4E0E initial \u5904\u7406\u5668\u6E05\u5355\uFF08\u6BCF\u9879\u5E26 scope \u6807\u6CE8\uFF09\u3001businessmodel \u903B\u8F91\u540D\u3002\u7528\u4E8E\u62FF\u5168\u8C8C\u4E0E\u6240\u6709\u53EF\u6539\u5BF9\u8C61 code\uFF0C\u907F\u514D\u76F2\u6539\u3002\u6CE8\u610F\u9875\u9762\u521D\u59CB\u5316\u811A\u672C\u5728 presenter.initial\uFF08scope='initial'\uFF09\u3002\n\n${z}`,inputSchema:{code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:{code:l.string().describe("\u8868\u5355\u7F16\u7801"),title:l.union([l.string(),l.null()]).optional().describe("\u6807\u9898"),type:l.union([l.string(),l.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\uFF08\u540C page_form_list \u7684 type\uFF09"),status:l.union([l.string(),l.null()]).optional().describe("\u72B6\u6001"),clientcategorycode:l.union([l.string(),l.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B"),marktype:l.union([l.string(),l.null()]).optional().describe("\u521B\u5EFA\u6807\u8BB0"),versionnum:l.union([l.string(),l.null()]).optional().describe("\u7248\u672C\u53F7"),viewTree:l.array(l.lazy(()=>l.object({code:l.union([l.string(),l.null()]).optional(),type:l.union([l.string(),l.null()]).optional(),title:l.union([l.string(),l.null()]).optional(),children:l.array(l.lazy(()=>l.object({code:l.union([l.string(),l.null()]).optional(),type:l.union([l.string(),l.null()]).optional(),title:l.union([l.string(),l.null()]).optional(),children:l.array(l.unknown()).optional()}))).optional()}))).optional().describe("view \u6811\u9AA8\u67B6\uFF08\u9012\u5F52\uFF0C\u4EC5 code/type/title + children\uFF09"),handlers:l.array(l.object({code:l.union([l.string(),l.null()]).optional(),name:l.union([l.string(),l.null()]).optional(),desc:l.union([l.string(),l.null()]).optional(),key:l.union([l.string(),l.null()]).optional(),condition:l.union([l.string(),l.null()]).optional(),actionCount:l.coerce.number().optional(),actionTypes:l.array(l.string()).optional(),scope:l.union([l.string(),l.null()]).optional().describe("\u5904\u7406\u5668\u5BB9\u5668\uFF1Ahandlers=\u4E8B\u4EF6\u5904\u7406\u5668 / initial=\u9875\u9762\u521D\u59CB\u5316\uFF08replace_script \u5BFB\u5740\u4F9D\u636E\uFF09")})).optional().describe("presenter \u4E8B\u4EF6\u5904\u7406\u5668\u6E05\u5355\uFF08\u542B\u9875\u9762\u521D\u59CB\u5316 initial\uFF0C\u6BCF\u9879\u5E26 scope \u6807\u6CE8\u6240\u5728\u5BB9\u5668\uFF09"),interfaces:l.array(l.object({code:l.union([l.string(),l.null()]).optional(),key:l.union([l.string(),l.null()]).optional(),desc:l.union([l.string(),l.null()]).optional(),actionCount:l.coerce.number().optional()})).optional().describe("presenter \u5BF9\u5916\u63A5\u53E3\u6E05\u5355"),businessModels:l.array(l.object({modelcode:l.union([l.string(),l.null()]).optional(),modellogiccode:l.union([l.string(),l.null()]).optional(),modellogicname:l.union([l.string(),l.null()]).optional(),actiontype:l.union([l.string(),l.null()]).optional()})).optional().describe("businessmodel \u5F15\u7528\u7684\u4E1A\u52A1\u903B\u8F91\u540D\u6E05\u5355\uFF08\u4EC5\u540D\u5B57\uFF0C\u4E0D\u56DE\u5185\u5BB9\uFF09"),message:l.union([l.string(),l.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{code:e}=n;try{let r=await Rn(e);return I(r)}catch(r){return $(r)}}},{name:"get_form_fragment",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u5C40\u90E8\u5185\u5BB9",description:`\u6309 code \u53D6\u8868\u5355\u5C40\u90E8\u5185\u5BB9\uFF08\u51E0 KB\uFF09\uFF1AnodeCode \u8282\u70B9\u5B50\u6811\uFF08\u53EF\u914D itemCode \u94BB\u53D6\u67D0\u6570\u7EC4\u5143\u7D20\uFF09\u3001handlerCode \u5904\u7406\u5668\u5B9A\u4E49\u4E0E actionIndex \u6E05\u5355\uFF08handlers \u4E0E initial \u5747\u68C0\u7D22\uFF09\u3001section \u6574\u6BB5\u3002\u914D\u5408 patch_form \u4F7F\u7528\u3002\n\n${z}`,inputSchema:{code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),nodeCode:l.string().optional().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B50\u6811"),itemCode:l.string().optional().describe("\u5728 nodeCode \u547D\u4E2D\u7684\u8282\u70B9\u5185\u90E8\uFF0C\u6309 code \u6DF1\u5EA6\u4F18\u5148\u94BB\u53D6\u67D0\u4E2A\u6570\u7EC4\u5143\u7D20\uFF08\u5982\u8868\u683C\u7684\u67D0\u4E00\u5217\uFF09\u5E76\u8FD4\u56DE\u8BE5\u5143\u7D20\uFF0C\u800C\u975E\u6574\u68F5\u5B50\u6811\uFF1B\u672A\u627E\u5230\u65F6\u5728 message \u63D0\u793A"),handlerCode:l.string().optional().describe("\u76EE\u6807 presenter \u5904\u7406\u5668\u7F16\u7801\uFF08handlers \u4E0E initial \u5747\u68C0\u7D22\uFF09\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B9A\u4E49\u4E0E actionIndex \u6E05\u5355"),handlerScope:l.enum(["handlers","initial"]).optional().describe("\u9650\u5B9A\u5904\u7406\u5668\u5BB9\u5668\uFF1B\u9ED8\u8BA4\u540C\u65F6\u68C0\u7D22 handlers \u4E0E initial\uFF0C\u540C\u540D\u8DE8\u5BB9\u5668\u65F6\u987B\u6307\u5B9A\u4EE5\u6D88\u6B67"),section:l.enum(["pageinfo","view","presenter","controls","pageswitch","businessmodel"]).optional().describe("\u8FD4\u56DE\u6574\u6BB5\u5185\u5BB9\uFF08\u4EC5\u6838\u5BF9\u5F15\u7528\u7528\uFF09")},outputSchema:{code:l.string().describe("\u8868\u5355\u7F16\u7801"),node:l.any().optional().describe("nodeCode \u547D\u4E2D\u7684\u8282\u70B9\u5B50\u6811"),handler:l.any().optional().describe("handlerCode \u547D\u4E2D\u7684\u5904\u7406\u5668\u5B8C\u6574\u5B9A\u4E49"),section:l.any().optional().describe("section \u547D\u4E2D\u7684\u6574\u6BB5\u5185\u5BB9"),actionIndex:l.array(l.object({index:l.coerce.number().describe("action \u4E0B\u6807"),code:l.union([l.string(),l.null()]).optional().describe("action \u7F16\u7801"),type:l.union([l.string(),l.null()]).optional().describe("action \u7C7B\u578B"),scriptLen:l.coerce.number().describe("script \u5B57\u7B26\u957F\u5EA6"),conditionLen:l.coerce.number().describe("condition \u5B57\u7B26\u957F\u5EA6"),expressionLen:l.coerce.number().describe("expression \u5B57\u7B26\u957F\u5EA6")})).optional().describe("handler \u7684 action \u6E05\u5355\uFF0C\u4FBF\u4E8E\u7CBE\u786E\u6784\u9020 replace_script"),message:l.union([l.string(),l.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{code:e,nodeCode:r,itemCode:i,handlerCode:t,section:o}=n;try{let s=await xn(e,{nodeCode:r,itemCode:i,handlerCode:t,section:o});return I(s)}catch(s){return $(s)}}}];import{z as g}from"zod";var Rt=g.discriminatedUnion("op",[g.object({op:g.literal("set_pageinfo"),patch:g.record(g.string(),g.unknown()).describe('\u6D45\u5408\u5E76\u8FDB pageinfo \u7684\u5B57\u6BB5\uFF0C\u5982 { "title": "\u65B0\u6807\u9898", "status": "1" }')}),g.object({op:g.literal("set_attrs"),code:g.string().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF08\u6574\u4E2A\u8868\u5355\u552F\u4E00\uFF09"),patch:g.record(g.string(),g.unknown()).describe('\u8981\u6539\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u6309 code \u5B9A\u4F4D\u540E\u6D45\u5408\u5E76\uFF0C\u5982 { "hidden": "1" }\u3002\u6CE8\u610F\uFF1A\u82E5 patch \u542B\u6570\u7EC4\u5C5E\u6027\uFF08\u5982\u8868\u683C\u7684 cols\u3001\u63A7\u4EF6\u7684 options\u3001handler \u7684 actions\uFF09\uFF0C\u4F1A**\u6574\u4F53\u8986\u76D6**\u8BE5\u6570\u7EC4\uFF1B\u53EA\u60F3\u6539\u6570\u7EC4\u5185\u67D0\u5143\u7D20\uFF08\u5982\u53EA\u6539\u67D0\u4E00\u5217\u7684\u989C\u8272\uFF09\u8BF7\u7528 patch_node_array_item\uFF0C\u907F\u514D\u5927 payload \u4E0E\u8BEF\u6539\u4E22\u5217')}),g.object({op:g.literal("patch_node_array_item"),nodeCode:g.string().describe("\u7236\u8282\u70B9 code\uFF08\u5982\u8868\u683C\u8282\u70B9 infotable-table-...\uFF09"),arrayProp:g.string().describe('\u8981\u6539\u7684\u6570\u7EC4\u5C5E\u6027\u540D\uFF0C\u5982 "cols" / "options" / "actions" / "content"'),itemKey:g.string().optional().describe('\u6570\u7EC4\u5143\u7D20\u5B9A\u4F4D\u952E\u5B57\u6BB5\u540D\uFF0C\u9ED8\u8BA4 "code"'),itemKeyValue:g.unknown().describe("\u8981\u5B9A\u4F4D\u7684\u5143\u7D20\u952E\u503C\uFF0C\u5982 dms_status \u5217\u7684 code=890419529224687617"),patch:g.record(g.string(),g.unknown()).describe('\u4EC5\u6D45\u5408\u5E76\u5230\u8BE5\u5143\u7D20\u7684\u5C5E\u6027\uFF0C\u5982 { "options": [...] }\uFF1B\u5176\u4F59\u5143\u7D20\u4E0E\u5176\u5B83\u5C5E\u6027\u4E0D\u53D7\u5F71\u54CD')}),g.object({op:g.literal("insert_node"),parentCode:g.string().describe("\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:g.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E"),node:g.record(g.string(),g.unknown()).describe("\u65B0\u8282\u70B9\u5BF9\u8C61\uFF08\u542B type/code/title/content \u7B49\uFF09\uFF0C\u540C view \u6811\u8282\u70B9\u7ED3\u6784")}),g.object({op:g.literal("remove_node"),code:g.string().describe("\u8981\u5220\u9664\u7684\u8282\u70B9 code"),checkRefs:g.boolean().optional().describe("\u524D\u7F6E\u5F15\u7528\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true\uFF1B\u5B58\u5728\u4E8B\u4EF6/handler \u5F15\u7528\u65F6\u62D2\u7EDD\u5220\u9664\uFF0C\u7F6E false \u8DF3\u8FC7\u6821\u9A8C")}),g.object({op:g.literal("move_node"),code:g.string().describe("\u79FB\u52A8\u8282\u70B9 code"),newParentCode:g.string().describe("\u65B0\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:g.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),g.object({op:g.literal("set_section"),section:g.enum(["view","presenter","controls","pageswitch"]).describe("\u6574\u6BB5\u66FF\u6362\u76EE\u6807"),value:g.unknown().describe("\u6574\u6BB5\u65B0\u5185\u5BB9\uFF08\u900F\u4F20\u539F\u6837\u4FDD\u5B58\uFF09")}),g.object({op:g.literal("replace_script"),handlerCode:g.string().describe("presenter \u5904\u7406\u5668 code\uFF08handlers \u4E0E initial \u5747\u68C0\u7D22\uFF09"),actionIndex:g.number().int().nonnegative().optional().describe("\u7B2C\u51E0\u4E2A action\uFF0C\u9ED8\u8BA4 0\uFF1B\u4E0E actionCode \u4E8C\u9009\u4E00"),actionCode:g.string().optional().describe("\u4EE5 action code \u5B9A\u4F4D\uFF08\u4E0E actionIndex \u4E8C\u9009\u4E00\uFF09"),field:g.enum(["script","condition","expression"]).optional().describe("\u76EE\u6807\u5B57\u7B26\u4E32\u5B57\u6BB5\uFF0C\u9ED8\u8BA4 script"),scope:g.enum(["handlers","initial"]).optional().describe("\u9650\u5B9A\u5904\u7406\u5668\u5BB9\u5668\uFF1B\u9ED8\u8BA4\u540C\u65F6\u68C0\u7D22 handlers \u4E0E initial\uFF0C\u540C\u540D\u8DE8\u5BB9\u5668\u65F6\u987B\u6307\u5B9A\u4EE5\u6D88\u6B67"),replacement:g.string().optional().describe("\u6574\u6BB5\u66FF\u6362\u6A21\u5F0F\uFF1A\u76F4\u63A5\u7ED9\u76EE\u6807\u5B57\u6BB5\u7684\u65B0\u5168\u6587\uFF0C\u4F18\u5148\u7EA7\u9AD8\u4E8E ops\uFF08\u9002\u5408\u6574\u6BB5\u91CD\u5199 action\uFF09"),ops:g.array(g.object({oldString:g.string().describe("\u5F85\u66FF\u6362\u7684\u539F\u6587\u7247\u6BB5\uFF0C\u5FC5\u987B\u975E\u7A7A\u4E14\u552F\u4E00\u547D\u4E2D\uFF1B\u8BF7\u4ECE\u67E5\u8BE2\u5230\u7684\u811A\u672C\u539F\u6587\u539F\u6837\u590D\u5236\uFF08\u542B\u7F29\u8FDB\u4E0E\u6362\u884C\uFF09"),newString:g.string().describe("\u66FF\u6362\u540E\u7684\u65B0\u6587\u672C\uFF1B\u4F20\u7A7A\u5B57\u7B26\u4E32\u8868\u793A\u5220\u9664 oldString \u8FD9\u6BB5\u5185\u5BB9"),replaceAll:g.boolean().optional().describe("\u662F\u5426\u66FF\u6362\u5168\u90E8\u5339\u914D\uFF0C\u9ED8\u8BA4 false\uFF1B\u4EC5\u5728\u4F60\u786E\u8BA4\u8981\u6539\u6389\u6240\u6709\u540C\u540D\u7247\u6BB5\u65F6\u7F6E true"),occurrence:g.number().int().positive().optional().describe("\u53EA\u66FF\u6362\u7B2C N \u4E2A\u5339\u914D\uFF081-based\uFF09\uFF0C\u7528\u4E8E\u591A\u5904\u76F8\u540C\u7247\u6BB5\u53EA\u6539\u5176\u4E2D\u4E00\u5904\uFF1B\u4E0E replaceAll \u4E92\u65A5"),matchMode:g.enum(["exact","normalized"]).optional().describe("\u5339\u914D\u4E25\u683C\u5EA6\uFF0C\u9ED8\u8BA4 normalized\uFF08\u5BB9\u5FCD CRLF/LF \u4E0E\u884C\u5C3E\u7A7A\u767D\u5DEE\u5F02\uFF09\uFF1Bexact \u4E3A\u5B57\u8282\u4E25\u683C\u76F8\u7B49"),label:g.string().optional().describe("\u53EF\u9009\u6807\u8BC6\uFF0C\u4EC5\u7528\u4E8E\u5728\u8FD4\u56DE\u62A5\u544A\u4E2D\u8FA8\u8BA4\u8BE5 op\uFF0C\u4E0D\u5F71\u54CD\u6267\u884C")})).min(1).optional().describe("\u5C40\u90E8\u6A21\u5F0F\uFF1AoldString\u2192newString \u6570\u7EC4\uFF1B\u63D0\u4F9B replacement \u65F6\u672C\u5B57\u6BB5\u5FFD\u7565")}),g.object({op:g.literal("add_businessmodel"),modellogiccode:g.string().describe("\u76EE\u6807\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF1BMCP \u81EA\u52A8\u8C03\u7528 getModelLogic \u62C9\u53D6\u5176\u5B8C\u6574 JSON \u8FFD\u52A0\u5230 businessmodel\uFF08\u65E0\u9700\u4F60\u4F20\u5165\u5927\u6BB5\u903B\u8F91 JSON\uFF09"),overwrite:g.boolean().optional().describe("\u5F53 businessmodel \u5DF2\u5B58\u5728\u8BE5 modellogiccode \u65F6\u662F\u5426\u8986\u76D6\uFF0C\u9ED8\u8BA4 false\uFF08\u8DF3\u8FC7\uFF09")}),g.object({op:g.literal("remove_businessmodel"),modellogiccode:g.string().describe("\u8981\u79FB\u9664\u7684\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),checkRefs:g.boolean().optional().describe("\u524D\u7F6E\u5F15\u7528\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true")})]),Nn=[{name:"patch_form",config:{title:"\u5C40\u90E8\u8865\u4E01\u4FEE\u6539\u8868\u5355/\u9875\u9762",description:`\u4EE5 delta ops \u5C40\u90E8\u4FEE\u6539\u8868\u5355\uFF0C\u65E0\u9700\u56DE\u4F20\u5B8C\u6574 JSON\u300210 \u7C7B ops\uFF1Aset_pageinfo/set_attrs/patch_node_array_item/insert_node/remove_node/move_node/set_section/replace_script/add_businessmodel/remove_businessmodel\u3002\u63A8\u8350\u6D41\u7A0B\uFF1Aget_form_outline \u62FF code \u2192 get_form_fragment \u786E\u8BA4\u771F\u5B9E\u5C5E\u6027\u540D/\u811A\u672C \u2192 patch_form\u3002ops \u4E8B\u52A1\u6027\u9884\u6F14\uFF0C\u5931\u8D25\u6574\u6279\u56DE\u6EDA\uFF1B\u6539\u521D\u59CB\u5316\u811A\u672C\uFF08presenter.initial\uFF09\u4E0E\u6539\u6309\u94AE\u4E8B\u4EF6\u7528\u6CD5\u4E00\u81F4\u3002\n\n${z}`,inputSchema:{code:g.string().describe("\u76EE\u6807\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),ops:g.array(Rt).min(1).describe("\u8865\u4E01\u64CD\u4F5C\u6570\u7EC4\uFF0C\u81F3\u5C11\u4E00\u4E2A\u5143\u7D20\uFF1B\u6309\u6570\u7EC4\u987A\u5E8F\u4F9D\u6B21\u4F5C\u7528\u4E8E\u4E0A\u4E00\u6B65\u7ED3\u679C"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6574\u6279 ops \u5171\u7528\u4E00\u4E2A\uFF1B\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF0Cmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B"),dryRun:g.boolean().optional().describe("\u53EA\u9884\u6F14\u5E76\u8F93\u51FA diff\u3001\u4E0D\u843D\u5E93\uFF0C\u9ED8\u8BA4 false\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u65F6\u5EFA\u8BAE\u5148\u7F6E true"),verify:g.boolean().optional().describe("\u4FDD\u5B58\u540E\u662F\u5426\u56DE\u8BFB\u6821\u9A8C\u6240\u6709\u6539\u52A8\u5DF2\u751F\u6548\uFF0C\u9ED8\u8BA4 true")},outputSchema:{ok:g.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:g.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:g.boolean().nullable().describe("\u4FDD\u5B58\u540E\u56DE\u8BFB\u6821\u9A8C\u7ED3\u679C\uFF1Atrue \u5168\u90E8\u751F\u6548\u3001false \u5B58\u5728\u5F02\u5E38\u3001null \u672A\u843D\u5E93\u6216\u672A\u5F00\u542F\u6821\u9A8C"),errorCode:g.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / NODE_NOT_FOUND / DUP_CODE / REF_VIOLATION / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:g.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:g.string().describe("\u5168\u90E8 op \u7684 diff \u7247\u6BB5\uFF0C\u8D85\u957F\u4F1A\u622A\u65AD\uFF1B\u53EA\u56DE\u6539\u52A8\u6458\u8981\uFF0C\u4E0D\u56DE\u6574\u4EFD\u8868\u5355"),ops:g.array(g.object({index:g.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:g.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:g.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:g.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801"),message:g.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),hunk:g.string().nullable().optional().describe("\u8BE5 op \u4EA7\u751F\u7684 diff \u7247\u6BB5\uFF08replace_script \u624D\u6709\uFF09"),suggestions:g.array(g.object({startLine:g.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:g.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:g.string().describe("\u5019\u9009\u7247\u6BB5\u9884\u89C8")})).nullable().optional().describe("NOT_FOUND \u65F6\u7684\u76F8\u4F3C\u5019\u9009")})).describe("\u6BCF\u4E2A op \u7684\u6267\u884C\u7ED3\u679C\uFF0C\u4E0E\u5165\u53C2 ops \u4E00\u4E00\u5BF9\u5E94")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{code:e,commitMessage:r,dryRun:i=!1,verify:t=!0}=n,o=n.ops,s=B(r);try{let a=await kn(e,o,s,{dryRun:i,verify:t});return{isError:!a.ok,content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a}}catch(a){let c=F(a);return{isError:!0,content:[{type:"text",text:c}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:c,diff:"",ops:[]}}}}},{name:"save_form",config:{title:"\u5168\u91CF\u4FDD\u5B58\u8868\u5355/\u9875\u9762",description:`\u6574\u9875\u91CD\u6784\uFF08\u91CD\u6392\u5E03\u5C40\u3001\u6A21\u677F\u8FC1\u79FB\uFF09\u624D\u7528\uFF1A\u56DE\u4F20\u5B8C\u6574 FormResult \u5168\u91CF\u4FDD\u5B58\u3002\u65E5\u5E38\u5C40\u90E8\u6539\u52A8\u4F18\u5148 patch_form\u3002businessmodel \u968F\u8868\u5355\u900F\u4F20\uFF0CMCP \u4E0D\u5265\u79BB\u3002\n\n${z}`,inputSchema:{form:g.looseObject(Ae).describe("\u5B8C\u6574\u7684\u8868\u5355 JSON \u5BF9\u8C61\uFF08FormResult\uFF09\uFF0C\u901A\u5E38\u6765\u81EA get_form \u7684\u8FD4\u56DE\uFF0C\u4FEE\u6539\u540E\u56DE\u4F20"),commitMessage:Y.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u7C7B\u578B\u4E0E\u540D\u79F0\u9700\u4E00\u4E00\u5BF9\u5E94\uFF1Bmsgbody \u5728\u975E saverecord \u65F6\u5FC5\u586B")},outputSchema:{ok:g.boolean().describe("\u662F\u5426\u4FDD\u5B58\u6210\u529F"),code:g.string().optional().describe("\u4FDD\u5B58\u6210\u529F\u7684\u8868\u5355\u7F16\u7801"),message:g.string().describe("\u4FDD\u5B58\u7ED3\u679C\u6D88\u606F\uFF08\u670D\u52A1\u7AEF\u8FD4\u56DE\u7684 resp_data \u5B57\u7B26\u4E32\uFF1B\u5931\u8D25\u65F6\u8FD4\u56DE\u9519\u8BEF\u4F53 JSON\uFF09")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{form:e,commitMessage:r}=n,i=B(r);try{let t=await On(e,i);return{isError:!t.ok,content:[{type:"text",text:JSON.stringify(t)}],structuredContent:t}}catch(t){let o=F(t);return{isError:!0,content:[{type:"text",text:o}],structuredContent:{ok:!1,code:void 0,message:o}}}}}];import{z as x}from"zod";function Sn(n,e){return C({url:"/api/masterserv/hpage/listH5Page",method:"post",data:n,type:"business",token:e})}function Pn(n,e){return C({url:"/api/masterserv/hpage/listH5PageByOne",method:"post",data:n,type:"business",token:e})}function Cn(n){return C({url:"/pemission/rolepermission/account/getPreviewAccounts",method:"post",data:n,type:"tenant"})}async function Fn(){let n=Z();if(!n)throw new Error("\u67E5\u8BE2 H5 \u8868\u5355\u524D\u5FC5\u987B\u5148\u8C03\u7528 setTenant() \u8BBE\u7F6E\u79DF\u6237\u4FE1\u606F\uFF08authenticate \u6D41\u7A0B\u4F1A\u5199\u5165\uFF09");let e;for(let r=1;r<=3;r++)try{let i=await Cn({pvcode:n.productVersionCode,rows:200}),o=(Array.isArray(i?.resp_data)?i.resp_data:[]).find(s=>s.positionname==="SFA\u7CFB\u7EDF\u7BA1\u7406\u5458");if(!o)throw new Error("\u672A\u5728\u9884\u89C8\u8D26\u53F7\u5217\u8868\u4E2D\u627E\u5230\u804C\u4F4D\u4E3A\u300CSFA\u7CFB\u7EDF\u7BA1\u7406\u5458\u300D\u7684\u8D26\u53F7");if(!o.token)throw new Error("\u627E\u5230\u804C\u4F4D\u4E3A\u300CSFA\u7CFB\u7EDF\u7BA1\u7406\u5458\u300D\u7684\u8D26\u53F7\uFF0C\u4F46\u5176 token \u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u7528\u4E8E H5 \u8868\u5355\u67E5\u8BE2");return o.token}catch(i){e=i,r<3&&await new Promise(t=>setTimeout(t,800))}throw e}async function In(n){let e=await Fn();return Sn(n,e)}async function $n(n){let e=await Fn();return Pn(n,e)}var Dn=x.object({confjson:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u5185\u5BB9 JSON \u5B57\u7B26\u4E32\uFF0C\u5305\u542B H5 \u8868\u5355\u7684 Vue \u4EE3\u7801\uFF0C\u5143\u6570\u636E\u914D\u7F6E"),directorytypecode:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF0C\u9884\u7559\u5B57\u6BB5"),pagecode:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801"),pagedescr:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u63CF\u8FF0"),pagetype:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u9875\u9762\u7C7B\u578B\uFF0C\u9884\u7559\u5B57\u6BB5"),platcreateop:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u4EBA\u59D3\u540D"),platcreatetime:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u65F6\u95F4"),platstatus:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u5E73\u53F0\u72B6\u6001"),platupdateop:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),platupdatetime:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),status:x.union([x.string(),x.number(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u72B6\u6001\uFF1B1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6807\u9898")}).catchall(x.unknown()),xt=Dn.omit({confjson:!0}),kt={data:x.array(xt).describe("\u8FD9\u4E00\u9875\u7684 H5 \u8868\u5355\u6570\u636E"),pageCount:x.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:x.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:x.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:x.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},Ot=Dn.shape,En=[{name:"page_h5_form",config:{title:"\u5206\u9875\u67E5\u8BE2 H5 \u8868\u5355\u5217\u8868",description:"\u5206\u9875\u67E5\u8BE2\u667A\u6167100 H5 \u5F15\u64CE\u7684 H5 \u8868\u5355\u5217\u8868\uFF08\u4E0D\u542B confjson\uFF09\u3002\u79DF\u6237\u672A\u88C5 H5 \u5F15\u64CE\u65F6\u8FD4\u56DE HTTP 404\u3002",inputSchema:{keywords:x.string().optional().describe("H5 \u8868\u5355\u4EE3\u7801\u53CA\u5176\u5143\u6570\u636E\u4E2D\u5305\u542B\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),pagecode:x.string().optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),status:x.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),title:x.string().optional().describe("H5 \u8868\u5355\u7684\u6807\u9898\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),updateopname:x.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),page:x.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:x.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:kt,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{keywords:e="",pagecode:r="",status:i="",title:t="",updateopname:o="",page:s=1,rows:a=20}=n;try{let u=(await In({keywords:e,pagecode:r,status:i,title:t,updateopname:o,page:Number(s)||1,rows:Number(a)||20})).resp_data,m=Array.isArray(u?.data)?u.data.map(y=>{let h={...y};return delete h.confjson,h}):u?.data,f={...u,data:m};return I(f)}catch(c){return $(c)}}},{name:"get_h5_form",config:{title:"\u67E5\u8BE2 H5 \u8868\u5355\u8BE6\u60C5",description:"\u6309 pagecode \u83B7\u53D6 H5 \u8868\u5355\u8BE6\u60C5\uFF08\u542B confjson\uFF1AVue \u4EE3\u7801\u4E0E\u5143\u6570\u636E\uFF09\u3002\u5173\u952E\u5B57\u6BB5\uFF1Apagecode/title/status/pagedescr/confjson/platcreate*/platupdate*/platstatus\u3002\u672A\u88C5 H5 \u5F15\u64CE\u8FD4\u56DE HTTP 404\u3002",inputSchema:{pagecode:x.string().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:Ot,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{pagecode:e}=n;try{let r=await $n({pagecode:e});return{content:[{type:"text",text:JSON.stringify(r.resp_data)}],structuredContent:r.resp_data}}catch(r){return $(r)}}}];import{z as p}from"zod";function An(n){return C({url:"/bizserv/bizmodel/pageList",method:"post",data:n,type:"tenant"})}function Ln(n){return C({url:"/bizserv/bizmodel/get",method:"post",data:n,type:"tenant"})}var vt=p.object({classname:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),createaccountcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:p.union([p.string(),p.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:p.union([p.string(),p.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),dddlayer:p.union([p.string(),p.number()]).nullable().optional().describe("\u51FD\u6570\u5C42\u7EA7\u6807\u8BC6\uFF0C\u5217\u8868\u67E5\u8BE2\u65F6\u56FA\u5B9A\u4F20 3\uFF0C\u8F93\u51FA\u540C\u6B65\u8FD4\u56DE\u8BE5\u503C"),directorytypecode:p.union([p.string(),p.number()]).nullable().optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:p.union([p.string(),p.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modelcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u51FD\u6570\u7684\u7F16\u7801"),modeldescr:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u63CF\u8FF0"),modelname:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),seq:p.union([p.string(),p.number()]).nullable().optional().describe("\u987A\u5E8F"),status:p.union([p.string(),p.number()]).nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:p.union([p.string(),p.null()]).optional().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u51FD\u6570\u4E00\u822C\u65E0\u5BF9\u5E94\u8868\uFF0C\u901A\u5E38\u4E3A\u7A7A\uFF09"),updateaccountcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7 code"),updateaccountname:p.union([p.string(),p.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),updatetime:p.union([p.string(),p.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(p.unknown()),Nt={classname:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),createaccountcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:p.union([p.string(),p.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:p.union([p.string(),p.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),dddlayer:p.union([p.string(),p.number()]).nullable().optional().describe("\u51FD\u6570\u5C42\u7EA7\u6807\u8BC6\uFF0C\u5217\u8868\u67E5\u8BE2\u65F6\u56FA\u5B9A\u4F20 3\uFF0C\u8F93\u51FA\u540C\u6B65\u8FD4\u56DE\u8BE5\u503C"),directorytypecode:p.union([p.string(),p.number()]).nullable().optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:p.union([p.string(),p.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modelcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u51FD\u6570\u7684\u7F16\u7801"),modeldescr:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u63CF\u8FF0"),modelname:p.union([p.string(),p.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),seq:p.union([p.string(),p.number()]).nullable().optional().describe("\u987A\u5E8F"),status:p.union([p.string(),p.number()]).nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:p.union([p.string(),p.null()]).optional().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u51FD\u6570\u4E00\u822C\u65E0\u5BF9\u5E94\u8868\uFF0C\u901A\u5E38\u4E3A\u7A7A\uFF09"),updateaccountcode:p.union([p.string(),p.number()]).nullable().optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7 code"),updateaccountname:p.union([p.string(),p.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),updatetime:p.union([p.string(),p.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),confjson:p.string().nullable().optional().describe("flycode \u51FD\u6570\u4EE3\u7801\u5185\u5BB9")},Tn=[{name:"page_function_list",config:{title:"\u5206\u9875\u67E5\u8BE2 flycode \u51FD\u6570",description:`\u5206\u9875\u67E5\u8BE2 flycode \u51FD\u6570\u5217\u8868\u3002dddlayer \u56FA\u5B9A\u4F20 "3"\u3002\n\n${A}\n${te}`,inputSchema:{classname:p.string().optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),name:p.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u901A\u5E38\u548C modelname \u4E00\u81F4"),modelname:p.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u901A\u5E38\u548C name \u4E00\u81F4"),flycodekey:p.string().optional().describe("\u51FD\u6570\u5185\u5BB9\u5173\u952E\u5B57"),page:p.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:p.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:p.array(vt).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:p.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:p.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:p.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:p.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{classname:e="",name:r="",modelname:i="",flycodekey:t="",page:o=1,rows:s=20}=n;try{let a=await An({dddlayer:3,directorytypecode:"",starttime:"",classname:e,name:r,modelname:i,flycodekey:t,page:Number(o)||1,rows:Number(s)||20});return I(a.resp_data)}catch(a){return $(a)}}},{name:"get_function",config:{title:"\u67E5\u8BE2 flycode \u51FD\u6570\u8BE6\u60C5",description:`\u6309 modelcode \u67E5\u8BE2\u51FD\u6570\u8BE6\u60C5\uFF08\u57FA\u672C\u4FE1\u606F + confjson \u4EE3\u7801\uFF09\u3002\u4EE3\u7801\u8FD0\u884C\u4E8E Java Nashorn \u7684 ES5 JS\uFF0C\u65E0 FlyQL \u7F16\u8BD1\u4E0E\u5185\u7F6E\u5BF9\u8C61\uFF1B\u4E1A\u52A1\u903B\u8F91\u4E2D\u901A\u8FC7 loadex('\u65B9\u6CD5\u540D') \u52A0\u8F7D\u3002\n\n${A}\n${te}`,inputSchema:{modelcode:p.string().describe("\u51FD\u6570\u7684\u7F16\u7801")},outputSchema:p.looseObject(Nt),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{modelcode:e}=n;try{let r=await Ln({modelcode:e});return I(r.resp_data)}catch(r){return $(r)}}}];import{z as O}from"zod";function Mn(n){return C({url:"/bizserv/customfunction/list",method:"post",data:n,type:"tenant"})}var St=O.object({createtime:O.union([O.string(),O.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),creator:O.union([O.string(),O.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),dbfunctionname:O.union([O.string(),O.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D"),functioncode:O.union([O.string(),O.null()]).optional().describe("\u51FD\u6570\u552F\u4E00\u7F16\u7801"),functionname:O.union([O.string(),O.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),functionscript:O.union([O.string(),O.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u5185\u5BB9\uFF08PostgreSQL \u51FD\u6570\u4F53\uFF09"),marktype:O.union([O.string(),O.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:O.union([O.string(),O.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C functioncode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),publishstatus:O.union([O.string(),O.number()]).nullable().optional().describe("\u53D1\u5E03\u72B6\u6001\uFF0C1-\u672A\u53D1\u5E03\uFF1B2-\u5DF2\u53D1\u5E03"),remark:O.union([O.string(),O.null()]).optional().describe("\u5907\u6CE8"),status:O.union([O.string(),O.number()]).nullable().optional().describe("\u72B6\u6001\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),updatetime:O.union([O.string(),O.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updator:O.union([O.string(),O.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA")}).catchall(O.unknown()),jn=[{name:"page_database_function_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u6570\u636E\u5E93\u51FD\u6570",description:`\u5206\u9875\u67E5\u8BE2\u6570\u636E\u5E93\u51FD\u6570\uFF08PostgreSQL \u81EA\u5B9A\u4E49\u51FD\u6570\uFF09\u5217\u8868\uFF1B\u7ED3\u679C\u5DF2\u968F\u884C\u8FD4\u56DE functionscript\uFF08\u51FD\u6570\u4F53\uFF09\uFF0C\u65E0\u9700\u8BE6\u60C5\u63A5\u53E3\u3002\n\n${A}\n${te}`,inputSchema:{dbfunctionname:O.string().optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),name:O.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),pageindex:O.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),pagesize:O.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:O.array(St).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:O.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:O.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:O.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:O.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{dbfunctionname:e="",name:r="",pageindex:i=1,pagesize:t=20}=n;try{let o=await Mn({dbfunctionname:e,name:r,pageindex:Number(i)||1,pagesize:Number(t)||20});return I(o.resp_data)}catch(o){return $(o)}}}];import{z as ie}from"zod";function Hn(n){return C({url:"/api/biz/sqlrun",method:"post",data:n,type:"business"})}var Pt={data:ie.array(ie.unknown()).nullable().optional().describe("\u67E5\u8BE2\u7ED3\u679C\u6570\u636E\uFF0C\u6570\u7EC4\u4E2D\u7684\u6BCF\u4E00\u9879\u4E3A\u4E00\u6761\u67E5\u8BE2\u7ED3\u679C\u8BB0\u5F55\uFF08\u5BF9\u8C61\uFF09"),influenceCount:ie.coerce.number().nullable().optional().describe("\u67E5\u8BE2\u7ED3\u679C\u603B\u6570")},Un=[{name:"run_sql",config:{title:"\u6267\u884C SQL \u67E5\u8BE2",description:"\u5728\u4E1A\u52A1\u5E93\uFF08PostgreSQL\uFF09\u4E2D\u6267\u884C\u4E00\u6761 SELECT \u67E5\u8BE2\uFF08\u63A5\u53E3\u4EC5\u652F\u6301 SELECT\uFF0C\u4E00\u6B21\u4E00\u6761\uFF0C\u53EA\u80FD\u67E5\u4E1A\u52A1\u8868\uFF1B\u67E5\u8868\u5B57\u6BB5\u7ED3\u6784\u8BF7\u7528 get_entity\uFF09\uFF0C\u8FD4\u56DE\u7ED3\u679C data \u4E0E\u603B\u6570 influenceCount\u3002\u9002\u7528\u4E8E\u76F4\u63A5\u63A2\u67E5\u4E1A\u52A1\u8868\u6570\u636E\u3001\u6838\u5BF9\u5B57\u6BB5\u503C\u3001\u9A8C\u8BC1\u540C\u6B65\u7ED3\u679C\u7B49\u53EA\u8BFB\u573A\u666F\u3002",inputSchema:{sql:ie.string().describe("\u8981\u6267\u884C\u7684 SQL \u67E5\u8BE2\u8BED\u53E5\uFF0C\u53EA\u652F\u6301 SELECT \u67E5\u8BE2\uFF0C\u4E00\u6B21\u53EA\u80FD\u4E00\u6761 SQL")},outputSchema:ie.looseObject(Pt),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async n=>{let{sql:e}=n;try{let r=await Hn({sql:e});return I(r.resp_data)}catch(r){return $(r)}}}];import{z as Vn}from"zod";var Le=class{workerIdBits=5;datacenterIdBits=5;sequenceBits=12;maxWorkerId=-1^-1<<this.workerIdBits;maxDatacenterId=-1^-1<<this.datacenterIdBits;sequenceMask=-1^-1<<this.sequenceBits;workerIdShift=this.sequenceBits;datacenterIdShift=this.sequenceBits+this.workerIdBits;timestampShift=this.sequenceBits+this.workerIdBits+this.datacenterIdBits;epoch;lastTimestamp=-1n;sequence=0n;workerId;datacenterId;constructor(e,r,i=15778368e5){if(e>this.maxWorkerId||e<0)throw new Error(`workerId \u5FC5\u987B\u5728 0 ~ ${this.maxWorkerId} \u4E4B\u95F4`);if(r>this.maxDatacenterId||r<0)throw new Error(`datacenterId \u5FC5\u987B\u5728 0 ~ ${this.maxDatacenterId} \u4E4B\u95F4`);this.workerId=BigInt(e),this.datacenterId=BigInt(r),this.epoch=BigInt(i)}nextId(){let e=this.currentTimestamp();if(e<this.lastTimestamp){let i=this.lastTimestamp-e;if(i<=5n)for(;e<this.lastTimestamp;)e=this.currentTimestamp();else throw new Error(`\u65F6\u949F\u56DE\u62E8\u8FC7\u5927: ${i}ms\uFF0C\u65E0\u6CD5\u751F\u6210 ID`)}return e===this.lastTimestamp?(this.sequence=this.sequence+1n&BigInt(this.sequenceMask),this.sequence===0n&&(e=this.waitNextMillis(this.lastTimestamp))):this.sequence=0n,this.lastTimestamp=e,e-this.epoch<<BigInt(this.timestampShift)|this.datacenterId<<BigInt(this.datacenterIdShift)|this.workerId<<BigInt(this.workerIdShift)|this.sequence}waitNextMillis(e){let r=this.currentTimestamp();for(;r<=e;)r=this.currentTimestamp();return r}currentTimestamp(){return BigInt(Date.now())}parse(e){let r=(e>>BigInt(this.timestampShift))+this.epoch,i=e>>BigInt(this.datacenterIdShift)&BigInt(this.maxDatacenterId),t=e>>BigInt(this.workerIdShift)&BigInt(this.maxWorkerId),o=e&BigInt(this.sequenceMask);return{timestamp:r,datacenterId:i,workerId:t,sequence:o,generateTime:new Date(Number(r))}}},Ct=1,Ft=1,It=new Le(Ct,Ft),zn=()=>It.nextId();var Kn=[{name:"generate_unique_code",config:{title:"\u751F\u6210\u552F\u4E00\u7F16\u7801",description:"\u901A\u8FC7\u96EA\u82B1\u7B97\u6CD5\u751F\u6210\u5168\u5C40\u552F\u4E00 ID\uFF08code\uFF09\u3002\u65B0\u5EFA\u5B9E\u4F53/\u9886\u57DF/\u8868\u5355\u7B49\u5185\u5BB9\u65F6\u5176 JSON \u9700\u643A\u5E26\u552F\u4E00 code\uFF0C\u53EF\u8C03\u7528\u672C\u5DE5\u5177\u83B7\u53D6\uFF08\u53EF\u9009 prefix \u524D\u7F00\uFF09\u3002",inputSchema:{prefix:Vn.string().optional().describe("\u53EF\u9009\u524D\u7F00\uFF0C\u62FC\u63A5\u5230\u751F\u6210\u7684\u552F\u4E00 ID \u4E4B\u524D\uFF08\u4F8B\u5982\u5B9E\u4F53\u7F16\u7801\u524D\u7F00\uFF09\uFF1B\u4E0D\u4F20\u5219\u53EA\u8FD4\u56DE\u7EAF\u6570\u5B57 ID \u5B57\u7B26\u4E32")},outputSchema:{code:Vn.string().describe("\u751F\u6210\u7684\u552F\u4E00\u7F16\u7801\uFF08code\uFF09\u3002\u5B57\u7B26\u4E32\u5F62\u5F0F\u4EE5\u907F\u514D\u5927\u6574\u6570\u7CBE\u5EA6\u4E22\u5931")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!1}},handler:async n=>{let{prefix:e=""}=n;try{let r=zn().toString(),t={code:e?`${e}${r}`:r};return I(t)}catch(r){let t={error:r.message??String(r)};return{isError:!0,content:[{type:"text",text:JSON.stringify(t)}]}}}}];await Be();var se=new $t({name:"flycode-mcp",version:"1.0.0"}),qn=(process.env.PROGRESSIVE_DISCLOSURE??"on").toLowerCase()!=="off",Et=[...tn,...cn,...mn,...vn,...Nn,...En,...Tn,...jn,...Un,...Kn],Yn=new ue(qn);Yn.registerAll(se,Et);for(let n of Ze(Yn))se.registerTool(n.name,n.config,n.handler);async function At(){let n=new Dt;await se.connect(n),process.on("SIGINT",async()=>{await se.close(),process.exit(0)}),process.on("SIGTERM",async()=>{await se.close(),process.exit(0)}),console.error(`flycode-mcp listening on stdio (progressive disclosure: ${qn?"on":"off"})`)}At().catch(n=>{console.error(n),process.exit(1)});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flycode-mcp",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/flycode-mcp.min.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
16
|
"typecheck": "tsc -p tsconfig.json",
|
|
17
|
-
"build": "npm run typecheck && node scripts/build.mjs",
|
|
17
|
+
"build": "npm run typecheck && npm run typecheck:test && node scripts/build.mjs",
|
|
18
18
|
"start": "npm run build && node dist/flycode-mcp.min.js",
|
|
19
19
|
"dev": "node scripts/build.mjs --watch",
|
|
20
20
|
"prepublishOnly": "npm run build",
|