flycode-mcp 1.13.0 → 1.14.0

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 CHANGED
@@ -11,7 +11,7 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for the
11
11
  - 基于官方 `@modelcontextprotocol/sdk` 实现,使用标准 `stdio` 传输协议。
12
12
  - 启动即完成 APaaS IDE 平台鉴权链路:账号登录 → 获取租户信息 → 获取 IDE Token。
13
13
  - 内置统一请求层 `request`,自动按请求类型(`center` / `tenant` / `business`)切换中心服务地址、当前租户连接地址或当前租户业务地址,并自动注入鉴权 Token:`business` 类型主要用于 H5 表单查询(需以特定预览账号 token 发起)。
14
- - 当前提供工具:业务逻辑类 `page_model_logic_directories`(分页查询业务逻辑所属目录,返回各业务模型目录项,含 modellogic 用到的 modelcode)、`page_model_logic_list`(分页查询业务逻辑列表)、`get_model_logic`(查询单个业务逻辑详情)、`save_model_logic`(新增业务逻辑:保存完整 `LogicResult`)、`patch_model_logic`(局部补丁修改业务逻辑的 input/output 结构或顶层元数据,无需回传整份对象,替代旧版轻量保存)、`str_replace_flycode`(批量局部替换 flycode 脚本,或用 `rewrite: true` 整份重写);实体类 `page_entity_list`(分页查询实体列表)、`get_entity`(查询实体详情);表单 / 页面类 `page_form_directories`(查询表单所属目录,取回的 `directorytypecode` 即表单 `pageinfo.directorytypecode` 的取值;该接口不支持分页、全量数百条,故在服务层强制收敛——默认最多回 30 条、硬上限 200 条,未传筛选条件时只回顶级目录,并回 `truncated` / `hint` 提示)、`page_form_list`(分页查询表单 / 页面列表)、`get_form`(查询表单 / 页面详情);H5 表单类 `page_h5_form`(分页查询 H5 表单列表)、`get_h5_form`(查询 H5 表单详情,含 `confjson` 内容 JSON);函数类 `page_function_list`(分页查询 flycode 函数列表)、`get_function`(查询 flycode 函数详情,含 `confjson` 函数代码内容);数据库函数类 `page_database_function_list`(分页查询 PostgreSQL 自定义数据库函数列表,列表结果随行返回函数体 `functionscript`);SQL 执行类 `run_sql`(在业务库中执行一条 SELECT 查询,返回查询结果数据与结果总数);通用类 `generate_unique_code`(生成唯一编码,用于新建实体 / 领域 / 表单时生成 JSON 中的 `code` 字段)。
14
+ - 当前提供工具:业务逻辑类 `page_model_logic_directories`(分页查询业务逻辑所属目录,返回各业务模型目录项,含 modellogic 用到的 modelcode)、`page_model_logic_list`(分页查询业务逻辑列表)、`get_model_logic`(查询单个业务逻辑详情)、`save_model_logic`(新增业务逻辑:保存完整 `LogicResult`)、`patch_model_logic`(局部补丁修改业务逻辑的 input/output 结构或顶层元数据,无需回传整份对象,替代旧版轻量保存)、`str_replace_flycode`(批量局部替换 flycode 脚本,或用 `rewrite: true` 整份重写);实体类 `page_entity_list`(分页查询实体列表)、`get_entity`(查询实体详情)、`page_entity_directories`(查询实体所属目录,取回的 `directorytypecode` 即 `create_entity` 的 `directorytypecode` 必填入参;该接口不支持分页、全量数百条,故在服务层强制收敛——默认最多回 30 条、硬上限 200 条,未传筛选条件时只回顶级目录,并回 `truncated` / `hint` 提示)、`create_entity`(新增实体:仅传必要参数,完整实体对象由 MCP 侧组装后调平台保存;保存后处于未发布态需手动发布)、`patch_entity`(给已有实体加字段的 patch ops,当前仅实现 `add_field`;修改 / 删除字段保留未实现、运行时提示去 IDE 平台手动操作;数据字典不允许调整字段);表单 / 页面类 `page_form_directories`(查询表单所属目录,取回的 `directorytypecode` 即表单 `pageinfo.directorytypecode` 的取值;该接口不支持分页、全量数百条,故在服务层强制收敛——默认最多回 30 条、硬上限 200 条,未传筛选条件时只回顶级目录,并回 `truncated` / `hint` 提示)、`page_form_list`(分页查询表单 / 页面列表)、`get_form`(查询表单 / 页面详情);H5 表单类 `page_h5_form`(分页查询 H5 表单列表)、`get_h5_form`(查询 H5 表单详情,含 `confjson` 内容 JSON);函数类 `page_function_list`(分页查询 flycode 函数列表)、`get_function`(查询 flycode 函数详情,含 `confjson` 函数代码内容);数据库函数类 `page_database_function_list`(分页查询 PostgreSQL 自定义数据库函数列表,列表结果随行返回函数体 `functionscript`);SQL 执行类 `run_sql`(在业务库中执行一条 SELECT 查询,返回查询结果数据与结果总数);通用类 `generate_unique_code`(生成唯一编码,用于新建实体 / 领域 / 表单时生成 JSON 中的 `code` 字段)。
15
15
 
16
16
  ---
17
17
 
@@ -31,7 +31,7 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for the
31
31
  环境变量:
32
32
 
33
33
  - `PROGRESSIVE_DISCLOSURE=on`(默认):启用渐进式披露。
34
- - `PROGRESSIVE_DISCLOSURE=off`:退化回「全部 22 个工具始终启用」的原有行为,作为客户端未实现 `tools/list_changed` 重拉时的兜底。若 `mcp_activate` 启用某域后调用域工具仍报 `tool not found`,说明当前客户端不支持该通知,请设为 `off`。
34
+ - `PROGRESSIVE_DISCLOSURE=off`:退化回「全部 25 个工具始终启用」的原有行为,作为客户端未实现 `tools/list_changed` 重拉时的兜底。若 `mcp_activate` 启用某域后调用域工具仍报 `tool not found`,说明当前客户端不支持该通知,请设为 `off`。
35
35
 
36
36
  ---
37
37
 
@@ -371,6 +371,79 @@ npm run docs:dev
371
371
  - `message`:保存时编写的提交信息(作用类似 git 提交信息)
372
372
  - `properties`:实体属性数组,每个属性含 `propertyname` / `columnname` / `propertytypecode`(字段类型映射)/ `relationobjectcode`(关联实体)/ `idxtype`(索引方式)/ `publishstatus` / `status` 等
373
373
 
374
+ ### `page_entity_directories` — 分页查询实体所属目录
375
+
376
+ 根据目录名等条件查询 APaaS 平台中的实体目录(只读、幂等)。底层调用 `entityClient.pageDirectories`(接口 `POST /bizserv/biz/getDirectorys`,与表单目录同源,实体传 `directorycategory: "1"`)。返回的 `directorytypecode` 即 `create_entity` 的 `directorytypecode` 必填入参。
377
+
378
+ **输入参数:**
379
+
380
+ | 参数 | 类型 | 必填 | 说明 |
381
+ | ------------- | ------ | ---- | -------------------------------------------------------------------------- |
382
+ | `keys` | string | 否 | 目录名称模糊匹配(建议优先用它检索,避免拉全量) |
383
+ | `directorytypecode` | string | 否 | 目录编码精确匹配 |
384
+ | `parentdirectorytypecode` | string | 否 | 父目录编码精确匹配;传 `"root"` 只看顶级目录 |
385
+ | `centername` / `centercode` | string | 否 | 所属业务中心名称 / 编码模糊或精确匹配 |
386
+ | `marktype` | string | 否 | 创建标记精确匹配:0-平台;1-产品;2-租户 |
387
+ | `limit` | string | 否 | 返回条数上限,默认 30,硬上限 200 |
388
+ | `offset` | string | 否 | 起始偏移,默认 0;配合 `limit` 翻页 |
389
+
390
+ **返回:** 实体目录列表的 JSON(`items`),含 `directorytypecode` / `directorytypename` / `parentdirectorytypecode` / `marktype` 等,以及 `total` / `truncated` / `hint` 收敛提示。该接口不支持分页(全量数百条),工具已在服务层强制收敛。
391
+
392
+ ### `create_entity` — 新增实体(数据表)
393
+
394
+ 新增一张数据表(实体),仅传入必要参数,完整实体对象由 MCP 侧组装后调平台保存接口(非只读、有事务性保护)。底层调用 `service/entity.ts` 的 `createEntity`:构造实体骨架(`datapattern` 固定 `"1"`、自动补主键、非字典实体可选初始字段)→ 一次性保存到 `POST /bizserv/biz/saveObject`。
395
+
396
+ **输入参数:**
397
+
398
+ | 参数 | 类型 | 必填 | 说明 |
399
+ | --------------- | ------ | ---- | -------------------------------------------------------------------------- |
400
+ | `objectname` | string | 是 | 实体中文名 |
401
+ | `objecttypecode`| string | 是 | 实体分类:1-基本对象;2-树型对象;3-数据字典;4-关联对象 |
402
+ | `tablename` | string | 是 | 数据库表名;`objectmark` 自动复制此值 |
403
+ | `directorytypecode` | string | 是 | 所属目录编码,来自 `page_entity_directories` 查询到的 `directorytypecode` |
404
+ | `parentobjectcode` | string | 否 | 父实体编码,树型 / 关联实体使用 |
405
+ | `propertydescr` | string | 否 | 实体描述 |
406
+ | `initialFields` | array | 否 | 可选初始字段(每项仅 `propertyname` / `propertytypecode` / `columnname` 必填);数据字典忽略此参数。非字典实体若未提供主键(`propertytypecode=1`),MCP 会自动补一个「主键 / id」 |
407
+ | `commitMessage` | object | 是 | 提交信息,结构与 `save_model_logic` 的 `commitMessage` 一致 |
408
+ | `confirm` | boolean | 否 | 是否确认落库,默认 `false`。必须显式 `true` 才会真正保存 |
409
+ | `dryRun` | boolean | 否 | 是否仅预览不落库,默认 `true`。置 `false` 才执行保存(需配合 `confirm=true`) |
410
+ | `verify` | boolean | 否 | 保存后是否回读校验,默认 `true` |
411
+
412
+ **返回:** `{ ok, applied, verified, errorCode, message, diff, publishStatus, needManualPublish, entityCode, entityName }`。`publishStatus` 实体级固定 `2`(数据字典为 `1`);`needManualPublish` 为 `true` 时提示需到平台手动发布。
413
+
414
+ > **写操作有风险,默认先预览后确认**:`confirm=false` + `dryRun=true` 时只回一份「将要创建什么」的预览(`errorCode: "DRY_RUN"`),确认无误后再以 `confirm=true`、`dryRun=false` 真正落库。保存后实体处于「未发布」态(数据字典除外),需到平台手动点发布才会真正改表结构。
415
+ >
416
+ > 数据字典(`objecttypecode=3`)字段由平台预置,创建时 `properties` 强制为空、忽略 `initialFields`,且 `publishstatus=1` 已发布。
417
+
418
+ ### `patch_entity` — 给已有实体加字段(patch ops,当前仅 `add_field`)
419
+
420
+ 对已有实体做字段级修改,当前仅实现 `add_field`(新增字段),其余字段级 op 保留未实现。完整对象由 MCP 侧按 ops 在内存副本上预演、再整体保存到 `POST /bizserv/biz/saveObject`(非只读、有事务性保护)。底层调用 `service/entity.ts` 的 `patchEntity`。
421
+
422
+ **输入参数:**
423
+
424
+ | 参数 | 类型 | 必填 | 说明 |
425
+ | --------------- | ------ | ---- | -------------------------------------------------------------------------- |
426
+ | `objectcode` | string | 是 | 目标实体的编码 |
427
+ | `ops` | array | 是 | 字段操作数组,至少一个元素;按数组顺序事务性执行,任一失败整批回滚。仅 `add_field` 已实现 |
428
+ | `commitMessage` | object | 是 | 提交信息,整批 ops 共用一个;结构与 `save_model_logic` 的 `commitMessage` 一致 |
429
+ | `confirm` | boolean | 否 | 是否确认落库,默认 `false`。必须显式 `true` 才会真正保存 |
430
+ | `dryRun` | boolean | 否 | 是否仅预览不落库,默认 `true`。置 `false` 才执行保存(需配合 `confirm=true`) |
431
+ | `verify` | boolean | 否 | 保存后是否回读校验,默认 `true` |
432
+
433
+ `ops[]` 元素(`op` 判别联合):
434
+
435
+ | `op` | 必填载荷 | 说明 |
436
+ | --------------- | ----------------------------------------------------- | -------------------------------------------------------------------------- |
437
+ | `add_field` | `propertyname` / `propertytypecode` / `columnname`(均必填)+ 可选 `propertydescr` / `idxtype` / 关联属性 | 新增一个字段(`columnname` 为数据库列名);事务性预演通过后才落库 |
438
+ | `modify_field` | `propertycode` + `patch` | **保留未实现**:传入会直接失败并提示「修改 / 删除字段请让用户到 IDE 平台手动操作」 |
439
+ | `delete_field` | `propertycode` | **保留未实现**:同上,运行时拒绝 |
440
+
441
+ > **写操作有风险,默认先预览后确认**:同 `create_entity`,`confirm=false` + `dryRun=true` 仅预览;保存后处于未发布态、需手动发布。
442
+ >
443
+ > **数据字典不允许调整字段**:数据字典(`objecttypecode=3`)字段由平台预置,传入 `add_field` / `modify_field` / `delete_field` 任一均会失败并提示「数据字典不允许调整字段」。
444
+
445
+ **返回:** `{ ok, applied, verified, errorCode, message, diff, ops[] }`,`ops[]` 与入参一一对应,便于定位失败项。
446
+
374
447
  ### `page_form_list` — 分页查询表单 / 页面列表
375
448
 
376
449
  根据查询条件分页查询 APaaS 平台中的表单 / 页面定义(只读、幂等)。底层调用 `formClient.pageFormList`(接口 `POST /bizserv/bizpage/pageList`)。
@@ -648,7 +721,7 @@ flycode-mcp/
648
721
  │ │ └── theme/ # 二次元卡通主题(style.css / index.ts)
649
722
  │ ├── public/ # 静态资源(mascot.svg 卡通吉祥物)
650
723
  │ ├── guide/ # 快速开始 / 接入客户端 / 准备账号
651
- │ ├── capabilities/ # 能力清单与详解(20 个工具,用户视角)
724
+ │ ├── capabilities/ # 能力清单与详解(25 个工具,用户视角)
652
725
  │ ├── cookbook.md # 常见场景话术
653
726
  │ ├── faq.md # 排错 FAQ
654
727
  │ ├── changelog.md # 版本更新记录(按 git tag 整理,用户视角)
@@ -682,7 +755,8 @@ flycode-mcp/
682
755
  │ │ │ ├── write.ts # 写入类工具(save_model_logic / patch_model_logic / str_replace_flycode)
683
756
  │ │ │ └── schemas.ts # 业务逻辑共享 zod schema(LogicResult / 参数 / operations / bindjson)
684
757
  │ │ ├── entity/
685
- │ │ │ ├── read.ts # 只读类工具(page_entity_list / get_entity)
758
+ │ │ │ ├── read.ts # 只读类工具(page_entity_list / get_entity / page_entity_directories)
759
+ │ │ │ ├── write.ts # 写入类工具(create_entity / patch_entity)
686
760
  │ │ │ └── schemas.ts # 实体共享 zod schema(EntityResult / EntityProperty,宽松透传结构)
687
761
  │ │ ├── form/
688
762
  │ │ │ ├── read.ts # 只读类工具(page_form_list / get_form / get_form_outline / get_form_fragment)
@@ -717,7 +791,7 @@ flycode-mcp/
717
791
  2. **登录**:`service/auth.ts` 中的 `authenticate()` 调用 `/api/multiplat/auth/login` 获取 Token,存入内存。
718
792
  3. **定位租户与环境**:`authenticate()` 调用 `/api/multiplat/auth/getTenantInfo`,依据 `tenantCode + envName` 匹配出目标租户,保存其连接信息(`conn.config`)到内存。
719
793
  4. **获取 IDE Token**:`authenticate()` 调用 `/api/multiplat/auth/getIdeToken` 换取 IDE 专用 Token 并覆盖内存中的 Token。
720
- 5. **注册并启动**:创建 `McpServer`,注册 `page_model_logic_list`、`get_model_logic`、`save_model_logic`、`patch_model_logic`、`str_replace_flycode`、`page_entity_list`、`get_entity`、`page_form_list`、`get_form`、`get_form_outline`、`get_form_fragment`、`patch_form`、`save_form`、`page_h5_form`、`get_h5_form`、`page_function_list`、`get_function`、`page_database_function_list`、`run_sql`、`generate_unique_code` 等工具,通过 `StdioServerTransport` 监听请求。
794
+ 5. **注册并启动**:创建 `McpServer`,注册 `page_model_logic_list`、`get_model_logic`、`save_model_logic`、`patch_model_logic`、`str_replace_flycode`、`page_entity_list`、`get_entity`、`page_entity_directories`、`create_entity`、`patch_entity`、`page_form_list`、`get_form`、`get_form_outline`、`get_form_fragment`、`patch_form`、`save_form`、`page_h5_form`、`get_h5_form`、`page_function_list`、`get_function`、`page_database_function_list`、`run_sql`、`generate_unique_code` 等工具,通过 `StdioServerTransport` 监听请求。
721
795
  6. **业务请求**:工具被调用时,`logicClient` / `entityClient` / `formClient` / `functionClient` / `runClient` / `h5Client` 通过 `request({ type: "tenant" })` 或 `request({ type: "business" })` 自动切换到当前租户连接地址或业务地址。`h5Client` 的 H5 表单查询需以特定预览账号(职位为 `SFA系统管理员`)的 token 发起,该 token 由 `service/h5.ts` 通过 `test-case.ts` 的预览账号列表接口解析后,以 `request({ type: "business", token })` 显式传入。`request` 在请求头统一注入 Token:若调用方在配置里显式传入 `token`(如 `request({ url, method, type: "business", token: "xxxx" })`),则优先使用该传入 Token;否则回退到内存中的 Token(由 `authenticate()` 写入或通过 `setToken` 设置)。注入后自定义 `token` 字段会被剔除,不会泄漏给后端。
722
796
 
723
797
  ---
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{McpServer as Hn}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as Un}from"@modelcontextprotocol/sdk/server/stdio.js";var ve="http://mconfig.xuantongkeji.com:51074",en="username",tn="password",nn="tenantCode",rn="envName";function fe(t,e){let i=process.argv.slice(2).join("&"),o=new URLSearchParams(i).get(t);if(o!==null&&o!=="")return o;if(e!==void 0)return e;throw new Error(`Missing required arg: ${t}`)}var B={username:fe(en),password:fe(tn),tenantCode:fe(nn),envName:fe(rn)};import on from"axios";var Ye=null;function Se(t){Ye=t}function Be(){return Ye}var qe=null;function Je(t){qe=t}function ne(){return qe}var Pe=on.create({baseURL:ve||"",timeout:2e4,headers:{"Content-Type":"application/json"}});Pe.interceptors.request.use(t=>{let r=t.token??Be();return r&&(t.headers=t.headers||{},t.headers.token=r),delete t.token,t});Pe.interceptors.response.use(t=>t.data,t=>Promise.reject(t));function C(t){let{type:e="center",...r}=t,i;switch(e){case"center":i=ve||"";break;case"tenant":case"business":{let n=ne();if(!n)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"?n.conn.config:n.conn.business;break}}return Pe({...r,baseURL:i})}var ye="1";function Ge(t){return C({url:"/api/multiplat/auth/login",method:"post",data:t})}function Ze(){return C({url:"/api/multiplat/auth/getTenantInfo",method:"post",data:{appid:ye}})}function Qe(t){return C({url:"/api/multiplat/auth/getIdeToken",method:"post",data:t})}async function We(){let t=await Ge({appid:ye,username:B.username,password:B.password});if(t.code!==200)throw new Error(`Unable to login: ${t.msg}`);Se(t.data.token),console.error("flycode-mcp \u767B\u5F55\u5B8C\u6210");let r=(await Ze()).resp_data.find(a=>a.tenantcode===B.tenantCode),i=r?.envs.find(a=>a.envname===B.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: ${B.tenantCode}, \u73AF\u5883\u540D: ${B.envName}, env.conn \u4E0D\u662F\u5408\u6CD5\u7684 JSON: ${i.conn}`)}Je({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 n=ne();if(!n)throw new Error(`\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u79DF\u6237\u4FE1\u606F, \u79DF\u6237\u53F7: ${B.tenantCode}, \u73AF\u5883\u540D: ${B.envName}`);console.error("flycode-mcp \u83B7\u53D6\u79DF\u6237\u4FE1\u606F\u5B8C\u6210");let s=(await Qe({appid:ye,envid:n.envId,metamodeltype:n.metaModelType,productcode:n.productCode,productversioncode:n.productVersionCode,tenantcode:n.tenantCode})).resp_data?.idetoken;if(!s)throw new Error(`\u83B7\u53D6 IDE Token \u5931\u8D25, \u79DF\u6237\u53F7: ${n.tenantCode}, \u73AF\u5883\u540D: ${n.envName}, \u8FD4\u56DE\u4F53\u4E2D\u672A\u5305\u542B\u6709\u6548\u7684 idetoken`);Se(s),console.error("flycode-mcp \u83B7\u53D6 IDE Token \u5B8C\u6210")}var Ce=[{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}],ce={run_sql:"core",generate_unique_code:"core",page_entity_list:"entity",get_entity:"entity",page_form_directories:"form",page_form_list:"form",get_form:"form",get_form_outline:"form",get_form_fragment:"form",patch_form:"form",save_form:"form",page_model_logic_directories:"logic",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 sn(t){return t?Ce.find(e=>e.name===t)?.alwaysOn??!1:!1}var he=class{handles=new Map;toolNames=[];progressive;constructor(e){this.progressive=e}registerAll(e,r){for(let i of r){let n=e.registerTool(i.name,i.config,i.handler);this.handles.set(i.name,n),this.toolNames.push(i.name);let o=ce[i.name];this.progressive&&!sn(o)&&n.disable()}}activate(e,r=!1){let i=this.toolNames.filter(n=>ce[n]===e);for(let n of i){let o=this.handles.get(n);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=>ce[i]===e);return r.length===0?!1:r.every(i=>this.handles.get(i)?.enabled??!1)}status(){return Ce.map(e=>{let r=this.toolNames.filter(i=>ce[i]===e.name).map(i=>{let n=this.handles.get(i);return{name:i,description:n?.description??"",active:n?.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=Ce.find(n=>n.name===e);if(!r)return null;let i=this.toolNames.filter(n=>ce[n]===e).map(n=>{let o=this.handles.get(n);return{name:n,description:o?.description??"",active:o?.enabled??!1}});return{name:e,title:r.title,tools:i}}};import{z as P}from"zod";function I(t){let e=t;if(e?.response?.data!=null)try{return JSON.stringify(e.response.data)}catch{return String(e.response.data)}return t instanceof Error?t.message:String(t)}function F(t){return{content:[{type:"text",text:JSON.stringify(t)}],structuredContent:t}}function E(t){return{isError:!0,content:[{type:"text",text:I(t)}]}}var Xe=P.enum(["core","entity","form","logic","function","h5"]),re=32*1024,Fe=160,De="\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 et(t){return t.length<=Fe?t:`${t.slice(0,Fe)}\u2026(\u7701\u7565 ${t.length-Fe} \u5B57\u7B26)`}function ln(t){let e=(a,u)=>JSON.stringify({progressive:t.progressive,domains:a,focus:u}).length;if(e(t.domains,t.focus)<=re)return{...t,truncated:!1};let r=(a,u)=>a.map(c=>({...c,description:u(c.description)})),i=t.domains.map(a=>({...a,tools:r(a.tools,et)})),n=t.focus?{...t.focus,tools:r(t.focus.tools,et)}:null;if(e(i,n)<=re)return{progressive:t.progressive,domains:i,focus:n,truncated:!0,note:`catalog \u8FD4\u56DE\u4F53\u8D85\u8FC7 ${re} \u5B57\u7B26\u4E0A\u9650\uFF0C\u5DF2\u622A\u65AD\u5DE5\u5177\u63CF\u8FF0\u3002${De}`};let o=i.map(a=>({...a,tools:r(a.tools,()=>"")})),s=n?{...n,tools:r(n.tools,()=>"")}:null;return e(o,s)<=re?{progressive:t.progressive,domains:o,focus:s,truncated:!0,note:`catalog \u8FD4\u56DE\u4F53\u8D85\u8FC7 ${re} \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${De}`}:{progressive:t.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 ${re} \u5B57\u7B26\u4E0A\u9650\uFF0C\u5DF2\u4E22\u5F03\u5DE5\u5177\u6E05\u5355\u3002${De}`}}function tt(t){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:Xe.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 n=i?.domain??void 0,o=n?t.focus(n):null;return F(ln({progressive:t.isProgressive(),domains:t.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:Xe.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 n=i?.domain??"core",o=i?.deactivate===!0,s=t.activate(n,o),a=t.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 F({domain:n,deactivated:o,tools:s,progressive:t.isProgressive(),note:a})}};return[e,r]}var T='\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',oe="\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",_e="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",Ie="\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",q="\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",ue='\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 y}from"zod";function nt(t){return C({url:"/bizserv/bizmodel/pageModelLogicList",method:"post",data:t,type:"tenant"})}function rt(t){return C({url:"/bizserv/bizmodel/pageList",method:"post",data:t,type:"tenant"})}function J(t){return C({url:"/bizserv/bizmodel/getModelLogic",method:"post",data:t,type:"tenant"})}function we(t){return C({url:"/bizserv/bizmodel/saveModelLogic",method:"post",data:{...t,overwrite:!1},type:"tenant"})}import{z as d}from"zod";var $e=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()),an=d.array($e),it=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:an.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()),ot=d.array(it),cn=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())),Le=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()),un=d.object({bindcols:d.array(Le).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()),Ee={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:ot.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:cn.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:ot.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:un.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")},st=d.looseObject(Ee),lt=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:it.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:$e.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:$e.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:Le.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:Le.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 at=[{name:"page_model_logic_directories",config:{title:"\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u76EE\u5F55",description:`\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u76EE\u5F55\uFF08\u4E1A\u52A1\u6A21\u578B\u76EE\u5F55 / ModelDirectory\uFF09\u3002\u8FD4\u56DE\u5404\u4E1A\u52A1\u6A21\u578B\u76EE\u5F55\u9879\uFF0C\u6BCF\u9879\u542B modelcode\uFF08\u5373 modellogic \u4E2D\u7684 modelcode\uFF0C\u67E5\u67D0\u76EE\u5F55\u4E0B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u7528\u7684\u7F16\u7801\uFF09\u3001modelname\uFF08\u76EE\u5F55\u540D\uFF09\u3001metamodelcode\u3001directorytypecode\uFF08\u7236\u76EE\u5F55\u7F16\u7801\uFF09\u7B49\u3002\n\n\u53EF\u6309 modelname \u6A21\u7CCA\u641C\u7D22\uFF0C\u6216\u4F20\u5165 directorytypecode \u67E5\u8BE2\u67D0\u76EE\u5F55\u4E0B\u7684\u5B50\u76EE\u5F55\uFF08\u9ED8\u8BA4 rootNode \u67E5\u4E00\u7EA7\u76EE\u5F55\uFF09\u3002\n\n${T}\n${oe}`,inputSchema:{modelname:y.string().optional().describe("\u4E1A\u52A1\u6A21\u578B\u540D\u6A21\u7CCA\u5339\u914D\uFF0C\u53EF\u7A7A\uFF1B\u4E0D\u4F20\u5219\u8FD4\u56DE\u8BE5\u76EE\u5F55\u4E0B\u7684\u5168\u90E8"),directorytypecode:y.string().optional().describe('\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF1A\u56FA\u5B9A\u4F20 "rootNode" \u67E5\u4E00\u7EA7\u76EE\u5F55\uFF1B\u4F20\u5165\u5177\u4F53\u76EE\u5F55\u7684 modelcode \u53EF\u67E5\u5176\u4E0B\u7684\u5B50\u76EE\u5F55\uFF1B\u7701\u7565\u9ED8\u8BA4 "rootNode"'),dddlayer:y.string().optional().describe("\u76EE\u5F55\u5C42\u7EA7\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u4E00\u7EA7\u76EE\u5F55\uFF08\u9ED8\u8BA4\uFF09\uFF1B\u7701\u7565\u9ED8\u8BA4 1"),page:y.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:y.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:y.array(y.object({modeldescr:y.string().optional().nullable().describe("\u4E1A\u52A1\u6A21\u578B\u7684\u63CF\u8FF0\u8BF4\u660E"),createtime:y.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:y.union([y.string(),y.number(),y.null()]).optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801"),dddlayer:y.coerce.number().optional().nullable().describe("\u76EE\u5F55\u5C42\u7EA7\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u4E00\u7EA7\u76EE\u5F55"),modelname:y.string().optional().nullable().describe("\u4E1A\u52A1\u6A21\u578B\u540D\uFF08\u6240\u5C5E\u76EE\u5F55\u540D\uFF09"),directorytypecode:y.string().optional().nullable().describe("\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF08\u7236\u76EE\u5F55\u7684 modelcode\uFF1B\u4E00\u7EA7\u76EE\u5F55\u5176\u7236\u4E3A rootNode\uFF09"),metamodelcode:y.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),classname:y.string().optional().nullable().describe("\u7C7B\u540D\uFF08\u90E8\u5206\u4E1A\u52A1\u6A21\u578B\u5E26 classname\uFF0C\u5982 ai_base / cost\uFF09"),modelcode:y.string().describe("\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801\uFF0C\u5373 modellogic \u4E2D\u7684 modelcode\uFF0C\u67E5\u67D0\u76EE\u5F55\u4E0B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u7528\u5230\u5B83"),marktype:y.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),tablename:y.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u90E8\u5206\u4E1A\u52A1\u6A21\u578B\u4E3A\u7A7A\uFF09"),updatetime:y.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountname:y.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),createaccountname:y.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),seq:y.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:y.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),updateaccountcode:y.union([y.string(),y.number(),y.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801")}).catchall(y.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:y.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:y.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:y.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:y.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{modelname:e="",directorytypecode:r="rootNode",dddlayer:i="1",page:n=1,rows:o=999}=t;try{let s=await rt({dddlayer:Number(i)||1,modelname:e,directorytypecode:r,page:Number(n)||1,rows:Number(o)||999,centercode:""});return F(s.resp_data)}catch(s){return E(s)}}},{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${T}\n${oe}`,inputSchema:{keys:y.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:y.string().optional().describe("\u5B8C\u6574 JSON (\u5185\u542B\u4EE3\u7801) \u4E2D\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u5339\u914D"),page:y.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:y.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updateopname:y.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),updatetimestart:y.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:y.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:y.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:y.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:y.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:y.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:y.array(y.object({actiontype:y.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:y.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:y.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801"),modelname:y.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u540D"),modellogiccode:y.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modellogicname:y.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),metamodelcode:y.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modellogiccode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),execmode:y.coerce.number().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),functionname:y.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:y.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:y.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),marktype:y.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),updatetime:y.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountname:y.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),createaccountname:y.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),seq:y.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:y.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),confsource:y.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),updateaccountcode:y.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801")}).catchall(y.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:y.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:y.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:y.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:y.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keys:e="",keywords:r="",page:i=1,rows:n=20,updateopname:o="",updatetimestart:s="",updatetimeend:a="",actiontype:u="",actioncategory:c="",tenantdbname:m="",jobstatus:b=null}=t;try{let h=await nt({actioncategory:c,actiontype:u,centercode:"",directorytypecode:"rootNode",jobstatus:b,keys:e,keywords:r,modelcode:"rootNode",page:Number(i)||1,rows:Number(n)||20,tenantdbname:m,updateopname:o,updatetimeend:a,updatetimestart:s});return F(h.resp_data)}catch(h){return E(h)}}},{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${T}\n${oe}\n${_e}`,inputSchema:{modellogiccode:y.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801")},outputSchema:Ee,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{modellogiccode:e}=t;try{let r=await J({modellogiccode:e});return F(r.resp_data)}catch(r){return E(r)}}}];import{z as R}from"zod";import{z as Re}from"zod";var Q=Re.object({committype:Re.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:Re.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:Re.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 W(t){return{committype:t.committype,committypetext:t.committypetext,msgbody:t.msgbody??""}}function Z(t,e="YYYY-MM-DD HH:mm:ss"){if(isNaN(t.getTime()))throw new Error("Invalid date provided");let r={YYYY:t.getFullYear().toString(),YY:t.getFullYear().toString().slice(-2),MM:String(t.getMonth()+1).padStart(2,"0"),M:String(t.getMonth()+1),DD:String(t.getDate()).padStart(2,"0"),D:String(t.getDate()),HH:String(t.getHours()).padStart(2,"0"),H:String(t.getHours()),mm:String(t.getMinutes()).padStart(2,"0"),m:String(t.getMinutes()),ss:String(t.getSeconds()).padStart(2,"0"),s:String(t.getSeconds()),SSS:String(t.getMilliseconds()).padStart(3,"0")},i=Object.keys(r).sort((o,s)=>s.length-o.length),n=e;for(let o of i)n=n.replace(new RegExp(o,"g"),r[o]);return n}function Ae(t,e){let r=[],i=[];if(e==="exact"){for(let n=0;n<t.length;n++)r.push(t[n]),i.push(n);return{text:r.join(""),map:i}}for(let n=0;n<t.length;n++){let o=t[n];if(o==="\r"){r.push(`\n`),i.push(n),t[n+1]===`\n`&&n++;continue}if(o===" "||o===" "){let s=n;for(;s<t.length&&(t[s]===" "||t[s]===" ");)s++;if(s>=t.length||t[s]===`\n`||t[s]==="\r"){n=s-1;continue}r.push(o),i.push(n);continue}r.push(o),i.push(n)}return{text:r.join(""),map:i}}function Y(t,e="normalized"){return Ae(t,e).text}function Te(t){return t.replace(/\r\n?/g,`\n`)}function Me(t,e){let r=1,i=Math.min(e,t.length);for(let n=0;n<i;n++)t[n]===`\n`&&r++;return r}function dn(t,e,r="normalized"){if(e.length===0)return[];let i=Ae(t,r),n=Ae(e,r);if(n.text.length===0)return[];let o=[],s=0;for(;;){let a=i.text.indexOf(n.text,s);if(a===-1)break;let u=i.map[a],c=i.map[a+n.text.length-1]+1;o.push({startOffset:u,endOffset:c,startLine:Me(t,u),endLine:Me(t,Math.max(c-1,0))}),s=a+n.text.length}return o}function ct(t){let e=new Map;if(t.length<2)return t.length===1&&e.set(t,1),e;for(let r=0;r<t.length-1;r++){let i=t.slice(r,r+2);e.set(i,(e.get(i)??0)+1)}return e}function pn(t,e){if(t.size===0&&e.size===0)return 1;if(t.size===0||e.size===0)return 0;let r=0,[i,n]=t.size<=e.size?[t,e]:[e,t];for(let[s,a]of i){let u=n.get(s);u&&(r+=Math.min(a,u))}let o=0;for(let s of t.values())o+=s;for(let s of e.values())o+=s;return o===0?0:2*r/o}function mn(t,e,r=3){let i=Te(t).split(`\n`),n=Te(e).split(`\n`);if(i.length===0||n.length===0)return[];let o=n.map(m=>m.trim()).join(`\n`),s=ct(o),a=i.map(m=>m.trim()),u=new Map,c=new Set([n.length-1,n.length,n.length+1]);for(let m of c)if(!(m<1))for(let b=0;b+m<=i.length;b++){let h=a.slice(b,b+m).join(`\n`),_=pn(ct(h),s);if(_<=.3)continue;let x=u.get(b);(!x||_>x.score)&&u.set(b,{score:_,preview:i.slice(b,b+m).join(`\n`).slice(0,120)})}return Array.from(u.entries()).map(([m,b])=>({startLine:m+1,score:Math.round(b.score*100)/100,preview:b.preview})).sort((m,b)=>b.score-m.score).slice(0,r)}function gn(t){let e=(t.match(/\r\n/g)??[]).length,r=(t.match(/\n/g)??[]).length-e;return e>r?`\r\n`:`\n`}function ut(t,e){let r=gn(e);return t.replace(/\r\n?|\n/g,r)}var ie=40;function bn(t,e,r,i=3){let n=Te(t).split(`\n`),o=[],s=e.slice().sort((a,u)=>a.startOffset-u.startOffset);for(let a of s){let u=Math.max(1,a.startLine-i),c=Math.min(n.length,a.endLine+i),m=t.slice(a.startOffset,a.endOffset).split(`\n`).map(f=>f.replace(/\r$/,"")),b=r.split(`\n`),h=m.length,_=b.length,w=[["@@",`-${a.startLine},${h}`,`+${a.startLine},${_}`,"@@"].join(" ")];for(let f=u;f<a.startLine;f++)w.push(` ${n[f-1]}`);for(let f of m.slice(0,ie))w.push(`-${f}`);h>ie&&w.push(`... \u7701\u7565 ${h-ie} \u884C`);for(let f of b.slice(0,ie))w.push(`+${f}`);_>ie&&w.push(`... \u7701\u7565 ${_-ie} \u884C`);for(let f=a.endLine+1;f<=c;f++)w.push(` ${n[f-1]}`);o.push(w.join(`\n`))}return o.join(`\n`)}function ke(t,e,r={}){let i=r.contextLines??3,n=r.topN??3,o=t.slice(),s=[],a=!1;for(let u=0;u<e.length;u++){let c=e[u],m=c.operationIndex??0,b=()=>({index:u,label:c.label??null,status:"FAILED",errorCode:"OK",message:null,operationIndex:m,matchCount:0,replacedCount:0,range:null,suggestions:null,dependentOnFailedOp:a,hunk:null}),h=(D,H,U={})=>{s.push({...b(),status:"FAILED",errorCode:D,message:H,...U}),a=!0};if(!Number.isInteger(m)||m<0||m>=o.length){h("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(c.rewrite!==!0&&(typeof c.oldString!="string"||c.oldString.length===0)){h("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(c.replaceAll===!0&&c.occurrence!=null){h("INVALID_PARAMS","replaceAll \u4E0E occurrence \u4E92\u65A5\uFF0C\u53EA\u80FD\u4E8C\u9009\u4E00");continue}if(c.rewrite===!0){if(typeof c.newString!="string"){h("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],H=ut(c.newString,D),U=Me(D,D.length);o[m]=H,s.push({...b(),status:"OK",errorCode:"OK",matchCount:1,replacedCount:1,range:{startOffset:0,endOffset:D.length,startLine:1,endLine:U},hunk:`\u6574\u4EFD\u66FF\u6362\uFF1A${D.length} \u2192 ${H.length} \u5B57\u7B26\uFF08rewrite \u6A21\u5F0F\uFF0C\u672A\u56DE\u663E\u65E7\u5168\u6587\uFF09`});continue}let _=c.matchMode??"normalized",x=o[m],w=dn(x,c.oldString,_);if(w.length===0){h("NOT_FOUND",`oldString \u5728 operation[${m}] \u7684\u811A\u672C\u4E2D\u672A\u5339\u914D\u5230\u4EFB\u4F55\u5185\u5BB9\uFF08matchMode=${_}\uFF09`,{suggestions:mn(x,c.oldString,n)});continue}let f;if(c.replaceAll===!0)f=w;else if(c.occurrence!=null){if(!Number.isInteger(c.occurrence)||c.occurrence<1||c.occurrence>w.length){h("OCCURRENCE_OUT_OF_RANGE",`occurrence=${c.occurrence} \u8D8A\u754C\uFF0C\u5B9E\u9645\u5339\u914D\u6570\u4E3A ${w.length}`,{matchCount:w.length});continue}f=[w[c.occurrence-1]]}else if(w.length>1){let D=w.map(H=>`\u7B2C ${H.startLine}~${H.endLine} \u884C`).join("\u3001");h("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 f=w;let O=ut(c.newString,x),L=x;for(let D=f.length-1;D>=0;D--)L=L.slice(0,f[D].startOffset)+O+L.slice(f[D].endOffset);let j=bn(x,f,O,i);o[m]=L,s.push({...b(),status:"OK",errorCode:"OK",matchCount:w.length,replacedCount:f.length,range:f[0],hunk:j})}return{scripts:o,results:s,ok:s.length>0&&s.every(u=>u.status==="OK")}}async function dt(t,e){e.committype==="saverecord"&&(e.msgbody=Z(new Date,"YYYY-MM-DD HH:mm")),t.message=JSON.stringify(e);try{return(await we(t)).resp_data}catch(r){return I(r)}}function se(t,e){return(e==="input"?t.input:t.output)??[]}function de(t){return t.actioncategory!=null&&String(t.actioncategory)!=="5"?null:(t.bindjson==null&&(t.bindjson={modelcode:t.modelcode}),t.bindjson.bindcols==null&&(t.bindjson.bindcols=[]),t.bindjson.bindcols)}function X(t){let e=M(t.field)?t.field:void 0,r=M(t.column)?t.column:void 0;return{fieldKey:e,colKey:r}}function G(t,e,r){return e!==void 0&&t?.field===e||r!==void 0&&e===void 0&&t?.column===r}function M(t){return t==null?!1:typeof t=="string"?t.trim().length>0:!0}async function fn(t,e,r){let i=(o={})=>({index:r,op:e.op,status:"OK",errorCode:"OK",message:null,...o}),n=(o,s,a={})=>({index:r,op:e.op,status:"FAILED",errorCode:o,message:s,...a});switch(e.op){case"add_param":{let o=se(t,e.target);if(M(e.param.name)&&o.some(a=>a?.name===e.param.name))return n("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"?t.input=o:t.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=se(t,e.target),s=o.filter(u=>u?.name===e.name);if(s.length===0)return n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`);if(s.length>1)return n("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(u=>u?.name===e.name);return o.splice(a,1),e.target==="input"?t.input=o:t.output=o,i({message:`\u5DF2\u4ECE ${e.target} \u79FB\u9664\u53C2\u6570 ${e.name}`})}case"set_param_attrs":{let s=se(t,e.target).filter(a=>a?.name===e.name);return s.length===0?n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`):s.length>1?n("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=se(t,e.target).filter(_=>_?.name===e.paramName);if(s.length===0)return n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(s.length>1)return n("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let a=s[0],u=a.properties??(a.properties=[]),c=M(e.property.name)?e.property.name:void 0,m=M(e.property.propertycode)?e.property.propertycode:void 0,b=u.find(_=>c!==void 0&&_?.name===c||m!==void 0&&_?.propertycode===m);if(b){let _=c!==void 0&&b?.name===c?`name=${c}`:`propertycode=${m}`;return n("DUP_NAME",`\u53C2\u6570 ${e.paramName} \u4E2D\u5DF2\u5B58\u5728 ${_} \u7684\u5C5E\u6027\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`)}let h=e.position??u.length;return u.splice(h,0,e.property),i({message:`\u5DF2\u5728 ${e.target}.${e.paramName} \u7684 position=${h} \u8FFD\u52A0\u5C5E\u6027 ${e.property.name??e.property.propertycode??"(\u672A\u547D\u540D)"}`})}case"remove_property":{let o=M(e.propertyName)?e.propertyName:void 0,s=M(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&s===void 0)return n("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 u=se(t,e.target).filter(x=>x?.name===e.paramName);if(u.length===0)return n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(u.length>1)return n("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${u.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let m=u[0].properties??[],b=x=>o!==void 0&&x?.name===o||s!==void 0&&x?.propertycode===s,h=m.filter(b);if(h.length===0)return n("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(h.length>1)return n("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${h.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let _=m.findIndex(b);return m.splice(_,1),i({message:`\u5DF2\u4ECE ${e.target}.${e.paramName} \u79FB\u9664\u5C5E\u6027 ${e.propertyName??e.propertyCode}`})}case"replace_property":{let o=M(e.propertyName)?e.propertyName:void 0,s=M(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&s===void 0)return n("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 u=se(t,e.target).filter(x=>x?.name===e.paramName);if(u.length===0)return n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(u.length>1)return n("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${u.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let m=u[0].properties??[],b=x=>o!==void 0&&x?.name===o||s!==void 0&&x?.propertycode===s,h=m.filter(b);if(h.length===0)return n("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(h.length>1)return n("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${h.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let _=m.findIndex(b);return m[_]=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?n("INVALID_PARAMS",`set_meta \u4E0D\u80FD\u4FEE\u6539 ${o.join("/")}\uFF0C\u8BF7\u4F7F\u7528\u5BF9\u5E94\u7684 param/property \u7C7B op`):(Object.assign(t,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=de(t);if(o===null)return n("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}=X(e.column);if(s!==void 0&&o.some(c=>c?.field===s))return n("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(c=>c?.column===a))return n("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 column=${a} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);let u=e.position??o.length;return o.splice(u,0,e.column),i({message:`\u5DF2\u5728 bindcols \u7684 position=${u} \u8FFD\u52A0\u5BFC\u51FA\u5217 ${s??a??"(\u672A\u547D\u540D)"}`})}case"remove_export_column":{let{fieldKey:o,colKey:s}=X(e);if(o===void 0&&s===void 0)return n("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=de(t);if(a===null)return n("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 u=a.filter(m=>G(m,o,s));if(u.length===0)return n("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(u.length>1)return n("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${u.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00\uFF08field/column \u7EC4\u5408\u4E0D\u8DB3\u4EE5\u552F\u4E00\u5B9A\u4F4D\uFF09`);let c=a.findIndex(m=>G(m,o,s));return a.splice(c,1),i({message:`\u5DF2\u4ECE bindcols \u79FB\u9664\u5BFC\u51FA\u5217 ${o??s}`})}case"replace_export_column":{let{fieldKey:o,colKey:s}=X(e);if(o===void 0&&s===void 0)return n("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=de(t);if(a===null)return n("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 u=a.filter(m=>G(m,o,s));if(u.length===0)return n("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(u.length>1)return n("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${u.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let c=a.findIndex(m=>G(m,o,s));return a[c]=e.newColumn,i({message:`\u5DF2\u5728 bindcols \u66FF\u6362\u5BFC\u51FA\u5217 ${o??s}`})}case"set_export_column_attrs":{let{fieldKey:o,colKey:s}=X(e);if(o===void 0&&s===void 0)return n("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=de(t);if(a===null)return n("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 u=a.filter(c=>G(c,o,s));return u.length===0?n("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217"):u.length>1?n("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${u.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`):(Object.assign(u[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(de(t)===null)return n("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 n("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=t.bindjson;return s?(Object.assign(s,e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A bindjson \u9876\u5C42\u5B57\u6BB5`})):n("INVALID_PARAMS","bindjson \u7F3A\u5931\uFF0C\u65E0\u6CD5\u6267\u884C set_bind_meta")}default:return n("OP_ERROR",`\u672A\u77E5 op \u7C7B\u578B\uFF1A${e.op}`)}}function yn(t){let e=t.map(i=>`ops[${i.index}] ${i.op} (${i.status}): ${i.message??""}`).join(`\n`),r=e.split(`\n`);return r.length<=xe?e:`${r.slice(0,xe).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${r.length} \u884C\uFF09`}function hn(t,e){let r=[],i=n=>(n==="input"?t.input:t.output)??[];for(let n=0;n<e.length;n++){let o=e[n];switch(o.op){case"set_meta":for(let[s,a]of Object.entries(o.patch))JSON.stringify(t[s])!==JSON.stringify(a)&&r.push(`ops[${n}] set_meta.${s} \u672A\u751F\u6548`);break;case"add_param":{i(o.target).some(a=>a?.name===o.param.name)||r.push(`ops[${n}] add_param \u53C2\u6570\u672A\u8FFD\u52A0`);break}case"remove_param":{i(o.target).some(a=>a?.name===o.name)&&r.push(`ops[${n}] remove_param \u53C2\u6570\u4ECD\u5B58\u5728`);break}case"set_param_attrs":{let a=i(o.target).find(u=>u?.name===o.name);if(!a){r.push(`ops[${n}] set_param_attrs \u53C2\u6570\u6D88\u5931`);break}for(let[u,c]of Object.entries(o.patch))JSON.stringify(a[u])!==JSON.stringify(c)&&r.push(`ops[${n}] set_param_attrs.${u} \u672A\u751F\u6548`);break}case"add_property":{let a=i(o.target).find(h=>h?.name===o.paramName);if(!a){r.push(`ops[${n}] add_property \u53C2\u6570\u6D88\u5931`);break}let u=a.properties??[],c=M(o.property.name)?o.property.name:void 0,m=M(o.property.propertycode)?o.property.propertycode:void 0;u.some(h=>c!==void 0&&h?.name===c||m!==void 0&&h?.propertycode===m)||r.push(`ops[${n}] add_property \u5C5E\u6027\u672A\u8FFD\u52A0`);break}case"remove_property":{let a=i(o.target).find(h=>h?.name===o.paramName);if(!a){r.push(`ops[${n}] remove_property \u53C2\u6570\u6D88\u5931`);break}let u=a.properties??[],c=M(o.propertyName)?o.propertyName:void 0,m=M(o.propertyCode)?o.propertyCode:void 0,b=h=>c!==void 0&&h?.name===c||m!==void 0&&h?.propertycode===m;u.some(b)&&r.push(`ops[${n}] remove_property \u5C5E\u6027\u4ECD\u5B58\u5728`);break}case"replace_property":{let a=i(o.target).find(_=>_?.name===o.paramName);if(!a){r.push(`ops[${n}] replace_property \u53C2\u6570\u6D88\u5931`);break}let u=a.properties??[],c=M(o.propertyName)?o.propertyName:void 0,m=M(o.propertyCode)?o.propertyCode:void 0,b=_=>c!==void 0&&_?.name===c||m!==void 0&&_?.propertycode===m,h=u.find(b);if(!h){r.push(`ops[${n}] replace_property \u5C5E\u6027\u6D88\u5931`);break}for(let[_,x]of Object.entries(o.property))JSON.stringify(h[_])!==JSON.stringify(x)&&r.push(`ops[${n}] replace_property.${_} \u672A\u751F\u6548`);break}case"add_export_column":{let s=t.bindjson?.bindcols??[],a=M(o.column.field)?o.column.field:void 0,u=M(o.column.column)?o.column.column:void 0;s.some(m=>G(m,a,u))||r.push(`ops[${n}] add_export_column \u5217\u672A\u8FFD\u52A0`);break}case"remove_export_column":{let s=t.bindjson?.bindcols??[],{fieldKey:a,colKey:u}=X(o);s.some(c=>G(c,a,u))&&r.push(`ops[${n}] remove_export_column \u5217\u4ECD\u5B58\u5728`);break}case"replace_export_column":{let s=t.bindjson?.bindcols??[],{fieldKey:a,colKey:u}=X(o),c=s.find(m=>G(m,a,u));if(!c){r.push(`ops[${n}] replace_export_column \u5217\u6D88\u5931`);break}for(let[m,b]of Object.entries(o.newColumn))JSON.stringify(c[m])!==JSON.stringify(b)&&r.push(`ops[${n}] replace_export_column.${m} \u672A\u751F\u6548`);break}case"set_export_column_attrs":{let s=t.bindjson?.bindcols??[],{fieldKey:a,colKey:u}=X(o),c=s.find(m=>G(m,a,u));if(!c){r.push(`ops[${n}] set_export_column_attrs \u5217\u6D88\u5931`);break}for(let[m,b]of Object.entries(o.patch))JSON.stringify(c[m])!==JSON.stringify(b)&&r.push(`ops[${n}] set_export_column_attrs.${m} \u672A\u751F\u6548`);break}case"set_bind_meta":{let s=t.bindjson;if(!s){r.push(`ops[${n}] set_bind_meta bindjson \u672A\u751F\u6548`);break}for(let[a,u]of Object.entries(o.patch))JSON.stringify(s[a])!==JSON.stringify(u)&&r.push(`ops[${n}] set_bind_meta.${a} \u672A\u751F\u6548`);break}}}return{verified:r.length===0,problems:r}}async function pt(t,e,r,i={}){let n=i.dryRun??!1,o=i.verify??!0,s=(w,f)=>({ok:!1,applied:!1,verified:null,errorCode:w,message:f,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 J({modellogiccode:t})).resp_data}catch(w){return s("FETCH_FAILED",I(w))}if(!a)return s("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${t} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);let u=structuredClone(a),c=[],m=!1;for(let w=0;w<e.length;w++)try{let f=await fn(u,e[w],w);c.push(f),f.status==="FAILED"&&(m=!0)}catch(f){c.push({index:w,op:e[w].op,status:"FAILED",errorCode:"OP_ERROR",message:I(f)}),m=!0}let b=yn(c);if(m){let w=c.filter(f=>f.status==="FAILED").map(f=>f.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${c.filter(f=>f.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:b,ops:c}}if(n)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:b,ops:c};r.committype==="saverecord"&&(r.msgbody=Z(new Date,"YYYY-MM-DD HH:mm")),u.message=JSON.stringify(r);let h;try{let w=await we(u);h=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:I(w),diff:b,ops:c}}let _=null,x=h;if(o)try{let f=(await J({modellogiccode:t})).resp_data;if(!f)_=!1,x=`${h} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let O=hn(f,e);_=O.verified,O.verified||(x=`${h} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${O.problems.join("\uFF1B")}`)}}catch(w){_=!1,x=`${h} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${I(w)}`}return{ok:_===null?!0:_,applied:!0,verified:_,errorCode:_===!1?"VERIFY_FAILED":"OK",message:x,diff:b,ops:c}}var xe=150;function _n(t){let e=t.filter(n=>n.hunk).map(n=>`--- ops[${n.index}]${n.label?` (${n.label})`:""} @ operation[${n.operationIndex}]\n${n.hunk}`);if(e.length===0)return"";let r=e.join(`\n`),i=r.split(`\n`);return i.length<=xe?r:`${i.slice(0,xe).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}async function wn(t,e){e.committype==="saverecord"&&(e.msgbody=Z(new Date,"YYYY-MM-DD HH:mm")),t.message=JSON.stringify(e);try{let r=await we(t);return{ok:!0,text:typeof r?.resp_data=="string"?r.resp_data:JSON.stringify(r?.resp_data??null)}}catch(r){return{ok:!1,text:I(r)}}}async function mt(t,e,r,i={}){let n=i.contextLines??3,o=i.dryRun??!1,s=i.verify??!0,a=(O,L)=>({ok:!1,applied:!1,verified:null,errorCode:O,message:L,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 u;try{u=(await J({modellogiccode:t})).resp_data}catch(O){return a("FETCH_FAILED",I(O))}if(!u)return a("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${t} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);if(!u.operations||u.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 c=u.operations.map(O=>O.templateparams?.flycode??""),m=c.reduce((O,L)=>O+L.length,0),b=ke(c,e,{contextLines:n}),h=_n(b.results),_=b.scripts.reduce((O,L)=>O+L.length,0);if(!b.ok){let O=b.results.filter(j=>j.status==="FAILED"),L=O.map(j=>j.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${O.length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${L}]\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:_,diff:h,ops:b.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:_,diff:h,ops:b.results};for(let O=0;O<b.scripts.length;O++)if(b.scripts[O]!==c[O]){let L=u.operations[O].templateparams;u.operations[O].templateparams={...L??{},flycode:b.scripts[O]}}let x=await wn(u,r);if(!x.ok)return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:x.text,lengthBefore:m,lengthAfter:_,diff:h,ops:b.results};let w=null,f=x.text;if(s)try{let j=((await J({modellogiccode:t})).resp_data?.operations??[]).map(H=>H.templateparams?.flycode??""),D=[];b.results.forEach((H,U)=>{let A=e[U],K=j[H.operationIndex]??"",z=A.matchMode??"normalized",V=Y(K,z),le=Y(A.newString,z),ae=Y(A.oldString,z);A.newString.length>0&&!V.includes(le)&&D.push(`ops[${U}] \u7684\u65B0\u5185\u5BB9\u672A\u51FA\u73B0\u5728\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`),!le.includes(ae)&&V.includes(ae)&&D.push(`ops[${U}] \u7684 oldString \u4ECD\u7136\u5B58\u5728\u4E8E\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`)}),w=D.length===0,D.length>0&&(f=`${x.text} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${D.join("\uFF1B")}`)}catch(O){w=!1,f=`${x.text} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${I(O)}`}return{ok:w===null?!0:w,applied:!0,verified:w,errorCode:w===!1?"VERIFY_FAILED":"OK",message:f,lengthBefore:m,lengthAfter:_,diff:h,ops:b.results}}var gt=[{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${T}`,inputSchema:{logic:st.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:Q.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:R.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 t=>{let{logic:e,commitMessage:r}=t,i=W(r);try{let n=await dt(e,i);return{content:[{type:"text",text:n}],structuredContent:{result:n}}}catch(n){let o=I(n);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${T}\n${oe}\n${_e}`,inputSchema:{modellogiccode:R.string().describe("\u76EE\u6807\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:R.array(lt).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:Q.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:R.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:R.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:R.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:R.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:R.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:R.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:R.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:R.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:R.array(R.object({index:R.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:R.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:R.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:R.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801\uFF1AOK / PARAM_NOT_FOUND / PROP_NOT_FOUND / DUP_NAME / INVALID_PARAMS / OP_ERROR"),message:R.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 t=>{let{modellogiccode:e,commitMessage:r,dryRun:i=!1,verify:n=!0}=t,o=t.ops,s=W(r);try{let a=await pt(e,o,s,{dryRun:i,verify:n});return{isError:!a.ok,content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a}}catch(a){let u=I(a);return{isError:!0,content:[{type:"text",text:u}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:u,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:R.string().describe("\u8981\u4FEE\u6539\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:R.array(R.object({oldString:R.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:R.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:R.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:R.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:R.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:R.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:R.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:R.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:Q.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:R.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:R.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:R.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:R.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:R.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:R.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:R.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / NO_OPERATIONS / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:R.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),lengthBefore:R.coerce.number().describe("\u66FF\u6362\u524D\u811A\u672C\u603B\u5B57\u7B26\u6570"),lengthAfter:R.coerce.number().describe("\u66FF\u6362\u540E\u811A\u672C\u603B\u5B57\u7B26\u6570"),diff:R.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:R.array(R.object({index:R.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),label:R.string().nullable().describe("\u8C03\u7528\u65B9\u4F20\u5165\u7684\u6807\u8BC6"),status:R.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:R.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:R.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),operationIndex:R.coerce.number().describe("\u5B9E\u9645\u4F5C\u7528\u7684 operation \u4E0B\u6807"),matchCount:R.coerce.number().describe("oldString \u7684\u5339\u914D\u603B\u6570"),replacedCount:R.coerce.number().describe("\u5B9E\u9645\u66FF\u6362\u7684\u5904\u6570"),range:R.object({startOffset:R.coerce.number().describe("\u8D77\u59CB\u5B57\u7B26\u504F\u79FB"),endOffset:R.coerce.number().describe("\u7ED3\u675F\u5B57\u7B26\u504F\u79FB\uFF08\u4E0D\u542B\uFF09"),startLine:R.coerce.number().describe("\u8D77\u59CB\u884C\u53F7\uFF0C1-based"),endLine:R.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:R.array(R.object({startLine:R.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:R.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:R.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:R.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:R.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 t=>{let{modelLogicCode:e,ops:r,commitMessage:i,dryRun:n=!1,contextLines:o=3,verify:s=!0}=t,a=W(i);try{let u=await mt(e,r,a,{dryRun:n,contextLines:o,verify:s});return{isError:!u.ok,content:[{type:"text",text:JSON.stringify({ok:u.ok,applied:u.applied,verified:u.verified,errorCode:u.errorCode,message:u.message,ops:u.ops.map(c=>({index:c.index,status:c.status,errorCode:c.errorCode,message:c.message,operationIndex:c.operationIndex,matchCount:c.matchCount,replacedCount:c.replacedCount,range:c.range,suggestions:c.suggestions,dependentOnFailedOp:c.dependentOnFailedOp})),diff:u.diff})}],structuredContent:u}}catch(u){let c=I(u);return{isError:!0,content:[{type:"text",text:c}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:c,lengthBefore:0,lengthAfter:0,diff:"",ops:[]}}}}}];import{z as S}from"zod";function bt(t){return C({url:"/bizserv/biz/pageList",method:"post",data:t,type:"tenant"})}function ft(t){return C({url:"/bizserv/biz/getBizObject",method:"post",data:t,type:"tenant"})}import{z as k}from"zod";var Rn=k.array(k.object({columnname:k.string().optional().nullable().describe("\u5C5E\u6027\u5217\u7684\u5217\u540D\uFF0C\u5373\u6570\u636E\u5E93\u8868\u7684\u5B57\u6BB5\u7684\u540D\u5B57"),idxtype:k.union([k.string(),k.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:k.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:k.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),propertycategorycode:k.string().optional().nullable().describe("\u5C5E\u6027\u7C7B\u522B\u7F16\u7801"),propertycode:k.string().optional().nullable().describe("\u5C5E\u6027\u7F16\u7801\uFF0C\u552F\u4E00\u6807\u8BC6\u4E00\u4E2A\u5C5E\u6027"),propertydescr:k.string().optional().nullable().describe("\u5C5E\u6027\u63CF\u8FF0"),propertyname:k.string().optional().nullable().describe("\u5C5E\u6027\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),propertytypecode:k.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:k.union([k.string(),k.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:k.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:k.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:k.union([k.string(),k.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:k.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:k.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:k.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:k.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:k.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(k.unknown())),kn={confsource:k.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:k.union([k.string(),k.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:k.union([k.string(),k.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:k.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:k.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:k.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:k.union([k.string(),k.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:k.string().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:k.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:k.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:k.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:k.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801\u3002\u4EC5\u6570\u636E\u5B57\u5178\u5B9E\u4F53\u8FD4\u56DE"),objecttypecode:k.union([k.string(),k.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:k.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode\u3002\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),properties:Rn.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:k.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),script:k.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:k.union([k.string(),k.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:k.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:k.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u5E8F\u53F7\u3002\u4EC5\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u8FD4\u56DE"),tablename:k.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D")},yt=k.looseObject(kn);var ht=[{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${T}\n${Ie}`,inputSchema:{objectname:S.string().optional().describe("\u5B9E\u4F53\u4E2D\u6587\u540D\u3001\u5B9E\u4F53\u8868\u540D\u3001\u5B9E\u4F53 objectcode \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"),updatetimestart:S.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:S.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:S.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:S.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:S.array(S.object({confsource:S.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),createaccountcode:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:S.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:S.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),datapattern:S.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:S.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:S.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),hasoffline:S.string().optional().nullable().describe("\u5B9E\u4F53\u662F\u5426\u6709\u79BB\u7EBF\u8BBE\u7F6E\uFF0C1-\u6709\uFF1B0-\u65E0"),marktype:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:S.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C objectcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectcatgory:S.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:S.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:S.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:S.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:S.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:S.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801"),objecttypecode:S.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:S.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode"),publishstatus:S.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),status:S.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:S.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D"),updateaccountcode:S.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),updatetime:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).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 t=>{let{objectname:e="",page:r=1,rows:i=20,updatetimestart:n="",updatetimeend:o="",datapattern:s="",objecttypecode:a=""}=t;try{let u=await bt({centercode:"",directorytypecode:"rootNode",starttime:"",objectname:e,page:Number(r)||1,rows:Number(i)||20,updatetimestart:n,updatetimeend:o,datapattern:s,objecttypecode:a});return F(u.resp_data)}catch(u){return E(u)}}},{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${T}\n${Ie}`,inputSchema:{objectcode:S.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u5B9E\u4F53\u7684\u7F16\u7801")},outputSchema:yt,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{objectcode:e}=t;try{let r=await ft({objectcode:e});return F(r.resp_data)}catch(r){return E(r)}}}];import{z as l}from"zod";function _t(t){return C({url:"/bizserv/biz/getDirectorys",method:"post",data:t,type:"tenant"})}function wt(t){return C({url:"/bizserv/bizpage/pageList",method:"post",data:t,type:"tenant"})}function ee(t){return C({url:"/bizserv/bizpage/getPage",method:"post",data:t,type:"tenant"})}function je(t){let{conf:e,message:r,ui:i,edittime:n=Z(new Date,"YYYY-MM-DD HH:mm:ss"),overwrite:o=!1,clearuserconfig:s=!0}=t;return C({url:"/biserv/bizpage/saveNewPage",method:"post",data:{clearuserconfig:s,conf:e,edittime:n,message:r,overwrite:o,ui:i??e},type:"tenant"})}function Ue(t){return t?Array.isArray(t)?t.filter(Boolean):[t]:[]}function ze(t,e,r){let i=[{scope:"handlers",list:t.presenter?.handlers??[]},{scope:"initial",list:Ue(t.presenter?.initial)}],n=[];for(let o of i)if(!(r&&o.scope!==r))for(let s of o.list)s&&s.code===e&&n.push({handler:s,scope:o.scope});return n}var Rt=150;function Ot(t){t.committype==="saverecord"&&(t.msgbody=Z(new Date,"YYYY-MM-DD HH:mm"))}function Oe(t,e){if(!t)return null;if(t.code===e)return t;if(Array.isArray(t.content))for(let r of t.content){let i=Oe(r,e);if(i)return i}return null}function me(t){let e=[],r=i=>{i&&(e.push(i),Array.isArray(i.content)&&i.content.forEach(r))};return r(t.view?.body??null),Array.isArray(t.controls)&&t.controls.forEach(i=>{i&&e.push(i)}),e}function He(t,e){if(Array.isArray(t)){for(let r of t)if(r&&typeof r=="object"){if(r.code===e)return r;let i=He(r,e);if(i)return i}return null}if(t&&typeof t=="object")for(let r of Object.values(t)){let i=He(r,e);if(i)return i}return null}function Nt(t,e){if(!t?.content)return null;let r=t.content.findIndex(i=>i?.code===e);if(r>=0){let[i]=t.content.splice(r,1);return i??null}for(let i of t.content){let n=Nt(i,e);if(n)return n}return null}function kt(t,e){let r=Nt(t.view?.body??null,e);if(r)return r;if(Array.isArray(t.controls)){let i=t.controls.findIndex(n=>n?.code===e);if(i>=0){let[n]=t.controls.splice(i,1);return n??null}}return null}function xt(t){let e=new Set,r=i=>{if(i){for(let n of i.eventlist??[])n?.handler&&e.add(n.handler);Array.isArray(i.content)&&i.content.forEach(r)}};r(t.view?.body??null);for(let i of t.presenter?.handlers??[]){for(let n of i?.actions??[])n?.handler&&e.add(n.handler),n?.logiccode&&e.add(n.logiccode);for(let n of i?.eventlist??[])n?.handler&&e.add(n.handler)}for(let i of Ue(t.presenter?.initial)){for(let n of i?.actions??[])n?.handler&&e.add(n.handler),n?.logiccode&&e.add(n.logiccode);for(let n of i?.eventlist??[])n?.handler&&e.add(n.handler)}for(let i of t.presenter?.interface??[])for(let n of i?.actions??[])n?.handler&&e.add(n.handler);return e}function xn(t){return{oldString:t.oldString,newString:t.newString,replaceAll:t.replaceAll,occurrence:t.occurrence,matchMode:t.matchMode,label:t.label}}function vt(t){let e={code:t.code??null,type:t.type??null,title:t.title??null};return Array.isArray(t.content)&&t.content.length>0&&(e.children=t.content.map(vt)),e}async function St(t){let r=(await ee({code:t})).resp_data;if(!r)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let i=(()=>{let s=(a,u)=>(a??[]).map(c=>({code:c?.code??null,name:c?.name??null,desc:c?.desc??null,key:c?.key??null,condition:c?.condition??null,actionCount:c?.actions?.length??0,actionTypes:(c?.actions??[]).map(m=>m?.type??"").filter(m=>!!m),scope:u}));return[...s(r.presenter?.handlers??[],"handlers"),...s(Ue(r.presenter?.initial),"initial")]})(),n=(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:t,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?[vt(r.view.body)]:[],handlers:i,interfaces:n,businessModels:o,message:r.message??null}}async function Pt(t,e){let i=(await ee({code:t})).resp_data;if(!i)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let n,o,s,a=i.message??null;if(e.nodeCode&&(n=Oe(i.view?.body??null,e.nodeCode)??i.controls?.find(c=>c?.code===e.nodeCode)??null,n&&e.itemCode)){let c=He(n,e.itemCode);c?n=c:(n=null,a=`nodeCode=${e.nodeCode} \u4E0B\u672A\u627E\u5230 code=${e.itemCode} \u7684\u5143\u7D20`)}if(e.handlerCode){let c=ze(i,e.handlerCode,e.handlerScope);c.length===1?o=c[0].handler:c.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 u=o?.actions?o.actions.map((c,m)=>({index:m,code:c?.code??null,type:c?.type??null,scriptLen:(c?.script??"")?.length??0,conditionLen:(c?.condition??"")?.length??0,expressionLen:(c.expression??"")?.length??0})):void 0;return{code:t,node:n??void 0,handler:o??void 0,section:s??void 0,actionIndex:u,message:a}}async function On(t,e,r){let i=(o={})=>({index:r,op:e.op,status:"OK",errorCode:"OK",message:null,hunk:null,suggestions:null,...o}),n=(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 t.pageinfo={...t.pageinfo??{},...e.patch},i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5B57\u6BB5\u5230 pageinfo`});case"set_attrs":{let o=me(t).filter(u=>u.code===e.code);if(o.length===0)return n("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return n("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(([,u])=>Array.isArray(u)),a=s.length>0?`\uFF08\u6CE8\u610F\uFF1Apatch \u542B\u6570\u7EC4\u5C5E\u6027 ${s.map(([u])=>`"${u}"`).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=me(t).find(c=>c.code===e.nodeCode);if(!o)return n("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 n("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",u=s.filter(c=>c&&typeof c=="object"&&c[a]===e.itemKeyValue);return u.length===0?n("NODE_NOT_FOUND",`\u672A\u5728 ${e.nodeCode}.${e.arrayProp} \u4E2D\u627E\u5230 ${a}=${String(e.itemKeyValue)} \u7684\u5143\u7D20`):u.length>1?n("DUP_CODE",`\u5143\u7D20 ${a}=${String(e.itemKeyValue)} \u5728 ${e.nodeCode}.${e.arrayProp} \u4E2D\u51FA\u73B0 ${u.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`):(Object.assign(u[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=Oe(t.view?.body??null,e.parentCode);if(!o)return n("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=me(t).filter(a=>a.code===e.code);return o.length===0?n("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`):o.length>1?n("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):e.checkRefs!==!1&&xt(t).has(e.code)?n("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`):kt(t,e.code)?i({message:`\u5DF2\u79FB\u9664\u8282\u70B9 ${e.code}`}):n("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`)}case"move_node":{let o=me(t).filter(c=>c.code===e.code);if(o.length===0)return n("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return n("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let s=kt(t,e.code);if(!s)return n("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`);let a=Oe(t.view?.body??null,e.newParentCode);if(!a)return n("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 newParentCode=${e.newParentCode} \u7684\u7236\u8282\u70B9`);a.content||(a.content=[]);let u=e.position??a.content.length;return a.content.splice(u,0,s),i({message:`\u5DF2\u5C06 ${e.code} \u79FB\u52A8\u5230 ${e.newParentCode} \u7684 position=${u}`})}case"set_section":return t[e.section]=e.value,i({message:`\u5DF2\u6574\u6BB5\u66FF\u6362 ${e.section}`});case"replace_script":{let o=ze(t,e.handlerCode,e.scope);if(o.length===0)return n("NODE_NOT_FOUND",`\u672A\u5728 presenter\uFF08handlers \u4E0E initial\uFF09\u4E2D\u627E\u5230 handlerCode=${e.handlerCode}`);if(o.length>1)return n("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??[],u;if(e.actionCode!=null){if(u=a.find(_=>_?.code===e.actionCode),!u)return n("NODE_NOT_FOUND",`handler ${e.handlerCode} \u4E2D\u672A\u627E\u5230 actionCode=${e.actionCode}`)}else{let _=e.actionIndex??0;if(_<0||_>=a.length)return n("NO_TARGET",`actionIndex=${_} \u8D8A\u754C\uFF0Chandler ${e.handlerCode} \u5171\u6709 ${a.length} \u4E2A action`);u=a[_]}let c=e.field??"script";if(e.replacement!=null)return u[c]=e.replacement,i({message:`\u5DF2\u6574\u6BB5\u8986\u76D6 ${e.handlerCode}.actions[${e.actionIndex??0}].${c}`});if(!e.ops||e.ops.length===0)return n("INVALID_PARAMS","replace_script \u9700\u63D0\u4F9B replacement \u6216 ops\uFF08oldString\u2192newString \u6570\u7EC4\uFF09");let m=u[c]??"",b=ke([m],e.ops.map(xn),{contextLines:3}),h=b.results[0];return b.ok?(u[c]=b.scripts[0],i({message:`\u5DF2\u5C40\u90E8\u66FF\u6362 ${c}`,hunk:h?.hunk??null})):n("OPS_FAILED",h?.message??"\u811A\u672C\u66FF\u6362\u5931\u8D25",{hunk:h?.hunk??null,suggestions:h?.suggestions??null})}case"add_businessmodel":{let o=t.businessmodel??(t.businessmodel=[]),s=o.find(u=>u?.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 J({modellogiccode:e.modellogiccode})).resp_data}catch(u){return n("FETCH_FAILED",`\u83B7\u53D6\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5931\u8D25\uFF1A${I(u)}`)}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`})):n("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${e.modellogiccode} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`)}case"remove_businessmodel":{let o=t.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&&xt(t).has(e.modellogiccode)?n("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 Nn(t){let e=[];for(let n of t)n.hunk?e.push(`--- ops[${n.index}] ${n.op}\n${n.hunk}`):e.push(`ops[${n.index}] ${n.op} (${n.status}): ${n.message??""}`);let r=e.join(`\n`),i=r.split(`\n`);return i.length<=Rt?r:`${i.slice(0,Rt).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}function vn(t,e){let r=[],i=me(t),n=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,u]of Object.entries(s.patch))JSON.stringify(t.pageinfo?.[a])!==JSON.stringify(u)&&r.push(`ops[${o}] set_pageinfo.${a} \u672A\u751F\u6548`);break;case"set_attrs":{let a=i.find(u=>u.code===s.code);if(!a){r.push(`ops[${o}] set_attrs \u8282\u70B9 ${s.code} \u6D88\u5931`);break}for(let[u,c]of Object.entries(s.patch))JSON.stringify(a[u])!==JSON.stringify(c)&&r.push(`ops[${o}] set_attrs.${u} \u672A\u751F\u6548`);break}case"patch_node_array_item":{let a=i.find(b=>b.code===s.nodeCode);if(!a){r.push(`ops[${o}] patch_node_array_item \u8282\u70B9 ${s.nodeCode} \u6D88\u5931`);break}let u=a[s.arrayProp];if(!Array.isArray(u)){r.push(`ops[${o}] patch_node_array_item ${s.arrayProp} \u975E\u6570\u7EC4`);break}let c=s.itemKey??"code",m=u.find(b=>b&&typeof b=="object"&&b[c]===s.itemKeyValue);if(!m){r.push(`ops[${o}] patch_node_array_item \u5143\u7D20 ${c}=${String(s.itemKeyValue)} \u672A\u627E\u5230`);break}for(let[b,h]of Object.entries(s.patch))JSON.stringify(m[b])!==JSON.stringify(h)&&r.push(`ops[${o}] patch_node_array_item.${b} \u672A\u751F\u6548`);break}case"insert_node":n.has(s.node.code)||r.push(`ops[${o}] insert_node \u8282\u70B9\u672A\u51FA\u73B0`);break;case"remove_node":n.has(s.code)&&r.push(`ops[${o}] remove_node \u8282\u70B9\u4ECD\u5B58\u5728`);break;case"move_node":n.has(s.code)||r.push(`ops[${o}] move_node \u8282\u70B9\u6D88\u5931`);break;case"set_section":break;case"replace_script":{let a=ze(t,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 c=a[0].handler.actions??[],m=s.actionCode!=null?c.find(_=>_?.code===s.actionCode):c[s.actionIndex??0];if(!m){r.push(`ops[${o}] replace_script action \u672A\u627E\u5230`);break}let b=s.field??"script",h=m[b]??"";if(s.replacement!=null)Y(h)!==Y(s.replacement)&&r.push(`ops[${o}] replace_script \u6574\u6BB5\u8986\u76D6\u672A\u751F\u6548`);else if(s.ops)for(let _ of s.ops){let x=_.matchMode??"normalized",w=Y(h,x),f=Y(_.newString,x),O=Y(_.oldString,x);_.newString.length>0&&!w.includes(f)&&r.push(`ops[${o}] replace_script \u65B0\u5185\u5BB9\u672A\u51FA\u73B0`),!f.includes(O)&&w.includes(O)&&r.push(`ops[${o}] replace_script \u65E7\u5185\u5BB9\u4ECD\u5B58\u5728`)}break}case"add_businessmodel":{(t.businessmodel??[]).some(u=>u?.modellogiccode===s.modellogiccode)||r.push(`ops[${o}] add_businessmodel \u672A\u8FFD\u52A0`);break}case"remove_businessmodel":{(t.businessmodel??[]).some(u=>u?.modellogiccode===s.modellogiccode)&&r.push(`ops[${o}] remove_businessmodel \u672A\u79FB\u9664`);break}}}return{verified:r.length===0,problems:r}}async function Ct(t,e,r,i={}){let n=i.dryRun??!1,o=i.verify??!0,s=(f,O)=>({ok:!1,applied:!1,verified:null,errorCode:f,message:O,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 ee({code:t})).resp_data}catch(f){return s("FETCH_FAILED",I(f))}if(!a)return s("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let u=structuredClone(a),c=[],m=!1;for(let f=0;f<e.length;f++)try{let O=await On(u,e[f],f);c.push(O),O.status==="FAILED"&&(m=!0)}catch(O){c.push({index:f,op:e[f].op,status:"FAILED",errorCode:"OP_ERROR",message:I(O),hunk:null,suggestions:null}),m=!0}let b=Nn(c);if(m){let f=c.filter(O=>O.status==="FAILED").map(O=>O.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${c.filter(O=>O.status==="FAILED").length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${f}]\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:b,ops:c}}if(n)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:b,ops:c};Ot(r);let h=JSON.stringify(r),_;try{let f=await je({conf:u,message:h});_=typeof f?.resp_data=="string"?f.resp_data:JSON.stringify(f?.resp_data??null)}catch(f){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:I(f),diff:b,ops:c}}let x=null,w=_;if(o)try{let O=(await ee({code:t})).resp_data;if(!O)x=!1,w=`${_} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let L=vn(O,e);x=L.verified,L.verified||(w=`${_} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${L.problems.join("\uFF1B")}`)}}catch(f){x=!1,w=`${_} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${I(f)}`}return{ok:x===null?!0:x,applied:!0,verified:x,errorCode:x===!1?"VERIFY_FAILED":"OK",message:w,diff:b,ops:c}}async function Ft(t,e){Ot(e);let r=JSON.stringify(e);try{let i=await je({conf:t,message:r}),n=typeof i?.resp_data=="string"?i.resp_data:JSON.stringify(i?.resp_data??null);return{ok:!0,code:t.pageinfo?.code??void 0,message:n}}catch(i){return{ok:!1,code:t.pageinfo?.code??void 0,message:I(i)}}}var Ne=30,te=200;function $(t){return t==null?"":String(t)}function pe(t,e){return $(t).toLowerCase().includes(e)}function Dt(t,e={}){let r=Array.isArray(t)?t:[],i=$(e.keys).trim(),n=$(e.directorytypecode).trim(),o=$(e.parentdirectorytypecode).trim(),s=$(e.centercode).trim(),a=$(e.centername).trim(),u=$(e.marktype).trim(),c=i.toLowerCase(),m=A=>$(A.parentdirectorytypecode).trim()==="",b=o.toLowerCase()==="root",h=r.filter(A=>{if(n&&$(A.directorytypecode).trim()!==n)return!1;if(b){if(!m(A))return!1}else if(o&&$(A.parentdirectorytypecode).trim()!==o)return!1;return!(s&&$(A.centercode).trim()!==s||a&&!pe(A.centername,a.toLowerCase())||u&&$(A.marktype).trim()!==u||c&&!(pe(A.directorytypename,c)||pe(A.directoryname,c)||pe(A.centername,c)||pe(A.directorytypecode,c)))}),_=!!(c||n||o||s||a),x=h,w=null;if(_||(x=h.filter(m),w=`\u63A5\u53E3\u4E0D\u652F\u6301\u5206\u9875\u4E14\u5168\u91CF ${r.length} \u6761\uFF0C\u672A\u4F20\u7B5B\u9009\u6761\u4EF6\u65F6\u5DF2\u81EA\u52A8\u6536\u655B\u4E3A\u9876\u7EA7\u76EE\u5F55 ${x.length} \u6761\uFF1B\u8BF7\u4F20 keys \u6309\u540D\u79F0\u6A21\u7CCA\u641C\u7D22\uFF0C\u6216\u7528 parentdirectorytypecode \u9010\u7EA7\u4E0B\u94BB\u3002`),c){let A=K=>{let z=$(K.directorytypename).toLowerCase(),V=$(K.directoryname).toLowerCase();return z===c||V===c?0:z.startsWith(c)||V.startsWith(c)?1:2};x=[...x].sort((K,z)=>{let V=A(K)-A(z);if(V!==0)return V;let le=$(K.directorytypename).length,ae=$(z.directorytypename).length;return le!==ae?le-ae:$(K.directorytypecode).localeCompare($(z.directorytypecode))})}else x=[...x].sort((A,K)=>{let z=$(A.directorytypecode),V=$(K.directorytypecode);return z.length!==V.length?z.length-V.length:z.localeCompare(V)});let f=Number(e.limit),O=Number.isFinite(f)&&f>0?Math.min(Math.floor(f),te):Ne,L=Number(e.offset),j=Number.isFinite(L)&&L>0?Math.floor(L):0,D=x.slice(j,j+O),H=j+D.length<x.length,U=[];return w&&U.push(w),Number.isFinite(f)&&f>te&&U.push(`limit ${f} \u8D85\u8FC7\u786C\u4E0A\u9650 ${te}\uFF0C\u5DF2\u6309 ${te} \u5904\u7406\u3002`),H&&U.push(`\u547D\u4E2D ${x.length} \u6761\uFF0C\u672C\u6B21\u8FD4\u56DE\u7B2C ${j+1}-${j+D.length} \u6761\uFF1B\u8BF7\u7F29\u5C0F keys \u8303\u56F4\u6216\u8C03\u5927 offset \u7EE7\u7EED\u7FFB\u9875\u3002`),x.length===0&&U.push(`\u672A\u547D\u4E2D\u4EFB\u4F55\u76EE\u5F55\uFF08\u63A5\u53E3\u5168\u91CF ${r.length} \u6761\uFF09\uFF1B\u8BF7\u6362\u66F4\u77ED\u7684\u5173\u952E\u8BCD\uFF0C\u6216\u4F20 parentdirectorytypecode="root" \u4ECE\u9876\u7EA7\u76EE\u5F55\u9010\u7EA7\u4E0B\u94BB\u3002`),{sourceTotal:r.length,total:x.length,returned:D.length,offset:j,limit:O,truncated:H,hint:U.length>0?U.join(" "):null,items:D.map(Sn)}}function Sn(t){let e=t.directorytypename??null,r=$(t.directoryname),i=$(t.parentdirectorytypecode).trim(),n=$(t.centername).trim(),o={directorytypecode:$(t.directorytypecode),directorytypename:e};r&&r!==$(e)&&(o.directoryname=r),i&&(o.parentdirectorytypecode=i),n&&(o.centername=n);let s=Number(t.marktype);return Number.isFinite(s)&&t.marktype!==null&&t.marktype!==void 0&&(o.marktype=s),o}var Pn=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()),Ve={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")},It=[{name:"page_form_directories",config:{title:"\u67E5\u8BE2\u8868\u5355\u6240\u5C5E\u76EE\u5F55",description:`\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u6240\u5C5E\u76EE\u5F55\uFF08getDirectorys\uFF09\uFF0C\u53D6\u56DE\u7684 directorytypecode \u5373\u8868\u5355 pageinfo.directorytypecode \u7684\u53D6\u503C\uFF0C\u4E5F\u662F\u6309\u76EE\u5F55\u7B5B\u8868\u5355\u3001\u6216\u4E3A\u8868\u5355\u6307\u5B9A\u76EE\u5F55\u65F6\u8981\u7528\u7684\u7F16\u7801\u3002\n\n\u3010\u91CD\u8981\uFF1A\u63A5\u53E3\u4E0D\u652F\u6301\u5206\u9875\uFF0C\u5168\u91CF\u6570\u767E\u6761\uFF0C\u672C\u5DE5\u5177\u5DF2\u5F3A\u5236\u6536\u655B\u3011\n- \u9ED8\u8BA4\u6700\u591A\u56DE ${Ne} \u6761\uFF0C\u786C\u4E0A\u9650 ${te} \u6761\uFF1B\n- \u672A\u4F20\u4EFB\u4F55\u7B5B\u9009\u6761\u4EF6\u65F6\uFF0C\u53EA\u56DE\u9876\u7EA7\u76EE\u5F55\uFF08\u901A\u5E38\u5341\u6761\u91CF\u7EA7\uFF09\u5E76\u5728 hint \u4E2D\u8BF4\u660E\uFF1B\n- \u547D\u4E2D\u8FC7\u591A\u65F6 truncated=true\uFF0C\u8BF7\u7F29\u5C0F keys \u6216\u7528 offset \u7FFB\u9875\u3002\n\u7528\u6CD5\u5EFA\u8BAE\uFF1A\u5148\u7528 keys \u6309\u76EE\u5F55\u540D\u6A21\u7CCA\u641C\u7D22\uFF08\u5982 keys="\u4EF7\u683C"\uFF09\uFF0C\u62FF\u5230 directorytypecode \u540E\u518D\u53BB\u67E5/\u5EFA\u8868\u5355\uFF1B\u4E5F\u53EF\u4F20 parentdirectorytypecode \u9010\u7EA7\u4E0B\u94BB\uFF08\u4F20 "root" \u53EA\u770B\u9876\u7EA7\uFF09\u3002\n\n${q}`,inputSchema:{keys:l.string().optional().describe("\u76EE\u5F55\u540D\u79F0\u6A21\u7CCA\u5339\u914D\uFF0C\u547D\u4E2D directorytypename / directoryname / centername / directorytypecode\uFF1B\u5F3A\u70C8\u5EFA\u8BAE\u4F18\u5148\u7528\u5B83\u68C0\u7D22\uFF0C\u907F\u514D\u62C9\u53D6\u5168\u91CF"),directorytypecode:l.string().optional().describe("\u76EE\u5F55\u7F16\u7801\u7CBE\u786E\u5339\u914D\uFF08\u5DF2\u77E5\u7F16\u7801\u53CD\u67E5\u540D\u79F0\u65F6\u7528\uFF09"),parentdirectorytypecode:l.string().optional().describe('\u7236\u76EE\u5F55\u7F16\u7801\u7CBE\u786E\u5339\u914D\uFF1B\u4F20 "root" \u8868\u793A\u53EA\u8981\u9876\u7EA7\u76EE\u5F55\uFF08parentdirectorytypecode \u4E3A\u7A7A\uFF09\uFF1B\u4F20\u5177\u4F53\u7F16\u7801\u5219\u53D6\u5176\u76F4\u63A5\u5B50\u76EE\u5F55'),centername:l.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u540D\u79F0\u6A21\u7CCA\u5339\u914D\uFF0C\u5982\u300C\u5BA2\u8BBF\u7BA1\u7406\u300D\u300C\u8425\u9500\u8D39\u63A7\u300D"),centercode:l.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u7F16\u7801\u7CBE\u786E\u5339\u914D"),marktype:l.string().optional().describe("\u521B\u5EFA\u6807\u8BB0\u7CBE\u786E\u5339\u914D\uFF0C\u6574\u6570\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),limit:l.string().optional().describe(`\u8FD4\u56DE\u6761\u6570\u4E0A\u9650\uFF0C\u9ED8\u8BA4 ${Ne}\uFF0C\u786C\u4E0A\u9650 ${te}`),offset:l.string().optional().describe("\u8D77\u59CB\u504F\u79FB\uFF0C\u9ED8\u8BA4 0\uFF1B\u914D\u5408 limit \u7FFB\u9875"),directorycategory:l.string().optional().describe('\u76EE\u5F55\u7C7B\u522B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A3-\u8868\u5355/\u9875\u9762\u76EE\u5F55\uFF08\u9ED8\u8BA4 "3"\uFF0C\u5373\u8868\u5355 directorytypecode \u7684\u53D6\u503C\u6765\u6E90\uFF09')},outputSchema:{sourceTotal:l.coerce.number().describe("\u63A5\u53E3\u8FD4\u56DE\u7684\u76EE\u5F55\u603B\u6570\uFF08\u7B5B\u9009\u524D\uFF0C\u4F53\u73B0\u5168\u91CF\u89C4\u6A21\uFF09"),total:l.coerce.number().describe("\u6309\u7B5B\u9009\u6761\u4EF6\u547D\u4E2D\u7684\u6761\u6570\uFF08\u622A\u65AD\u524D\uFF09"),returned:l.coerce.number().describe("\u672C\u6B21\u5B9E\u9645\u8FD4\u56DE\u6761\u6570"),offset:l.coerce.number().describe("\u672C\u6B21\u8FD4\u56DE\u7684\u8D77\u59CB\u504F\u79FB"),limit:l.coerce.number().describe("\u672C\u6B21\u751F\u6548\u7684\u8FD4\u56DE\u6761\u6570\u4E0A\u9650"),truncated:l.boolean().describe("true \u8868\u793A\u547D\u4E2D\u6570\u5927\u4E8E\u672C\u6B21\u8FD4\u56DE\uFF0C\u8FD8\u6709\u540E\u7EED"),hint:l.union([l.string(),l.null()]).describe("\u6536\u655B/\u7FFB\u9875\u63D0\u793A\uFF1Bnull \u8868\u793A\u65E0\u9700\u63D0\u793A"),items:l.array(l.object({directorytypecode:l.string().describe("\u76EE\u5F55\u7F16\u7801\uFF0C\u5373\u8868\u5355 pageinfo.directorytypecode \u7684\u53D6\u503C"),directorytypename:l.union([l.string(),l.null()]).optional().describe("\u76EE\u5F55\u540D\u79F0\uFF08\u4E1A\u52A1\u4E2D\u5FC3\u4E0B\u7684\u76EE\u5F55\u5E26\u540E\u7F00\uFF0C\u5982\u300C\u5236\u5B9A\u8BA1\u5212(\u5BA2\u8BBF\u7BA1\u7406)\u300D\uFF09"),directoryname:l.string().optional().describe("\u76EE\u5F55\u672C\u540D\uFF0C\u4EC5\u5728\u4E0E directorytypename \u4E0D\u540C\u65F6\u8FD4\u56DE"),parentdirectorytypecode:l.string().optional().describe("\u7236\u76EE\u5F55\u7F16\u7801\uFF1B\u7F3A\u5931\u5373\u9876\u7EA7\u76EE\u5F55"),centername:l.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u540D\u79F0\uFF0C\u4EC5\u4E1A\u52A1\u4E2D\u5FC3\u4E0B\u7684\u76EE\u5F55\u8FD4\u56DE"),marktype:l.coerce.number().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237")})).describe("\u76EE\u5F55\u9879\uFF08\u5DF2\u88C1\u526A\uFF0C\u4EC5\u4FDD\u7559\u5B9A\u4F4D\u6240\u9700\u5B57\u6BB5\uFF09")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keys:e,directorytypecode:r,parentdirectorytypecode:i,centername:n,centercode:o,marktype:s,limit:a,offset:u,directorycategory:c="3"}=t;try{let m=await _t({directorycategory:String(c||"3")}),b=Array.isArray(m?.resp_data)?m.resp_data:[];return F(Dt(b,{keys:e,directorytypecode:r,parentdirectorytypecode:i,centername:n,centercode:o,marktype:s,limit:a,offset:u}))}catch(m){return E(m)}}},{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${T}\n${q}`,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(Pn).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 t=>{let{status:e="",keys:r="",keywords:i="",clientcategorycode:n="",page:o=1,rows:s=20,type:a="",updateopname:u="",updatetimestart:c="",updatetimeend:m=""}=t;try{let b=await wt({centercode:"",directorytypecode:"rootNode",starttime:"",status:e,keys:r,keywords:i,clientcategorycode:n,page:Number(o)||1,rows:Number(s)||20,type:a,updateopname:u,updatetimestart:c,updatetimeend:m});return F(b.resp_data)}catch(b){return E(b)}}},{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${T}\n${q}`,inputSchema:{code:l.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:l.looseObject(Ve),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{code:e}=t;try{let r=await ee({code:e});return F(r.resp_data)}catch(r){return E(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${q}`,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 t=>{let{code:e}=t;try{let r=await St(e);return F(r)}catch(r){return E(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${q}`,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 t=>{let{code:e,nodeCode:r,itemCode:i,handlerCode:n,section:o}=t;try{let s=await Pt(e,{nodeCode:r,itemCode:i,handlerCode:n,section:o});return F(s)}catch(s){return E(s)}}}];import{z as g}from"zod";var Cn=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")})]),$t=[{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${q}`,inputSchema:{code:g.string().describe("\u76EE\u6807\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),ops:g.array(Cn).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:Q.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 t=>{let{code:e,commitMessage:r,dryRun:i=!1,verify:n=!0}=t,o=t.ops,s=W(r);try{let a=await Ct(e,o,s,{dryRun:i,verify:n});return{isError:!a.ok,content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a}}catch(a){let u=I(a);return{isError:!0,content:[{type:"text",text:u}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:u,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${q}`,inputSchema:{form:g.looseObject(Ve).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:Q.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 t=>{let{form:e,commitMessage:r}=t,i=W(r);try{let n=await Ft(e,i);return{isError:!n.ok,content:[{type:"text",text:JSON.stringify(n)}],structuredContent:n}}catch(n){let o=I(n);return{isError:!0,content:[{type:"text",text:o}],structuredContent:{ok:!1,code:void 0,message:o}}}}}];import{z as N}from"zod";function Lt(t,e){return C({url:"/api/masterserv/hpage/listH5Page",method:"post",data:t,type:"business",token:e})}function Et(t,e){return C({url:"/api/masterserv/hpage/listH5PageByOne",method:"post",data:t,type:"business",token:e})}function At(t){return C({url:"/pemission/rolepermission/account/getPreviewAccounts",method:"post",data:t,type:"tenant"})}async function Tt(){let t=ne();if(!t)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 At({pvcode:t.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(n=>setTimeout(n,800))}throw e}async function Mt(t){let e=await Tt();return Lt(t,e)}async function jt(t){let e=await Tt();return Et(t,e)}var Ht=N.object({confjson:N.union([N.string(),N.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:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF0C\u9884\u7559\u5B57\u6BB5"),pagecode:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801"),pagedescr:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u63CF\u8FF0"),pagetype:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u9875\u9762\u7C7B\u578B\uFF0C\u9884\u7559\u5B57\u6BB5"),platcreateop:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u4EBA\u59D3\u540D"),platcreatetime:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u65F6\u95F4"),platstatus:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u5E73\u53F0\u72B6\u6001"),platupdateop:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),platupdatetime:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),status:N.union([N.string(),N.number(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u72B6\u6001\uFF1B1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u6807\u9898")}).catchall(N.unknown()),Fn=Ht.omit({confjson:!0}),Dn={data:N.array(Fn).describe("\u8FD9\u4E00\u9875\u7684 H5 \u8868\u5355\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")},In=Ht.shape,Ut=[{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:N.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:N.string().optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),status:N.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),title:N.string().optional().describe("H5 \u8868\u5355\u7684\u6807\u9898\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),updateopname:N.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),page:N.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:N.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:Dn,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keywords:e="",pagecode:r="",status:i="",title:n="",updateopname:o="",page:s=1,rows:a=20}=t;try{let c=(await Mt({keywords:e,pagecode:r,status:i,title:n,updateopname:o,page:Number(s)||1,rows:Number(a)||20})).resp_data,m=Array.isArray(c?.data)?c.data.map(h=>{let _={...h};return delete _.confjson,_}):c?.data,b={...c,data:m};return F(b)}catch(u){return E(u)}}},{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:N.string().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:In,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{pagecode:e}=t;try{let r=await jt({pagecode:e});return{content:[{type:"text",text:JSON.stringify(r.resp_data)}],structuredContent:r.resp_data}}catch(r){return E(r)}}}];import{z as p}from"zod";function zt(t){return C({url:"/bizserv/bizmodel/pageList",method:"post",data:t,type:"tenant"})}function Vt(t){return C({url:"/bizserv/bizmodel/get",method:"post",data:t,type:"tenant"})}var $n=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()),Ln={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")},Kt=[{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${T}\n${ue}`,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($n).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 t=>{let{classname:e="",name:r="",modelname:i="",flycodekey:n="",page:o=1,rows:s=20}=t;try{let a=await zt({dddlayer:3,directorytypecode:"",starttime:"",classname:e,name:r,modelname:i,flycodekey:n,page:Number(o)||1,rows:Number(s)||20});return F(a.resp_data)}catch(a){return E(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${T}\n${ue}`,inputSchema:{modelcode:p.string().describe("\u51FD\u6570\u7684\u7F16\u7801")},outputSchema:p.looseObject(Ln),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{modelcode:e}=t;try{let r=await Vt({modelcode:e});return F(r.resp_data)}catch(r){return E(r)}}}];import{z as v}from"zod";function Yt(t){return C({url:"/bizserv/customfunction/list",method:"post",data:t,type:"tenant"})}var En=v.object({createtime:v.union([v.string(),v.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),creator:v.union([v.string(),v.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),dbfunctionname:v.union([v.string(),v.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D"),functioncode:v.union([v.string(),v.null()]).optional().describe("\u51FD\u6570\u552F\u4E00\u7F16\u7801"),functionname:v.union([v.string(),v.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),functionscript:v.union([v.string(),v.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u5185\u5BB9\uFF08PostgreSQL \u51FD\u6570\u4F53\uFF09"),marktype:v.union([v.string(),v.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:v.union([v.string(),v.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C functioncode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),publishstatus:v.union([v.string(),v.number()]).nullable().optional().describe("\u53D1\u5E03\u72B6\u6001\uFF0C1-\u672A\u53D1\u5E03\uFF1B2-\u5DF2\u53D1\u5E03"),remark:v.union([v.string(),v.null()]).optional().describe("\u5907\u6CE8"),status:v.union([v.string(),v.number()]).nullable().optional().describe("\u72B6\u6001\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),updatetime:v.union([v.string(),v.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updator:v.union([v.string(),v.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA")}).catchall(v.unknown()),Bt=[{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${T}\n${ue}`,inputSchema:{dbfunctionname:v.string().optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),name:v.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),pageindex:v.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),pagesize:v.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:v.array(En).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 t=>{let{dbfunctionname:e="",name:r="",pageindex:i=1,pagesize:n=20}=t;try{let o=await Yt({dbfunctionname:e,name:r,pageindex:Number(i)||1,pagesize:Number(n)||20});return F(o.resp_data)}catch(o){return E(o)}}}];import{z as ge}from"zod";function qt(t){return C({url:"/api/biz/sqlrun",method:"post",data:t,type:"business"})}var An={data:ge.array(ge.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:ge.coerce.number().nullable().optional().describe("\u67E5\u8BE2\u7ED3\u679C\u603B\u6570")},Jt=[{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:ge.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:ge.looseObject(An),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{sql:e}=t;try{let r=await qt({sql:e});return F(r.resp_data)}catch(r){return E(r)}}}];import{z as Zt}from"zod";var Ke=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),n=e>>BigInt(this.workerIdShift)&BigInt(this.maxWorkerId),o=e&BigInt(this.sequenceMask);return{timestamp:r,datacenterId:i,workerId:n,sequence:o,generateTime:new Date(Number(r))}}},Tn=1,Mn=1,jn=new Ke(Tn,Mn),Gt=()=>jn.nextId();var Qt=[{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:Zt.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:Zt.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 t=>{let{prefix:e=""}=t;try{let r=Gt().toString(),n={code:e?`${e}${r}`:r};return F(n)}catch(r){let n={error:r.message??String(r)};return{isError:!0,content:[{type:"text",text:JSON.stringify(n)}]}}}}];await We();var be=new Hn({name:"flycode-mcp",version:"1.0.0"}),Wt=(process.env.PROGRESSIVE_DISCLOSURE??"on").toLowerCase()!=="off",zn=[...at,...gt,...ht,...It,...$t,...Ut,...Kt,...Bt,...Jt,...Qt],Xt=new he(Wt);Xt.registerAll(be,zn);for(let t of tt(Xt))be.registerTool(t.name,t.config,t.handler);async function Vn(){let t=new Un;await be.connect(t),process.on("SIGINT",async()=>{await be.close(),process.exit(0)}),process.on("SIGTERM",async()=>{await be.close(),process.exit(0)}),console.error(`flycode-mcp listening on stdio (progressive disclosure: ${Wt?"on":"off"})`)}Vn().catch(t=>{console.error(t),process.exit(1)});
2
+ import{McpServer as mr}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as gr}from"@modelcontextprotocol/sdk/server/stdio.js";var Le="http://mconfig.xuantongkeji.com:51074",fn="username",yn="password",hn="tenantCode",_n="envName";function Oe(t,e){let i=process.argv.slice(2).join("&"),o=new URLSearchParams(i).get(t);if(o!==null&&o!=="")return o;if(e!==void 0)return e;throw new Error(`Missing required arg: ${t}`)}var G={username:Oe(fn),password:Oe(yn),tenantCode:Oe(hn),envName:Oe(_n)};import Rn from"axios";var nt=null;function Me(t){nt=t}function rt(){return nt}var ot=null;function it(t){ot=t}function re(){return ot}var je=Rn.create({baseURL:Le||"",timeout:2e4,headers:{"Content-Type":"application/json"}});je.interceptors.request.use(t=>{let r=t.token??rt();return r&&(t.headers=t.headers||{},t.headers.token=r),delete t.token,t});je.interceptors.response.use(t=>t.data,t=>Promise.reject(t));function F(t){let{type:e="center",...r}=t,i;switch(e){case"center":i=Le||"";break;case"tenant":case"business":{let n=re();if(!n)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"?n.conn.config:n.conn.business;break}}return je({...r,baseURL:i})}var ve="1";function st(t){return F({url:"/api/multiplat/auth/login",method:"post",data:t})}function at(){return F({url:"/api/multiplat/auth/getTenantInfo",method:"post",data:{appid:ve}})}function lt(t){return F({url:"/api/multiplat/auth/getIdeToken",method:"post",data:t})}async function ct(){let t=await st({appid:ve,username:G.username,password:G.password});if(t.code!==200)throw new Error(`Unable to login: ${t.msg}`);Me(t.data.token),console.error("flycode-mcp \u767B\u5F55\u5B8C\u6210");let r=(await at()).resp_data.find(l=>l.tenantcode===G.tenantCode),i=r?.envs.find(l=>l.envname===G.envName);if(r&&i){let l;try{l=JSON.parse(i.conn)}catch{throw new Error(`\u79DF\u6237\u73AF\u5883\u8FDE\u63A5\u4FE1\u606F\u89E3\u6790\u5931\u8D25, \u79DF\u6237\u53F7: ${G.tenantCode}, \u73AF\u5883\u540D: ${G.envName}, env.conn \u4E0D\u662F\u5408\u6CD5\u7684 JSON: ${i.conn}`)}it({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:l,envId:i.envid,envName:i.envname,tenantEnvName:i.tenantenvname})}let n=re();if(!n)throw new Error(`\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u79DF\u6237\u4FE1\u606F, \u79DF\u6237\u53F7: ${G.tenantCode}, \u73AF\u5883\u540D: ${G.envName}`);console.error("flycode-mcp \u83B7\u53D6\u79DF\u6237\u4FE1\u606F\u5B8C\u6210");let s=(await lt({appid:ve,envid:n.envId,metamodeltype:n.metaModelType,productcode:n.productCode,productversioncode:n.productVersionCode,tenantcode:n.tenantCode})).resp_data?.idetoken;if(!s)throw new Error(`\u83B7\u53D6 IDE Token \u5931\u8D25, \u79DF\u6237\u53F7: ${n.tenantCode}, \u73AF\u5883\u540D: ${n.envName}, \u8FD4\u56DE\u4F53\u4E2D\u672A\u5305\u542B\u6709\u6548\u7684 idetoken`);Me(s),console.error("flycode-mcp \u83B7\u53D6 IDE Token \u5B8C\u6210")}var He=[{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}],me={run_sql:"core",generate_unique_code:"core",page_entity_list:"entity",get_entity:"entity",page_entity_directories:"entity",create_entity:"entity",patch_entity:"entity",page_form_directories:"form",page_form_list:"form",get_form:"form",get_form_outline:"form",get_form_fragment:"form",patch_form:"form",save_form:"form",page_model_logic_directories:"logic",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 wn(t){return t?He.find(e=>e.name===t)?.alwaysOn??!1:!1}var Se=class{handles=new Map;toolNames=[];progressive;constructor(e){this.progressive=e}registerAll(e,r){for(let i of r){let n=e.registerTool(i.name,i.config,i.handler);this.handles.set(i.name,n),this.toolNames.push(i.name);let o=me[i.name];this.progressive&&!wn(o)&&n.disable()}}activate(e,r=!1){let i=this.toolNames.filter(n=>me[n]===e);for(let n of i){let o=this.handles.get(n);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=>me[i]===e);return r.length===0?!1:r.every(i=>this.handles.get(i)?.enabled??!1)}status(){return He.map(e=>{let r=this.toolNames.filter(i=>me[i]===e.name).map(i=>{let n=this.handles.get(i);return{name:i,description:n?.description??"",active:n?.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=He.find(n=>n.name===e);if(!r)return null;let i=this.toolNames.filter(n=>me[n]===e).map(n=>{let o=this.handles.get(n);return{name:n,description:o?.description??"",active:o?.enabled??!1}});return{name:e,title:r.title,tools:i}}};import{z as A}from"zod";function E(t){let e=t;if(e?.response?.data!=null)try{return JSON.stringify(e.response.data)}catch{return String(e.response.data)}return t instanceof Error?t.message:String(t)}function $(t){return{content:[{type:"text",text:JSON.stringify(t)}],structuredContent:t}}function L(t){return{isError:!0,content:[{type:"text",text:E(t)}]}}var dt=A.enum(["core","entity","form","logic","function","h5"]),oe=32*1024,Ue=160,Ye="\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 ut(t){return t.length<=Ue?t:`${t.slice(0,Ue)}\u2026(\u7701\u7565 ${t.length-Ue} \u5B57\u7B26)`}function xn(t){let e=(l,d)=>JSON.stringify({progressive:t.progressive,domains:l,focus:d}).length;if(e(t.domains,t.focus)<=oe)return{...t,truncated:!1};let r=(l,d)=>l.map(c=>({...c,description:d(c.description)})),i=t.domains.map(l=>({...l,tools:r(l.tools,ut)})),n=t.focus?{...t.focus,tools:r(t.focus.tools,ut)}:null;if(e(i,n)<=oe)return{progressive:t.progressive,domains:i,focus:n,truncated:!0,note:`catalog \u8FD4\u56DE\u4F53\u8D85\u8FC7 ${oe} \u5B57\u7B26\u4E0A\u9650\uFF0C\u5DF2\u622A\u65AD\u5DE5\u5177\u63CF\u8FF0\u3002${Ye}`};let o=i.map(l=>({...l,tools:r(l.tools,()=>"")})),s=n?{...n,tools:r(n.tools,()=>"")}:null;return e(o,s)<=oe?{progressive:t.progressive,domains:o,focus:s,truncated:!0,note:`catalog \u8FD4\u56DE\u4F53\u8D85\u8FC7 ${oe} \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${Ye}`}:{progressive:t.progressive,domains:o.map(l=>({...l,tools:[]})),focus:s?{...s,tools:[]}:null,truncated:!0,note:`catalog \u8FD4\u56DE\u4F53\u5373\u4F7F\u964D\u7EA7\u4ECD\u8D85\u8FC7 ${oe} \u5B57\u7B26\u4E0A\u9650\uFF0C\u5DF2\u4E22\u5F03\u5DE5\u5177\u6E05\u5355\u3002${Ye}`}}function pt(t){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:dt.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:A.boolean().describe("\u662F\u5426\u5904\u4E8E\u6E10\u8FDB\u5F0F\u62AB\u9732\u6A21\u5F0F"),domains:A.array(A.object({name:A.string(),title:A.string(),description:A.string(),alwaysOn:A.boolean(),active:A.boolean(),tools:A.array(A.object({name:A.string(),description:A.string(),active:A.boolean()}))})).describe("\u5168\u90E8\u57DF\u7684\u72B6\u6001\u4E0E\u5DE5\u5177\u6E05\u5355"),focus:A.object({name:A.string(),title:A.string(),tools:A.array(A.object({name:A.string(),description:A.string(),active:A.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:A.boolean().describe("\u8FD4\u56DE\u4F53\u662F\u5426\u56E0\u8D85\u8FC7\u4F53\u79EF\u786C\u4E0A\u9650\u800C\u88AB\u81EA\u52A8\u964D\u7EA7"),note:A.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 n=i?.domain??void 0,o=n?t.focus(n):null;return $(xn({progressive:t.isProgressive(),domains:t.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:dt.describe("\u8981\u542F\u7528\u6216\u6536\u8D77\u7684\u57DF\uFF1Aentity / form / logic / function / h5"),deactivate:A.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:A.string(),deactivated:A.boolean(),tools:A.array(A.string()).describe("\u53D7\u672C\u6B21\u5207\u6362\u5F71\u54CD\u7684\u5DE5\u5177\u540D\u5217\u8868"),progressive:A.boolean(),note:A.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 n=i?.domain??"core",o=i?.deactivate===!0,s=t.activate(n,o),l=t.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 $({domain:n,deactivated:o,tools:s,progressive:t.isProgressive(),note:l})}};return[e,r]}var j='\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',ie="\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",Ne="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",ee="\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",Q="\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",ge='\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 R}from"zod";function mt(t){return F({url:"/bizserv/bizmodel/pageModelLogicList",method:"post",data:t,type:"tenant"})}function gt(t){return F({url:"/bizserv/bizmodel/pageList",method:"post",data:t,type:"tenant"})}function Z(t){return F({url:"/bizserv/bizmodel/getModelLogic",method:"post",data:t,type:"tenant"})}function Pe(t){return F({url:"/bizserv/bizmodel/saveModelLogic",method:"post",data:{...t,overwrite:!1},type:"tenant"})}import{z as u}from"zod";var Ve=u.object({marktype:u.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),name:u.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u540D\u79F0\uFF0C\u4EE3\u7801\u4E2D\u7528\u6B64\u540D\u5B57\u8BBF\u95EE"),objectcode:u.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:u.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:u.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u4E2D\u6587\u540D\uFF0C\u9605\u8BFB\u53CB\u597D"),propertytypecode:u.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(u.unknown()),kn=u.array(Ve),ft=u.object({datatype:u.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:u.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),name:u.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:u.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:u.string().optional().nullable().describe("\u6B64\u53C2\u6570\u7684\u4E2D\u6587\u540D\u79F0\uFF0C\u9605\u8BFB\u53CB\u597D"),properties:kn.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:u.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(u.unknown()),bt=u.array(ft),On=u.array(u.object({dynamic:u.object({fieldblacklist:u.unknown().optional().nullable().describe("\u5B57\u6BB5\u9ED1\u540D\u5355"),fieldmap:u.unknown().optional().nullable().describe("\u5B57\u6BB5\u6620\u5C04")}).catchall(u.unknown()).optional().nullable().describe("\u52A8\u6001\u914D\u7F6E"),marktype:u.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0"),modellogiccode:u.string().describe("\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),modellogicstepcode:u.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u6B65\u9AA4\u7F16\u7801"),modellogicstepname:u.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u6B65\u9AA4\u540D\u79F0"),seq:u.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:u.string().optional().nullable().describe("\u72B6\u6001"),templateparams:u.object({flycode:u.string().optional().nullable().describe("flycode \u811A\u672C\u4EE3\u7801\u5B57\u7B26\u4E32"),sourcemap:u.string().optional().nullable().describe("\u6E90\u6620\u5C04"),tempcompiledflycode:u.string().optional().nullable().describe("\u7F16\u8BD1\u540E\u7684 flycode")}).catchall(u.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:u.string().optional().nullable().describe("\u6A21\u677F\u5F15\u7528")}).catchall(u.unknown())),ze=u.object({field:u.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:u.string().optional().nullable().describe("\u5BFC\u51FA\u540E\u7684\u5217\u6807\u9898"),width:u.string().optional().nullable().describe("\u5217\u5BBD"),type:u.string().optional().nullable().describe("\u5B57\u6BB5\u7C7B\u578B\uFF0C\u5982 string"),dynamictext:u.unknown().optional().nullable().describe("\u52A8\u6001\u6587\u672C\u914D\u7F6E")}).catchall(u.unknown()),vn=u.object({bindcols:u.array(ze).optional().nullable().describe("\u5BFC\u51FA\u7684\u5217\u5B9A\u4E49"),modelcode:u.string().describe("\u4E1A\u52A1\u6A21\u578B\u7F16\u7801"),logiccode:u.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),logicname:u.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u540D\u79F0")}).catchall(u.unknown()),Ke={actioncategory:u.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:u.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:u.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:u.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:u.string().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),executionmode:u.string().optional().nullable().describe("\u6267\u884C\u6A21\u5F0F\uFF0Cstandard-\u6807\u51C6\u6A21\u5F0F\uFF1Bstrict-\u4E25\u683C\u6A21\u5F0F"),functionname:u.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:u.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u7A7A\u5B57\u7B26\u4E32"),input:bt.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:u.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u7A7A\u5B57\u7B26\u4E32"),marktype:u.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:u.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:u.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),modellogiccode:u.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801"),modellogicname:u.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),operations:On.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:bt.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:u.object({server:u.string().optional().nullable().describe("\u5FAE\u670D\u52A1\u5730\u5740"),url:u.string().optional().nullable().describe("\u5FAE\u670D\u52A1\u8DEF\u5F84")}).catchall(u.unknown()).optional().nullable().describe("\u5FAE\u670D\u52A1\u7684 REST \u914D\u7F6E\uFF0C\u4EC5 actioncategory=2 \u5FAE\u670D\u52A1 \u65F6\u5B58\u5728"),bindjson:vn.optional().nullable().describe("\u5BFC\u51FA\u7ED1\u5B9A\u7684 Excel \u5217\u914D\u7F6E\uFF0C\u4EC5 actioncategory=5 \u5BFC\u51FA \u65F6\u5B58\u5728"),status:u.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),tenantdbcode:u.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u79DF\u6237\u6570\u636E\u5E93\u7F16\u7801"),tenantdbname:u.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:u.string().optional().nullable().describe("tenantdbname \u5BF9\u5E94\u7684 key \u503C"),uilogicscript:u.string().optional().nullable().describe("\u79BB\u7EBF\u811A\u672C\uFF0C\u4EC5\u7528\u4E8E app \u7AEF\u79BB\u7EBF\u6570\u636E\u63D0\u4EA4"),usedatarule:u.string().optional().nullable().describe("1 \u4EE3\u8868\u4F7F\u7528\u6570\u636E\u6743\u9650")},yt=u.looseObject(Ke),ht=u.discriminatedUnion("op",[u.object({op:u.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:u.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),param:ft.describe("\u8981\u8FFD\u52A0\u7684\u4E00\u6761\u8F93\u5165/\u8F93\u51FA\u53C2\u6570\uFF08\u5355\u4E2A LogicParameters \u5BF9\u8C61\uFF09"),position:u.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),u.object({op:u.literal("remove_param").describe("\u4ECE input / output \u6309 name \u5220\u9664\u6574\u6761\u53C2\u6570\uFF08\u5220\u9664\u4E00\u4E2A input / output\uFF09"),target:u.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),name:u.string().describe("\u8981\u5220\u9664\u7684\u53C2\u6570\u7684 name\uFF08\u5728 target \u5185\u552F\u4E00\uFF09")}),u.object({op:u.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:u.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),name:u.string().describe("\u76EE\u6807\u53C2\u6570\u7684 name\uFF08\u5728 target \u5185\u552F\u4E00\uFF09"),patch:u.record(u.string(),u.unknown()).describe('\u8981\u6D45\u5408\u5E76\u8FDB\u8BE5\u53C2\u6570\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u5982 { "datatype": "1", "objectname": "\u5BA2\u6237" }')}),u.object({op:u.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:u.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:u.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:u.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),u.object({op:u.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:u.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:u.string().describe("\u6240\u5C5E\u53C2\u6570\u7684 name"),propertyName:u.string().optional().describe("\u6309\u5B57\u6BB5\u8BBF\u95EE\u540D name \u5B9A\u4F4D\uFF08\u4E0E propertyCode \u4E8C\u9009\u4E00\uFF09"),propertyCode:u.string().optional().describe("\u6309\u5B57\u6BB5\u7F16\u7801 propertycode \u5B9A\u4F4D\uFF08\u4E0E propertyName \u4E8C\u9009\u4E00\uFF09")}),u.object({op:u.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:u.enum(["input","output"]).describe("\u76EE\u6807\u53C2\u6570\u6570\u7EC4\uFF1Ainput\uFF08IN\uFF09\u6216 output\uFF08OUT\uFF09"),paramName:u.string().describe("\u6240\u5C5E\u53C2\u6570\u7684 name"),propertyName:u.string().optional().describe("\u6309\u5B57\u6BB5\u8BBF\u95EE\u540D name \u5B9A\u4F4D\uFF08\u4E0E propertyCode \u4E8C\u9009\u4E00\uFF09"),propertyCode:u.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")}),u.object({op:u.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:u.record(u.string(),u.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" }')}),u.object({op:u.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:ze.describe("\u8981\u8FFD\u52A0\u7684\u4E00\u5217\uFF08\u5355\u4E2A LogicBindColumn \u5BF9\u8C61\uFF0C\u5EFA\u8BAE\u81F3\u5C11\u5E26 field\uFF09"),position:u.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),u.object({op:u.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:u.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:u.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09")}),u.object({op:u.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:u.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:u.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09"),newColumn:ze.describe("\u7528\u6765\u6574\u4F53\u66FF\u6362\u76EE\u6807\u5217\u7684\u65B0\u5217\u5BF9\u8C61")}),u.object({op:u.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:u.string().optional().describe("\u6309\u5B57\u6BB5\u540D field \u5B9A\u4F4D\uFF08\u4E0E column \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\uFF09"),column:u.string().optional().describe("\u6309\u5217\u6807\u9898 column \u5B9A\u4F4D\uFF08\u4E0E field \u4E8C\u9009\u4E00\uFF09"),patch:u.record(u.string(),u.unknown()).describe('\u8981\u6D45\u5408\u5E76\u8FDB\u8BE5\u5217\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u5982 { "column": "\u65B0\u6807\u9898", "width": "20" }')}),u.object({op:u.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:u.record(u.string(),u.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 _t=[{name:"page_model_logic_directories",config:{title:"\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u76EE\u5F55",description:`\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u76EE\u5F55\uFF08\u4E1A\u52A1\u6A21\u578B\u76EE\u5F55 / ModelDirectory\uFF09\u3002\u8FD4\u56DE\u5404\u4E1A\u52A1\u6A21\u578B\u76EE\u5F55\u9879\uFF0C\u6BCF\u9879\u542B modelcode\uFF08\u5373 modellogic \u4E2D\u7684 modelcode\uFF0C\u67E5\u67D0\u76EE\u5F55\u4E0B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u7528\u7684\u7F16\u7801\uFF09\u3001modelname\uFF08\u76EE\u5F55\u540D\uFF09\u3001metamodelcode\u3001directorytypecode\uFF08\u7236\u76EE\u5F55\u7F16\u7801\uFF09\u7B49\u3002\n\n\u53EF\u6309 modelname \u6A21\u7CCA\u641C\u7D22\uFF0C\u6216\u4F20\u5165 directorytypecode \u67E5\u8BE2\u67D0\u76EE\u5F55\u4E0B\u7684\u5B50\u76EE\u5F55\uFF08\u9ED8\u8BA4 rootNode \u67E5\u4E00\u7EA7\u76EE\u5F55\uFF09\u3002\n\n${j}\n${ie}`,inputSchema:{modelname:R.string().optional().describe("\u4E1A\u52A1\u6A21\u578B\u540D\u6A21\u7CCA\u5339\u914D\uFF0C\u53EF\u7A7A\uFF1B\u4E0D\u4F20\u5219\u8FD4\u56DE\u8BE5\u76EE\u5F55\u4E0B\u7684\u5168\u90E8"),directorytypecode:R.string().optional().describe('\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF1A\u56FA\u5B9A\u4F20 "rootNode" \u67E5\u4E00\u7EA7\u76EE\u5F55\uFF1B\u4F20\u5165\u5177\u4F53\u76EE\u5F55\u7684 modelcode \u53EF\u67E5\u5176\u4E0B\u7684\u5B50\u76EE\u5F55\uFF1B\u7701\u7565\u9ED8\u8BA4 "rootNode"'),dddlayer:R.string().optional().describe("\u76EE\u5F55\u5C42\u7EA7\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u4E00\u7EA7\u76EE\u5F55\uFF08\u9ED8\u8BA4\uFF09\uFF1B\u7701\u7565\u9ED8\u8BA4 1"),page:R.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:R.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:R.array(R.object({modeldescr:R.string().optional().nullable().describe("\u4E1A\u52A1\u6A21\u578B\u7684\u63CF\u8FF0\u8BF4\u660E"),createtime:R.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:R.union([R.string(),R.number(),R.null()]).optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801"),dddlayer:R.coerce.number().optional().nullable().describe("\u76EE\u5F55\u5C42\u7EA7\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u4E00\u7EA7\u76EE\u5F55"),modelname:R.string().optional().nullable().describe("\u4E1A\u52A1\u6A21\u578B\u540D\uFF08\u6240\u5C5E\u76EE\u5F55\u540D\uFF09"),directorytypecode:R.string().optional().nullable().describe("\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF08\u7236\u76EE\u5F55\u7684 modelcode\uFF1B\u4E00\u7EA7\u76EE\u5F55\u5176\u7236\u4E3A rootNode\uFF09"),metamodelcode:R.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),classname:R.string().optional().nullable().describe("\u7C7B\u540D\uFF08\u90E8\u5206\u4E1A\u52A1\u6A21\u578B\u5E26 classname\uFF0C\u5982 ai_base / cost\uFF09"),modelcode:R.string().describe("\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801\uFF0C\u5373 modellogic \u4E2D\u7684 modelcode\uFF0C\u67E5\u67D0\u76EE\u5F55\u4E0B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u7528\u5230\u5B83"),marktype:R.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),tablename:R.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u90E8\u5206\u4E1A\u52A1\u6A21\u578B\u4E3A\u7A7A\uFF09"),updatetime:R.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountname:R.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),createaccountname:R.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),seq:R.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:R.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),updateaccountcode:R.union([R.string(),R.number(),R.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801")}).catchall(R.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:R.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:R.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:R.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:R.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{modelname:e="",directorytypecode:r="rootNode",dddlayer:i="1",page:n=1,rows:o=999}=t;try{let s=await gt({dddlayer:Number(i)||1,modelname:e,directorytypecode:r,page:Number(n)||1,rows:Number(o)||999,centercode:""});return $(s.resp_data)}catch(s){return L(s)}}},{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${j}\n${ie}`,inputSchema:{keys:R.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:R.string().optional().describe("\u5B8C\u6574 JSON (\u5185\u542B\u4EE3\u7801) \u4E2D\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u5339\u914D"),page:R.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:R.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updateopname:R.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),updatetimestart:R.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:R.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:R.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:R.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:R.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:R.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:R.array(R.object({actiontype:R.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:R.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:R.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801"),modelname:R.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u540D"),modellogiccode:R.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modellogicname:R.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),metamodelcode:R.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modellogiccode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),execmode:R.coerce.number().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),functionname:R.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:R.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:R.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),marktype:R.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),updatetime:R.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountname:R.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),createaccountname:R.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),seq:R.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:R.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),confsource:R.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),updateaccountcode:R.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801")}).catchall(R.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:R.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:R.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:R.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:R.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keys:e="",keywords:r="",page:i=1,rows:n=20,updateopname:o="",updatetimestart:s="",updatetimeend:l="",actiontype:d="",actioncategory:c="",tenantdbname:p="",jobstatus:g=null}=t;try{let h=await mt({actioncategory:c,actiontype:d,centercode:"",directorytypecode:"rootNode",jobstatus:g,keys:e,keywords:r,modelcode:"rootNode",page:Number(i)||1,rows:Number(n)||20,tenantdbname:p,updateopname:o,updatetimeend:l,updatetimestart:s});return $(h.resp_data)}catch(h){return L(h)}}},{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${j}\n${ie}\n${Ne}`,inputSchema:{modellogiccode:R.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801")},outputSchema:Ke,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{modellogiccode:e}=t;try{let r=await Z({modellogiccode:e});return $(r.resp_data)}catch(r){return L(r)}}}];import{z as v}from"zod";import{z as De}from"zod";var B=De.object({committype:De.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:De.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:De.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 J(t){return{committype:t.committype,committypetext:t.committypetext,msgbody:t.msgbody??""}}function q(t,e="YYYY-MM-DD HH:mm:ss"){if(isNaN(t.getTime()))throw new Error("Invalid date provided");let r={YYYY:t.getFullYear().toString(),YY:t.getFullYear().toString().slice(-2),MM:String(t.getMonth()+1).padStart(2,"0"),M:String(t.getMonth()+1),DD:String(t.getDate()).padStart(2,"0"),D:String(t.getDate()),HH:String(t.getHours()).padStart(2,"0"),H:String(t.getHours()),mm:String(t.getMinutes()).padStart(2,"0"),m:String(t.getMinutes()),ss:String(t.getSeconds()).padStart(2,"0"),s:String(t.getSeconds()),SSS:String(t.getMilliseconds()).padStart(3,"0")},i=Object.keys(r).sort((o,s)=>s.length-o.length),n=e;for(let o of i)n=n.replace(new RegExp(o,"g"),r[o]);return n}function qe(t,e){let r=[],i=[];if(e==="exact"){for(let n=0;n<t.length;n++)r.push(t[n]),i.push(n);return{text:r.join(""),map:i}}for(let n=0;n<t.length;n++){let o=t[n];if(o==="\r"){r.push(`\n`),i.push(n),t[n+1]===`\n`&&n++;continue}if(o===" "||o===" "){let s=n;for(;s<t.length&&(t[s]===" "||t[s]===" ");)s++;if(s>=t.length||t[s]===`\n`||t[s]==="\r"){n=s-1;continue}r.push(o),i.push(n);continue}r.push(o),i.push(n)}return{text:r.join(""),map:i}}function W(t,e="normalized"){return qe(t,e).text}function Be(t){return t.replace(/\r\n?/g,`\n`)}function Je(t,e){let r=1,i=Math.min(e,t.length);for(let n=0;n<i;n++)t[n]===`\n`&&r++;return r}function Sn(t,e,r="normalized"){if(e.length===0)return[];let i=qe(t,r),n=qe(e,r);if(n.text.length===0)return[];let o=[],s=0;for(;;){let l=i.text.indexOf(n.text,s);if(l===-1)break;let d=i.map[l],c=i.map[l+n.text.length-1]+1;o.push({startOffset:d,endOffset:c,startLine:Je(t,d),endLine:Je(t,Math.max(c-1,0))}),s=l+n.text.length}return o}function Rt(t){let e=new Map;if(t.length<2)return t.length===1&&e.set(t,1),e;for(let r=0;r<t.length-1;r++){let i=t.slice(r,r+2);e.set(i,(e.get(i)??0)+1)}return e}function Nn(t,e){if(t.size===0&&e.size===0)return 1;if(t.size===0||e.size===0)return 0;let r=0,[i,n]=t.size<=e.size?[t,e]:[e,t];for(let[s,l]of i){let d=n.get(s);d&&(r+=Math.min(l,d))}let o=0;for(let s of t.values())o+=s;for(let s of e.values())o+=s;return o===0?0:2*r/o}function Pn(t,e,r=3){let i=Be(t).split(`\n`),n=Be(e).split(`\n`);if(i.length===0||n.length===0)return[];let o=n.map(p=>p.trim()).join(`\n`),s=Rt(o),l=i.map(p=>p.trim()),d=new Map,c=new Set([n.length-1,n.length,n.length+1]);for(let p of c)if(!(p<1))for(let g=0;g+p<=i.length;g++){let h=l.slice(g,g+p).join(`\n`),_=Nn(Rt(h),s);if(_<=.3)continue;let x=d.get(g);(!x||_>x.score)&&d.set(g,{score:_,preview:i.slice(g,g+p).join(`\n`).slice(0,120)})}return Array.from(d.entries()).map(([p,g])=>({startLine:p+1,score:Math.round(g.score*100)/100,preview:g.preview})).sort((p,g)=>g.score-p.score).slice(0,r)}function Dn(t){let e=(t.match(/\r\n/g)??[]).length,r=(t.match(/\n/g)??[]).length-e;return e>r?`\r\n`:`\n`}function wt(t,e){let r=Dn(e);return t.replace(/\r\n?|\n/g,r)}var se=40;function Cn(t,e,r,i=3){let n=Be(t).split(`\n`),o=[],s=e.slice().sort((l,d)=>l.startOffset-d.startOffset);for(let l of s){let d=Math.max(1,l.startLine-i),c=Math.min(n.length,l.endLine+i),p=t.slice(l.startOffset,l.endOffset).split(`\n`).map(b=>b.replace(/\r$/,"")),g=r.split(`\n`),h=p.length,_=g.length,k=[["@@",`-${l.startLine},${h}`,`+${l.startLine},${_}`,"@@"].join(" ")];for(let b=d;b<l.startLine;b++)k.push(` ${n[b-1]}`);for(let b of p.slice(0,se))k.push(`-${b}`);h>se&&k.push(`... \u7701\u7565 ${h-se} \u884C`);for(let b of g.slice(0,se))k.push(`+${b}`);_>se&&k.push(`... \u7701\u7565 ${_-se} \u884C`);for(let b=l.endLine+1;b<=c;b++)k.push(` ${n[b-1]}`);o.push(k.join(`\n`))}return o.join(`\n`)}function Ce(t,e,r={}){let i=r.contextLines??3,n=r.topN??3,o=t.slice(),s=[],l=!1;for(let d=0;d<e.length;d++){let c=e[d],p=c.operationIndex??0,g=()=>({index:d,label:c.label??null,status:"FAILED",errorCode:"OK",message:null,operationIndex:p,matchCount:0,replacedCount:0,range:null,suggestions:null,dependentOnFailedOp:l,hunk:null}),h=(I,H,Y={})=>{s.push({...g(),status:"FAILED",errorCode:I,message:H,...Y}),l=!0};if(!Number.isInteger(p)||p<0||p>=o.length){h("NO_TARGET",`operationIndex=${p} \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(c.rewrite!==!0&&(typeof c.oldString!="string"||c.oldString.length===0)){h("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(c.replaceAll===!0&&c.occurrence!=null){h("INVALID_PARAMS","replaceAll \u4E0E occurrence \u4E92\u65A5\uFF0C\u53EA\u80FD\u4E8C\u9009\u4E00");continue}if(c.rewrite===!0){if(typeof c.newString!="string"){h("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 I=o[p],H=wt(c.newString,I),Y=Je(I,I.length);o[p]=H,s.push({...g(),status:"OK",errorCode:"OK",matchCount:1,replacedCount:1,range:{startOffset:0,endOffset:I.length,startLine:1,endLine:Y},hunk:`\u6574\u4EFD\u66FF\u6362\uFF1A${I.length} \u2192 ${H.length} \u5B57\u7B26\uFF08rewrite \u6A21\u5F0F\uFF0C\u672A\u56DE\u663E\u65E7\u5168\u6587\uFF09`});continue}let _=c.matchMode??"normalized",x=o[p],k=Sn(x,c.oldString,_);if(k.length===0){h("NOT_FOUND",`oldString \u5728 operation[${p}] \u7684\u811A\u672C\u4E2D\u672A\u5339\u914D\u5230\u4EFB\u4F55\u5185\u5BB9\uFF08matchMode=${_}\uFF09`,{suggestions:Pn(x,c.oldString,n)});continue}let b;if(c.replaceAll===!0)b=k;else if(c.occurrence!=null){if(!Number.isInteger(c.occurrence)||c.occurrence<1||c.occurrence>k.length){h("OCCURRENCE_OUT_OF_RANGE",`occurrence=${c.occurrence} \u8D8A\u754C\uFF0C\u5B9E\u9645\u5339\u914D\u6570\u4E3A ${k.length}`,{matchCount:k.length});continue}b=[k[c.occurrence-1]]}else if(k.length>1){let I=k.map(H=>`\u7B2C ${H.startLine}~${H.endLine} \u884C`).join("\u3001");h("NOT_UNIQUE",`oldString \u5339\u914D\u5230 ${k.length} \u5904\uFF08${I}\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:k.length});continue}else b=k;let y=wt(c.newString,x),D=x;for(let I=b.length-1;I>=0;I--)D=D.slice(0,b[I].startOffset)+y+D.slice(b[I].endOffset);let C=Cn(x,b,y,i);o[p]=D,s.push({...g(),status:"OK",errorCode:"OK",matchCount:k.length,replacedCount:b.length,range:b[0],hunk:C})}return{scripts:o,results:s,ok:s.length>0&&s.every(d=>d.status==="OK")}}async function xt(t,e){e.committype==="saverecord"&&(e.msgbody=q(new Date,"YYYY-MM-DD HH:mm")),t.message=JSON.stringify(e);try{return(await Pe(t)).resp_data}catch(r){return E(r)}}function ae(t,e){return(e==="input"?t.input:t.output)??[]}function be(t){return t.actioncategory!=null&&String(t.actioncategory)!=="5"?null:(t.bindjson==null&&(t.bindjson={modelcode:t.modelcode}),t.bindjson.bindcols==null&&(t.bindjson.bindcols=[]),t.bindjson.bindcols)}function te(t){let e=U(t.field)?t.field:void 0,r=U(t.column)?t.column:void 0;return{fieldKey:e,colKey:r}}function X(t,e,r){return e!==void 0&&t?.field===e||r!==void 0&&e===void 0&&t?.column===r}function U(t){return t==null?!1:typeof t=="string"?t.trim().length>0:!0}async function In(t,e,r){let i=(o={})=>({index:r,op:e.op,status:"OK",errorCode:"OK",message:null,...o}),n=(o,s,l={})=>({index:r,op:e.op,status:"FAILED",errorCode:o,message:s,...l});switch(e.op){case"add_param":{let o=ae(t,e.target);if(U(e.param.name)&&o.some(l=>l?.name===e.param.name))return n("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"?t.input=o:t.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=ae(t,e.target),s=o.filter(d=>d?.name===e.name);if(s.length===0)return n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`);if(s.length>1)return n("DUP_NAME",`name=${e.name} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`);let l=o.findIndex(d=>d?.name===e.name);return o.splice(l,1),e.target==="input"?t.input=o:t.output=o,i({message:`\u5DF2\u4ECE ${e.target} \u79FB\u9664\u53C2\u6570 ${e.name}`})}case"set_param_attrs":{let s=ae(t,e.target).filter(l=>l?.name===e.name);return s.length===0?n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`):s.length>1?n("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=ae(t,e.target).filter(_=>_?.name===e.paramName);if(s.length===0)return n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(s.length>1)return n("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let l=s[0],d=l.properties??(l.properties=[]),c=U(e.property.name)?e.property.name:void 0,p=U(e.property.propertycode)?e.property.propertycode:void 0,g=d.find(_=>c!==void 0&&_?.name===c||p!==void 0&&_?.propertycode===p);if(g){let _=c!==void 0&&g?.name===c?`name=${c}`:`propertycode=${p}`;return n("DUP_NAME",`\u53C2\u6570 ${e.paramName} \u4E2D\u5DF2\u5B58\u5728 ${_} \u7684\u5C5E\u6027\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`)}let h=e.position??d.length;return d.splice(h,0,e.property),i({message:`\u5DF2\u5728 ${e.target}.${e.paramName} \u7684 position=${h} \u8FFD\u52A0\u5C5E\u6027 ${e.property.name??e.property.propertycode??"(\u672A\u547D\u540D)"}`})}case"remove_property":{let o=U(e.propertyName)?e.propertyName:void 0,s=U(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&s===void 0)return n("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 d=ae(t,e.target).filter(x=>x?.name===e.paramName);if(d.length===0)return n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(d.length>1)return n("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${d.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let p=d[0].properties??[],g=x=>o!==void 0&&x?.name===o||s!==void 0&&x?.propertycode===s,h=p.filter(g);if(h.length===0)return n("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(h.length>1)return n("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${h.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let _=p.findIndex(g);return p.splice(_,1),i({message:`\u5DF2\u4ECE ${e.target}.${e.paramName} \u79FB\u9664\u5C5E\u6027 ${e.propertyName??e.propertyCode}`})}case"replace_property":{let o=U(e.propertyName)?e.propertyName:void 0,s=U(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&s===void 0)return n("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 d=ae(t,e.target).filter(x=>x?.name===e.paramName);if(d.length===0)return n("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(d.length>1)return n("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${d.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let p=d[0].properties??[],g=x=>o!==void 0&&x?.name===o||s!==void 0&&x?.propertycode===s,h=p.filter(g);if(h.length===0)return n("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(h.length>1)return n("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${h.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let _=p.findIndex(g);return p[_]=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?n("INVALID_PARAMS",`set_meta \u4E0D\u80FD\u4FEE\u6539 ${o.join("/")}\uFF0C\u8BF7\u4F7F\u7528\u5BF9\u5E94\u7684 param/property \u7C7B op`):(Object.assign(t,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=be(t);if(o===null)return n("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:l}=te(e.column);if(s!==void 0&&o.some(c=>c?.field===s))return n("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 field=${s} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);if(l!==void 0&&s===void 0&&o.some(c=>c?.column===l))return n("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 column=${l} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);let d=e.position??o.length;return o.splice(d,0,e.column),i({message:`\u5DF2\u5728 bindcols \u7684 position=${d} \u8FFD\u52A0\u5BFC\u51FA\u5217 ${s??l??"(\u672A\u547D\u540D)"}`})}case"remove_export_column":{let{fieldKey:o,colKey:s}=te(e);if(o===void 0&&s===void 0)return n("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 l=be(t);if(l===null)return n("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 d=l.filter(p=>X(p,o,s));if(d.length===0)return n("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(d.length>1)return n("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${d.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00\uFF08field/column \u7EC4\u5408\u4E0D\u8DB3\u4EE5\u552F\u4E00\u5B9A\u4F4D\uFF09`);let c=l.findIndex(p=>X(p,o,s));return l.splice(c,1),i({message:`\u5DF2\u4ECE bindcols \u79FB\u9664\u5BFC\u51FA\u5217 ${o??s}`})}case"replace_export_column":{let{fieldKey:o,colKey:s}=te(e);if(o===void 0&&s===void 0)return n("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 l=be(t);if(l===null)return n("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 d=l.filter(p=>X(p,o,s));if(d.length===0)return n("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(d.length>1)return n("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${d.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let c=l.findIndex(p=>X(p,o,s));return l[c]=e.newColumn,i({message:`\u5DF2\u5728 bindcols \u66FF\u6362\u5BFC\u51FA\u5217 ${o??s}`})}case"set_export_column_attrs":{let{fieldKey:o,colKey:s}=te(e);if(o===void 0&&s===void 0)return n("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 l=be(t);if(l===null)return n("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 d=l.filter(c=>X(c,o,s));return d.length===0?n("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217"):d.length>1?n("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${d.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`):(Object.assign(d[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(be(t)===null)return n("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 n("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=t.bindjson;return s?(Object.assign(s,e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A bindjson \u9876\u5C42\u5B57\u6BB5`})):n("INVALID_PARAMS","bindjson \u7F3A\u5931\uFF0C\u65E0\u6CD5\u6267\u884C set_bind_meta")}default:return n("OP_ERROR",`\u672A\u77E5 op \u7C7B\u578B\uFF1A${e.op}`)}}function En(t){let e=t.map(i=>`ops[${i.index}] ${i.op} (${i.status}): ${i.message??""}`).join(`\n`),r=e.split(`\n`);return r.length<=Ie?e:`${r.slice(0,Ie).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${r.length} \u884C\uFF09`}function Fn(t,e){let r=[],i=n=>(n==="input"?t.input:t.output)??[];for(let n=0;n<e.length;n++){let o=e[n];switch(o.op){case"set_meta":for(let[s,l]of Object.entries(o.patch))JSON.stringify(t[s])!==JSON.stringify(l)&&r.push(`ops[${n}] set_meta.${s} \u672A\u751F\u6548`);break;case"add_param":{i(o.target).some(l=>l?.name===o.param.name)||r.push(`ops[${n}] add_param \u53C2\u6570\u672A\u8FFD\u52A0`);break}case"remove_param":{i(o.target).some(l=>l?.name===o.name)&&r.push(`ops[${n}] remove_param \u53C2\u6570\u4ECD\u5B58\u5728`);break}case"set_param_attrs":{let l=i(o.target).find(d=>d?.name===o.name);if(!l){r.push(`ops[${n}] set_param_attrs \u53C2\u6570\u6D88\u5931`);break}for(let[d,c]of Object.entries(o.patch))JSON.stringify(l[d])!==JSON.stringify(c)&&r.push(`ops[${n}] set_param_attrs.${d} \u672A\u751F\u6548`);break}case"add_property":{let l=i(o.target).find(h=>h?.name===o.paramName);if(!l){r.push(`ops[${n}] add_property \u53C2\u6570\u6D88\u5931`);break}let d=l.properties??[],c=U(o.property.name)?o.property.name:void 0,p=U(o.property.propertycode)?o.property.propertycode:void 0;d.some(h=>c!==void 0&&h?.name===c||p!==void 0&&h?.propertycode===p)||r.push(`ops[${n}] add_property \u5C5E\u6027\u672A\u8FFD\u52A0`);break}case"remove_property":{let l=i(o.target).find(h=>h?.name===o.paramName);if(!l){r.push(`ops[${n}] remove_property \u53C2\u6570\u6D88\u5931`);break}let d=l.properties??[],c=U(o.propertyName)?o.propertyName:void 0,p=U(o.propertyCode)?o.propertyCode:void 0,g=h=>c!==void 0&&h?.name===c||p!==void 0&&h?.propertycode===p;d.some(g)&&r.push(`ops[${n}] remove_property \u5C5E\u6027\u4ECD\u5B58\u5728`);break}case"replace_property":{let l=i(o.target).find(_=>_?.name===o.paramName);if(!l){r.push(`ops[${n}] replace_property \u53C2\u6570\u6D88\u5931`);break}let d=l.properties??[],c=U(o.propertyName)?o.propertyName:void 0,p=U(o.propertyCode)?o.propertyCode:void 0,g=_=>c!==void 0&&_?.name===c||p!==void 0&&_?.propertycode===p,h=d.find(g);if(!h){r.push(`ops[${n}] replace_property \u5C5E\u6027\u6D88\u5931`);break}for(let[_,x]of Object.entries(o.property))JSON.stringify(h[_])!==JSON.stringify(x)&&r.push(`ops[${n}] replace_property.${_} \u672A\u751F\u6548`);break}case"add_export_column":{let s=t.bindjson?.bindcols??[],l=U(o.column.field)?o.column.field:void 0,d=U(o.column.column)?o.column.column:void 0;s.some(p=>X(p,l,d))||r.push(`ops[${n}] add_export_column \u5217\u672A\u8FFD\u52A0`);break}case"remove_export_column":{let s=t.bindjson?.bindcols??[],{fieldKey:l,colKey:d}=te(o);s.some(c=>X(c,l,d))&&r.push(`ops[${n}] remove_export_column \u5217\u4ECD\u5B58\u5728`);break}case"replace_export_column":{let s=t.bindjson?.bindcols??[],{fieldKey:l,colKey:d}=te(o),c=s.find(p=>X(p,l,d));if(!c){r.push(`ops[${n}] replace_export_column \u5217\u6D88\u5931`);break}for(let[p,g]of Object.entries(o.newColumn))JSON.stringify(c[p])!==JSON.stringify(g)&&r.push(`ops[${n}] replace_export_column.${p} \u672A\u751F\u6548`);break}case"set_export_column_attrs":{let s=t.bindjson?.bindcols??[],{fieldKey:l,colKey:d}=te(o),c=s.find(p=>X(p,l,d));if(!c){r.push(`ops[${n}] set_export_column_attrs \u5217\u6D88\u5931`);break}for(let[p,g]of Object.entries(o.patch))JSON.stringify(c[p])!==JSON.stringify(g)&&r.push(`ops[${n}] set_export_column_attrs.${p} \u672A\u751F\u6548`);break}case"set_bind_meta":{let s=t.bindjson;if(!s){r.push(`ops[${n}] set_bind_meta bindjson \u672A\u751F\u6548`);break}for(let[l,d]of Object.entries(o.patch))JSON.stringify(s[l])!==JSON.stringify(d)&&r.push(`ops[${n}] set_bind_meta.${l} \u672A\u751F\u6548`);break}}}return{verified:r.length===0,problems:r}}async function kt(t,e,r,i={}){let n=i.dryRun??!1,o=i.verify??!0,s=(k,b)=>({ok:!1,applied:!1,verified:null,errorCode:k,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 l;try{l=(await Z({modellogiccode:t})).resp_data}catch(k){return s("FETCH_FAILED",E(k))}if(!l)return s("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${t} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);let d=structuredClone(l),c=[],p=!1;for(let k=0;k<e.length;k++)try{let b=await In(d,e[k],k);c.push(b),b.status==="FAILED"&&(p=!0)}catch(b){c.push({index:k,op:e[k].op,status:"FAILED",errorCode:"OP_ERROR",message:E(b)}),p=!0}let g=En(c);if(p){let k=c.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${c.filter(b=>b.status==="FAILED").length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${k}]\uFF09\u3002\u672C\u6279\u6B21\u672A\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF0C\u8BF7\u6839\u636E ops[].message \u4FEE\u6B63\u540E\u91CD\u8BD5`,diff:g,ops:c}}if(n)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:g,ops:c};r.committype==="saverecord"&&(r.msgbody=q(new Date,"YYYY-MM-DD HH:mm")),d.message=JSON.stringify(r);let h;try{let k=await Pe(d);h=typeof k?.resp_data=="string"?k.resp_data:JSON.stringify(k?.resp_data??null)}catch(k){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:E(k),diff:g,ops:c}}let _=null,x=h;if(o)try{let b=(await Z({modellogiccode:t})).resp_data;if(!b)_=!1,x=`${h} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let y=Fn(b,e);_=y.verified,y.verified||(x=`${h} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${y.problems.join("\uFF1B")}`)}}catch(k){_=!1,x=`${h} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${E(k)}`}return{ok:_===null?!0:_,applied:!0,verified:_,errorCode:_===!1?"VERIFY_FAILED":"OK",message:x,diff:g,ops:c}}var Ie=150;function An(t){let e=t.filter(n=>n.hunk).map(n=>`--- ops[${n.index}]${n.label?` (${n.label})`:""} @ operation[${n.operationIndex}]\n${n.hunk}`);if(e.length===0)return"";let r=e.join(`\n`),i=r.split(`\n`);return i.length<=Ie?r:`${i.slice(0,Ie).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}async function $n(t,e){e.committype==="saverecord"&&(e.msgbody=q(new Date,"YYYY-MM-DD HH:mm")),t.message=JSON.stringify(e);try{let r=await Pe(t);return{ok:!0,text:typeof r?.resp_data=="string"?r.resp_data:JSON.stringify(r?.resp_data??null)}}catch(r){return{ok:!1,text:E(r)}}}async function Ot(t,e,r,i={}){let n=i.contextLines??3,o=i.dryRun??!1,s=i.verify??!0,l=(y,D)=>({ok:!1,applied:!1,verified:null,errorCode:y,message:D,lengthBefore:0,lengthAfter:0,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return l("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let d;try{d=(await Z({modellogiccode:t})).resp_data}catch(y){return l("FETCH_FAILED",E(y))}if(!d)return l("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${t} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);if(!d.operations||d.operations.length===0)return l("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 c=d.operations.map(y=>y.templateparams?.flycode??""),p=c.reduce((y,D)=>y+D.length,0),g=Ce(c,e,{contextLines:n}),h=An(g.results),_=g.scripts.reduce((y,D)=>y+D.length,0);if(!g.ok){let y=g.results.filter(C=>C.status==="FAILED"),D=y.map(C=>C.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${y.length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${D}]\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:p,lengthAfter:_,diff:h,ops:g.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:p,lengthAfter:_,diff:h,ops:g.results};for(let y=0;y<g.scripts.length;y++)if(g.scripts[y]!==c[y]){let D=d.operations[y].templateparams;d.operations[y].templateparams={...D??{},flycode:g.scripts[y]}}let x=await $n(d,r);if(!x.ok)return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:x.text,lengthBefore:p,lengthAfter:_,diff:h,ops:g.results};let k=null,b=x.text;if(s)try{let C=((await Z({modellogiccode:t})).resp_data?.operations??[]).map(H=>H.templateparams?.flycode??""),I=[];g.results.forEach((H,Y)=>{let M=e[Y],K=C[H.operationIndex]??"",V=M.matchMode??"normalized",z=W(K,V),ue=W(M.newString,V),pe=W(M.oldString,V);M.newString.length>0&&!z.includes(ue)&&I.push(`ops[${Y}] \u7684\u65B0\u5185\u5BB9\u672A\u51FA\u73B0\u5728\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`),!ue.includes(pe)&&z.includes(pe)&&I.push(`ops[${Y}] \u7684 oldString \u4ECD\u7136\u5B58\u5728\u4E8E\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`)}),k=I.length===0,I.length>0&&(b=`${x.text} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${I.join("\uFF1B")}`)}catch(y){k=!1,b=`${x.text} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${E(y)}`}return{ok:k===null?!0:k,applied:!0,verified:k,errorCode:k===!1?"VERIFY_FAILED":"OK",message:b,lengthBefore:p,lengthAfter:_,diff:h,ops:g.results}}var vt=[{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${j}`,inputSchema:{logic:yt.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:B.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:v.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 t=>{let{logic:e,commitMessage:r}=t,i=J(r);try{let n=await xt(e,i);return{content:[{type:"text",text:n}],structuredContent:{result:n}}}catch(n){let o=E(n);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${j}\n${ie}\n${Ne}`,inputSchema:{modellogiccode:v.string().describe("\u76EE\u6807\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:v.array(ht).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:B.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:v.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:v.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:v.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:v.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:v.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:v.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:v.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:v.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:v.array(v.object({index:v.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:v.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:v.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:v.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801\uFF1AOK / PARAM_NOT_FOUND / PROP_NOT_FOUND / DUP_NAME / INVALID_PARAMS / OP_ERROR"),message:v.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 t=>{let{modellogiccode:e,commitMessage:r,dryRun:i=!1,verify:n=!0}=t,o=t.ops,s=J(r);try{let l=await kt(e,o,s,{dryRun:i,verify:n});return{isError:!l.ok,content:[{type:"text",text:JSON.stringify(l)}],structuredContent:l}}catch(l){let d=E(l);return{isError:!0,content:[{type:"text",text:d}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:d,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:v.string().describe("\u8981\u4FEE\u6539\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:v.array(v.object({oldString:v.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:v.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:v.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:v.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:v.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:v.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:v.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:v.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:B.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:v.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:v.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:v.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:v.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:v.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:v.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:v.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / NO_OPERATIONS / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:v.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),lengthBefore:v.coerce.number().describe("\u66FF\u6362\u524D\u811A\u672C\u603B\u5B57\u7B26\u6570"),lengthAfter:v.coerce.number().describe("\u66FF\u6362\u540E\u811A\u672C\u603B\u5B57\u7B26\u6570"),diff:v.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:v.array(v.object({index:v.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),label:v.string().nullable().describe("\u8C03\u7528\u65B9\u4F20\u5165\u7684\u6807\u8BC6"),status:v.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:v.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:v.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),operationIndex:v.coerce.number().describe("\u5B9E\u9645\u4F5C\u7528\u7684 operation \u4E0B\u6807"),matchCount:v.coerce.number().describe("oldString \u7684\u5339\u914D\u603B\u6570"),replacedCount:v.coerce.number().describe("\u5B9E\u9645\u66FF\u6362\u7684\u5904\u6570"),range:v.object({startOffset:v.coerce.number().describe("\u8D77\u59CB\u5B57\u7B26\u504F\u79FB"),endOffset:v.coerce.number().describe("\u7ED3\u675F\u5B57\u7B26\u504F\u79FB\uFF08\u4E0D\u542B\uFF09"),startLine:v.coerce.number().describe("\u8D77\u59CB\u884C\u53F7\uFF0C1-based"),endLine:v.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:v.array(v.object({startLine:v.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:v.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:v.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:v.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:v.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 t=>{let{modelLogicCode:e,ops:r,commitMessage:i,dryRun:n=!1,contextLines:o=3,verify:s=!0}=t,l=J(i);try{let d=await Ot(e,r,l,{dryRun:n,contextLines:o,verify:s});return{isError:!d.ok,content:[{type:"text",text:JSON.stringify({ok:d.ok,applied:d.applied,verified:d.verified,errorCode:d.errorCode,message:d.message,ops:d.ops.map(c=>({index:c.index,status:c.status,errorCode:c.errorCode,message:c.message,operationIndex:c.operationIndex,matchCount:c.matchCount,replacedCount:c.replacedCount,range:c.range,suggestions:c.suggestions,dependentOnFailedOp:c.dependentOnFailedOp})),diff:d.diff})}],structuredContent:d}}catch(d){let c=E(d);return{isError:!0,content:[{type:"text",text:c}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:c,lengthBefore:0,lengthAfter:0,diff:"",ops:[]}}}}}];import{z as O}from"zod";function St(t){return F({url:"/bizserv/biz/pageList",method:"post",data:t,type:"tenant"})}function le(t){return F({url:"/bizserv/biz/getBizObject",method:"post",data:t,type:"tenant"})}function Nt(t){return F({url:"/bizserv/biz/saveObject",method:"post",data:t,type:"tenant"})}var fe={ENTITY:"1",FORM:"3"};function Ee(t){return F({url:"/bizserv/biz/getDirectorys",method:"post",data:t,type:"tenant"})}function T(t){return t==null?"":String(t)}function ye(t,e){return T(t).toLowerCase().includes(e)}function he(t,e={}){let r=Array.isArray(t)?t:[],i=T(e.keys).trim(),n=T(e.directorytypecode).trim(),o=T(e.parentdirectorytypecode).trim(),s=T(e.centercode).trim(),l=T(e.centername).trim(),d=T(e.marktype).trim(),c=i.toLowerCase(),p=M=>T(M.parentdirectorytypecode).trim()==="",g=o.toLowerCase()==="root",h=r.filter(M=>{if(n&&T(M.directorytypecode).trim()!==n)return!1;if(g){if(!p(M))return!1}else if(o&&T(M.parentdirectorytypecode).trim()!==o)return!1;return!(s&&T(M.centercode).trim()!==s||l&&!ye(M.centername,l.toLowerCase())||d&&T(M.marktype).trim()!==d||c&&!(ye(M.directorytypename,c)||ye(M.directoryname,c)||ye(M.centername,c)||ye(M.directorytypecode,c)))}),_=!!(c||n||o||s||l),x=h,k=null;if(_||(x=h.filter(p),k=`\u63A5\u53E3\u4E0D\u652F\u6301\u5206\u9875\u4E14\u5168\u91CF ${r.length} \u6761\uFF0C\u672A\u4F20\u7B5B\u9009\u6761\u4EF6\u65F6\u5DF2\u81EA\u52A8\u6536\u655B\u4E3A\u9876\u7EA7\u76EE\u5F55 ${x.length} \u6761\uFF1B\u8BF7\u4F20 keys \u6309\u540D\u79F0\u6A21\u7CCA\u641C\u7D22\uFF0C\u6216\u7528 parentdirectorytypecode \u9010\u7EA7\u4E0B\u94BB\u3002`),c){let M=K=>{let V=T(K.directorytypename).toLowerCase(),z=T(K.directoryname).toLowerCase();return V===c||z===c?0:V.startsWith(c)||z.startsWith(c)?1:2};x=[...x].sort((K,V)=>{let z=M(K)-M(V);if(z!==0)return z;let ue=T(K.directorytypename).length,pe=T(V.directorytypename).length;return ue!==pe?ue-pe:T(K.directorytypecode).localeCompare(T(V.directorytypecode))})}else x=[...x].sort((M,K)=>{let V=T(M.directorytypecode),z=T(K.directorytypecode);return V.length!==z.length?V.length-z.length:V.localeCompare(z)});let b=Number(e.limit),y=Number.isFinite(b)&&b>0?Math.min(Math.floor(b),200):30,D=Number(e.offset),C=Number.isFinite(D)&&D>0?Math.floor(D):0,I=x.slice(C,C+y),H=C+I.length<x.length,Y=[];return k&&Y.push(k),Number.isFinite(b)&&b>200&&Y.push(`limit ${b} \u8D85\u8FC7\u786C\u4E0A\u9650 200\uFF0C\u5DF2\u6309 200 \u5904\u7406\u3002`),H&&Y.push(`\u547D\u4E2D ${x.length} \u6761\uFF0C\u672C\u6B21\u8FD4\u56DE\u7B2C ${C+1}-${C+I.length} \u6761\uFF1B\u8BF7\u7F29\u5C0F keys \u8303\u56F4\u6216\u8C03\u5927 offset \u7EE7\u7EED\u7FFB\u9875\u3002`),x.length===0&&Y.push(`\u672A\u547D\u4E2D\u4EFB\u4F55\u76EE\u5F55\uFF08\u63A5\u53E3\u5168\u91CF ${r.length} \u6761\uFF09\uFF1B\u8BF7\u6362\u66F4\u77ED\u7684\u5173\u952E\u8BCD\uFF0C\u6216\u4F20 parentdirectorytypecode="root" \u4ECE\u9876\u7EA7\u76EE\u5F55\u9010\u7EA7\u4E0B\u94BB\u3002`),{sourceTotal:r.length,total:x.length,returned:I.length,offset:C,limit:y,truncated:H,hint:Y.length>0?Y.join(" "):null,items:I.map(Tn)}}function Tn(t){let e=t.directorytypename??null,r=T(t.directoryname),i=T(t.parentdirectorytypecode).trim(),n=T(t.centername).trim(),o={directorytypecode:T(t.directorytypecode),directorytypename:e};r&&r!==T(e)&&(o.directoryname=r),i&&(o.parentdirectorytypecode=i),n&&(o.centername=n);let s=Number(t.marktype);return Number.isFinite(s)&&t.marktype!==null&&t.marktype!==void 0&&(o.marktype=s),o}import{z as S}from"zod";var Ln=S.array(S.object({columnname:S.string().optional().nullable().describe("\u5C5E\u6027\u5217\u7684\u5217\u540D\uFF0C\u5373\u6570\u636E\u5E93\u8868\u7684\u5B57\u6BB5\u7684\u540D\u5B57"),idxtype:S.union([S.string(),S.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:S.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:S.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),propertycategorycode:S.string().optional().nullable().describe("\u5C5E\u6027\u7C7B\u522B\u7F16\u7801"),propertycode:S.string().optional().nullable().describe("\u5C5E\u6027\u7F16\u7801\uFF0C\u552F\u4E00\u6807\u8BC6\u4E00\u4E2A\u5C5E\u6027"),propertydescr:S.string().optional().nullable().describe("\u5C5E\u6027\u63CF\u8FF0"),propertyname:S.string().optional().nullable().describe("\u5C5E\u6027\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),propertytypecode:S.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:S.union([S.string(),S.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:S.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:S.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:S.union([S.string(),S.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:S.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:S.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:S.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:S.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:S.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(S.unknown())),Mn={confsource:S.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:S.union([S.string(),S.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:S.union([S.string(),S.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:S.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:S.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:S.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:S.union([S.string(),S.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:S.string().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:S.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:S.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:S.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:S.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801\u3002\u4EC5\u6570\u636E\u5B57\u5178\u5B9E\u4F53\u8FD4\u56DE"),objecttypecode:S.union([S.string(),S.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:S.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode\u3002\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),properties:Ln.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:S.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),script:S.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:S.union([S.string(),S.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:S.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:S.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u5E8F\u53F7\u3002\u4EC5\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u8FD4\u56DE"),tablename:S.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D")},Pt=S.looseObject(Mn);var Dt=[{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${j}\n${ee}`,inputSchema:{objectname:O.string().optional().describe("\u5B9E\u4F53\u4E2D\u6587\u540D\u3001\u5B9E\u4F53\u8868\u540D\u3001\u5B9E\u4F53 objectcode \u6A21\u7CCA\u5339\u914D"),page:O.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:O.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updatetimestart:O.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:O.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:O.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:O.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:O.array(O.object({confsource:O.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),createaccountcode:O.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:O.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:O.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),datapattern:O.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:O.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:O.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),hasoffline:O.string().optional().nullable().describe("\u5B9E\u4F53\u662F\u5426\u6709\u79BB\u7EBF\u8BBE\u7F6E\uFF0C1-\u6709\uFF1B0-\u65E0"),marktype:O.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:O.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C objectcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectcatgory:O.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:O.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:O.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:O.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:O.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:O.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801"),objecttypecode:O.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:O.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode"),publishstatus:O.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),status:O.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:O.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D"),updateaccountcode:O.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:O.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),updatetime:O.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(O.unknown())).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 t=>{let{objectname:e="",page:r=1,rows:i=20,updatetimestart:n="",updatetimeend:o="",datapattern:s="",objecttypecode:l=""}=t;try{let d=await St({centercode:"",directorytypecode:"rootNode",starttime:"",objectname:e,page:Number(r)||1,rows:Number(i)||20,updatetimestart:n,updatetimeend:o,datapattern:s,objecttypecode:l});return $(d.resp_data)}catch(d){return L(d)}}},{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${j}\n${ee}`,inputSchema:{objectcode:O.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u5B9E\u4F53\u7684\u7F16\u7801")},outputSchema:Pt,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{objectcode:e}=t;try{let r=await le({objectcode:e});return $(r.resp_data)}catch(r){return L(r)}}},{name:"page_entity_directories",config:{title:"\u67E5\u8BE2\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55",description:`\u67E5\u8BE2\u5B9E\u4F53\uFF08\u6570\u636E\u8868\uFF09\u6240\u5C5E\u76EE\u5F55\uFF08getDirectorys\uFF09\uFF0C\u53D6\u56DE\u7684 directorytypecode \u5373 create_entity \u7684 directorytypecode \u5FC5\u586B\u5165\u53C2\uFF0C\u4E5F\u662F\u4E3A\u5B9E\u4F53\u6307\u5B9A\u76EE\u5F55\u65F6\u8981\u7528\u7684\u7F16\u7801\u3002\n\n\u3010\u91CD\u8981\uFF1A\u63A5\u53E3\u4E0D\u652F\u6301\u5206\u9875\uFF0C\u5168\u91CF\u6570\u767E\u6761\uFF0C\u672C\u5DE5\u5177\u5DF2\u5F3A\u5236\u6536\u655B\u3011\n- \u9ED8\u8BA4\u6700\u591A\u56DE ${30} \u6761\uFF0C\u786C\u4E0A\u9650 ${200} \u6761\uFF1B\n- \u672A\u4F20\u4EFB\u4F55\u7B5B\u9009\u6761\u4EF6\u65F6\uFF0C\u53EA\u56DE\u9876\u7EA7\u76EE\u5F55\uFF08\u901A\u5E38\u5341\u4F59\u6761\u91CF\u7EA7\uFF09\u5E76\u5728 hint \u4E2D\u8BF4\u660E\uFF1B\n- \u547D\u4E2D\u8FC7\u591A\u65F6 truncated=true\uFF0C\u8BF7\u7F29\u5C0F keys \u6216\u7528 offset \u7FFB\u9875\u3002\n\u7528\u6CD5\u5EFA\u8BAE\uFF1A\u5148\u7528 keys \u6309\u76EE\u5F55\u540D\u6A21\u7CCA\u641C\u7D22\uFF08\u5982 keys="\u4EF7\u683C"\uFF09\uFF0C\u62FF\u5230 directorytypecode \u540E\u518D\u53BB\u5EFA\u5B9E\u4F53\uFF08create_entity\uFF09\uFF1B\u4E5F\u53EF\u4F20 parentdirectorytypecode \u9010\u7EA7\u4E0B\u94BB\uFF08\u4F20 "root" \u53EA\u770B\u9876\u7EA7\uFF09\u3002\n\n${ee}`,inputSchema:{keys:O.string().optional().describe("\u76EE\u5F55\u540D\u79F0\u6A21\u7CCA\u5339\u914D\uFF0C\u547D\u4E2D directorytypename / directoryname / centername / directorytypecode\uFF1B\u5F3A\u70C8\u5EFA\u8BAE\u4F18\u5148\u7528\u5B83\u68C0\u7D22\uFF0C\u907F\u514D\u62C9\u53D6\u5168\u91CF"),directorytypecode:O.string().optional().describe("\u76EE\u5F55\u7F16\u7801\u7CBE\u786E\u5339\u914D\uFF08\u5DF2\u77E5\u7F16\u7801\u53CD\u67E5\u540D\u79F0\u65F6\u7528\uFF09"),parentdirectorytypecode:O.string().optional().describe('\u7236\u76EE\u5F55\u7F16\u7801\u7CBE\u786E\u5339\u914D\uFF1B\u4F20 "root" \u8868\u793A\u53EA\u8981\u9876\u7EA7\u76EE\u5F55\uFF08parentdirectorytypecode \u4E3A\u7A7A\uFF09\uFF1B\u4F20\u5177\u4F53\u7F16\u7801\u5219\u53D6\u5176\u76F4\u63A5\u5B50\u76EE\u5F55'),centername:O.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u540D\u79F0\u6A21\u7CCA\u5339\u914D\uFF0C\u5982\u300C\u5BA2\u8BBF\u7BA1\u7406\u300D\u300C\u8425\u9500\u8D39\u63A7\u300D"),centercode:O.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u7F16\u7801\u7CBE\u786E\u5339\u914D"),marktype:O.string().optional().describe("\u521B\u5EFA\u6807\u8BB0\u7CBE\u786E\u5339\u914D\uFF0C\u6574\u6570\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),limit:O.string().optional().describe(`\u8FD4\u56DE\u6761\u6570\u4E0A\u9650\uFF0C\u9ED8\u8BA4 ${30}\uFF0C\u786C\u4E0A\u9650 ${200}`),offset:O.string().optional().describe("\u8D77\u59CB\u504F\u79FB\uFF0C\u9ED8\u8BA4 0\uFF1B\u914D\u5408 limit \u7FFB\u9875"),directorycategory:O.string().optional().describe('\u76EE\u5F55\u7C7B\u522B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u5B9E\u4F53\u76EE\u5F55\uFF08\u9ED8\u8BA4 "1"\uFF0C\u5373\u5B9E\u4F53 directorytypecode \u7684\u53D6\u503C\u6765\u6E90\uFF09\uFF1B3-\u8868\u5355/\u9875\u9762\u76EE\u5F55')},outputSchema:{sourceTotal:O.coerce.number().describe("\u63A5\u53E3\u8FD4\u56DE\u7684\u76EE\u5F55\u603B\u6570\uFF08\u7B5B\u9009\u524D\uFF0C\u4F53\u73B0\u5168\u91CF\u89C4\u6A21\uFF09"),total:O.coerce.number().describe("\u6309\u7B5B\u9009\u6761\u4EF6\u547D\u4E2D\u7684\u6761\u6570\uFF08\u622A\u65AD\u524D\uFF09"),returned:O.coerce.number().describe("\u672C\u6B21\u5B9E\u9645\u8FD4\u56DE\u6761\u6570"),offset:O.coerce.number().describe("\u672C\u6B21\u8FD4\u56DE\u7684\u8D77\u59CB\u504F\u79FB"),limit:O.coerce.number().describe("\u672C\u6B21\u751F\u6548\u7684\u8FD4\u56DE\u6761\u6570\u4E0A\u9650"),truncated:O.boolean().describe("true \u8868\u793A\u547D\u4E2D\u6570\u5927\u4E8E\u672C\u6B21\u8FD4\u56DE\uFF0C\u8FD8\u6709\u540E\u7EED"),hint:O.union([O.string(),O.null()]).describe("\u6536\u655B/\u7FFB\u9875\u63D0\u793A\uFF1Bnull \u8868\u793A\u65E0\u9700\u63D0\u793A"),items:O.array(O.object({directorytypecode:O.string().describe("\u76EE\u5F55\u7F16\u7801\uFF0C\u5373\u5B9E\u4F53 directorytypecode \u7684\u53D6\u503C\uFF0C\u4E5F\u662F create_entity \u7684\u5FC5\u586B\u5165\u53C2"),directorytypename:O.union([O.string(),O.null()]).optional().describe("\u76EE\u5F55\u540D\u79F0\uFF08\u4E1A\u52A1\u4E2D\u5FC3\u4E0B\u7684\u76EE\u5F55\u5E26\u540E\u7F00\uFF0C\u5982\u300C\u5236\u5B9A\u8BA1\u5212(\u5BA2\u8BBF\u7BA1\u7406)\u300D\uFF09"),directoryname:O.string().optional().describe("\u76EE\u5F55\u672C\u540D\uFF0C\u4EC5\u5728\u4E0E directorytypename \u4E0D\u540C\u65F6\u8FD4\u56DE"),parentdirectorytypecode:O.string().optional().describe("\u7236\u76EE\u5F55\u7F16\u7801\uFF1B\u7F3A\u5931\u5373\u9876\u7EA7\u76EE\u5F55"),centername:O.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u540D\u79F0\uFF0C\u4EC5\u4E1A\u52A1\u4E2D\u5FC3\u4E0B\u7684\u76EE\u5F55\u8FD4\u56DE"),marktype:O.coerce.number().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237")})).describe("\u76EE\u5F55\u9879\uFF08\u5DF2\u88C1\u526A\uFF0C\u4EC5\u4FDD\u7559\u5B9A\u4F4D\u6240\u9700\u5B57\u6BB5\uFF09")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keys:e,directorytypecode:r,parentdirectorytypecode:i,centername:n,centercode:o,marktype:s,limit:l,offset:d,directorycategory:c=fe.ENTITY}=t;try{let p=await Ee({directorycategory:String(c||fe.ENTITY)}),g=Array.isArray(p?.resp_data)?p.resp_data:[];return $(he(g,{keys:e,directorytypecode:r,parentdirectorytypecode:i,centername:n,centercode:o,marktype:s,limit:l,offset:d}))}catch(p){return L(p)}}}];import{z as w}from"zod";var We=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),n=e>>BigInt(this.workerIdShift)&BigInt(this.maxWorkerId),o=e&BigInt(this.sequenceMask);return{timestamp:r,datacenterId:i,workerId:n,sequence:o,generateTime:new Date(Number(r))}}},jn=1,Hn=1,Un=new We(jn,Hn),_e=()=>Un.nextId();var Yn="3",Vn=new Set(["200000000000","100000000000","10000000000","300000000000","1000000000"]);function $e(t){return String(t??"")===Yn}function Ct(t){return t?Vn.has(t):!1}function zn(t){let e=String(t.datapattern??"");return e==="3"||e==="4"}function Ae(t,e,r={}){return{ok:!1,applied:!1,verified:null,errorCode:t,message:e,publishStatus:2,needManualPublish:!0,entityCode:"",entityName:"",diff:"",...r}}function Ge(t,e){let r={propertycode:_e().toString(),propertyname:t.propertyname,columnname:t.columnname,propertytypecode:t.propertytypecode,propertycategorycode:"1",idxtype:t.idxtype??"1",marktype:"2",propertydescr:t.propertydescr??"",ismaster:t.ismaster??"0",relationobjectcode:t.relationobjectcode??"",relationpropertycode:t.relationpropertycode??"",status:"1",publishstatus:"2"};return e.seq&&(r.seq=null),r}function Kn(t){let e={...t};return e.committype==="saverecord"&&(e.msgbody=q(new Date,"YYYY-MM-DD HH:mm")),{message:JSON.stringify(e),edittime:q(new Date,"YYYY-MM-DD HH:mm:ss"),overwrite:!1}}function Re(t){return $e(t)?1:2}function qn(t){let e=$e(t.objecttypecode);return{objectcode:_e().toString(),objectname:t.objectname,objecttypecode:t.objecttypecode,datapattern:"1",tablename:t.tablename,objectmark:t.tablename,objectdescr:t.propertydescr??"",directorytypecode:t.directorytypecode,objectcatgory:"2",storagelevel:0,parentobjectcode:t.parentobjectcode??"",diclayer:"0",script:"",marktype:"2",status:"1",publishstatus:Re(t.objecttypecode),properties:[]}}function Bn(t){let e=t.initialFields??[],r=e.some(n=>n.propertytypecode==="1"),i=[];r||i.push(Ge({propertyname:"\u4E3B\u952E",columnname:"id",propertytypecode:"1",idxtype:"2",ismaster:"0"},{seq:!1}));for(let n of e)i.push(Ge(n,{seq:!1}));return i}async function It(t,e){let r=Kn(e),i={...t,...r},n=await Nt(i);return typeof n.resp_data=="string"?n.resp_data:JSON.stringify(n.resp_data??null)}async function Jn(t){try{let r=(await le({objectcode:t.objectcode}))?.resp_data;if(!r)return{verified:!1,problems:["\u56DE\u8BFB\u67E5\u8BE2\u4E3A\u7A7A"]};let i=[];return r.objectname!==t.objectname&&i.push("objectname \u4E0D\u4E00\u81F4"),String(r.objecttypecode??"")!==String(t.objecttypecode)&&i.push("objecttypecode \u4E0D\u4E00\u81F4"),String(r.directorytypecode??"")!==String(t.directorytypecode)&&i.push("directorytypecode \u4E0D\u4E00\u81F4"),{verified:i.length===0,problems:i}}catch(e){return{verified:!1,problems:["\u56DE\u8BFB\u5931\u8D25\uFF1A"+E(e)]}}}async function Wn(t,e){try{let i=(await le({objectcode:t}))?.resp_data;if(!i)return{verified:!1,problems:["\u56DE\u8BFB\u67E5\u8BE2\u4E3A\u7A7A"]};let n=Array.isArray(i.properties)?i.properties:[],o=[];for(let s of e){let l=n.find(d=>String(d.propertycode??"")===String(s.propertycode));if(!l){o.push(`\u65B0\u589E\u5C5E\u6027 ${s.propertycode} (${s.propertyname}) \u672A\u51FA\u73B0\u5728\u56DE\u8BFB\u7ED3\u679C`);continue}l.propertyname!==s.propertyname&&o.push(`\u5C5E\u6027 ${s.propertycode} \u7684 propertyname \u4E0D\u4E00\u81F4`),String(l.columnname??"")!==String(s.columnname)&&o.push(`\u5C5E\u6027 ${s.propertycode} \u7684 columnname \u4E0D\u4E00\u81F4`)}return{verified:o.length===0,problems:o}}catch(r){return{verified:!1,problems:["\u56DE\u8BFB\u5931\u8D25\uFF1A"+E(r)]}}}async function Et(t,e,r={}){let i=r.dryRun!==!1,n=r.confirm===!0,o=r.verify!==!1,s=t.initialFields??[];for(let b of s){if(!b.propertyname||!b.propertytypecode||!b.columnname)return Ae("INVALID_PARAMS","initialFields \u4E2D\u6BCF\u4E2A\u5B57\u6BB5\u5FC5\u987B\u5305\u542B propertyname / propertytypecode / columnname",{entityName:t.objectname});if(Ct(b.propertytypecode)&&!b.relationobjectcode)return Ae("INVALID_PARAMS",`\u5173\u8054\u7C7B\u578B\u5B57\u6BB5(propertytypecode=${b.propertytypecode}) \u5FC5\u987B\u63D0\u4F9B relationobjectcode`,{entityName:t.objectname})}let l=$e(t.objecttypecode),d=qn(t),c=l?[]:Bn(t),p={...d,properties:c},g=[];if(g.push(`\u5B9E\u4F53 ${t.objectname} (objecttypecode=${t.objecttypecode}, tablename=${t.tablename})`),l)g.push("\u6570\u636E\u5B57\u5178\uFF1A\u5B57\u6BB5\u7531\u5E73\u53F0\u9884\u7F6E\uFF0Cproperties \u56FA\u5B9A\u4E3A\u7A7A");else{g.push(`properties: ${c.length} \u4E2A\uFF08\u542B\u9ED8\u8BA4\u4E3B\u952E\uFF09`);for(let b of c)g.push(` + ${b.propertyname} [${b.columnname}] type=${b.propertytypecode} idxtype=${b.idxtype}`)}let h=g.join(`\n`),_=Re(t.objecttypecode),x=_!==1;if(!(n&&!i))return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u89C8\u6A21\u5F0F\uFF08\u672A\u843D\u5E93\uFF09\u3002publishstatus=${_}${x?"\uFF0C\u4FDD\u5B58\u540E\u8BF7\u524D\u5F80\u5E73\u53F0\u624B\u52A8\u53D1\u5E03":"\uFF08\u6570\u636E\u5B57\u5178\u5DF2\u53D1\u5E03\uFF09"}\u3002\u786E\u8BA4\u65E0\u8BEF\u540E\u8BF7\u4EE5 confirm=true\u3001dryRun=false \u6267\u884C\u3002`,publishStatus:_,needManualPublish:x,entityCode:p.objectcode,entityName:p.objectname??"",diff:h};try{let b=await It(p,e),y=null,D=[];if(o){let I=await Jn(p);y=I.verified,D=I.problems}let C=`${b}${x?" | \u5DF2\u4FDD\u5B58\u5143\u6570\u636E\uFF08publishstatus=2\uFF09\uFF0C\u8BF7\u524D\u5F80\u5E73\u53F0\u624B\u52A8\u53D1\u5E03":""}${D.length?" | \u6821\u9A8C\u95EE\u9898\uFF1A"+D.join("\uFF1B"):""}`;return{ok:!0,applied:!0,verified:y,errorCode:y===!1?"VERIFY_FAILED":"OK",message:C,publishStatus:_,needManualPublish:x,entityCode:p.objectcode,entityName:p.objectname??"",diff:h}}catch(b){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:`\u4FDD\u5B58\u5931\u8D25\uFF1A${E(b)}`,publishStatus:_,needManualPublish:x,entityCode:p.objectcode,entityName:p.objectname??"",diff:h}}}async function Ft(t,e,r,i={}){let n=i.dryRun!==!1,o=i.confirm===!0,s=i.verify!==!1,l;try{let y=await le({objectcode:t});if(!y?.resp_data)return Ae("ENTITY_NOT_FOUND",`\u5B9E\u4F53 ${t} \u4E0D\u5B58\u5728\u6216\u67E5\u8BE2\u4E3A\u7A7A`,{entityCode:t});l=y.resp_data}catch(y){return Ae("FETCH_FAILED",`\u67E5\u8BE2\u5B9E\u4F53\u5931\u8D25\uFF1A${E(y)}`,{entityCode:t})}let d=$e(l.objecttypecode),c=e.map((y,D)=>({index:D,op:y.op,status:"OK",errorCode:"OK",message:null})),p=e.findIndex(y=>y.op==="modify_field"||y.op==="delete_field");if(p>=0)return c[p].status="FAILED",c[p].errorCode="FIELD_OP_UNSUPPORTED",c[p].message="\u4FEE\u6539/\u5220\u9664\u5B57\u6BB5\u8BF7\u8BA9\u7528\u6237\u5230 IDE \u5E73\u53F0\u624B\u52A8\u64CD\u4F5C",{ok:!1,applied:!1,verified:null,errorCode:"FIELD_OP_UNSUPPORTED",message:"\u4FEE\u6539/\u5220\u9664\u5B57\u6BB5\u8BF7\u8BA9\u7528\u6237\u5230 IDE \u5E73\u53F0\u624B\u52A8\u64CD\u4F5C",publishStatus:Re(String(l.objecttypecode??"")),needManualPublish:Re(String(l.objecttypecode??""))!==1,entityCode:t,entityName:l.objectname??"",diff:Fe(e,c),ops:c};if(d){let y=e.findIndex(D=>D.op==="add_field");return y>=0&&(c[y].status="FAILED",c[y].errorCode="DICTIONARY_NO_FIELD_OPS",c[y].message="\u6570\u636E\u5B57\u5178\u4E0D\u5141\u8BB8\u8C03\u6574\u5B57\u6BB5"),{ok:!1,applied:!1,verified:null,errorCode:"DICTIONARY_NO_FIELD_OPS",message:"\u6570\u636E\u5B57\u5178\u4E0D\u5141\u8BB8\u8C03\u6574\u5B57\u6BB5",publishStatus:Re(String(l.objecttypecode??"")),needManualPublish:!1,entityCode:t,entityName:l.objectname??"",diff:Fe(e,c),ops:c}}let g=structuredClone(l);g.properties=Array.isArray(g.properties)?[...g.properties]:[];let h=zn(g),_=[],x=!1;for(let y=0;y<e.length;y++){let D=e[y];if(D.op!=="add_field")continue;let C=D;if(!C.propertyname||!C.propertytypecode||!C.columnname){c[y].status="FAILED",c[y].errorCode="INVALID_PARAMS",c[y].message="add_field \u7F3A\u5C11\u5FC5\u586B\u53C2\u6570 propertyname / propertytypecode / columnname",x=!0;continue}if(Ct(C.propertytypecode)&&!C.relationobjectcode){c[y].status="FAILED",c[y].errorCode="INVALID_PARAMS",c[y].message=`\u5173\u8054\u7C7B\u578B(propertytypecode=${C.propertytypecode}) \u5FC5\u586B relationobjectcode`,x=!0;continue}if(g.properties.some(H=>String(H.columnname??"")===C.columnname)){c[y].status="FAILED",c[y].errorCode="DUP_PROP_CODE",c[y].message=`\u5B57\u6BB5\u5217\u540D columnname=${C.columnname} \u5DF2\u5B58\u5728\u4E8E\u5B9E\u4F53`,x=!0;continue}let I=Ge({propertyname:C.propertyname,propertytypecode:C.propertytypecode,columnname:C.columnname,propertydescr:C.propertydescr,idxtype:C.idxtype,relationobjectcode:C.relationobjectcode,relationpropertycode:C.relationpropertycode,ismaster:(C.idxtype==="2","0")},{seq:h});g.properties.push(I),_.push(I),c[y].message=`\u5C06\u65B0\u589E\u5C5E\u6027 ${I.propertycode} (${I.propertyname} [${I.columnname}])`}if(x)return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:"\u9884\u6F14\u5931\u8D25\uFF1A\u5B58\u5728\u672A\u901A\u8FC7\u7684 op\uFF0C\u672C\u6279\u6B21\u672A\u5199\u5165\uFF08\u4E8B\u52A1\u6027\uFF09",publishStatus:2,needManualPublish:!0,entityCode:t,entityName:l.objectname??"",diff:Fe(e,c),ops:c};g.publishstatus=2;let k=Fe(e,c);if(!(o&&!n))return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:"\u9884\u89C8\u6A21\u5F0F\uFF08\u672A\u843D\u5E93\uFF09\u3002\u4E8B\u52A1\u6027\u9884\u6F14\u901A\u8FC7\uFF0C\u786E\u8BA4\u65E0\u8BEF\u540E\u8BF7 confirm=true\u3001dryRun=false \u6267\u884C\u3002",publishStatus:2,needManualPublish:!0,entityCode:t,entityName:l.objectname??"",diff:k,ops:c};try{let y=await It(g,r),D=null,C=[];if(s&&_.length>0){let H=await Wn(t,_);D=H.verified,C=H.problems}let I=`${y} | \u5DF2\u4FDD\u5B58\u5143\u6570\u636E\uFF08publishstatus=2\uFF09\uFF0C\u8BF7\u524D\u5F80\u5E73\u53F0\u624B\u52A8\u53D1\u5E03${C.length?"\uFF1B\u6821\u9A8C\u95EE\u9898\uFF1A"+C.join("\uFF1B"):""}`;return{ok:!0,applied:!0,verified:D,errorCode:D===!1?"VERIFY_FAILED":"OK",message:I,publishStatus:2,needManualPublish:!0,entityCode:t,entityName:l.objectname??"",diff:k,ops:c}}catch(y){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:`\u4FDD\u5B58\u5931\u8D25\uFF1A${E(y)}`,publishStatus:2,needManualPublish:!0,entityCode:t,entityName:l.objectname??"",diff:k,ops:c}}}function Fe(t,e){let i=t.map((o,s)=>`ops[${s}] ${o.op} (${e[s].status}): ${e[s].message??""}`).join(`\n`),n=4e3;return i.length>n?i.slice(0,n)+`\n...(\u5DF2\u622A\u65AD)`:i}var Gn=w.object({propertyname:w.string().describe("\u5C5E\u6027\u4E2D\u6587\u540D"),propertytypecode:w.string().describe("\u5C5E\u6027\u7C7B\u578B\u7F16\u7801\uFF08\u89C1 get_model_logic \u7684 PROPERTY_TYPE_ENUM\uFF1B\u5982 1-\u4E3B\u952E(int8)\u30013-\u6587\u672C(200)\u30015-\u6574\u6570(int4) \u7B49\uFF09"),columnname:w.string().describe("\u6570\u636E\u5E93\u5B57\u6BB5\u540D\uFF08\u5217\u540D\uFF09"),propertydescr:w.string().optional().describe("\u5C5E\u6027\u63CF\u8FF0"),idxtype:w.string().optional().describe("\u7D22\u5F15\u65B9\u5F0F\uFF1A1-\u65E0\uFF1B2-\u4E3B\u952E\u7D22\u5F15\u3002\u7F3A\u7701 1\uFF08\u4E3B\u952E\u5B57\u6BB5\u4F20 2\uFF09"),relationobjectcode:w.string().optional().describe("\u5173\u8054\u7C7B\u578B(propertytypecode \u4E3A\u5173\u8054\u7F16\u7801)\u65F6\u5FC5\u586B\u7684\u5173\u8054\u5B9E\u4F53\u7F16\u7801"),relationpropertycode:w.string().optional().describe("\u5173\u8054\u5C5E\u6027\u7F16\u7801\uFF0C\u5173\u8054\u7C7B\u578B\u65F6\u53EF\u9009")}),Qn=w.discriminatedUnion("op",[w.object({op:w.literal("add_field"),propertyname:w.string().describe("\u5C5E\u6027\u4E2D\u6587\u540D"),propertytypecode:w.string().describe("\u5C5E\u6027\u7C7B\u578B\u7F16\u7801\uFF08\u89C1 get_model_logic \u7684 PROPERTY_TYPE_ENUM\uFF09"),columnname:w.string().describe("\u6570\u636E\u5E93\u5B57\u6BB5\u540D\uFF08\u5217\u540D\uFF09"),propertydescr:w.string().optional().describe("\u5C5E\u6027\u63CF\u8FF0"),idxtype:w.string().optional().describe("\u7D22\u5F15\u65B9\u5F0F\uFF1A1-\u65E0\uFF1B2-\u4E3B\u952E\u7D22\u5F15\u3002\u7F3A\u7701 1"),relationobjectcode:w.string().optional().describe("\u5173\u8054\u7C7B\u578B(propertytypecode \u4E3A\u5173\u8054\u7F16\u7801)\u65F6\u5FC5\u586B\u7684\u5173\u8054\u5B9E\u4F53\u7F16\u7801"),relationpropertycode:w.string().optional().describe("\u5173\u8054\u5C5E\u6027\u7F16\u7801\uFF0C\u5173\u8054\u7C7B\u578B\u65F6\u53EF\u9009")}).describe("\u65B0\u589E\u5B57\u6BB5\uFF08\u5F53\u524D\u552F\u4E00\u5B9E\u73B0\u7684 op\uFF09"),w.object({op:w.literal("modify_field"),propertycode:w.string().describe("\u8981\u4FEE\u6539\u7684\u5C5E\u6027\u7F16\u7801"),patch:w.record(w.string(),w.unknown()).describe("\u8981\u5408\u5E76\u7684\u5C5E\u6027\u5B57\u6BB5\uFF08\u4FDD\u7559\u672A\u5B9E\u73B0\uFF0C\u4F20\u5165\u5373\u62D2\u7EDD\uFF09")}).describe("\u4FEE\u6539\u5B57\u6BB5\uFF08\u4FDD\u7559\u672A\u5B9E\u73B0\uFF1A\u63D0\u793A\u7528\u6237\u5230 IDE \u5E73\u53F0\u624B\u52A8\u64CD\u4F5C\uFF09"),w.object({op:w.literal("delete_field"),propertycode:w.string().describe("\u8981\u5220\u9664\u7684\u5C5E\u6027\u7F16\u7801")}).describe("\u5220\u9664\u5B57\u6BB5\uFF08\u4FDD\u7559\u672A\u5B9E\u73B0\uFF1A\u63D0\u793A\u7528\u6237\u5230 IDE \u5E73\u53F0\u624B\u52A8\u64CD\u4F5C\uFF09")]),Zn={ok:w.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:w.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:w.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:w.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / FETCH_FAILED / ENTITY_NOT_FOUND / FIELD_OP_UNSUPPORTED / DICTIONARY_NO_FIELD_OPS / INVALID_PARAMS / DUP_PROP_CODE / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:w.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u542B publishstatus \u4E0E\u300C\u8BF7\u624B\u52A8\u53D1\u5E03\u300D\u63D0\u793A"),publishStatus:w.number().describe("\u5B9E\u4F53\u7EA7\u53D1\u5E03\u72B6\u6001\uFF1A\u975E\u5B57\u5178\u5B9E\u4F53 2\uFF08\u672A\u53D1\u5E03\uFF09\u3001\u6570\u636E\u5B57\u5178 1\uFF08\u5DF2\u53D1\u5E03\uFF09"),needManualPublish:w.boolean().describe("\u662F\u5426\u9700\u7528\u6237\u5230\u5E73\u53F0\u624B\u52A8\u53D1\u5E03\uFF08\u975E\u5B57\u5178\u5B9E\u4F53\u4E3A true\uFF09"),entityCode:w.string().describe("\u5B9E\u4F53\u7F16\u7801"),entityName:w.string().describe("\u5B9E\u4F53\u4E2D\u6587\u540D"),diff:w.string().describe("\u5168\u90E8 op \u7684\u6267\u884C\u6458\u8981\uFF0C\u8D85\u957F\u4F1A\u622A\u65AD"),ops:w.array(w.object({index:w.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:w.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:w.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:w.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801"),message:w.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")},Xn={ok:w.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:w.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u65F6\u4E3A false"),verified:w.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:w.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / INVALID_PARAMS / SAVE_FAILED / VERIFY_FAILED"),message:w.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u542B publishstatus \u4E0E\u300C\u8BF7\u624B\u52A8\u53D1\u5E03\u300D\u63D0\u793A"),publishStatus:w.number().describe("\u5B9E\u4F53\u7EA7\u53D1\u5E03\u72B6\u6001\uFF1A\u975E\u5B57\u5178\u5B9E\u4F53 2\uFF08\u672A\u53D1\u5E03\uFF09\u3001\u6570\u636E\u5B57\u5178 1\uFF08\u5DF2\u53D1\u5E03\uFF09"),needManualPublish:w.boolean().describe("\u662F\u5426\u9700\u7528\u6237\u5230\u5E73\u53F0\u624B\u52A8\u53D1\u5E03\uFF08\u975E\u5B57\u5178\u5B9E\u4F53\u4E3A true\uFF09"),entityCode:w.string().describe("\u65B0\u5EFA\u5B9E\u4F53\u7684\u7F16\u7801"),entityName:w.string().describe("\u5B9E\u4F53\u4E2D\u6587\u540D"),diff:w.string().describe("\u5C06\u8981\u521B\u5EFA\u7684\u5B9E\u4F53\u6458\u8981\uFF08\u5B57\u6BB5\u5217\u8868\uFF09\uFF0C\u8D85\u957F\u4F1A\u622A\u65AD")};function At(t,e){return{ok:!1,applied:!1,verified:null,errorCode:t,message:e,publishStatus:2,needManualPublish:!0,entityCode:"",entityName:"",diff:""}}var $t=[{name:"create_entity",config:{title:"\u65B0\u589E\u5B9E\u4F53\uFF08\u6570\u636E\u8868\uFF09",description:`\u65B0\u589E\u4E00\u4E2A\u5B9E\u4F53\uFF08\u6570\u636E\u8868\uFF09\u3002\u4EC5\u4F20\u5FC5\u8981\u53C2\u6570\uFF0C\u5B8C\u6574\u5B9E\u4F53\u5BF9\u8C61\u7531 MCP \u4FA7\u7EC4\u88C5\u540E\u8C03\u5E73\u53F0\u4FDD\u5B58\u63A5\u53E3\u3002\n\u6CE8\u610F\uFF1A\u6240\u6709\u5199\u64CD\u4F5C\u9ED8\u8BA4 confirm=false + dryRun=true\uFF0C\u8BF7\u5148\u9884\u89C8\u3001\u786E\u8BA4\u65E0\u8BEF\u540E\u518D\u4EE5 confirm=true\u3001dryRun=false \u6267\u884C\uFF1B\u4FDD\u5B58\u540E\u5B9E\u4F53\u5904\u4E8E\u672A\u53D1\u5E03\u6001\uFF0C\u9700\u5230\u5E73\u53F0\u624B\u52A8\u70B9\u51FB\u53D1\u5E03\uFF08\u65B0\u589E\u6570\u636E\u5B57\u5178\u9664\u5916\uFF0C\u5176 publishstatus=1 \u5DF2\u53D1\u5E03\uFF09\u3002\n\u5B57\u6BB5\u89C4\u5219\uFF1Atablename \u5FC5\u586B\u4E14 objectmark \u81EA\u52A8\u590D\u5236\u5176\u503C\uFF1B\u6570\u636E\u5B57\u5178(objecttypecode=3)\u5B57\u6BB5\u7531\u5E73\u53F0\u9884\u7F6E\uFF0C\u65E0\u9700\u4E5F\u4E0D\u5141\u8BB8\u4F20 initialFields\u3002\n\n${j}\n${ee}`,inputSchema:{objectname:w.string().describe("\u5B9E\u4F53\u4E2D\u6587\u540D"),objecttypecode:w.string().describe("\u5B9E\u4F53\u5206\u7C7B\uFF08\u5FC5\u586B\uFF09\uFF1A1-\u57FA\u672C\u5BF9\u8C61\uFF1B2-\u6811\u578B\u5BF9\u8C61\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5BF9\u8C61"),tablename:w.string().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u5FC5\u586B\uFF09\uFF1Bobjectmark \u81EA\u52A8\u590D\u5236\u6B64\u503C"),directorytypecode:w.string().describe("\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF08\u5FC5\u586B\uFF09\uFF0C\u53D6\u503C\u6765\u81EA page_entity_directories \u67E5\u8BE2\u5230\u7684 directorytypecode"),parentobjectcode:w.string().optional().describe("\u7236\u5B9E\u4F53\u7F16\u7801\uFF0C\u6811\u578B/\u5173\u8054\u5B9E\u4F53\u4F7F\u7528"),propertydescr:w.string().optional().describe("\u5B9E\u4F53\u63CF\u8FF0"),initialFields:w.array(Gn).optional().describe("\u53EF\u9009\u521D\u59CB\u5B57\u6BB5\uFF08\u6BCF\u9879\u4EC5 propertyname/propertytypecode/columnname \u5FC5\u586B\uFF09\uFF1B\u6570\u636E\u5B57\u5178\u5FFD\u7565\u6B64\u53C2\u6570\u3002\u975E\u5B57\u5178\u5B9E\u4F53\u82E5\u672A\u63D0\u4F9B\u4E3B\u952E(propertytypecode=1)\uFF0CMCP \u4F1A\u81EA\u52A8\u8865\u4E00\u4E2A\u300C\u4E3B\u952E/id\u300D"),commitMessage:B.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u7F3A\u7701 mcp \u7EC4\u88C5\u9ED8\u8BA4\uFF08committype=saverecord\uFF09"),confirm:w.boolean().optional().describe("\u662F\u5426\u786E\u8BA4\u843D\u5E93\uFF0C\u9ED8\u8BA4 false\u3002\u5FC5\u987B\u663E\u5F0F true \u624D\u4F1A\u771F\u6B63\u4FDD\u5B58"),dryRun:w.boolean().optional().describe("\u662F\u5426\u4EC5\u9884\u89C8\u4E0D\u843D\u5E93\uFF0C\u9ED8\u8BA4 true\u3002\u7F6E false \u624D\u6267\u884C\u4FDD\u5B58\uFF08\u9700\u914D\u5408 confirm=true\uFF09"),verify:w.boolean().optional().describe("\u4FDD\u5B58\u540E\u662F\u5426\u56DE\u8BFB\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true")},outputSchema:Xn,annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async t=>{let{objectname:e,objecttypecode:r,tablename:i,directorytypecode:n,parentobjectcode:o,propertydescr:s,initialFields:l,confirm:d=!1,dryRun:c=!0,verify:p=!0}=t,g=t?.commitMessage?J(t.commitMessage):{committype:"saverecord",committypetext:"\u4FDD\u5B58\u8BB0\u5F55",msgbody:""};try{let h=await Et({objectname:e,objecttypecode:r,tablename:i,directorytypecode:n,parentobjectcode:o,propertydescr:s,initialFields:l},g,{confirm:d,dryRun:c,verify:p});return{isError:!h.ok,content:[{type:"text",text:JSON.stringify(h)}],structuredContent:h}}catch(h){let _=E(h);return{isError:!0,content:[{type:"text",text:_}],structuredContent:At("SAVE_FAILED",_)}}}},{name:"patch_entity",config:{title:"\u5DF2\u6709\u5B9E\u4F53\u65B0\u589E\u5B57\u6BB5",description:`\u5BF9\u5DF2\u6709\u5B9E\u4F53\u505A\u5B57\u6BB5\u7EA7\u4FEE\u6539\u3002\u5F53\u524D\u4EC5\u5B9E\u73B0 add_field\uFF08\u65B0\u589E\u5B57\u6BB5\uFF09\uFF1Bmodify_field / delete_field \u4E3A\u4FDD\u7559 op\uFF0C\u4F20\u5165\u4F1A\u76F4\u63A5\u5931\u8D25\u5E76\u63D0\u793A\u300C\u4FEE\u6539/\u5220\u9664\u5B57\u6BB5\u8BF7\u8BA9\u7528\u6237\u5230 IDE \u5E73\u53F0\u624B\u52A8\u64CD\u4F5C\u300D\u3002\n\u6570\u636E\u5B57\u5178(objecttypecode=3)\u7684\u5B57\u6BB5\u7531\u5E73\u53F0\u9884\u7F6E\uFF0C\u4E0D\u5141\u8BB8\u4EFB\u4F55\u5B57\u6BB5\u589E\u6539\u5220\uFF0C\u4F20\u5165 add_field \u4F1A\u5931\u8D25\u5E76\u63D0\u793A\u300C\u6570\u636E\u5B57\u5178\u4E0D\u5141\u8BB8\u8C03\u6574\u5B57\u6BB5\u300D\u3002\n\u6CE8\u610F\uFF1A\u6240\u6709\u5199\u64CD\u4F5C\u9ED8\u8BA4 confirm=false + dryRun=true\uFF0C\u8BF7\u5148\u9884\u89C8\u3001\u786E\u8BA4\u65E0\u8BEF\u540E\u518D\u4EE5 confirm=true\u3001dryRun=false \u6267\u884C\uFF1B\u4FDD\u5B58\u540E\u5B9E\u4F53\u5904\u4E8E\u672A\u53D1\u5E03\u6001\uFF0C\u9700\u5230\u5E73\u53F0\u624B\u52A8\u70B9\u51FB\u53D1\u5E03\u3002\n\n${j}\n${ee}`,inputSchema:{objectcode:w.string().describe("\u76EE\u6807\u5B9E\u4F53\u7684\u7F16\u7801"),ops:w.array(Qn).min(1).describe("\u5B57\u6BB5\u64CD\u4F5C\u6570\u7EC4\uFF0C\u81F3\u5C11\u4E00\u4E2A\u5143\u7D20\uFF1B\u6309\u6570\u7EC4\u987A\u5E8F\u4E8B\u52A1\u6027\u6267\u884C\uFF0C\u4EFB\u4E00\u5931\u8D25\u6574\u6279\u56DE\u6EDA\u3002\u4EC5 add_field \u5DF2\u5B9E\u73B0"),commitMessage:B.describe("\u63D0\u4EA4\u4FE1\u606F\uFF0C\u6574\u6279 ops \u5171\u7528\u4E00\u4E2A\uFF1B\u7F3A\u7701 mcp \u7EC4\u88C5\u9ED8\u8BA4\uFF08committype=saverecord\uFF09"),confirm:w.boolean().optional().describe("\u662F\u5426\u786E\u8BA4\u843D\u5E93\uFF0C\u9ED8\u8BA4 false\u3002\u5FC5\u987B\u663E\u5F0F true \u624D\u4F1A\u771F\u6B63\u4FDD\u5B58"),dryRun:w.boolean().optional().describe("\u662F\u5426\u4EC5\u9884\u89C8\u4E0D\u843D\u5E93\uFF0C\u9ED8\u8BA4 true\u3002\u7F6E false \u624D\u6267\u884C\u4FDD\u5B58\uFF08\u9700\u914D\u5408 confirm=true\uFF09"),verify:w.boolean().optional().describe("\u4FDD\u5B58\u540E\u662F\u5426\u56DE\u8BFB\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true")},outputSchema:Zn,annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1}},handler:async t=>{let{objectcode:e,ops:r,confirm:i=!1,dryRun:n=!0,verify:o=!0}=t,s=t?.commitMessage?J(t.commitMessage):{committype:"saverecord",committypetext:"\u4FDD\u5B58\u8BB0\u5F55",msgbody:""};try{let l=await Ft(e,r,s,{confirm:i,dryRun:n,verify:o});return{isError:!l.ok,content:[{type:"text",text:JSON.stringify(l)}],structuredContent:l}}catch(l){let d=E(l);return{isError:!0,content:[{type:"text",text:d}],structuredContent:At("SAVE_FAILED",d)}}}}];import{z as a}from"zod";function Tt(t){return Ee({directorycategory:t.directorycategory??fe.FORM})}function Lt(t){return F({url:"/bizserv/bizpage/pageList",method:"post",data:t,type:"tenant"})}function ne(t){return F({url:"/bizserv/bizpage/getPage",method:"post",data:t,type:"tenant"})}function Qe(t){let{conf:e,message:r,ui:i,edittime:n=q(new Date,"YYYY-MM-DD HH:mm:ss"),overwrite:o=!1,clearuserconfig:s=!0}=t;return F({url:"/biserv/bizpage/saveNewPage",method:"post",data:{clearuserconfig:s,conf:e,edittime:n,message:r,overwrite:o,ui:i??e},type:"tenant"})}function Xe(t){return t?Array.isArray(t)?t.filter(Boolean):[t]:[]}function et(t,e,r){let i=[{scope:"handlers",list:t.presenter?.handlers??[]},{scope:"initial",list:Xe(t.presenter?.initial)}],n=[];for(let o of i)if(!(r&&o.scope!==r))for(let s of o.list)s&&s.code===e&&n.push({handler:s,scope:o.scope});return n}var Mt=150;function Ut(t){t.committype==="saverecord"&&(t.msgbody=q(new Date,"YYYY-MM-DD HH:mm"))}function Te(t,e){if(!t)return null;if(t.code===e)return t;if(Array.isArray(t.content))for(let r of t.content){let i=Te(r,e);if(i)return i}return null}function we(t){let e=[],r=i=>{i&&(e.push(i),Array.isArray(i.content)&&i.content.forEach(r))};return r(t.view?.body??null),Array.isArray(t.controls)&&t.controls.forEach(i=>{i&&e.push(i)}),e}function Ze(t,e){if(Array.isArray(t)){for(let r of t)if(r&&typeof r=="object"){if(r.code===e)return r;let i=Ze(r,e);if(i)return i}return null}if(t&&typeof t=="object")for(let r of Object.values(t)){let i=Ze(r,e);if(i)return i}return null}function Yt(t,e){if(!t?.content)return null;let r=t.content.findIndex(i=>i?.code===e);if(r>=0){let[i]=t.content.splice(r,1);return i??null}for(let i of t.content){let n=Yt(i,e);if(n)return n}return null}function jt(t,e){let r=Yt(t.view?.body??null,e);if(r)return r;if(Array.isArray(t.controls)){let i=t.controls.findIndex(n=>n?.code===e);if(i>=0){let[n]=t.controls.splice(i,1);return n??null}}return null}function Ht(t){let e=new Set,r=i=>{if(i){for(let n of i.eventlist??[])n?.handler&&e.add(n.handler);Array.isArray(i.content)&&i.content.forEach(r)}};r(t.view?.body??null);for(let i of t.presenter?.handlers??[]){for(let n of i?.actions??[])n?.handler&&e.add(n.handler),n?.logiccode&&e.add(n.logiccode);for(let n of i?.eventlist??[])n?.handler&&e.add(n.handler)}for(let i of Xe(t.presenter?.initial)){for(let n of i?.actions??[])n?.handler&&e.add(n.handler),n?.logiccode&&e.add(n.logiccode);for(let n of i?.eventlist??[])n?.handler&&e.add(n.handler)}for(let i of t.presenter?.interface??[])for(let n of i?.actions??[])n?.handler&&e.add(n.handler);return e}function er(t){return{oldString:t.oldString,newString:t.newString,replaceAll:t.replaceAll,occurrence:t.occurrence,matchMode:t.matchMode,label:t.label}}function Vt(t){let e={code:t.code??null,type:t.type??null,title:t.title??null};return Array.isArray(t.content)&&t.content.length>0&&(e.children=t.content.map(Vt)),e}async function zt(t){let r=(await ne({code:t})).resp_data;if(!r)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let i=(()=>{let s=(l,d)=>(l??[]).map(c=>({code:c?.code??null,name:c?.name??null,desc:c?.desc??null,key:c?.key??null,condition:c?.condition??null,actionCount:c?.actions?.length??0,actionTypes:(c?.actions??[]).map(p=>p?.type??"").filter(p=>!!p),scope:d}));return[...s(r.presenter?.handlers??[],"handlers"),...s(Xe(r.presenter?.initial),"initial")]})(),n=(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:t,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?[Vt(r.view.body)]:[],handlers:i,interfaces:n,businessModels:o,message:r.message??null}}async function Kt(t,e){let i=(await ne({code:t})).resp_data;if(!i)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let n,o,s,l=i.message??null;if(e.nodeCode&&(n=Te(i.view?.body??null,e.nodeCode)??i.controls?.find(c=>c?.code===e.nodeCode)??null,n&&e.itemCode)){let c=Ze(n,e.itemCode);c?n=c:(n=null,l=`nodeCode=${e.nodeCode} \u4E0B\u672A\u627E\u5230 code=${e.itemCode} \u7684\u5143\u7D20`)}if(e.handlerCode){let c=et(i,e.handlerCode,e.handlerScope);c.length===1?o=c[0].handler:c.length>1&&(o=null,l=`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 d=o?.actions?o.actions.map((c,p)=>({index:p,code:c?.code??null,type:c?.type??null,scriptLen:(c?.script??"")?.length??0,conditionLen:(c?.condition??"")?.length??0,expressionLen:(c.expression??"")?.length??0})):void 0;return{code:t,node:n??void 0,handler:o??void 0,section:s??void 0,actionIndex:d,message:l}}async function tr(t,e,r){let i=(o={})=>({index:r,op:e.op,status:"OK",errorCode:"OK",message:null,hunk:null,suggestions:null,...o}),n=(o,s,l={})=>({index:r,op:e.op,status:"FAILED",errorCode:o,message:s,hunk:null,suggestions:null,...l});switch(e.op){case"set_pageinfo":return t.pageinfo={...t.pageinfo??{},...e.patch},i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5B57\u6BB5\u5230 pageinfo`});case"set_attrs":{let o=we(t).filter(d=>d.code===e.code);if(o.length===0)return n("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return n("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(([,d])=>Array.isArray(d)),l=s.length>0?`\uFF08\u6CE8\u610F\uFF1Apatch \u542B\u6570\u7EC4\u5C5E\u6027 ${s.map(([d])=>`"${d}"`).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}${l}`})}case"patch_node_array_item":{let o=we(t).find(c=>c.code===e.nodeCode);if(!o)return n("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 n("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 l=e.itemKey??"code",d=s.filter(c=>c&&typeof c=="object"&&c[l]===e.itemKeyValue);return d.length===0?n("NODE_NOT_FOUND",`\u672A\u5728 ${e.nodeCode}.${e.arrayProp} \u4E2D\u627E\u5230 ${l}=${String(e.itemKeyValue)} \u7684\u5143\u7D20`):d.length>1?n("DUP_CODE",`\u5143\u7D20 ${l}=${String(e.itemKeyValue)} \u5728 ${e.nodeCode}.${e.arrayProp} \u4E2D\u51FA\u73B0 ${d.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`):(Object.assign(d[0],e.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230 ${e.nodeCode}.${e.arrayProp}[${l}=${String(e.itemKeyValue)}]`}))}case"insert_node":{let o=Te(t.view?.body??null,e.parentCode);if(!o)return n("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=we(t).filter(l=>l.code===e.code);return o.length===0?n("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`):o.length>1?n("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):e.checkRefs!==!1&&Ht(t).has(e.code)?n("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`):jt(t,e.code)?i({message:`\u5DF2\u79FB\u9664\u8282\u70B9 ${e.code}`}):n("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`)}case"move_node":{let o=we(t).filter(c=>c.code===e.code);if(o.length===0)return n("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return n("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let s=jt(t,e.code);if(!s)return n("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`);let l=Te(t.view?.body??null,e.newParentCode);if(!l)return n("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 newParentCode=${e.newParentCode} \u7684\u7236\u8282\u70B9`);l.content||(l.content=[]);let d=e.position??l.content.length;return l.content.splice(d,0,s),i({message:`\u5DF2\u5C06 ${e.code} \u79FB\u52A8\u5230 ${e.newParentCode} \u7684 position=${d}`})}case"set_section":return t[e.section]=e.value,i({message:`\u5DF2\u6574\u6BB5\u66FF\u6362 ${e.section}`});case"replace_script":{let o=et(t,e.handlerCode,e.scope);if(o.length===0)return n("NODE_NOT_FOUND",`\u672A\u5728 presenter\uFF08handlers \u4E0E initial\uFF09\u4E2D\u627E\u5230 handlerCode=${e.handlerCode}`);if(o.length>1)return n("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 l=o[0].handler.actions??[],d;if(e.actionCode!=null){if(d=l.find(_=>_?.code===e.actionCode),!d)return n("NODE_NOT_FOUND",`handler ${e.handlerCode} \u4E2D\u672A\u627E\u5230 actionCode=${e.actionCode}`)}else{let _=e.actionIndex??0;if(_<0||_>=l.length)return n("NO_TARGET",`actionIndex=${_} \u8D8A\u754C\uFF0Chandler ${e.handlerCode} \u5171\u6709 ${l.length} \u4E2A action`);d=l[_]}let c=e.field??"script";if(e.replacement!=null)return d[c]=e.replacement,i({message:`\u5DF2\u6574\u6BB5\u8986\u76D6 ${e.handlerCode}.actions[${e.actionIndex??0}].${c}`});if(!e.ops||e.ops.length===0)return n("INVALID_PARAMS","replace_script \u9700\u63D0\u4F9B replacement \u6216 ops\uFF08oldString\u2192newString \u6570\u7EC4\uFF09");let p=d[c]??"",g=Ce([p],e.ops.map(er),{contextLines:3}),h=g.results[0];return g.ok?(d[c]=g.scripts[0],i({message:`\u5DF2\u5C40\u90E8\u66FF\u6362 ${c}`,hunk:h?.hunk??null})):n("OPS_FAILED",h?.message??"\u811A\u672C\u66FF\u6362\u5931\u8D25",{hunk:h?.hunk??null,suggestions:h?.suggestions??null})}case"add_businessmodel":{let o=t.businessmodel??(t.businessmodel=[]),s=o.find(d=>d?.modellogiccode===e.modellogiccode);if(s&&!e.overwrite)return i({message:`businessmodel \u5DF2\u5B58\u5728 ${e.modellogiccode}\uFF0C\u8DF3\u8FC7\uFF08overwrite=false\uFF09`});let l;try{l=(await Z({modellogiccode:e.modellogiccode})).resp_data}catch(d){return n("FETCH_FAILED",`\u83B7\u53D6\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5931\u8D25\uFF1A${E(d)}`)}return l?s&&e.overwrite?(Object.assign(s,l),i({message:`\u5DF2\u8986\u76D6 businessmodel \u4E2D\u7684 ${e.modellogiccode}`})):(o.push(l),i({message:`\u5DF2\u8FFD\u52A0\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5230 businessmodel`})):n("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${e.modellogiccode} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`)}case"remove_businessmodel":{let o=t.businessmodel??[],s=o.findIndex(l=>l?.modellogiccode===e.modellogiccode);return s<0?i({message:`businessmodel \u4E2D\u4E0D\u5B58\u5728 ${e.modellogiccode}\uFF0C\u65E0\u9700\u79FB\u9664`}):e.checkRefs!==!1&&Ht(t).has(e.modellogiccode)?n("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 nr(t){let e=[];for(let n of t)n.hunk?e.push(`--- ops[${n.index}] ${n.op}\n${n.hunk}`):e.push(`ops[${n.index}] ${n.op} (${n.status}): ${n.message??""}`);let r=e.join(`\n`),i=r.split(`\n`);return i.length<=Mt?r:`${i.slice(0,Mt).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}function rr(t,e){let r=[],i=we(t),n=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[l,d]of Object.entries(s.patch))JSON.stringify(t.pageinfo?.[l])!==JSON.stringify(d)&&r.push(`ops[${o}] set_pageinfo.${l} \u672A\u751F\u6548`);break;case"set_attrs":{let l=i.find(d=>d.code===s.code);if(!l){r.push(`ops[${o}] set_attrs \u8282\u70B9 ${s.code} \u6D88\u5931`);break}for(let[d,c]of Object.entries(s.patch))JSON.stringify(l[d])!==JSON.stringify(c)&&r.push(`ops[${o}] set_attrs.${d} \u672A\u751F\u6548`);break}case"patch_node_array_item":{let l=i.find(g=>g.code===s.nodeCode);if(!l){r.push(`ops[${o}] patch_node_array_item \u8282\u70B9 ${s.nodeCode} \u6D88\u5931`);break}let d=l[s.arrayProp];if(!Array.isArray(d)){r.push(`ops[${o}] patch_node_array_item ${s.arrayProp} \u975E\u6570\u7EC4`);break}let c=s.itemKey??"code",p=d.find(g=>g&&typeof g=="object"&&g[c]===s.itemKeyValue);if(!p){r.push(`ops[${o}] patch_node_array_item \u5143\u7D20 ${c}=${String(s.itemKeyValue)} \u672A\u627E\u5230`);break}for(let[g,h]of Object.entries(s.patch))JSON.stringify(p[g])!==JSON.stringify(h)&&r.push(`ops[${o}] patch_node_array_item.${g} \u672A\u751F\u6548`);break}case"insert_node":n.has(s.node.code)||r.push(`ops[${o}] insert_node \u8282\u70B9\u672A\u51FA\u73B0`);break;case"remove_node":n.has(s.code)&&r.push(`ops[${o}] remove_node \u8282\u70B9\u4ECD\u5B58\u5728`);break;case"move_node":n.has(s.code)||r.push(`ops[${o}] move_node \u8282\u70B9\u6D88\u5931`);break;case"set_section":break;case"replace_script":{let l=et(t,s.handlerCode,s.scope);if(l.length!==1){r.push(`ops[${o}] replace_script handler \u672A\u627E\u5230\u6216\u5B58\u5728\u540C\u540D\u6B67\u4E49`);break}let c=l[0].handler.actions??[],p=s.actionCode!=null?c.find(_=>_?.code===s.actionCode):c[s.actionIndex??0];if(!p){r.push(`ops[${o}] replace_script action \u672A\u627E\u5230`);break}let g=s.field??"script",h=p[g]??"";if(s.replacement!=null)W(h)!==W(s.replacement)&&r.push(`ops[${o}] replace_script \u6574\u6BB5\u8986\u76D6\u672A\u751F\u6548`);else if(s.ops)for(let _ of s.ops){let x=_.matchMode??"normalized",k=W(h,x),b=W(_.newString,x),y=W(_.oldString,x);_.newString.length>0&&!k.includes(b)&&r.push(`ops[${o}] replace_script \u65B0\u5185\u5BB9\u672A\u51FA\u73B0`),!b.includes(y)&&k.includes(y)&&r.push(`ops[${o}] replace_script \u65E7\u5185\u5BB9\u4ECD\u5B58\u5728`)}break}case"add_businessmodel":{(t.businessmodel??[]).some(d=>d?.modellogiccode===s.modellogiccode)||r.push(`ops[${o}] add_businessmodel \u672A\u8FFD\u52A0`);break}case"remove_businessmodel":{(t.businessmodel??[]).some(d=>d?.modellogiccode===s.modellogiccode)&&r.push(`ops[${o}] remove_businessmodel \u672A\u79FB\u9664`);break}}}return{verified:r.length===0,problems:r}}async function qt(t,e,r,i={}){let n=i.dryRun??!1,o=i.verify??!0,s=(b,y)=>({ok:!1,applied:!1,verified:null,errorCode:b,message:y,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return s("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let l;try{l=(await ne({code:t})).resp_data}catch(b){return s("FETCH_FAILED",E(b))}if(!l)return s("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let d=structuredClone(l),c=[],p=!1;for(let b=0;b<e.length;b++)try{let y=await tr(d,e[b],b);c.push(y),y.status==="FAILED"&&(p=!0)}catch(y){c.push({index:b,op:e[b].op,status:"FAILED",errorCode:"OP_ERROR",message:E(y),hunk:null,suggestions:null}),p=!0}let g=nr(c);if(p){let b=c.filter(y=>y.status==="FAILED").map(y=>y.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${c.filter(y=>y.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:g,ops:c}}if(n)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:g,ops:c};Ut(r);let h=JSON.stringify(r),_;try{let b=await Qe({conf:d,message: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:E(b),diff:g,ops:c}}let x=null,k=_;if(o)try{let y=(await ne({code:t})).resp_data;if(!y)x=!1,k=`${_} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let D=rr(y,e);x=D.verified,D.verified||(k=`${_} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${D.problems.join("\uFF1B")}`)}}catch(b){x=!1,k=`${_} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${E(b)}`}return{ok:x===null?!0:x,applied:!0,verified:x,errorCode:x===!1?"VERIFY_FAILED":"OK",message:k,diff:g,ops:c}}async function Bt(t,e){Ut(e);let r=JSON.stringify(e);try{let i=await Qe({conf:t,message:r}),n=typeof i?.resp_data=="string"?i.resp_data:JSON.stringify(i?.resp_data??null);return{ok:!0,code:t.pageinfo?.code??void 0,message:n}}catch(i){return{ok:!1,code:t.pageinfo?.code??void 0,message:E(i)}}}var or=a.object({createtime:a.union([a.string(),a.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:a.union([a.string(),a.null()]).optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),createaccountname:a.union([a.string(),a.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),code:a.string().describe("\u8868\u5355/\u9875\u9762\u7684\u7F16\u7801"),clientcategorycode:a.union([a.string(),a.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),confsource:a.coerce.number().nullable().optional().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),directorytypecode:a.union([a.string(),a.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:a.union([a.string(),a.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),marktype:a.coerce.number().nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:a.union([a.string(),a.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C code \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),pagetemplatecode:a.union([a.string(),a.null()]).optional().describe("\u9875\u9762\u6A21\u677F\u7F16\u7801"),pagetypename:a.union([a.string(),a.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\u540D\u79F0"),pagedescr:a.union([a.string(),a.null()]).optional().describe("\u9875\u9762\u63CF\u8FF0"),ref:a.union([a.string(),a.null()]).optional().describe("\u5916\u90E8\u5F15\u7528\uFF0C\u4E00\u822C\u4F20\u7A7A\u5B57\u7B26\u4E32"),status:a.coerce.number().nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:a.union([a.string(),a.null()]).optional().describe("\u6807\u9898"),type:a.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:a.union([a.string(),a.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountcode:a.union([a.string(),a.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:a.union([a.string(),a.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),versionnum:a.union([a.string(),a.null()]).optional().describe("\u7248\u672C\u53F7")}).catchall(a.unknown()),tt={renderinfo:a.any().optional().describe("IDE \u6E32\u67D3\u6807\u8BB0"),pageinfo:a.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 1\uFF1A\u9875\u9762\u57FA\u7840\u4FE1\u606F"),businessmodel:a.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:a.any().optional().describe("\u52A8\u4F5C\u903B\u8F91\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),presenter:a.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:a.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:a.any().optional().describe("\u63A7\u4EF6\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),pageswitch:a.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:a.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")},Jt=[{name:"page_form_directories",config:{title:"\u67E5\u8BE2\u8868\u5355\u6240\u5C5E\u76EE\u5F55",description:`\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u6240\u5C5E\u76EE\u5F55\uFF08getDirectorys\uFF09\uFF0C\u53D6\u56DE\u7684 directorytypecode \u5373\u8868\u5355 pageinfo.directorytypecode \u7684\u53D6\u503C\uFF0C\u4E5F\u662F\u6309\u76EE\u5F55\u7B5B\u8868\u5355\u3001\u6216\u4E3A\u8868\u5355\u6307\u5B9A\u76EE\u5F55\u65F6\u8981\u7528\u7684\u7F16\u7801\u3002\n\n\u3010\u91CD\u8981\uFF1A\u63A5\u53E3\u4E0D\u652F\u6301\u5206\u9875\uFF0C\u5168\u91CF\u6570\u767E\u6761\uFF0C\u672C\u5DE5\u5177\u5DF2\u5F3A\u5236\u6536\u655B\u3011\n- \u9ED8\u8BA4\u6700\u591A\u56DE ${30} \u6761\uFF0C\u786C\u4E0A\u9650 ${200} \u6761\uFF1B\n- \u672A\u4F20\u4EFB\u4F55\u7B5B\u9009\u6761\u4EF6\u65F6\uFF0C\u53EA\u56DE\u9876\u7EA7\u76EE\u5F55\uFF08\u901A\u5E38\u5341\u6761\u91CF\u7EA7\uFF09\u5E76\u5728 hint \u4E2D\u8BF4\u660E\uFF1B\n- \u547D\u4E2D\u8FC7\u591A\u65F6 truncated=true\uFF0C\u8BF7\u7F29\u5C0F keys \u6216\u7528 offset \u7FFB\u9875\u3002\n\u7528\u6CD5\u5EFA\u8BAE\uFF1A\u5148\u7528 keys \u6309\u76EE\u5F55\u540D\u6A21\u7CCA\u641C\u7D22\uFF08\u5982 keys="\u4EF7\u683C"\uFF09\uFF0C\u62FF\u5230 directorytypecode \u540E\u518D\u53BB\u67E5/\u5EFA\u8868\u5355\uFF1B\u4E5F\u53EF\u4F20 parentdirectorytypecode \u9010\u7EA7\u4E0B\u94BB\uFF08\u4F20 "root" \u53EA\u770B\u9876\u7EA7\uFF09\u3002\n\n${Q}`,inputSchema:{keys:a.string().optional().describe("\u76EE\u5F55\u540D\u79F0\u6A21\u7CCA\u5339\u914D\uFF0C\u547D\u4E2D directorytypename / directoryname / centername / directorytypecode\uFF1B\u5F3A\u70C8\u5EFA\u8BAE\u4F18\u5148\u7528\u5B83\u68C0\u7D22\uFF0C\u907F\u514D\u62C9\u53D6\u5168\u91CF"),directorytypecode:a.string().optional().describe("\u76EE\u5F55\u7F16\u7801\u7CBE\u786E\u5339\u914D\uFF08\u5DF2\u77E5\u7F16\u7801\u53CD\u67E5\u540D\u79F0\u65F6\u7528\uFF09"),parentdirectorytypecode:a.string().optional().describe('\u7236\u76EE\u5F55\u7F16\u7801\u7CBE\u786E\u5339\u914D\uFF1B\u4F20 "root" \u8868\u793A\u53EA\u8981\u9876\u7EA7\u76EE\u5F55\uFF08parentdirectorytypecode \u4E3A\u7A7A\uFF09\uFF1B\u4F20\u5177\u4F53\u7F16\u7801\u5219\u53D6\u5176\u76F4\u63A5\u5B50\u76EE\u5F55'),centername:a.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u540D\u79F0\u6A21\u7CCA\u5339\u914D\uFF0C\u5982\u300C\u5BA2\u8BBF\u7BA1\u7406\u300D\u300C\u8425\u9500\u8D39\u63A7\u300D"),centercode:a.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u7F16\u7801\u7CBE\u786E\u5339\u914D"),marktype:a.string().optional().describe("\u521B\u5EFA\u6807\u8BB0\u7CBE\u786E\u5339\u914D\uFF0C\u6574\u6570\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),limit:a.string().optional().describe(`\u8FD4\u56DE\u6761\u6570\u4E0A\u9650\uFF0C\u9ED8\u8BA4 ${30}\uFF0C\u786C\u4E0A\u9650 ${200}`),offset:a.string().optional().describe("\u8D77\u59CB\u504F\u79FB\uFF0C\u9ED8\u8BA4 0\uFF1B\u914D\u5408 limit \u7FFB\u9875"),directorycategory:a.string().optional().describe('\u76EE\u5F55\u7C7B\u522B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A3-\u8868\u5355/\u9875\u9762\u76EE\u5F55\uFF08\u9ED8\u8BA4 "3"\uFF0C\u5373\u8868\u5355 directorytypecode \u7684\u53D6\u503C\u6765\u6E90\uFF09')},outputSchema:{sourceTotal:a.coerce.number().describe("\u63A5\u53E3\u8FD4\u56DE\u7684\u76EE\u5F55\u603B\u6570\uFF08\u7B5B\u9009\u524D\uFF0C\u4F53\u73B0\u5168\u91CF\u89C4\u6A21\uFF09"),total:a.coerce.number().describe("\u6309\u7B5B\u9009\u6761\u4EF6\u547D\u4E2D\u7684\u6761\u6570\uFF08\u622A\u65AD\u524D\uFF09"),returned:a.coerce.number().describe("\u672C\u6B21\u5B9E\u9645\u8FD4\u56DE\u6761\u6570"),offset:a.coerce.number().describe("\u672C\u6B21\u8FD4\u56DE\u7684\u8D77\u59CB\u504F\u79FB"),limit:a.coerce.number().describe("\u672C\u6B21\u751F\u6548\u7684\u8FD4\u56DE\u6761\u6570\u4E0A\u9650"),truncated:a.boolean().describe("true \u8868\u793A\u547D\u4E2D\u6570\u5927\u4E8E\u672C\u6B21\u8FD4\u56DE\uFF0C\u8FD8\u6709\u540E\u7EED"),hint:a.union([a.string(),a.null()]).describe("\u6536\u655B/\u7FFB\u9875\u63D0\u793A\uFF1Bnull \u8868\u793A\u65E0\u9700\u63D0\u793A"),items:a.array(a.object({directorytypecode:a.string().describe("\u76EE\u5F55\u7F16\u7801\uFF0C\u5373\u8868\u5355 pageinfo.directorytypecode \u7684\u53D6\u503C"),directorytypename:a.union([a.string(),a.null()]).optional().describe("\u76EE\u5F55\u540D\u79F0\uFF08\u4E1A\u52A1\u4E2D\u5FC3\u4E0B\u7684\u76EE\u5F55\u5E26\u540E\u7F00\uFF0C\u5982\u300C\u5236\u5B9A\u8BA1\u5212(\u5BA2\u8BBF\u7BA1\u7406)\u300D\uFF09"),directoryname:a.string().optional().describe("\u76EE\u5F55\u672C\u540D\uFF0C\u4EC5\u5728\u4E0E directorytypename \u4E0D\u540C\u65F6\u8FD4\u56DE"),parentdirectorytypecode:a.string().optional().describe("\u7236\u76EE\u5F55\u7F16\u7801\uFF1B\u7F3A\u5931\u5373\u9876\u7EA7\u76EE\u5F55"),centername:a.string().optional().describe("\u6240\u5C5E\u4E1A\u52A1\u4E2D\u5FC3\u540D\u79F0\uFF0C\u4EC5\u4E1A\u52A1\u4E2D\u5FC3\u4E0B\u7684\u76EE\u5F55\u8FD4\u56DE"),marktype:a.coerce.number().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237")})).describe("\u76EE\u5F55\u9879\uFF08\u5DF2\u88C1\u526A\uFF0C\u4EC5\u4FDD\u7559\u5B9A\u4F4D\u6240\u9700\u5B57\u6BB5\uFF09")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keys:e,directorytypecode:r,parentdirectorytypecode:i,centername:n,centercode:o,marktype:s,limit:l,offset:d,directorycategory:c="3"}=t;try{let p=await Tt({directorycategory:String(c||"3")}),g=Array.isArray(p?.resp_data)?p.resp_data:[];return $(he(g,{keys:e,directorytypecode:r,parentdirectorytypecode:i,centername:n,centercode:o,marktype:s,limit:l,offset:d}))}catch(p){return L(p)}}},{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${j}\n${Q}`,inputSchema:{status:a.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),keys:a.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355 code / title"),keywords:a.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355\u4E2D\u7684\u5173\u952E\u8BCD"),clientcategorycode:a.string().optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),page:a.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:a.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),type:a.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:a.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D"),updatetimestart:a.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:a.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:a.array(or).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:a.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:a.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:a.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:a.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{status:e="",keys:r="",keywords:i="",clientcategorycode:n="",page:o=1,rows:s=20,type:l="",updateopname:d="",updatetimestart:c="",updatetimeend:p=""}=t;try{let g=await Lt({centercode:"",directorytypecode:"rootNode",starttime:"",status:e,keys:r,keywords:i,clientcategorycode:n,page:Number(o)||1,rows:Number(s)||20,type:l,updateopname:d,updatetimestart:c,updatetimeend:p});return $(g.resp_data)}catch(g){return L(g)}}},{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${j}\n${Q}`,inputSchema:{code:a.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:a.looseObject(tt),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{code:e}=t;try{let r=await ne({code:e});return $(r.resp_data)}catch(r){return L(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${Q}`,inputSchema:{code:a.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:{code:a.string().describe("\u8868\u5355\u7F16\u7801"),title:a.union([a.string(),a.null()]).optional().describe("\u6807\u9898"),type:a.union([a.string(),a.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\uFF08\u540C page_form_list \u7684 type\uFF09"),status:a.union([a.string(),a.null()]).optional().describe("\u72B6\u6001"),clientcategorycode:a.union([a.string(),a.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B"),marktype:a.union([a.string(),a.null()]).optional().describe("\u521B\u5EFA\u6807\u8BB0"),versionnum:a.union([a.string(),a.null()]).optional().describe("\u7248\u672C\u53F7"),viewTree:a.array(a.lazy(()=>a.object({code:a.union([a.string(),a.null()]).optional(),type:a.union([a.string(),a.null()]).optional(),title:a.union([a.string(),a.null()]).optional(),children:a.array(a.lazy(()=>a.object({code:a.union([a.string(),a.null()]).optional(),type:a.union([a.string(),a.null()]).optional(),title:a.union([a.string(),a.null()]).optional(),children:a.array(a.unknown()).optional()}))).optional()}))).optional().describe("view \u6811\u9AA8\u67B6\uFF08\u9012\u5F52\uFF0C\u4EC5 code/type/title + children\uFF09"),handlers:a.array(a.object({code:a.union([a.string(),a.null()]).optional(),name:a.union([a.string(),a.null()]).optional(),desc:a.union([a.string(),a.null()]).optional(),key:a.union([a.string(),a.null()]).optional(),condition:a.union([a.string(),a.null()]).optional(),actionCount:a.coerce.number().optional(),actionTypes:a.array(a.string()).optional(),scope:a.union([a.string(),a.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:a.array(a.object({code:a.union([a.string(),a.null()]).optional(),key:a.union([a.string(),a.null()]).optional(),desc:a.union([a.string(),a.null()]).optional(),actionCount:a.coerce.number().optional()})).optional().describe("presenter \u5BF9\u5916\u63A5\u53E3\u6E05\u5355"),businessModels:a.array(a.object({modelcode:a.union([a.string(),a.null()]).optional(),modellogiccode:a.union([a.string(),a.null()]).optional(),modellogicname:a.union([a.string(),a.null()]).optional(),actiontype:a.union([a.string(),a.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:a.union([a.string(),a.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{code:e}=t;try{let r=await zt(e);return $(r)}catch(r){return L(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${Q}`,inputSchema:{code:a.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),nodeCode:a.string().optional().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B50\u6811"),itemCode:a.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:a.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:a.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:a.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:a.string().describe("\u8868\u5355\u7F16\u7801"),node:a.any().optional().describe("nodeCode \u547D\u4E2D\u7684\u8282\u70B9\u5B50\u6811"),handler:a.any().optional().describe("handlerCode \u547D\u4E2D\u7684\u5904\u7406\u5668\u5B8C\u6574\u5B9A\u4E49"),section:a.any().optional().describe("section \u547D\u4E2D\u7684\u6574\u6BB5\u5185\u5BB9"),actionIndex:a.array(a.object({index:a.coerce.number().describe("action \u4E0B\u6807"),code:a.union([a.string(),a.null()]).optional().describe("action \u7F16\u7801"),type:a.union([a.string(),a.null()]).optional().describe("action \u7C7B\u578B"),scriptLen:a.coerce.number().describe("script \u5B57\u7B26\u957F\u5EA6"),conditionLen:a.coerce.number().describe("condition \u5B57\u7B26\u957F\u5EA6"),expressionLen:a.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:a.union([a.string(),a.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{code:e,nodeCode:r,itemCode:i,handlerCode:n,section:o}=t;try{let s=await Kt(e,{nodeCode:r,itemCode:i,handlerCode:n,section:o});return $(s)}catch(s){return L(s)}}}];import{z as f}from"zod";var ir=f.discriminatedUnion("op",[f.object({op:f.literal("set_pageinfo"),patch:f.record(f.string(),f.unknown()).describe('\u6D45\u5408\u5E76\u8FDB pageinfo \u7684\u5B57\u6BB5\uFF0C\u5982 { "title": "\u65B0\u6807\u9898", "status": "1" }')}),f.object({op:f.literal("set_attrs"),code:f.string().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF08\u6574\u4E2A\u8868\u5355\u552F\u4E00\uFF09"),patch:f.record(f.string(),f.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')}),f.object({op:f.literal("patch_node_array_item"),nodeCode:f.string().describe("\u7236\u8282\u70B9 code\uFF08\u5982\u8868\u683C\u8282\u70B9 infotable-table-...\uFF09"),arrayProp:f.string().describe('\u8981\u6539\u7684\u6570\u7EC4\u5C5E\u6027\u540D\uFF0C\u5982 "cols" / "options" / "actions" / "content"'),itemKey:f.string().optional().describe('\u6570\u7EC4\u5143\u7D20\u5B9A\u4F4D\u952E\u5B57\u6BB5\u540D\uFF0C\u9ED8\u8BA4 "code"'),itemKeyValue:f.unknown().describe("\u8981\u5B9A\u4F4D\u7684\u5143\u7D20\u952E\u503C\uFF0C\u5982 dms_status \u5217\u7684 code=890419529224687617"),patch:f.record(f.string(),f.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')}),f.object({op:f.literal("insert_node"),parentCode:f.string().describe("\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:f.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E"),node:f.record(f.string(),f.unknown()).describe("\u65B0\u8282\u70B9\u5BF9\u8C61\uFF08\u542B type/code/title/content \u7B49\uFF09\uFF0C\u540C view \u6811\u8282\u70B9\u7ED3\u6784")}),f.object({op:f.literal("remove_node"),code:f.string().describe("\u8981\u5220\u9664\u7684\u8282\u70B9 code"),checkRefs:f.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")}),f.object({op:f.literal("move_node"),code:f.string().describe("\u79FB\u52A8\u8282\u70B9 code"),newParentCode:f.string().describe("\u65B0\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:f.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),f.object({op:f.literal("set_section"),section:f.enum(["view","presenter","controls","pageswitch"]).describe("\u6574\u6BB5\u66FF\u6362\u76EE\u6807"),value:f.unknown().describe("\u6574\u6BB5\u65B0\u5185\u5BB9\uFF08\u900F\u4F20\u539F\u6837\u4FDD\u5B58\uFF09")}),f.object({op:f.literal("replace_script"),handlerCode:f.string().describe("presenter \u5904\u7406\u5668 code\uFF08handlers \u4E0E initial \u5747\u68C0\u7D22\uFF09"),actionIndex:f.number().int().nonnegative().optional().describe("\u7B2C\u51E0\u4E2A action\uFF0C\u9ED8\u8BA4 0\uFF1B\u4E0E actionCode \u4E8C\u9009\u4E00"),actionCode:f.string().optional().describe("\u4EE5 action code \u5B9A\u4F4D\uFF08\u4E0E actionIndex \u4E8C\u9009\u4E00\uFF09"),field:f.enum(["script","condition","expression"]).optional().describe("\u76EE\u6807\u5B57\u7B26\u4E32\u5B57\u6BB5\uFF0C\u9ED8\u8BA4 script"),scope:f.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:f.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:f.array(f.object({oldString:f.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:f.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:f.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:f.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:f.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:f.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")}),f.object({op:f.literal("add_businessmodel"),modellogiccode:f.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:f.boolean().optional().describe("\u5F53 businessmodel \u5DF2\u5B58\u5728\u8BE5 modellogiccode \u65F6\u662F\u5426\u8986\u76D6\uFF0C\u9ED8\u8BA4 false\uFF08\u8DF3\u8FC7\uFF09")}),f.object({op:f.literal("remove_businessmodel"),modellogiccode:f.string().describe("\u8981\u79FB\u9664\u7684\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),checkRefs:f.boolean().optional().describe("\u524D\u7F6E\u5F15\u7528\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true")})]),Wt=[{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${Q}`,inputSchema:{code:f.string().describe("\u76EE\u6807\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),ops:f.array(ir).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:B.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:f.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:f.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:f.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:f.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:f.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:f.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:f.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:f.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:f.array(f.object({index:f.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:f.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:f.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:f.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801"),message:f.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),hunk:f.string().nullable().optional().describe("\u8BE5 op \u4EA7\u751F\u7684 diff \u7247\u6BB5\uFF08replace_script \u624D\u6709\uFF09"),suggestions:f.array(f.object({startLine:f.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:f.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:f.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 t=>{let{code:e,commitMessage:r,dryRun:i=!1,verify:n=!0}=t,o=t.ops,s=J(r);try{let l=await qt(e,o,s,{dryRun:i,verify:n});return{isError:!l.ok,content:[{type:"text",text:JSON.stringify(l)}],structuredContent:l}}catch(l){let d=E(l);return{isError:!0,content:[{type:"text",text:d}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:d,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${Q}`,inputSchema:{form:f.looseObject(tt).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:B.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:f.boolean().describe("\u662F\u5426\u4FDD\u5B58\u6210\u529F"),code:f.string().optional().describe("\u4FDD\u5B58\u6210\u529F\u7684\u8868\u5355\u7F16\u7801"),message:f.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 t=>{let{form:e,commitMessage:r}=t,i=J(r);try{let n=await Bt(e,i);return{isError:!n.ok,content:[{type:"text",text:JSON.stringify(n)}],structuredContent:n}}catch(n){let o=E(n);return{isError:!0,content:[{type:"text",text:o}],structuredContent:{ok:!1,code:void 0,message:o}}}}}];import{z as N}from"zod";function Gt(t,e){return F({url:"/api/masterserv/hpage/listH5Page",method:"post",data:t,type:"business",token:e})}function Qt(t,e){return F({url:"/api/masterserv/hpage/listH5PageByOne",method:"post",data:t,type:"business",token:e})}function Zt(t){return F({url:"/pemission/rolepermission/account/getPreviewAccounts",method:"post",data:t,type:"tenant"})}async function Xt(){let t=re();if(!t)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 Zt({pvcode:t.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(n=>setTimeout(n,800))}throw e}async function en(t){let e=await Xt();return Gt(t,e)}async function tn(t){let e=await Xt();return Qt(t,e)}var nn=N.object({confjson:N.union([N.string(),N.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:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF0C\u9884\u7559\u5B57\u6BB5"),pagecode:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801"),pagedescr:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u63CF\u8FF0"),pagetype:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u9875\u9762\u7C7B\u578B\uFF0C\u9884\u7559\u5B57\u6BB5"),platcreateop:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u4EBA\u59D3\u540D"),platcreatetime:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u65F6\u95F4"),platstatus:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u5E73\u53F0\u72B6\u6001"),platupdateop:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),platupdatetime:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),status:N.union([N.string(),N.number(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u72B6\u6001\uFF1B1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:N.union([N.string(),N.null()]).optional().describe("H5 \u8868\u5355\u7684\u6807\u9898")}).catchall(N.unknown()),sr=nn.omit({confjson:!0}),ar={data:N.array(sr).describe("\u8FD9\u4E00\u9875\u7684 H5 \u8868\u5355\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")},lr=nn.shape,rn=[{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:N.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:N.string().optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),status:N.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),title:N.string().optional().describe("H5 \u8868\u5355\u7684\u6807\u9898\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),updateopname:N.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),page:N.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:N.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:ar,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keywords:e="",pagecode:r="",status:i="",title:n="",updateopname:o="",page:s=1,rows:l=20}=t;try{let c=(await en({keywords:e,pagecode:r,status:i,title:n,updateopname:o,page:Number(s)||1,rows:Number(l)||20})).resp_data,p=Array.isArray(c?.data)?c.data.map(h=>{let _={...h};return delete _.confjson,_}):c?.data,g={...c,data:p};return $(g)}catch(d){return L(d)}}},{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:N.string().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:lr,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{pagecode:e}=t;try{let r=await tn({pagecode:e});return{content:[{type:"text",text:JSON.stringify(r.resp_data)}],structuredContent:r.resp_data}}catch(r){return L(r)}}}];import{z as m}from"zod";function on(t){return F({url:"/bizserv/bizmodel/pageList",method:"post",data:t,type:"tenant"})}function sn(t){return F({url:"/bizserv/bizmodel/get",method:"post",data:t,type:"tenant"})}var cr=m.object({classname:m.union([m.string(),m.null()]).optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),createaccountcode:m.union([m.string(),m.number()]).nullable().optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:m.union([m.string(),m.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:m.union([m.string(),m.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),dddlayer:m.union([m.string(),m.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:m.union([m.string(),m.number()]).nullable().optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:m.union([m.string(),m.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:m.union([m.string(),m.number()]).nullable().optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modelcode:m.union([m.string(),m.number()]).nullable().optional().describe("\u51FD\u6570\u7684\u7F16\u7801"),modeldescr:m.union([m.string(),m.null()]).optional().describe("\u51FD\u6570\u63CF\u8FF0"),modelname:m.union([m.string(),m.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),seq:m.union([m.string(),m.number()]).nullable().optional().describe("\u987A\u5E8F"),status:m.union([m.string(),m.number()]).nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:m.union([m.string(),m.null()]).optional().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u51FD\u6570\u4E00\u822C\u65E0\u5BF9\u5E94\u8868\uFF0C\u901A\u5E38\u4E3A\u7A7A\uFF09"),updateaccountcode:m.union([m.string(),m.number()]).nullable().optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7 code"),updateaccountname:m.union([m.string(),m.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),updatetime:m.union([m.string(),m.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(m.unknown()),dr={classname:m.union([m.string(),m.null()]).optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),createaccountcode:m.union([m.string(),m.number()]).nullable().optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:m.union([m.string(),m.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:m.union([m.string(),m.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),dddlayer:m.union([m.string(),m.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:m.union([m.string(),m.number()]).nullable().optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:m.union([m.string(),m.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:m.union([m.string(),m.number()]).nullable().optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modelcode:m.union([m.string(),m.number()]).nullable().optional().describe("\u51FD\u6570\u7684\u7F16\u7801"),modeldescr:m.union([m.string(),m.null()]).optional().describe("\u51FD\u6570\u63CF\u8FF0"),modelname:m.union([m.string(),m.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),seq:m.union([m.string(),m.number()]).nullable().optional().describe("\u987A\u5E8F"),status:m.union([m.string(),m.number()]).nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:m.union([m.string(),m.null()]).optional().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u51FD\u6570\u4E00\u822C\u65E0\u5BF9\u5E94\u8868\uFF0C\u901A\u5E38\u4E3A\u7A7A\uFF09"),updateaccountcode:m.union([m.string(),m.number()]).nullable().optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7 code"),updateaccountname:m.union([m.string(),m.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),updatetime:m.union([m.string(),m.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),confjson:m.string().nullable().optional().describe("flycode \u51FD\u6570\u4EE3\u7801\u5185\u5BB9")},an=[{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${j}\n${ge}`,inputSchema:{classname:m.string().optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),name:m.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u901A\u5E38\u548C modelname \u4E00\u81F4"),modelname:m.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u901A\u5E38\u548C name \u4E00\u81F4"),flycodekey:m.string().optional().describe("\u51FD\u6570\u5185\u5BB9\u5173\u952E\u5B57"),page:m.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:m.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:m.array(cr).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:m.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:m.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:m.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:m.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{classname:e="",name:r="",modelname:i="",flycodekey:n="",page:o=1,rows:s=20}=t;try{let l=await on({dddlayer:3,directorytypecode:"",starttime:"",classname:e,name:r,modelname:i,flycodekey:n,page:Number(o)||1,rows:Number(s)||20});return $(l.resp_data)}catch(l){return L(l)}}},{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${j}\n${ge}`,inputSchema:{modelcode:m.string().describe("\u51FD\u6570\u7684\u7F16\u7801")},outputSchema:m.looseObject(dr),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{modelcode:e}=t;try{let r=await sn({modelcode:e});return $(r.resp_data)}catch(r){return L(r)}}}];import{z as P}from"zod";function ln(t){return F({url:"/bizserv/customfunction/list",method:"post",data:t,type:"tenant"})}var ur=P.object({createtime:P.union([P.string(),P.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),creator:P.union([P.string(),P.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),dbfunctionname:P.union([P.string(),P.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D"),functioncode:P.union([P.string(),P.null()]).optional().describe("\u51FD\u6570\u552F\u4E00\u7F16\u7801"),functionname:P.union([P.string(),P.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),functionscript:P.union([P.string(),P.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u5185\u5BB9\uFF08PostgreSQL \u51FD\u6570\u4F53\uFF09"),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.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C functioncode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),publishstatus:P.union([P.string(),P.number()]).nullable().optional().describe("\u53D1\u5E03\u72B6\u6001\uFF0C1-\u672A\u53D1\u5E03\uFF1B2-\u5DF2\u53D1\u5E03"),remark:P.union([P.string(),P.null()]).optional().describe("\u5907\u6CE8"),status:P.union([P.string(),P.number()]).nullable().optional().describe("\u72B6\u6001\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),updatetime:P.union([P.string(),P.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updator:P.union([P.string(),P.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA")}).catchall(P.unknown()),cn=[{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${j}\n${ge}`,inputSchema:{dbfunctionname:P.string().optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),name:P.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),pageindex:P.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),pagesize:P.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:P.array(ur).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 t=>{let{dbfunctionname:e="",name:r="",pageindex:i=1,pagesize:n=20}=t;try{let o=await ln({dbfunctionname:e,name:r,pageindex:Number(i)||1,pagesize:Number(n)||20});return $(o.resp_data)}catch(o){return L(o)}}}];import{z as xe}from"zod";function dn(t){return F({url:"/api/biz/sqlrun",method:"post",data:t,type:"business"})}var pr={data:xe.array(xe.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:xe.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:xe.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:xe.looseObject(pr),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{sql:e}=t;try{let r=await dn({sql:e});return $(r.resp_data)}catch(r){return L(r)}}}];import{z as pn}from"zod";var mn=[{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:pn.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:pn.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 t=>{let{prefix:e=""}=t;try{let r=_e().toString(),n={code:e?`${e}${r}`:r};return $(n)}catch(r){let n={error:r.message??String(r)};return{isError:!0,content:[{type:"text",text:JSON.stringify(n)}]}}}}];await ct();var ke=new mr({name:"flycode-mcp",version:"1.0.0"}),gn=(process.env.PROGRESSIVE_DISCLOSURE??"on").toLowerCase()!=="off",br=[..._t,...vt,...Dt,...$t,...Jt,...Wt,...rn,...an,...cn,...un,...mn],bn=new Se(gn);bn.registerAll(ke,br);for(let t of pt(bn))ke.registerTool(t.name,t.config,t.handler);async function fr(){let t=new gr;await ke.connect(t),process.on("SIGINT",async()=>{await ke.close(),process.exit(0)}),process.on("SIGTERM",async()=>{await ke.close(),process.exit(0)}),console.error(`flycode-mcp listening on stdio (progressive disclosure: ${gn?"on":"off"})`)}fr().catch(t=>{console.error(t),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flycode-mcp",
3
- "version": "1.13.0",
3
+ "version": "1.14.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/flycode-mcp.min.js",