flycode-mcp 1.11.0 → 1.12.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_list`(分页查询业务逻辑列表)、`get_model_logic`(查询单个业务逻辑详情)、`save_model_logic`(保存 / 更新业务逻辑完整 JSON)、`simple_save_flycode_model_logic`(轻量保存 flycode 业务逻辑,只传 `modelLogicCode` / `flycode` / 可选 `input` / `output`);实体类 `page_entity_list`(分页查询实体列表)、`get_entity`(查询实体详情);表单 / 页面类 `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_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_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
 
@@ -40,6 +40,13 @@ npm run dev
40
40
 
41
41
  构建产物为单个压缩文件 `dist/flycode-mcp.min.js`(已在 `package.json` 的 `bin` 中注册为 `flycode-mcp`;minify 后折叠为单行以减小体积,运行时依赖 `@modelcontextprotocol/sdk` / `axios` / `zod` 保持外置)。
42
42
 
43
+ > **注意(构建期易踩坑)**:单行折叠由 `scripts/collapse.mjs` 完成,**不可**退化为 `code.replace(/\n/g, '')`。
44
+ > esbuild 为省一个字符会把含换行的字符串打印成「内含真实换行字符的模板字符串」(`` `\<LF>` ``,而非转义写法 `"\n"`),
45
+ > 无差别删除换行会把字符串内部的换行一起吃掉(`'\n'` → `''`),导致 `str_replace_flycode` 保存的 flycode 被整段压扁、
46
+ > 工具描述的多行提示词被粘成一行(2026-09-20 线上事故根因)。
47
+ > 该模块用扫描器区分「代码层换行」与「字符串内换行」,后者转写为 `\n` 转义;
48
+ > 结构无法可靠判定时整段放弃折叠,并由 `node --check` 兜底回退,回归用例见 `test/unit/build-collapse.test.ts`。
49
+
43
50
  ---
44
51
 
45
52
  ## 配置
@@ -119,9 +126,18 @@ username=<账号>&password=<密码>&tenantCode=<租户号>&envName=<环境名>
119
126
  - `operations`:操作步骤,其中 `templateparams.flycode` 内含具体的 flycode 脚本代码
120
127
  - `description` / `message` / `status` 等
121
128
 
122
- ### `save_model_logic` — 保存 / 更新业务逻辑
129
+ ### `save_model_logic` — 保存业务逻辑(完整全量保存;仅新增,或全量 JSON 很小如微服务)
130
+
131
+ 将一条业务逻辑保存到 APaaS 平台(非破坏性写入)。本工具只适合两类场景,**其余改动请用另两个工具**:
132
+
133
+ ① **新增业务逻辑(最常见)**:首次创建一条业务逻辑时,回传从 `get_model_logic` 模板构造或新建的完整 `LogicResult` 对象(含 flycode 脚本、input/output、标题等),连同提交信息 `commitMessage` 一起保存;
134
+ ② **已有逻辑的全量 JSON 很小**(典型如微服务 `actioncategory=2`,往往只有几行):`patch_model_logic` / `str_replace_flycode` 都没有针对微服务的专用 op,直接用本工具全量保存更省事。
123
135
 
124
- 将一条业务逻辑保存到 APaaS 平台(新增或更新,非破坏性写入)。典型用法是:先 `get_model_logic` 取回完整的 `LogicResult` 对象,按需修改其中的 flycode 脚本(`operations[].templateparams.flycode`)、输入输出参数(`input` / `output`)或标题后,连同提交信息 `commitMessage` 一起回传。底层调用 `service/logic.ts` 的 `saveModelLogic`,再经 `logicClient.saveModelLogic` 以 `overwrite: false`(不覆盖他人最新版本)提交到 `/bizserv/bizmodel/saveModelLogic`。
136
+ 底层调用 `service/logic.ts` 的 `saveModelLogic`,再经 `logicClient.saveModelLogic` 以 `overwrite: false`(不覆盖他人最新版本)提交到 `/bizserv/bizmodel/saveModelLogic`。
137
+
138
+ > **编辑已有逻辑(JSON 较大,如普通 flycode 接口)请勿用本工具回传整份对象**:回传整份 `LogicResult` 上下文占用极大、易因超长被截断,且易误改不相关字段。微服务 / 导出等 JSON 很小的已有逻辑可直接全量保存(见上文②)。
139
+ > - 改 flycode 脚本 → 用 `str_replace_flycode`
140
+ > - 改 input/output 结构或顶层元数据 → 用 `patch_model_logic`
125
141
 
126
142
  **输入参数:**
127
143
 
@@ -137,39 +153,75 @@ username=<账号>&password=<密码>&tenantCode=<租户号>&envName=<环境名>
137
153
 
138
154
  > 注:保存后建议重新 `get_model_logic` 核对最新版本。`committype=saverecord` 的提交时间由服务端写入,无需在 `msgbody` 中重复填写。
139
155
 
140
- ### `simple_save_flycode_model_logic` — 轻量保存 flycode 业务逻辑
141
-
142
- `save_model_logic` 的轻量版:同样用于保存 / 更新一条业务逻辑,但**只需提供少量参数**,避免回传从 `get_model_logic` 查到的庞大完整 `LogicResult`(易因超长被截断、占用大量上下文)。底层调用 `service/logic.ts` 的 `simpleSaveFlyCodeModelLogic`:先按 `modelLogicCode` 拉取完整对象,只把 `flycode` 写入 `operations[].templateparams.flycode`、按需覆盖 `input` / `output`,其余字段原样保留,再以 `overwrite: false` 提交到 `/bizserv/bizmodel/saveModelLogic`。
156
+ ### `patch_model_logic` — 局部补丁修改业务逻辑(input/output/元数据,替代旧版 simple_save)
143
157
 
144
- **适用场景**:你正在修改的业务逻辑领域是 flycode(如 `actioncategory` 为 1 / 6 / 7 等含 flycode 脚本的类型),仅需变更脚本或输入 / 输出参数时,优先用本工具,大幅减少上下文占用。
158
+ 以结构化补丁(delta ops)局部修改业务逻辑的 **input/output 结构或顶层元数据**,**无需回传完整 `LogicResult`,大幅节省上下文**(flycode 脚本不在本工具范围内,由 `str_replace_flycode` 负责)。底层调用 `service/logic.ts` 的 `patchLogic`:先按 `modellogiccode` 拉取最新完整对象,在内存副本上按顺序合并 ops,再一次性全量保存(服务端仅提供全量覆盖保存接口,故仍是一次性 `overwrite: false` 提交)。
145
159
 
146
- **不适用场景**:导出(`actioncategory=5`)、微服务(`=2`)等不含 `operations` 的特殊领域没有 flycode 脚本结构,请改用完整的 `save_model_logic` 工具保存(若该领域返回对象不含 `operations`,本工具会返回错误提示并引导改用完整工具)。
160
+ **事务性**:ops 具备事务性——全部 op 预演成功才落库,任一 op 失败(`PARAM_NOT_FOUND` / `PROP_NOT_FOUND` / `DUP_NAME` / `INVALID_PARAMS`)则整批中止、**不产生任何写入**。整批只发起一次保存请求,不存在「写一半再回滚」的中间态。改动较大或不确定时建议先 `dryRun=true` 预览摘要。
147
161
 
148
162
  **输入参数:**
149
163
 
150
164
  | 参数 | 类型 | 必填 | 说明 |
151
165
  | --------------- | ------ | ---- | ------------------------------------------------------------------------------------- |
152
- | `modelLogicCode`| string | 是 | 要保存的业务逻辑编码(即 `get_model_logic` 返回的 `modellogiccode`) |
153
- | `flycode` | string | 是 | flycode 脚本代码字符串,将写入 `operations[0].templateparams.flycode`,覆盖原有脚本 |
154
- | `input` | array | 否 | 输入参数(IN 结构)。不传则保留该业务逻辑原值;传空数组表示清空输入 |
155
- | `output` | array | 否 | 输出参数(OUT 结构)。不传则保留该业务逻辑原值;传空数组表示清空输出 |
156
- | `commitMessage` | object | 是 | 提交信息,结构与 `save_model_logic` 的 `commitMessage` 一致(含 `committype` / `committypetext` / `msgbody`) |
166
+ | `modellogiccode`| string | 是 | 目标业务逻辑编码(即 `get_model_logic` 返回的 `modellogiccode`) |
167
+ | `ops` | array | 是 | 补丁操作数组,**至少一个元素**(`min(1)`),按数组顺序依次作用于上一步结果(见下表) |
168
+ | `commitMessage` | object | 是 | 提交信息,整批 ops 共用一个;结构与 `save_model_logic` 的 `commitMessage` 一致 |
169
+ | `dryRun` | boolean | 否 | 只预演输出 diff、不落库,默认 `false` |
170
+ | `verify` | boolean | 否 | 保存后是否回读校验所有改动已生效,默认 `true` |
157
171
 
158
- **返回:** 保存操作的结果消息(服务端返回的 `resp_data` 字符串;失败时返回错误体 JSON)。
172
+ `ops[]` 共 12 类(按 `op` 字段区分的 discriminated union):
173
+
174
+ **input/output 结构类(6 类)**
175
+
176
+ | `op` | 必填载荷 | 说明 |
177
+ | ---------------- | ----------------------------------- | -------------------------------------------------------------------------------- |
178
+ | `add_param` | `target`(`input`/`output`) + `param`(单条 `LogicParameters`) + 可选 `position` | 向 input/output 追加一条参数(增加一个 input / 增加一个 output) |
179
+ | `remove_param` | `target` + `name` | 按 `name` 从 input/output 删除整条参数(删除一个 input / output) |
180
+ | `set_param_attrs`| `target` + `name` + `patch`(`Record<string,unknown>`) | 按 `name` 定位参数,浅合并其顶层属性(如 `datatype`/`objectcode`/`objectname`) |
181
+ | `add_property` | `target` + `paramName` + `property`(单条 `LogicParameterProperties`) + 可选 `position` | 向指定参数的 `properties[]` 追加一个字段(增加 input 属性 / 增加 output 属性) |
182
+ | `remove_property`| `target` + `paramName` + `propertyName` 或 `propertyCode`(二选一) | 从指定参数的 `properties[]` 删除一个字段 |
183
+ | `replace_property`| `target` + `paramName` + `propertyName`/`propertyCode` + `property` | 定位并整体替换一个字段 |
184
+
185
+ **元数据类(1 类)**
186
+
187
+ | `op` | 必填载荷 | 说明 |
188
+ | ---------------- | ----------------------------------- | -------------------------------------------------------------------------------- |
189
+ | `set_meta` | `patch`(`Record<string,unknown>`) | 浅合并顶层业务逻辑元数据(如 `modellogicname`/`description`/`actiontype`/`execmode`/`functionname`/`marktype`);**不能含 `input`/`output`/`operations`** |
190
+
191
+ **导出列类(仅 `actioncategory=5` 导出类,5 类)**
159
192
 
160
- > 注:`input` / `output` 与 `save_model_logic` 中的结构一致(`LogicParameters[]`,含 `datatype` / `marktype` / `name` / `objectcode` / `objectname` / `properties` 等字段)。仅需变更 `flycode` 时,可只传 `modelLogicCode` + `flycode`,`input` / `output` 留空由服务端保留原值。
193
+ > 仅导出类业务逻辑可用;若对微服务 / 普通 flycode 调用会报 `INVALID_PARAMS` 并引导改用 `save_model_logic`。**切勿用 `set_meta` 去碰 `bindjson`**——`set_meta` 会整体覆盖顶层字段、可能丢失导出列定义;改 `bindjson` 请用 `set_bind_meta`(自动排除 `bindcols`)。各导出 op 以 `field`(优先)或 `column` 定位,假设能唯一定位;若匹配到多个会报 `DUP_NAME` 并拒绝。空串 `field`/`column` 同属「未提供定位键」,不参与匹配(见下方空串约定)。
161
194
 
162
- ### `str_replace_flycode` — 批量局部替换 flycode 脚本
195
+ | `op` | 必填载荷 | 说明 |
196
+ | ---------------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
197
+ | `add_export_column` | `column`(单条 `LogicBindColumn`,建议至少带 `field`) + 可选 `position` | 向 `bindjson.bindcols` 追加一列 |
198
+ | `remove_export_column` | `field` 或 `column`(二选一) | 从 `bindjson.bindcols` 按 `field`/`column` 删除一列 |
199
+ | `replace_export_column`| `field`/`column`(二选一)+ `newColumn`(新的完整列对象) | 按 `field`/`column` 定位并整体替换一列 |
200
+ | `set_export_column_attrs`| `field`/`column`(二选一)+ `patch`(`Record<string,unknown>`) | 按 `field`/`column` 定位某列,浅合并其部分属性(如改 `column` 标题 / `width` 列宽 / `type` 类型;不改 `field`) |
201
+ | `set_bind_meta` | `patch`(`Record<string,unknown>`) | 安全浅合并 `bindjson` 顶层(如 `logicname`),**不影响 `bindcols`**;**不能含 `bindcols`** |
202
+
203
+ > 注:`param` / `property` 结构与 `save_model_logic` 的 `input`/`output` 元素一致(`LogicParameters` / `LogicParameterProperties`,含 `datatype` / `marktype` / `name` / `objectcode` / `objectname` / `properties` 等字段)。`add_param` / `set_param_attrs` / 各 property op 均以 `name`(或 `propertyCode`)定位,假设同一 `target` 内 `name` 唯一;若同名会报 `DUP_NAME` 并拒绝。
204
+
205
+ > **空字符串不是定位键(重要)**:自定义字段(未挂到实体字段上的属性)其 `propertycode` / `objectcode` 恒为空字符串 `""`。空串一律视为「未提供该键」,不参与匹配与判重——所以新增自定义字段时 `propertycode` 传 `""` 是安全且推荐的写法,**不会**与既有自定义字段误判为重复。相应地,`remove_property` / `replace_property` 若只传空串 `propertyCode` 而无 `propertyName`,会报 `INVALID_PARAMS`。
206
+ >
207
+ > 报 `DUP_NAME`「已存在」时,消息会明确指明命中了哪一个键(`name=xxx` 或 `propertycode=xxx`),据此核对即可;不要臆测为平台自动同步或外部改动——工具只按上述规则在服务端最新数据上判定。
208
+
209
+ **返回:** `{ ok, applied, verified, errorCode, message, diff, ops[] }` —— `diff` 仅回每个 op 的执行摘要(不回整份对象),`ops[]` 与入参一一对应,便于定位失败项。
210
+
211
+ ### `str_replace_flycode` — 批量局部替换 / 整份重写 flycode 脚本
163
212
 
164
213
  以 str_replace_editor 模式局部修改业务逻辑的 flycode 脚本:**只需传入要改动的新旧代码片段**,不必回传整份脚本。底层调用 `service/logic.ts` 的 `replaceFlyCodeSegments`:按 `modelLogicCode` 拉取完整对象,在内存副本上完成定位与替换,再以 `overwrite: false` 提交一次 `saveModelLogic`。
165
214
 
166
215
  **与另两个写工具的分工:**
167
216
 
168
- | 场景 | 建议工具 |
169
- | ------------------------------------------------ | --------------------------------- |
170
- | 改 1~N 处局部片段(最常用) | `str_replace_flycode` |
171
- | 整份脚本重写、大范围重构 | `simple_save_flycode_model_logic` |
172
- | 非 flycode 领域(导出 / 微服务)或改 input/output | `save_model_logic` |
217
+ | 场景 | 建议工具 |
218
+ | ------------------------------------------------ | ----------------------------------------------------- |
219
+ | 改 1~N 处局部片段(最常用) | `str_replace_flycode`(`oldString` / `newString`) |
220
+ | 整份脚本重写、大范围重构 | `str_replace_flycode` + 单个 op 置 `rewrite: true` |
221
+ | 改 input/output 结构(增删参数、增删字段、改属性) | `patch_model_logic` |
222
+ | 改顶层元数据(标题 / 描述 / actiontype 等) | `patch_model_logic` |
223
+ | 新增一条业务逻辑(首次创建) | `save_model_logic` |
224
+ | 已有逻辑全量 JSON 很小(如微服务 actioncategory=2) | `save_model_logic` 全量保存 |
173
225
 
174
226
  **事务性**:`ops` 具备事务性——全部 op 预演成功才落库,任一 op 失败则整批中止、**不产生任何写入**。实现上整批只发起一次保存请求,因此不存在「写一半再回滚」的中间态。
175
227
 
@@ -190,17 +242,30 @@ username=<账号>&password=<密码>&tenantCode=<租户号>&envName=<环境名>
190
242
 
191
243
  | 参数 | 类型 | 必填 | 说明 |
192
244
  | ---------------- | -------------------------- | ---- | -------------------------------------------------------------------- |
193
- | `oldString` | string | 是 | 待替换原文,必须非空且在目标脚本中唯一命中 |
194
- | `newString` | string | 是 | 替换后的新文本,传空串表示删除 |
245
+ | `oldString` | string | 否 | 待替换原文;**partial 模式(默认)下必填**、非空且唯一命中。`rewrite: true` 时被忽略 |
246
+ | `newString` | string | 是 | partial 模式下为替换后的新文本(传空串表示删除);`rewrite: true` 时为整份替换的目标全文 |
247
+ | `rewrite` | boolean | 否 | **整份替换开关**,默认 `false`。为 `true` 时忽略 `oldString`,把整个 operation 的脚本整体替换为 `newString` |
195
248
  | `operationIndex` | number | 否 | 作用于第几个 operation 的脚本,默认 `0` |
196
249
  | `replaceAll` | boolean | 否 | 替换全部匹配,默认 `false`;与 `occurrence` 互斥 |
197
250
  | `occurrence` | number | 否 | 只替换第 N 个匹配(1-based);与 `replaceAll` 互斥 |
198
251
  | `matchMode` | `'exact' \| 'normalized'` | 否 | 默认 `normalized`,容忍 CRLF/LF 与行尾空白差异;`exact` 为字节严格相等 |
199
252
  | `label` | string | 否 | 可选标识,仅用于返回报告中辨认该 op |
200
253
 
254
+ **整份重写(`rewrite` 模式)**:整份脚本重写时无需把旧全文塞进 `oldString`(那会把刚读到的旧脚本又回传一遍、浪费上下文),改为给单个 op 置 `rewrite: true`、只传新全文 `newString` 即可:
255
+
256
+ ```jsonc
257
+ {
258
+ "modelLogicCode": "2087720632723837017",
259
+ "ops": [{ "rewrite": true, "newString": "/* 全新脚本全文 */" }],
260
+ "commitMessage": { "committype": "saverecord", "committypetext": "保存记录" }
261
+ }
262
+ ```
263
+
264
+ `rewrite` op 可与后续 partial op 混用(如「先整份重写,再在其上局部微调」),`ops` 仍按数组顺序在新结果上依次执行。该模式下 `newString` 必填;`oldString` 被忽略。整份替换不渲染 unified hunk,只在 `diff` 中以一行「整份替换:N → M 字符」标记,长度变化见 `lengthBefore` / `lengthAfter`。
265
+
201
266
  **返回:** `ok` / `applied` / `verified` / `errorCode` / `message` / `lengthBefore` / `lengthAfter` / `diff` / `ops[]`。其中 `ops[].message` 说明失败原因,`NOT_FOUND` 时 `ops[].suggestions` 给出最相似的候选(行号 + 相似度 + 预览),`diff` 只回改动片段、不回整份脚本。
202
267
 
203
- **匹配与容错:** 默认 `normalized` 模式会先做归一化再匹配(CRLF/CR 统一为 LF、忽略行尾空白),并把 `newString` 的换行符统一成源脚本的主导换行符,避免混用。`oldString` 未命中 / 命中多处时分别报 `NOT_FOUND` / `NOT_UNIQUE` 并整批中止。
268
+ **匹配与容错:** 默认 `normalized` 模式会先做归一化再匹配(CRLF/CR 统一为 LF、忽略行尾空白),并把 `newString` 的换行符统一成源脚本的主导换行符,避免混用。`oldString` 未命中 / 命中多处时分别报 `NOT_FOUND` / `NOT_UNIQUE` 并整批中止。partial 模式下 `oldString` 为空串报 `EMPTY_OLD_STRING`(整份重写请改用 `rewrite: true`)。
204
269
 
205
270
  **失败即关闭:** 成功后重复调用同一 `oldString` 会因原文已不存在而报 `NOT_FOUND`,不会重复写入。
206
271
 
@@ -511,7 +576,7 @@ flycode-mcp/
511
576
  │ ├── types.ts # 跨模块共用的通用类型(如提交信息 CommitMessage)
512
577
  │ ├── service/ # 业务封装
513
578
  │ │ ├── auth.ts # 登录 → 获取租户信息 → 获取 IDE Token
514
- │ │ ├── logic.ts # 保存业务逻辑(saveModelLogic / simpleSaveFlyCodeModelLogic / replaceFlyCodeSegments):提交信息处理 + 局部替换 + 异常兜底
579
+ │ │ ├── logic.ts # 保存业务逻辑(saveModelLogic / patchLogic(12 类 ops,事务性)/ replaceFlyCodeSegments):提交信息处理 + 局部补丁 + 异常兜底
515
580
  │ │ ├── form.ts # 表单骨架 getFormOutline / 局部读取 getFormFragment / 补丁合并引擎 patchForm(9 类 ops,事务性)/ 全量保存 saveForm
516
581
  │ │ └── h5.ts # H5 表单查询鉴权(解析 SFA系统管理员预览账号 token) + 列表/详情查询 service 封装
517
582
  │ ├── clients/ # 平台接口封装
@@ -532,7 +597,7 @@ flycode-mcp/
532
597
  │ │ ├── common.ts # 通用工具(generate_unique_code:雪花算法生成唯一编码)
533
598
  │ │ ├── logic/
534
599
  │ │ │ ├── read.ts # 只读类工具(page_model_logic_list / get_model_logic)
535
- │ │ │ ├── write.ts # 写入类工具(save_model_logic / simple_save_model_logic / str_replace_flycode)
600
+ │ │ │ ├── write.ts # 写入类工具(save_model_logic / patch_model_logic / str_replace_flycode)
536
601
  │ │ │ └── schemas.ts # 业务逻辑共享 zod schema(LogicResult / 参数 / operations / bindjson)
537
602
  │ │ ├── entity/
538
603
  │ │ │ ├── read.ts # 只读类工具(page_entity_list / get_entity)
@@ -570,7 +635,7 @@ flycode-mcp/
570
635
  2. **登录**:`service/auth.ts` 中的 `authenticate()` 调用 `/api/multiplat/auth/login` 获取 Token,存入内存。
571
636
  3. **定位租户与环境**:`authenticate()` 调用 `/api/multiplat/auth/getTenantInfo`,依据 `tenantCode + envName` 匹配出目标租户,保存其连接信息(`conn.config`)到内存。
572
637
  4. **获取 IDE Token**:`authenticate()` 调用 `/api/multiplat/auth/getIdeToken` 换取 IDE 专用 Token 并覆盖内存中的 Token。
573
- 5. **注册并启动**:创建 `McpServer`,注册 `page_model_logic_list`、`get_model_logic`、`save_model_logic`、`simple_save_flycode_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` 监听请求。
638
+ 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` 监听请求。
574
639
  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` 字段会被剔除,不会泄漏给后端。
575
640
 
576
641
  ---
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{McpServer as qt}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as Jt}from"@modelcontextprotocol/sdk/server/stdio.js";var Q="http://mconfig.xuantongkeji.com:51074",at="username",ct="password",ut="tenantCode",dt="envName";function V(e,t){let i=process.argv.slice(2).join("&"),s=new URLSearchParams(i).get(e);if(s!==null&&s!=="")return s;if(t!==void 0)return t;throw new Error(`Missing required arg: ${e}`)}var E={username:V(at),password:V(ct),tenantCode:V(ut),envName:V(dt)};import pt from"axios";var ae=null;function G(e){ae=e}function ce(){return ae}var ue=null;function de(e){ue=e}function H(){return ue}var W=pt.create({baseURL:Q||"",timeout:2e4,headers:{"Content-Type":"application/json"}});W.interceptors.request.use(e=>{let n=e.token??ce();return n&&(e.headers=e.headers||{},e.headers.token=n),delete e.token,e});W.interceptors.response.use(e=>e.data,e=>Promise.reject(e));function F(e){let{type:t="center",...n}=e,i;switch(t){case"center":i=Q||"";break;case"tenant":case"business":{let r=H();if(!r)return Promise.reject(new Error(`type \u4E3A ${t} \u65F6\uFF0C\u5FC5\u987B\u5148\u8C03\u7528 setTenant() \u8BBE\u7F6E\u79DF\u6237\u4FE1\u606F`));i=t==="tenant"?r.conn.config:r.conn.business;break}}return W({...n,baseURL:i})}var U="1";function pe(e){return F({url:"/api/multiplat/auth/login",method:"post",data:e})}function ge(){return F({url:"/api/multiplat/auth/getTenantInfo",method:"post",data:{appid:U}})}function me(e){return F({url:"/api/multiplat/auth/getIdeToken",method:"post",data:e})}async function be(){let e=await pe({appid:U,username:E.username,password:E.password});if(e.code!==200)throw new Error(`Unable to login: ${e.msg}`);G(e.data.token),console.error("flycode-mcp \u767B\u5F55\u5B8C\u6210");let n=(await ge()).resp_data.find(c=>c.tenantcode===E.tenantCode),i=n?.envs.find(c=>c.envname===E.envName);if(n&&i){let c;try{c=JSON.parse(i.conn)}catch{throw new Error(`\u79DF\u6237\u73AF\u5883\u8FDE\u63A5\u4FE1\u606F\u89E3\u6790\u5931\u8D25, \u79DF\u6237\u53F7: ${E.tenantCode}, \u73AF\u5883\u540D: ${E.envName}, env.conn \u4E0D\u662F\u5408\u6CD5\u7684 JSON: ${i.conn}`)}de({metaModelCode:n.metamodelcode,metaModelType:n.metamodeltype,productCode:n.productcode,productName:n.productname,productSeriesCode:n.productseriescode,productVersionCode:n.productversioncode,productVersionName:n.productversionname,tenantCode:n.tenantcode,tenantName:n.tenantname,conn:c,envId:i.envid,envName:i.envname,tenantEnvName:i.tenantenvname})}let r=H();if(!r)throw new Error(`\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u79DF\u6237\u4FE1\u606F, \u79DF\u6237\u53F7: ${E.tenantCode}, \u73AF\u5883\u540D: ${E.envName}`);console.error("flycode-mcp \u83B7\u53D6\u79DF\u6237\u4FE1\u606F\u5B8C\u6210");let l=(await me({appid:U,envid:r.envId,metamodeltype:r.metaModelType,productcode:r.productCode,productversioncode:r.productVersionCode,tenantcode:r.tenantCode})).resp_data?.idetoken;if(!l)throw new Error(`\u83B7\u53D6 IDE Token \u5931\u8D25, \u79DF\u6237\u53F7: ${r.tenantCode}, \u73AF\u5883\u540D: ${r.envName}, \u8FD4\u56DE\u4F53\u4E2D\u672A\u5305\u542B\u6709\u6548\u7684 idetoken`);G(l),console.error("flycode-mcp \u83B7\u53D6 IDE Token \u5B8C\u6210")}import{z as S}from"zod";function _(e){let t=e;if(t?.response?.data!=null)try{return JSON.stringify(t.response.data)}catch{return String(t.response.data)}return e instanceof Error?e.message:String(e)}function fe(e){return F({url:"/bizserv/bizmodel/pageModelLogicList",method:"post",data:e,type:"tenant"})}function L(e){return F({url:"/bizserv/bizmodel/getModelLogic",method:"post",data:e,type:"tenant"})}function X(e){return F({url:"/bizserv/bizmodel/saveModelLogic",method:"post",data:{...e,overwrite:!1},type:"tenant"})}import{z as p}from"zod";var gt=p.array(p.object({marktype:p.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),name:p.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u540D\u79F0\uFF0C\u4EE3\u7801\u4E2D\u7528\u6B64\u540D\u5B57\u8BBF\u95EE"),objectcode:p.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:p.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:p.string().optional().nullable().describe("\u6B64\u5B57\u6BB5\u7684\u4E2D\u6587\u540D\uFF0C\u9605\u8BFB\u53CB\u597D"),propertytypecode:p.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(p.unknown())),q=p.array(p.object({datatype:p.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:p.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),name:p.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:p.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:p.string().optional().nullable().describe("\u6B64\u53C2\u6570\u7684\u4E2D\u6587\u540D\u79F0\uFF0C\u9605\u8BFB\u53CB\u597D"),properties:gt.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:p.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(p.unknown())),mt=p.array(p.object({dynamic:p.object({fieldblacklist:p.unknown().optional().nullable().describe("\u5B57\u6BB5\u9ED1\u540D\u5355"),fieldmap:p.unknown().optional().nullable().describe("\u5B57\u6BB5\u6620\u5C04")}).catchall(p.unknown()).optional().nullable().describe("\u52A8\u6001\u914D\u7F6E"),marktype:p.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0"),modellogiccode:p.string().describe("\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),modellogicstepcode:p.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u6B65\u9AA4\u7F16\u7801"),modellogicstepname:p.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u6B65\u9AA4\u540D\u79F0"),seq:p.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:p.string().optional().nullable().describe("\u72B6\u6001"),templateparams:p.object({flycode:p.string().optional().nullable().describe("flycode \u811A\u672C\u4EE3\u7801\u5B57\u7B26\u4E32"),sourcemap:p.string().optional().nullable().describe("\u6E90\u6620\u5C04"),tempcompiledflycode:p.string().optional().nullable().describe("\u7F16\u8BD1\u540E\u7684 flycode")}).catchall(p.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:p.string().optional().nullable().describe("\u6A21\u677F\u5F15\u7528")}).catchall(p.unknown())),bt=p.object({bindcols:p.array(p.object({field:p.string().optional().nullable().describe("\u5B57\u6BB5\u540D\uFF08\u5BF9\u5E94\u4E1A\u52A1\u5BF9\u8C61\u7684\u5C5E\u6027\u540D\uFF09"),column:p.string().optional().nullable().describe("\u5BFC\u51FA\u540E\u7684\u5217\u6807\u9898"),width:p.string().optional().nullable().describe("\u5217\u5BBD"),type:p.string().optional().nullable().describe("\u5B57\u6BB5\u7C7B\u578B\uFF0C\u5982 string"),dynamictext:p.unknown().optional().nullable().describe("\u52A8\u6001\u6587\u672C\u914D\u7F6E")}).catchall(p.unknown()).optional().nullable().describe("\u5BFC\u51FA\u7684\u5217\u5B9A\u4E49")),modelcode:p.string().describe("\u4E1A\u52A1\u6A21\u578B\u7F16\u7801"),logiccode:p.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),logicname:p.string().optional().nullable().describe("\u4E1A\u52A1\u903B\u8F91\u540D\u79F0")}).catchall(p.unknown()),ee={actioncategory:p.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:p.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:p.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:p.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:p.string().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),executionmode:p.string().optional().nullable().describe("\u6267\u884C\u6A21\u5F0F\uFF0Cstandard-\u6807\u51C6\u6A21\u5F0F\uFF1Bstrict-\u4E25\u683C\u6A21\u5F0F"),functionname:p.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:p.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u7A7A\u5B57\u7B26\u4E32"),input:q.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:p.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u7A7A\u5B57\u7B26\u4E32"),marktype:p.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:p.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:p.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),modellogiccode:p.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801"),modellogicname:p.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),operations:mt.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:q.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:p.object({server:p.string().optional().nullable().describe("\u5FAE\u670D\u52A1\u5730\u5740"),url:p.string().optional().nullable().describe("\u5FAE\u670D\u52A1\u8DEF\u5F84")}).catchall(p.unknown()).optional().nullable().describe("\u5FAE\u670D\u52A1\u7684 REST \u914D\u7F6E\uFF0C\u4EC5 actioncategory=2 \u5FAE\u670D\u52A1 \u65F6\u5B58\u5728"),bindjson:bt.optional().nullable().describe("\u5BFC\u51FA\u7ED1\u5B9A\u7684 Excel \u5217\u914D\u7F6E\uFF0C\u4EC5 actioncategory=5 \u5BFC\u51FA \u65F6\u5B58\u5728"),status:p.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),tenantdbcode:p.string().optional().nullable().describe("\u4FDD\u7559\u5B57\u6BB5\uFF0C\u79DF\u6237\u6570\u636E\u5E93\u7F16\u7801"),tenantdbname:p.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:p.string().optional().nullable().describe("tenantdbname \u5BF9\u5E94\u7684 key \u503C"),uilogicscript:p.string().optional().nullable().describe("\u79BB\u7EBF\u811A\u672C\uFF0C\u4EC5\u7528\u4E8E app \u7AEF\u79BB\u7EBF\u6570\u636E\u63D0\u4EA4"),usedatarule:p.string().optional().nullable().describe("1 \u4EE3\u8868\u4F7F\u7528\u6570\u636E\u6743\u9650")},ye=p.looseObject(ee);var he=[{name:"page_model_logic_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u5217\u8868\uFF08ModelLogic\uFF09\u3002\u9002\u7528\u4E8E\u67E5\u627E\u67D0\u4E1A\u52A1\u903B\u8F91\u53CA\u5176\u5143\u4FE1\u606F\u3002\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 actiontype \u4F20 "3"\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF09- actiontype\uFF08\u64CD\u4F5C\u7C7B\u578B\uFF09\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\uFF08\u884C\u4E3A\u7C7B\u578B\uFF09\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- jobstatus\uFF08\u5B9A\u65F6\u8C03\u5EA6\u4EFB\u52A1\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B0-\u505C\u7528\uFF1B2-\u65E0\u8C03\u5EA6- tenantdbname\uFF08\u811A\u672C\u64CD\u4F5C\u6570\u636E\u5E93\u7C7B\u578B\uFF09\uFF1A\u5B57\u7B26\u4E32\u679A\u4E3E\uFF0C\u503C=\u53EA\u8BFB / \u8BFB\u5199 / \u62A5\u8868- execmode\uFF08\u6267\u884C\u65B9\u5F0F\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u540C\u6B65\uFF1B2-\u5F02\u6B65- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- status\uFF08\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u542F\u7528- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E`,inputSchema:{keys:S.string().optional().describe("\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898\u3001modellogiccode\u3001\u6216\u8005\u884C\u4E3A\u65B9\u6CD5\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),keywords:S.string().optional().describe("\u5B8C\u6574 JSON (\u5185\u542B\u4EE3\u7801) \u4E2D\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u5339\u914D"),page:S.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:S.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updateopname:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),updatetimestart:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4 - \u5F00\u59CB\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u6700\u8FD1\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),updatetimeend:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4 - \u7ED3\u675F\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u6700\u8FD1\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),actiontype:S.string().optional().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),actioncategory:S.string().optional().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),tenantdbname:S.string().optional().describe("\u811A\u672C\u64CD\u4F5C\u6570\u636E\u5E93\u7684\u7C7B\u578B\uFF0C\u5B57\u7B26\u4E32\u679A\u4E3E\uFF0C\u679A\u4E3E\u503C\uFF1A\u53EA\u8BFB\u3001\u8BFB\u5199\u3001\u62A5\u8868"),jobstatus:S.string().optional().describe("\u5B9A\u65F6\u8C03\u5EA6\u4EFB\u52A1\u72B6\u6001\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B0-\u505C\u7528\uFF1B2-\u65E0\u8C03\u5EA6")},outputSchema:{data:S.array(S.object({actiontype:S.coerce.number().optional().nullable().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),createtime:S.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801"),modelname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u540D"),modellogiccode:S.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modellogicname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),metamodelcode:S.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modellogiccode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),execmode:S.coerce.number().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),functionname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u51FD\u6570\u547D\u540D\uFF08A\u4E1A\u52A1\u903B\u8F91\u4E2D\u8C03\u7528B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u5199\u51FD\u6570\u540D\uFF09"),actioncategory:S.coerce.number().optional().nullable().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),modelcode:S.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),marktype:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),updatetime:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountname:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),createaccountname:S.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),seq:S.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:S.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),confsource:S.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),updateaccountcode:S.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801")}).catchall(S.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:S.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:S.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:S.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:S.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{keys:t="",keywords:n="",page:i=1,rows:r=20,updateopname:s="",updatetimestart:l="",updatetimeend:c="",actiontype:u="",actioncategory:g="",tenantdbname:w="",jobstatus:b=null}=e;try{let k=await fe({actioncategory:g,actiontype:u,centercode:"",directorytypecode:"rootNode",jobstatus:b,keys:t,keywords:n,modelcode:"rootNode",page:Number(i)||1,rows:Number(r)||20,tenantdbname:w,updateopname:s,updatetimeend:c,updatetimestart:l});return{content:[{type:"text",text:JSON.stringify(k.resp_data)}],structuredContent:k.resp_data}}catch(k){return{isError:!0,content:[{type:"text",text:_(k)}]}}}},{name:"get_model_logic",config:{title:"\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u8BE6\u60C5",description:`\u6839\u636E\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801 modellogiccode \u67E5\u8BE2\u5176\u5B8C\u6574\u8BE6\u60C5\uFF1A\u5305\u542B flycode \u811A\u672C\uFF08operations \u5185 templateparams.flycode\uFF09\u3001\u8F93\u5165\u8F93\u51FA\u53C2\u6570\uFF08input/output\uFF0C\u5206\u522B\u5B9A\u4E49 flycode \u5185\u7F6E\u5BF9\u8C61 IN / OUT \u7684\u7ED3\u6784\u4E0E\u5B57\u6BB5\u5C5E\u6027 properties\uFF0C\u542B propertytypecode \u5B57\u6BB5\u7C7B\u578B\uFF09\u4EE5\u53CA\u64CD\u4F5C\u6B65\u9AA4\u7B49\u3002\u3010\u6574\u6570/\u679A\u4E3E\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8BE6\u60C5\u8FD4\u56DE\u5B57\u6BB5\uFF0C\u90E8\u5206\u4EE5\u6570\u5B57\u8FD4\u56DE\u3001\u90E8\u5206\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u89E3\u6790\u65F6\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09- actioncategory\uFF08\u884C\u4E3A\u7C7B\u578B\uFF09\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\uFF08\u64CD\u4F5C\u7C7B\u578B\uFF09\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- execmode\uFF08\u6267\u884C\u65B9\u5F0F\uFF09\uFF1A1-\u540C\u6B65\uFF1B2-\u5F02\u6B65- executionmode\uFF08\u6267\u884C\u6A21\u5F0F\uFF09\uFF1Astandard-\u6807\u51C6\u6A21\u5F0F\uFF1Bstrict-\u4E25\u683C\u6A21\u5F0F- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E- tenantdbname\uFF08\u79DF\u6237\u6570\u636E\u5E93\u64CD\u4F5C\u6743\u9650\uFF09\uFF1A\u53EA\u8BFB-\u53EA\u80FD\u67E5\u8BE2\uFF1B\u8BFB\u5199-\u53EF\u589E\u5220\u6539\u67E5\uFF1B\u62A5\u8868-\u4FDD\u7559\u5B57\u6BB5- usedatarule\uFF08\u662F\u5426\u4F7F\u7528\u6570\u636E\u6743\u9650\uFF09\uFF1A1 \u4EE3\u8868\u4F7F\u7528\u6570\u636E\u6743\u9650- input/output[].datatype\uFF08\u53C2\u6570\u5F62\u6001\uFF09\uFF1A0-\u5355\u5B9E\u4F53\uFF08IN.name \u662F\u5BF9\u8C61\uFF09\uFF1B1-\u6570\u7EC4\uFF08IN.name \u662F\u6570\u7EC4\uFF09- input/output[].properties[].propertytypecode\uFF08\u5B57\u6BB5\u7C7B\u578B\uFF09\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)`,inputSchema:{modellogiccode:S.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 e=>{let{modellogiccode:t}=e;try{let n=await L({modellogiccode:t});return{content:[{type:"text",text:JSON.stringify(n.resp_data)}],structuredContent:n.resp_data}}catch(n){return{isError:!0,content:[{type:"text",text:_(n)}]}}}}];import{z as y}from"zod";function j(e,t="YYYY-MM-DD HH:mm:ss"){if(isNaN(e.getTime()))throw new Error("Invalid date provided");let n={YYYY:e.getFullYear().toString(),YY:e.getFullYear().toString().slice(-2),MM:String(e.getMonth()+1).padStart(2,"0"),M:String(e.getMonth()+1),DD:String(e.getDate()).padStart(2,"0"),D:String(e.getDate()),HH:String(e.getHours()).padStart(2,"0"),H:String(e.getHours()),mm:String(e.getMinutes()).padStart(2,"0"),m:String(e.getMinutes()),ss:String(e.getSeconds()).padStart(2,"0"),s:String(e.getSeconds()),SSS:String(e.getMilliseconds()).padStart(3,"0")},i=Object.keys(n).sort((s,l)=>l.length-s.length),r=t;for(let s of i)r=r.replace(new RegExp(s,"g"),n[s]);return r}function xe(e,t){let n=[],i=[];if(t==="exact"){for(let r=0;r<e.length;r++)n.push(e[r]),i.push(r);return{text:n.join(""),map:i}}for(let r=0;r<e.length;r++){let s=e[r];if(s==="\r"){n.push(``),i.push(r),e[r+1]===``&&r++;continue}if(s===" "||s===" "){let l=r;for(;l<e.length&&(e[l]===" "||e[l]===" ");)l++;if(l>=e.length||e[l]===``||e[l]==="\r"){r=l-1;continue}n.push(s),i.push(r);continue}n.push(s),i.push(r)}return{text:n.join(""),map:i}}function te(e){return e.replace(/\r\n?/g,``)}function we(e,t){let n=1,i=Math.min(t,e.length);for(let r=0;r<i;r++)e[r]===``&&n++;return n}function ft(e,t,n="normalized"){if(t.length===0)return[];let i=xe(e,n),r=xe(t,n);if(r.text.length===0)return[];let s=[],l=0;for(;;){let c=i.text.indexOf(r.text,l);if(c===-1)break;let u=i.map[c],g=i.map[c+r.text.length-1]+1;s.push({startOffset:u,endOffset:g,startLine:we(e,u),endLine:we(e,Math.max(g-1,0))}),l=c+r.text.length}return s}function ke(e){let t=new Map;if(e.length<2)return e.length===1&&t.set(e,1),t;for(let n=0;n<e.length-1;n++){let i=e.slice(n,n+2);t.set(i,(t.get(i)??0)+1)}return t}function yt(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let n=0,[i,r]=e.size<=t.size?[e,t]:[t,e];for(let[l,c]of i){let u=r.get(l);u&&(n+=Math.min(c,u))}let s=0;for(let l of e.values())s+=l;for(let l of t.values())s+=l;return s===0?0:2*n/s}function ht(e,t,n=3){let i=te(e).split(``),r=te(t).split(``);if(i.length===0||r.length===0)return[];let s=r.map(w=>w.trim()).join(``),l=ke(s),c=i.map(w=>w.trim()),u=new Map,g=new Set([r.length-1,r.length,r.length+1]);for(let w of g)if(!(w<1))for(let b=0;b+w<=i.length;b++){let k=c.slice(b,b+w).join(``),C=yt(ke(k),l);if(C<=.3)continue;let P=u.get(b);(!P||C>P.score)&&u.set(b,{score:C,preview:i.slice(b,b+w).join(``).slice(0,120)})}return Array.from(u.entries()).map(([w,b])=>({startLine:w+1,score:Math.round(b.score*100)/100,preview:b.preview})).sort((w,b)=>b.score-w.score).slice(0,n)}function xt(e){let t=(e.match(/\r\n/g)??[]).length,n=(e.match(/\n/g)??[]).length-t;return t>n?`\r`:``}function wt(e,t){let n=xt(t);return e.replace(/\r\n?|\n/g,n)}var M=40;function kt(e,t,n,i=3){let r=te(e).split(``),s=[],l=t.slice().sort((c,u)=>c.startOffset-u.startOffset);for(let c of l){let u=Math.max(1,c.startLine-i),g=Math.min(r.length,c.endLine+i),w=e.slice(c.startOffset,c.endOffset).split(``).map(h=>h.replace(/\r$/,"")),b=n.split(``),k=w.length,C=b.length,O=[["@@",`-${c.startLine},${k}`,`+${c.startLine},${C}`,"@@"].join(" ")];for(let h=u;h<c.startLine;h++)O.push(` ${r[h-1]}`);for(let h of w.slice(0,M))O.push(`-${h}`);k>M&&O.push(`... \u7701\u7565 ${k-M} \u884C`);for(let h of b.slice(0,M))O.push(`+${h}`);C>M&&O.push(`... \u7701\u7565 ${C-M} \u884C`);for(let h=c.endLine+1;h<=g;h++)O.push(` ${r[h-1]}`);s.push(O.join(``))}return s.join(``)}function B(e,t,n={}){let i=n.contextLines??3,r=n.topN??3,s=e.slice(),l=[],c=!1;for(let u=0;u<t.length;u++){let g=t[u],w=g.operationIndex??0,b=()=>({index:u,label:g.label??null,status:"FAILED",errorCode:"OK",message:null,operationIndex:w,matchCount:0,replacedCount:0,range:null,suggestions:null,dependentOnFailedOp:c,hunk:null}),k=(I,T,$={})=>{l.push({...b(),status:"FAILED",errorCode:I,message:T,...$}),c=!0};if(!Number.isInteger(w)||w<0||w>=s.length){k("NO_TARGET",`operationIndex=${w} \u4E0D\u5B58\u5728\uFF0C\u5F53\u524D\u5171\u6709 ${s.length} \u4E2A operation\uFF08\u53EF\u7528\u4E0B\u6807 0~${Math.max(s.length-1,0)}\uFF09`);continue}if(typeof g.oldString!="string"||g.oldString.length===0){k("EMPTY_OLD_STRING","oldString \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32\uFF1B\u5982\u9700\u6574\u4EFD\u91CD\u5199\u8BF7\u6539\u7528 simple_save_flycode_model_logic");continue}if(g.replaceAll===!0&&g.occurrence!=null){k("INVALID_PARAMS","replaceAll \u4E0E occurrence \u4E92\u65A5\uFF0C\u53EA\u80FD\u4E8C\u9009\u4E00");continue}let C=g.matchMode??"normalized",P=s[w],O=ft(P,g.oldString,C);if(O.length===0){k("NOT_FOUND",`oldString \u5728 operation[${w}] \u7684\u811A\u672C\u4E2D\u672A\u5339\u914D\u5230\u4EFB\u4F55\u5185\u5BB9\uFF08matchMode=${C}\uFF09`,{suggestions:ht(P,g.oldString,r)});continue}let h;if(g.replaceAll===!0)h=O;else if(g.occurrence!=null){if(!Number.isInteger(g.occurrence)||g.occurrence<1||g.occurrence>O.length){k("OCCURRENCE_OUT_OF_RANGE",`occurrence=${g.occurrence} \u8D8A\u754C\uFF0C\u5B9E\u9645\u5339\u914D\u6570\u4E3A ${O.length}`,{matchCount:O.length});continue}h=[O[g.occurrence-1]]}else if(O.length>1){let I=O.map(T=>`\u7B2C ${T.startLine}~${T.endLine} \u884C`).join("\u3001");k("NOT_UNIQUE",`oldString \u5339\u914D\u5230 ${O.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:O.length});continue}else h=O;let R=wt(g.newString,P),N=P;for(let I=h.length-1;I>=0;I--)N=N.slice(0,h[I].startOffset)+R+N.slice(h[I].endOffset);let D=kt(P,h,R,i);s[w]=N,l.push({...b(),status:"OK",errorCode:"OK",matchCount:O.length,replacedCount:h.length,range:h[0],hunk:D})}return{scripts:s,results:l,ok:l.length>0&&l.every(u=>u.status==="OK")}}async function ne(e,t){t.committype==="saverecord"&&(t.msgbody=j(new Date,"YYYY-MM-DD HH:mm")),e.message=JSON.stringify(t);try{return(await X(e)).resp_data}catch(n){return _(n)}}async function _e(e,t,n,i,r={committype:"saverecord",committypetext:"\u4FDD\u5B58\u8BB0\u5F55",msgbody:""}){let l=(await L({modellogiccode:e})).resp_data;if(!l||!l.operations||l.operations.length===0)return JSON.stringify({error:"\u8BE5\u4E1A\u52A1\u903B\u8F91\u4E0D\u542B operations\uFF08\u5373\u6CA1\u6709 flycode \u811A\u672C\uFF09\uFF0C\u65E0\u6CD5\u901A\u8FC7 simpleSaveFlyCodeModelLogic \u4FDD\u5B58",hint:"\u8BF7\u6539\u7528\u5B8C\u6574\u7684 save_model_logic \u5DE5\u5177\uFF0C\u4F20\u5165\u4ECE get_model_logic \u67E5\u8BE2\u5230\u7684\u5B8C\u6574 LogicResult \u5BF9\u8C61"});let c=l.operations[0];return c.templateparams={...c.templateparams??{},flycode:t},n!==void 0&&(l.input=n),i!==void 0&&(l.output=i),ne(l,r)}var Re=150;function Rt(e){let t=e.filter(r=>r.hunk).map(r=>`--- ops[${r.index}]${r.label?` (${r.label})`:""} @ operation[${r.operationIndex}]${r.hunk}`);if(t.length===0)return"";let n=t.join(``),i=n.split(``);return i.length<=Re?n:`${i.slice(0,Re).join(``)}... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}async function _t(e,t){t.committype==="saverecord"&&(t.msgbody=j(new Date,"YYYY-MM-DD HH:mm")),e.message=JSON.stringify(t);try{let n=await X(e);return{ok:!0,text:typeof n?.resp_data=="string"?n.resp_data:JSON.stringify(n?.resp_data??null)}}catch(n){return{ok:!1,text:_(n)}}}async function ve(e,t,n,i={}){let r=i.contextLines??3,s=i.dryRun??!1,l=i.verify??!0,c=(R,N)=>({ok:!1,applied:!1,verified:null,errorCode:R,message:N,lengthBefore:0,lengthAfter:0,diff:"",ops:[]});if(!Array.isArray(t)||t.length===0)return c("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let u;try{u=(await L({modellogiccode:e})).resp_data}catch(R){return c("FETCH_FAILED",_(R))}if(!u)return c("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${e} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);if(!u.operations||u.operations.length===0)return c("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 g=u.operations.map(R=>R.templateparams?.flycode??""),w=g.reduce((R,N)=>R+N.length,0),b=B(g,t,{contextLines:r}),k=Rt(b.results),C=b.scripts.reduce((R,N)=>R+N.length,0);if(!b.ok){let R=b.results.filter(D=>D.status==="FAILED"),N=R.map(D=>D.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${R.length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${N}]\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:w,lengthAfter:C,diff:k,ops:b.results}}if(s)return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u6F14\u6210\u529F\uFF08dryRun=true\uFF09\uFF0C${t.length} \u4E2A op \u5168\u90E8\u547D\u4E2D\uFF0C\u672A\u843D\u5E93`,lengthBefore:w,lengthAfter:C,diff:k,ops:b.results};for(let R=0;R<b.scripts.length;R++)if(b.scripts[R]!==g[R]){let N=u.operations[R].templateparams;u.operations[R].templateparams={...N??{},flycode:b.scripts[R]}}let P=await _t(u,n);if(!P.ok)return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:P.text,lengthBefore:w,lengthAfter:C,diff:k,ops:b.results};let O=null,h=P.text;if(l)try{let D=((await L({modellogiccode:e})).resp_data?.operations??[]).map(T=>T.templateparams?.flycode??""),I=[];b.results.forEach((T,$)=>{let z=t[$],le=D[T.operationIndex]??"";z.newString.length>0&&!le.includes(z.newString)&&I.push(`ops[${$}] \u7684\u65B0\u5185\u5BB9\u672A\u51FA\u73B0\u5728\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`),!z.newString.includes(z.oldString)&&le.includes(z.oldString)&&I.push(`ops[${$}] \u7684 oldString \u4ECD\u7136\u5B58\u5728\u4E8E\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`)}),O=I.length===0,I.length>0&&(h=`${P.text} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${I.join("\uFF1B")}`)}catch(R){O=!1,h=`${P.text} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${_(R)}`}return{ok:O===null?!0:O,applied:!0,verified:O,errorCode:O===!1?"VERIFY_FAILED":"OK",message:h,lengthBefore:w,lengthAfter:C,diff:k,ops:b.results}}var oe=y.object({committype:y.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:y.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:y.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")}),Se=[{name:"save_model_logic",config:{title:"\u4FDD\u5B58\u4E1A\u52A1\u903B\u8F91",description:`\u4FDD\u5B58\uFF08\u65B0\u589E\u6216\u66F4\u65B0\uFF09\u4E00\u6761\u4E1A\u52A1\u903B\u8F91\u3002\u4F20\u5165\u4ECE get_model_logic \u67E5\u8BE2\u5F97\u5230\u7684\u5B8C\u6574 LogicResult \u5BF9\u8C61\uFF0C\u6309\u9700\u4FEE\u6539\u5176\u4E2D\u7684 flycode \u811A\u672C\uFF08operations[].templateparams.flycode\uFF09\u3001\u8F93\u5165\u8F93\u51FA\u53C2\u6570\uFF08input/output\uFF09\u6216\u6807\u9898\u540E\u56DE\u4F20\uFF0C\u5E76\u9644\u5E26\u63D0\u4EA4\u4FE1\u606F commitMessage\u3002\u670D\u52A1\u7AEF\u6309 overwrite=false \u4FDD\u5B58\uFF08\u4E0D\u8986\u76D6\u4ED6\u4EBA\u6700\u65B0\u7248\u672C\uFF09\u3002**\u6CE8\u610F**\uFF1A1.\u5F53\u4EC5\u9700\u8981\u4FEE\u6539 flycode \uFF0C\u4E0D\u9700\u8981\u4FEE\u6539\u5176\u4ED6\u5143\u6570\u636E\u65F6\uFF0C\u4F18\u5148\u4F7F\u7528 str_replace_flycode \u5DE5\u5177\u30022.\u5F53\u9700\u8981\u4FEE\u6539 input \u3001ouput \u65F6\uFF0C\u4F18\u5148\u4F7F\u7528 simple_save_flycode_model_logic \u5DE5\u5177\u30023.\u53EA\u6709 str_replace_flycode \u548C simple_save_flycode_model_logic \u65E0\u6CD5\u6EE1\u8DB3\uFF0C\u6216\u9700\u8981\u521B\u5EFA\u65B0\u4E1A\u52A1\u903B\u8F91\u65F6\uFF0C\u624D\u8003\u8651\u672C\u5DE5\u5177\u3002\u3010\u6784\u9020 LogicResult \u7684\u679A\u4E3E\u901F\u67E5\u3011\uFF08\u5B57\u6BB5\u542B\u4E49\u4E0E get_model_logic \u8FD4\u56DE\u4E00\u81F4\uFF0C\u539F\u6837\u56DE\u4F20\u5373\u53EF\uFF09- actioncategory\uFF08\u884C\u4E3A\u7C7B\u578B\uFF09\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\uFF08\u64CD\u4F5C\u7C7B\u578B\uFF09\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- execmode\uFF08\u6267\u884C\u65B9\u5F0F\uFF09\uFF1A1-\u540C\u6B65\uFF1B2-\u5F02\u6B65- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E- input/output[].datatype\uFF08\u53C2\u6570\u5F62\u6001\uFF09\uFF1A0-\u5355\u5B9E\u4F53\uFF1B1-\u6570\u7EC4- input/output[].properties[].propertytypecode\uFF08\u5B57\u6BB5\u7C7B\u578B\uFF09\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)`,inputSchema:{logic:ye.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:oe.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:y.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 e=>{let{logic:t,commitMessage:n}=e,i={committype:n.committype,committypetext:n.committypetext,msgbody:n.msgbody??""};try{let r=await ne(t,i);return{content:[{type:"text",text:r}],structuredContent:{result:r}}}catch(r){let s=_(r);return{isError:!0,content:[{type:"text",text:s}],structuredContent:{result:s}}}}},{name:"simple_save_flycode_model_logic",config:{title:"\u7B80\u6613\u4FDD\u5B58 flycode \u4E1A\u52A1\u903B\u8F91",description:`\u4FDD\u5B58\uFF08\u65B0\u589E\u6216\u66F4\u65B0\uFF09\u4E00\u6761"\u542B flycode \u811A\u672C"\u7684\u4E1A\u52A1\u903B\u8F91\uFF0C\u4F46\u53EA\u9700\u63D0\u4F9B\u5C11\u91CF\u53C2\u6570\uFF0C\u5927\u5E45\u51CF\u5C11\u4E0A\u4E0B\u6587\u5360\u7528\u3002\u4E0E save_model_logic \u7684\u533A\u522B\uFF1Asave_model_logic \u9700\u8981\u56DE\u4F20\u4ECE get_model_logic \u67E5\u5230\u7684\u5B8C\u6574 LogicResult \u5BF9\u8C61\uFF08\u5F80\u5F80\u5F88\u5927\uFF0C\u6613\u56E0\u8D85\u957F\u88AB\u622A\u65AD\uFF09\uFF1B\u672C\u5DE5\u5177\u53EA\u9700\u4F20\u5165 modellogiccode\u3001flycode \u4EE5\u53CA\uFF08\u53EF\u9009\u7684\uFF09input / output\uFF0C\u670D\u52A1\u7AEF\u4F1A\u81EA\u52A8\u6309 modellogiccode \u62C9\u53D6\u5B8C\u6574\u5BF9\u8C61\u5E76\u53EA\u8986\u76D6\u8FD9\u51E0\u4E2A\u5B57\u6BB5\uFF0C\u5176\u4F59\u5B57\u6BB5\u539F\u6837\u4FDD\u7559\u3002\u9002\u7528\u573A\u666F\uFF1A\u4F60\u6B63\u5728\u4FEE\u6539\u7684\u4E1A\u52A1\u903B\u8F91\u9886\u57DF\u662F flycode\uFF08actioncategory \u4E3A 1/6/7 \u7B49\u542B flycode \u7684\u7C7B\u578B\uFF09\uFF0C\u4EC5\u9700\u53D8\u66F4\u811A\u672C\u6216\u8F93\u5165/\u8F93\u51FA\u53C2\u6570\u65F6\uFF0C\u4F18\u5148\u7528\u672C\u5DE5\u5177\u3002\u4E0D\u9002\u7528\u573A\u666F\uFF1A\u5BFC\u51FA\uFF08actioncategory=5\uFF09\u7B49\u4E0D\u542B flycode \u7684\u7279\u6B8A\u9886\u57DF\uFF0C\u6CA1\u6709 operations \u811A\u672C\u7ED3\u6784\uFF0C\u8BF7\u6539\u7528\u5B8C\u6574\u7684 save_model_logic \u5DE5\u5177\u4FDD\u5B58\u3002\u670D\u52A1\u7AEF\u6309 overwrite=false \u4FDD\u5B58\uFF08\u4E0D\u8986\u76D6\u4ED6\u4EBA\u6700\u65B0\u7248\u672C\uFF09\u3002**\u6CE8\u610F\uFF1A\u5F53\u4EC5\u9700\u8981\u4FEE\u6539 flycode \uFF0C\u4E0D\u9700\u8981\u4FEE\u6539\u5176\u4ED6\u5143\u6570\u636E\u65F6\uFF0C\u4F18\u5148\u4F7F\u7528 str_replace_flycode \u5DE5\u5177\u3002**\u3010input/output \u53C2\u6570\u679A\u4E3E\u901F\u67E5\u3011\uFF08\u4EC5\u5F53\u4F20 input/output \u65F6\u9700\u8981\uFF0C\u7ED3\u6784\u540C logicParametersSchema\uFF09- datatype\uFF08\u53C2\u6570\u5F62\u6001\uFF09\uFF1A0-\u5355\u5B9E\u4F53\uFF08IN.name \u662F\u5BF9\u8C61\uFF09\uFF1B1-\u6570\u7EC4\uFF08IN.name \u662F\u6570\u7EC4\uFF09- properties[].propertytypecode\uFF08\u5B57\u6BB5\u7C7B\u578B\uFF09\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)`,inputSchema:{modelLogicCode:y.string().describe("\u8981\u4FDD\u5B58\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),flycode:y.string().describe("flycode \u811A\u672C\u4EE3\u7801\u5B57\u7B26\u4E32\uFF0C\u5C06\u5199\u5165 operations[0].templateparams.flycode\uFF0C\u8986\u76D6\u539F\u6709\u811A\u672C"),input:q.optional().describe("\u8F93\u5165\u53C2\u6570\uFF08IN \u7ED3\u6784\uFF09\u3002\u4E0D\u4F20\u5219\u4FDD\u7559\u8BE5\u4E1A\u52A1\u903B\u8F91\u539F\u503C\uFF1B\u4F20\u7A7A\u6570\u7EC4\u8868\u793A\u6E05\u7A7A\u8F93\u5165"),output:q.optional().describe("\u8F93\u51FA\u53C2\u6570\uFF08OUT \u7ED3\u6784\uFF09\u3002\u4E0D\u4F20\u5219\u4FDD\u7559\u8BE5\u4E1A\u52A1\u903B\u8F91\u539F\u503C\uFF1B\u4F20\u7A7A\u6570\u7EC4\u8868\u793A\u6E05\u7A7A\u8F93\u51FA"),commitMessage:oe.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:y.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 e=>{let{modelLogicCode:t,flycode:n,input:i,output:r,commitMessage:s}=e,l={committype:s.committype,committypetext:s.committypetext,msgbody:s.msgbody??""};try{let c=await _e(t,n,i,r,l);return{content:[{type:"text",text:c}],structuredContent:{result:c}}}catch(c){let u=_(c);return{isError:!0,content:[{type:"text",text:u}],structuredContent:{result:u}}}}},{name:"str_replace_flycode",config:{title:"\u6279\u91CF\u5C40\u90E8\u66FF\u6362 flycode \u811A\u672C",description:`\u4EE5 str_replace_editor \u6A21\u5F0F\u5C40\u90E8\u4FEE\u6539\u4E1A\u52A1\u903B\u8F91\u7684 flycode \u811A\u672C\uFF1A\u53EA\u9700\u4F20\u5165\u8981\u6539\u52A8\u7684\u65B0\u65E7\u4EE3\u7801\u7247\u6BB5\uFF08oldString / newString\uFF09\uFF0C\u4E0D\u5FC5\u56DE\u4F20\u6574\u4EFD\u811A\u672C\uFF0C\u7531\u670D\u52A1\u7AEF\u62C9\u53D6\u5B8C\u6574\u5BF9\u8C61\u540E\u5B8C\u6210\u5B9A\u4F4D\u4E0E\u66FF\u6362\uFF0C\u5927\u5E45\u8282\u7701\u4E0A\u4E0B\u6587\u3002\u3010\u4F55\u65F6\u7528\u672C\u5DE5\u5177 / \u4F55\u65F6\u7528\u522B\u7684\u3011- \u6539 1~N \u5904\u5C40\u90E8\u7247\u6BB5\uFF08\u6700\u5E38\u7528\uFF09\u2192 \u672C\u5DE5\u5177\uFF0C\u4E00\u6B21\u8C03\u7528\u53EF\u6279\u91CF\u63D0\u4EA4\u591A\u4E2A ops- \u6574\u4EFD\u811A\u672C\u91CD\u5199\u3001\u5927\u8303\u56F4\u91CD\u6784 \u2192 simple_save_flycode_model_logic- \u975E flycode \u9886\u57DF\uFF08\u5BFC\u51FA\u7B49\uFF09\u6216\u8981\u6539 input / output \u7ED3\u6784 \u2192 save_model_logic\u3010\u4E8B\u52A1\u6027\u3011ops \u5177\u5907\u4E8B\u52A1\u6027\uFF1A\u5168\u90E8 op \u9884\u6F14\u6210\u529F\u624D\u4F1A\u843D\u5E93\uFF0C\u4EFB\u4E00 op \u5931\u8D25\u5219\u6574\u6279\u4E2D\u6B62\u3001\u4E0D\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF08\u96F6\u5199\u5165\u56DE\u6EDA\uFF09\u3002\u5B9E\u73B0\u4E0A\u6574\u6279\u53EA\u53D1\u8D77\u4E00\u6B21\u4FDD\u5B58\u8BF7\u6C42\uFF0C\u4E0D\u5B58\u5728\u5199\u4E00\u534A\u7684\u4E2D\u95F4\u6001\u3002\u3010\u6267\u884C\u987A\u5E8F\u3011ops \u6309\u6570\u7EC4\u987A\u5E8F\u4F9D\u6B21\u6267\u884C\uFF0Cops[i+1] \u5728 ops[i] \u7684\u7ED3\u679C\u4E0A\u5339\u914D\uFF0C\u56E0\u6B64\u5141\u8BB8\u300C\u5148\u63D2\u5165\u4E00\u6BB5\u4EE3\u7801\uFF0C\u518D\u6539\u8FD9\u6BB5\u91CC\u7684\u67D0\u884C\u300D\u8FD9\u7C7B\u4F9D\u8D56\uFF1B\u53CD\u4E4B\u82E5 ops[i+1] \u7684\u539F\u6587\u5DF2\u88AB ops[i] \u5220\u9664\uFF0C\u5219\u62A5 NOT_FOUND \u5E76\u6574\u6279\u4E2D\u6B62\u3002\u3010oldString \u4E66\u5199\u8981\u6C42\uFF08\u51B3\u5B9A\u6210\u8D25\uFF09\u3011- \u5FC5\u987B\u975E\u7A7A\uFF0C\u4E14\u5728\u76EE\u6807\u811A\u672C\u4E2D\u552F\u4E00\u547D\u4E2D\uFF08\u5426\u5219\u62A5 NOT_UNIQUE\uFF09- \u63A8\u8350 3~10 \u884C\uFF0C\u52A1\u5FC5\u5305\u542B\u4E00\u5904\u80FD\u533A\u5206\u4E8E\u5176\u4ED6\u4F4D\u7F6E\u7684\u4E0A\u4E0B\u6587\uFF1B\u592A\u77ED\u5BB9\u6613\u591A\u547D\u4E2D- \u76F4\u63A5\u4ECE\u67E5\u8BE2\u5230\u7684\u811A\u672C\u539F\u6587\u91CC\u590D\u5236\uFF0C\u4E0D\u8981\u51ED\u8BB0\u5FC6\u91CD\u5199\uFF1B\u7F29\u8FDB\u3001\u7A7A\u884C\u3001\u6362\u884C\u90FD\u8981\u4E00\u81F4- \u5339\u914D\u9ED8\u8BA4\u5BB9\u5FCD\u6362\u884C\u7B26\u5DEE\u5F02\uFF08CRLF / LF\uFF09\u4E0E\u884C\u5C3E\u7A7A\u767D\u5DEE\u5F02\uFF1B\u9700\u8981\u5B57\u8282\u4E25\u683C\u76F8\u7B49\u65F6\u628A matchMode \u8BBE\u4E3A exact- \u547D\u4E2D\u591A\u5904\u7684\u76F8\u540C\u7247\u6BB5\uFF1A\u7528 occurrence \u6307\u5B9A\u6539\u7B2C\u51E0\u5904\uFF0C\u6216 replaceAll=true \u5168\u90E8\u66FF\u6362\u3010\u5931\u8D25\u540E\u7684\u81EA\u7EA0\u3011\u8FD4\u56DE\u4F53\u4E2D ops[].message \u8BF4\u660E\u539F\u56E0\uFF1BNOT_FOUND \u65F6 ops[].suggestions \u4F1A\u7ED9\u51FA\u6700\u76F8\u4F3C\u7684\u5019\u9009\uFF08\u542B\u884C\u53F7\u4E0E\u76F8\u4F3C\u5EA6\uFF09\uFF0C\u636E\u6B64\u4FEE\u6B63 oldString \u540E\u91CD\u8BD5\u5373\u53EF\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u662F\u5426\u552F\u4E00\u65F6\uFF0C\u5EFA\u8BAE\u5148 dryRun=true \u9884\u89C8 diff \u518D\u6B63\u5F0F\u63D0\u4EA4\u3002`,inputSchema:{modelLogicCode:y.string().describe("\u8981\u4FEE\u6539\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:y.array(y.object({oldString:y.string().describe("\u5F85\u66FF\u6362\u7684\u539F\u6587\u7247\u6BB5\uFF0C\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"),newString:y.string().describe("\u66FF\u6362\u540E\u7684\u65B0\u6587\u672C\uFF1B\u4F20\u7A7A\u5B57\u7B26\u4E32\u8868\u793A\u5220\u9664 oldString \u8FD9\u6BB5\u5185\u5BB9"),operationIndex:y.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:y.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:y.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:y.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:y.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"),commitMessage:oe.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:y.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:y.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:y.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:y.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:y.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:y.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:y.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / NO_OPERATIONS / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:y.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),lengthBefore:y.coerce.number().describe("\u66FF\u6362\u524D\u811A\u672C\u603B\u5B57\u7B26\u6570"),lengthAfter:y.coerce.number().describe("\u66FF\u6362\u540E\u811A\u672C\u603B\u5B57\u7B26\u6570"),diff:y.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:y.array(y.object({index:y.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),label:y.string().nullable().describe("\u8C03\u7528\u65B9\u4F20\u5165\u7684\u6807\u8BC6"),status:y.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:y.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:y.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),operationIndex:y.coerce.number().describe("\u5B9E\u9645\u4F5C\u7528\u7684 operation \u4E0B\u6807"),matchCount:y.coerce.number().describe("oldString \u7684\u5339\u914D\u603B\u6570"),replacedCount:y.coerce.number().describe("\u5B9E\u9645\u66FF\u6362\u7684\u5904\u6570"),range:y.object({startOffset:y.coerce.number().describe("\u8D77\u59CB\u5B57\u7B26\u504F\u79FB"),endOffset:y.coerce.number().describe("\u7ED3\u675F\u5B57\u7B26\u504F\u79FB\uFF08\u4E0D\u542B\uFF09"),startLine:y.coerce.number().describe("\u8D77\u59CB\u884C\u53F7\uFF0C1-based"),endLine:y.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:y.array(y.object({startLine:y.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:y.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:y.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:y.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:y.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 e=>{let{modelLogicCode:t,ops:n,commitMessage:i,dryRun:r=!1,contextLines:s=3,verify:l=!0}=e,c={committype:i.committype,committypetext:i.committypetext,msgbody:i.msgbody??""};try{let u=await ve(t,n,c,{dryRun:r,contextLines:s,verify:l});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(g=>({index:g.index,status:g.status,errorCode:g.errorCode,message:g.message,operationIndex:g.operationIndex,matchCount:g.matchCount,replacedCount:g.replacedCount,range:g.range,suggestions:g.suggestions,dependentOnFailedOp:g.dependentOnFailedOp})),diff:u.diff})}],structuredContent:u}}catch(u){let g=_(u);return{isError:!0,content:[{type:"text",text:g}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:g,lengthBefore:0,lengthAfter:0,diff:"",ops:[]}}}}}];import{z as v}from"zod";function Oe(e){return F({url:"/bizserv/biz/pageList",method:"post",data:e,type:"tenant"})}function Fe(e){return F({url:"/bizserv/biz/getBizObject",method:"post",data:e,type:"tenant"})}import{z as m}from"zod";var vt=m.array(m.object({columnname:m.string().optional().nullable().describe("\u5C5E\u6027\u5217\u7684\u5217\u540D\uFF0C\u5373\u6570\u636E\u5E93\u8868\u7684\u5B57\u6BB5\u7684\u540D\u5B57"),idxtype:m.union([m.string(),m.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:m.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:m.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),propertycategorycode:m.string().optional().nullable().describe("\u5C5E\u6027\u7C7B\u522B\u7F16\u7801"),propertycode:m.string().optional().nullable().describe("\u5C5E\u6027\u7F16\u7801\uFF0C\u552F\u4E00\u6807\u8BC6\u4E00\u4E2A\u5C5E\u6027"),propertydescr:m.string().optional().nullable().describe("\u5C5E\u6027\u63CF\u8FF0"),propertyname:m.string().optional().nullable().describe("\u5C5E\u6027\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),propertytypecode:m.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:m.union([m.string(),m.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:m.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:m.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:m.union([m.string(),m.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:m.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:m.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:m.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:m.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:m.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(m.unknown())),St={confsource:m.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:m.union([m.string(),m.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:m.union([m.string(),m.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:m.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:m.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:m.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:m.union([m.string(),m.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:m.string().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:m.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:m.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:m.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:m.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801\u3002\u4EC5\u6570\u636E\u5B57\u5178\u5B9E\u4F53\u8FD4\u56DE"),objecttypecode:m.union([m.string(),m.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:m.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode\u3002\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),properties:vt.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:m.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),script:m.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:m.union([m.string(),m.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:m.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:m.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u5E8F\u53F7\u3002\u4EC5\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u8FD4\u56DE"),tablename:m.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D")},Ce=m.looseObject(St);var Pe=[{name:"page_entity_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u5B9E\u4F53",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u5B9E\u4F53\u5217\u8868\u3002\u9002\u7528\u4E8E\u67E5\u627E\u4E1A\u52A1\u5BF9\u8C61\uFF08\u8868\uFF09\u53CA\u5176\u5143\u4FE1\u606F\u3002\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 datapattern \u4F20 "3" \u8868\u793A\u89C6\u56FE\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF0C\u90E8\u5206\u5B9E\u4F53\u7C7B\u578B\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF09- datapattern\uFF08\u5B9E\u4F53\u7C7B\u578B\uFF09\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53- objecttypecode\uFF08\u5B9E\u4F53\u5206\u7C7B\uFF09\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53- objectcatgory\uFF08\u662F\u5426\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u662F\uFF1B2-\u5426- status\uFF08\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528- publishstatus\uFF08\u53D1\u5E03\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E- hasoffline\uFF08\u662F\u5426\u6709\u79BB\u7EBF\u8BBE\u7F6E\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u6709\uFF1B0-\u65E0`,inputSchema:{objectname:v.string().optional().describe("\u5B9E\u4F53\u4E2D\u6587\u540D\u3001\u5B9E\u4F53\u8868\u540D\u3001\u5B9E\u4F53 objectcode \u6A21\u7CCA\u5339\u914D"),page:v.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:v.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updatetimestart:v.string().optional().describe("\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),updatetimeend:v.string().optional().describe("\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),datapattern:v.string().optional().describe("\u5B9E\u4F53\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53"),objecttypecode:v.string().optional().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53")},outputSchema:{data:v.array(v.object({confsource:v.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),createaccountcode:v.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:v.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:v.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),datapattern:v.coerce.number().optional().nullable().describe("\u6570\u636E\u6A21\u5F0F\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u3002\u539F\u751F\u5B9E\u4F53\uFF1A\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF1B\u884D\u751F\u3001\u89C6\u56FE\uFF1A\u4E0D\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF1B\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\uFF1A\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF0C\u4F46\u662F\u662F\u5E73\u53F0\u6839\u636E\u7528\u6237\u7684\u914D\u7F6E\u81EA\u52A8\u521B\u5EFA\u7684\uFF0C\u8868\u540D\u65E0\u542B\u4E49"),directorytypecode:v.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:v.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),hasoffline:v.string().optional().nullable().describe("\u5B9E\u4F53\u662F\u5426\u6709\u79BB\u7EBF\u8BBE\u7F6E\uFF0C1-\u6709\uFF1B0-\u65E0"),marktype:v.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:v.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C objectcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectcatgory:v.coerce.number().optional().nullable().describe("\u5BF9\u8C61\u7C7B\u522B\uFF0C\u8868\u793A\u662F\u5426\u4E3A\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF0C1-\u662F\uFF1B2-\u5426"),objectcode:v.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:v.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:v.string().optional().nullable().describe("\u5B9E\u4F53\u6807\u8BB0\uFF0C\u4E00\u822C\u548C\u6570\u636E\u5E93\u8868\u540D\u540C\u540D\uFF0C\u5B57\u5178\u7C7B\u578B\u7684\u5B9E\u4F53\u6709\u81EA\u5DF1\u7684\u6807\u8BB0"),objectname:v.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:v.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801"),objecttypecode:v.string().optional().nullable().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53"),parentobjectcode:v.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode"),publishstatus:v.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),status:v.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:v.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D"),updateaccountcode:v.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:v.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),updatetime:v.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(v.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:v.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:v.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:v.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:v.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{objectname:t="",page:n=1,rows:i=20,updatetimestart:r="",updatetimeend:s="",datapattern:l="",objecttypecode:c=""}=e;try{let u=await Oe({centercode:"",directorytypecode:"rootNode",starttime:"",objectname:t,page:Number(n)||1,rows:Number(i)||20,updatetimestart:r,updatetimeend:s,datapattern:l,objecttypecode:c});return{content:[{type:"text",text:JSON.stringify(u.resp_data)}],structuredContent:u.resp_data}}catch(u){return{isError:!0,content:[{type:"text",text:_(u)}]}}}},{name:"get_entity",config:{title:"\u67E5\u8BE2\u5B9E\u4F53\u8BE6\u60C5",description:`\u6839\u636E\u5B9E\u4F53\u7684\u7F16\u7801 objectcode \u67E5\u8BE2\u5176\u5B8C\u6574\u8BE6\u60C5\uFF1A\u5305\u542B\u5B9E\u4F53\u7684\u57FA\u672C\u4FE1\u606F\uFF08\u4E2D\u6587\u540D\u3001\u6807\u8BB0\u3001\u63CF\u8FF0\u3001\u5206\u7C7B\u3001\u6570\u636E\u6A21\u5F0F\u3001\u53D1\u5E03\u72B6\u6001\u7B49\uFF09\u4EE5\u53CA\u5B9E\u4F53\u7684\u5C5E\u6027\u6570\u7EC4 properties\uFF08\u6BCF\u4E2A\u5C5E\u6027\u7684\u5217\u540D\u3001\u7C7B\u578B\u3001\u5173\u8054\u5B9E\u4F53\u3001\u7D22\u5F15\u65B9\u5F0F\u7B49\uFF09\u3002\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8BE6\u60C5\u8FD4\u56DE\u5B57\u6BB5\uFF0C\u591A\u6570\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF0C\u90E8\u5206\u5B9E\u4F53\u7C7B\u578B\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u89E3\u6790\u65F6\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09- datapattern\uFF08\u6570\u636E\u6A21\u5F0F\uFF09\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\uFF08\u6CE8\uFF1A\u8BE6\u60C5\u63A5\u53E3\u591A\u6570\u5B9E\u4F53\u7C7B\u578B\u4E0D\u8FD4\u56DE\u8BE5\u5B57\u6BB5\uFF0C\u5B83\u662F\u5217\u8868\u63A5\u53E3\u5B57\u6BB5\uFF09- objecttypecode\uFF08\u5B9E\u4F53\u5206\u7C7B\uFF09\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53- objectcatgory\uFF08\u662F\u5426\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF09\uFF1A1-\u662F\uFF1B2-\u5426- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\uFF08\u8BE6\u60C5\u63A5\u53E3\u8BE5\u5B57\u6BB5\u8FD4\u56DE\u4E0D\u7A33\u5B9A\uFF0C\u90E8\u5206\u8C03\u7528\u4E0D\u8FD4\u56DE\uFF09- publishstatus\uFF08\u53D1\u5E03\u72B6\u6001\uFF09\uFF1A1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E- properties[].idxtype\uFF08\u7D22\u5F15\u65B9\u5F0F\uFF09\uFF1A1-\u65E0\uFF1B2-\u4E3B\u952E\u7D22\u5F15- properties[].propertytypecode\uFF08\u5C5E\u6027\u7C7B\u578B\uFF09\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)`,inputSchema:{objectcode:v.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u5B9E\u4F53\u7684\u7F16\u7801")},outputSchema:Ce,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{objectcode:t}=e;try{let n=await Fe({objectcode:t});return{content:[{type:"text",text:JSON.stringify(n.resp_data)}],structuredContent:n.resp_data}}catch(n){return{isError:!0,content:[{type:"text",text:_(n)}]}}}}];import{z as o}from"zod";function Ne(e){return F({url:"/bizserv/bizpage/pageList",method:"post",data:e,type:"tenant"})}function A(e){return F({url:"/bizserv/bizpage/getPage",method:"post",data:e,type:"tenant"})}function re(e){let{conf:t,message:n,ui:i,edittime:r=j(new Date,"YYYY-MM-DD HH:mm:ss"),overwrite:s=!1,clearuserconfig:l=!0}=e;return F({url:"/biserv/bizpage/saveNewPage",method:"post",data:{clearuserconfig:l,conf:t,edittime:r,message:n,overwrite:s,ui:i??t},type:"tenant"})}var Ie=150;function Le(e){e.committype==="saverecord"&&(e.msgbody=j(new Date,"YYYY-MM-DD HH:mm"))}function K(e,t){if(!e)return null;if(e.code===t)return e;if(Array.isArray(e.content))for(let n of e.content){let i=K(n,t);if(i)return i}return null}function Y(e){let t=[],n=i=>{i&&(t.push(i),Array.isArray(i.content)&&i.content.forEach(n))};return n(e.view?.body??null),Array.isArray(e.controls)&&e.controls.forEach(i=>{i&&t.push(i)}),t}function De(e,t){if(!e?.content)return null;let n=e.content.findIndex(i=>i?.code===t);if(n>=0){let[i]=e.content.splice(n,1);return i??null}for(let i of e.content){let r=De(i,t);if(r)return r}return null}function Ee(e,t){let n=De(e.view?.body??null,t);if(n)return n;if(Array.isArray(e.controls)){let i=e.controls.findIndex(r=>r?.code===t);if(i>=0){let[r]=e.controls.splice(i,1);return r??null}}return null}function Te(e){let t=new Set,n=i=>{if(i){for(let r of i.eventlist??[])r?.handler&&t.add(r.handler);Array.isArray(i.content)&&i.content.forEach(n)}};n(e.view?.body??null);for(let i of e.presenter?.handlers??[]){for(let r of i?.actions??[])r?.handler&&t.add(r.handler),r?.logiccode&&t.add(r.logiccode);for(let r of i?.eventlist??[])r?.handler&&t.add(r.handler)}for(let i of e.presenter?.interface??[])for(let r of i?.actions??[])r?.handler&&t.add(r.handler);return t}function Ot(e){return{oldString:e.oldString,newString:e.newString,replaceAll:e.replaceAll,occurrence:e.occurrence,matchMode:e.matchMode,label:e.label}}function je(e){let t={code:e.code??null,type:e.type??null,title:e.title??null};return Array.isArray(e.content)&&e.content.length>0&&(t.children=e.content.map(je)),t}async function Ae(e){let n=(await A({code:e})).resp_data;if(!n)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${e} \u5BF9\u5E94\u7684\u8868\u5355`);let i=(n.presenter?.handlers??[]).map(l=>({code:l?.code??null,name:l?.name??null,desc:l?.desc??null,key:l?.key??null,condition:l?.condition??null,actionCount:l?.actions?.length??0,actionTypes:(l?.actions??[]).map(c=>c?.type??"").filter(c=>!!c)})),r=(n.presenter?.interface??[]).map(l=>({code:l?.code??null,key:l?.key??null,desc:l?.desc??null,actionCount:l?.actions?.length??0})),s=(n.businessmodel??[]).map(l=>({modelcode:l?.modelcode??null,modellogiccode:l?.modellogiccode??null,modellogicname:l?.modellogicname??null,actiontype:l?.actiontype??null}));return{code:e,title:n.pageinfo?.title??null,type:n.pageinfo?.type??null,status:n.pageinfo?.status??null,clientcategorycode:n.pageinfo?.clientcategorycode??null,marktype:n.pageinfo?.marktype??null,versionnum:n.pageinfo?.versionnum??null,viewTree:n.view?.body?[je(n.view.body)]:[],handlers:i,interfaces:r,businessModels:s,message:n.message??null}}async function He(e,t){let i=(await A({code:e})).resp_data;if(!i)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${e} \u5BF9\u5E94\u7684\u8868\u5355`);let r,s,l;t.nodeCode&&(r=K(i.view?.body??null,t.nodeCode)??i.controls?.find(u=>u?.code===t.nodeCode)??null),t.handlerCode&&(s=i.presenter?.handlers?.find(u=>u?.code===t.handlerCode)??null),t.section&&(l=i[t.section]??null);let c=s?.actions?s.actions.map((u,g)=>({index:g,code:u?.code??null,type:u?.type??null,scriptLen:(u?.script??"")?.length??0,conditionLen:(u?.condition??"")?.length??0,expressionLen:(u.expression??"")?.length??0})):void 0;return{code:e,node:r??void 0,handler:s??void 0,section:l??void 0,actionIndex:c,message:i.message??null}}async function Ft(e,t,n){let i=(s={})=>({index:n,op:t.op,status:"OK",errorCode:"OK",message:null,hunk:null,suggestions:null,...s}),r=(s,l,c={})=>({index:n,op:t.op,status:"FAILED",errorCode:s,message:l,hunk:null,suggestions:null,...c});switch(t.op){case"set_pageinfo":return e.pageinfo={...e.pageinfo??{},...t.patch},i({message:`\u5DF2\u5408\u5E76 ${Object.keys(t.patch).length} \u4E2A\u5B57\u6BB5\u5230 pageinfo`});case"set_attrs":{let s=Y(e).filter(l=>l.code===t.code);return s.length===0?r("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${t.code} \u7684\u8282\u70B9`):s.length>1?r("DUP_CODE",`code=${t.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`):(Object.assign(s[0],t.patch),i({message:`\u5DF2\u5408\u5E76 ${Object.keys(t.patch).length} \u4E2A\u5C5E\u6027\u5230\u8282\u70B9 ${t.code}`}))}case"insert_node":{let s=K(e.view?.body??null,t.parentCode);if(!s)return r("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 parentCode=${t.parentCode} \u7684\u7236\u8282\u70B9`);s.content||(s.content=[]);let l=t.position??s.content.length;return s.content.splice(l,0,t.node),i({message:`\u5DF2\u5728 ${t.parentCode} \u7684 position=${l} \u63D2\u5165\u8282\u70B9`})}case"remove_node":{let s=Y(e).filter(c=>c.code===t.code);return s.length===0?r("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${t.code} \u7684\u8282\u70B9`):s.length>1?r("DUP_CODE",`code=${t.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):t.checkRefs!==!1&&Te(e).has(t.code)?r("REF_VIOLATION",`\u4ECD\u6709\u4E8B\u4EF6/handler \u5F15\u7528 ${t.code}\uFF0C\u79FB\u9664\u524D\u8BF7\u5148\u89E3\u9664\u5F15\u7528\uFF08\u6216 checkRefs=false\uFF09`):Ee(e,t.code)?i({message:`\u5DF2\u79FB\u9664\u8282\u70B9 ${t.code}`}):r("NODE_NOT_FOUND",`\u8282\u70B9 ${t.code} \u6458\u9664\u5931\u8D25`)}case"move_node":{let s=Y(e).filter(g=>g.code===t.code);if(s.length===0)return r("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${t.code} \u7684\u8282\u70B9`);if(s.length>1)return r("DUP_CODE",`code=${t.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${s.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let l=Ee(e,t.code);if(!l)return r("NODE_NOT_FOUND",`\u8282\u70B9 ${t.code} \u6458\u9664\u5931\u8D25`);let c=K(e.view?.body??null,t.newParentCode);if(!c)return r("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 newParentCode=${t.newParentCode} \u7684\u7236\u8282\u70B9`);c.content||(c.content=[]);let u=t.position??c.content.length;return c.content.splice(u,0,l),i({message:`\u5DF2\u5C06 ${t.code} \u79FB\u52A8\u5230 ${t.newParentCode} \u7684 position=${u}`})}case"set_section":return e[t.section]=t.value,i({message:`\u5DF2\u6574\u6BB5\u66FF\u6362 ${t.section}`});case"replace_script":{let s=e.presenter?.handlers?.find(k=>k?.code===t.handlerCode);if(!s)return r("NODE_NOT_FOUND",`\u672A\u5728 presenter.handlers \u4E2D\u627E\u5230 handlerCode=${t.handlerCode}`);let l=s.actions??[],c;if(t.actionCode!=null){if(c=l.find(k=>k?.code===t.actionCode),!c)return r("NODE_NOT_FOUND",`handler ${t.handlerCode} \u4E2D\u672A\u627E\u5230 actionCode=${t.actionCode}`)}else{let k=t.actionIndex??0;if(k<0||k>=l.length)return r("NO_TARGET",`actionIndex=${k} \u8D8A\u754C\uFF0Chandler ${t.handlerCode} \u5171\u6709 ${l.length} \u4E2A action`);c=l[k]}let u=t.field??"script";if(t.replacement!=null)return c[u]=t.replacement,i({message:`\u5DF2\u6574\u6BB5\u8986\u76D6 ${t.handlerCode}.actions[${t.actionIndex??0}].${u}`});if(!t.ops||t.ops.length===0)return r("INVALID_PARAMS","replace_script \u9700\u63D0\u4F9B replacement \u6216 ops\uFF08oldString\u2192newString \u6570\u7EC4\uFF09");let g=c[u]??"",w=B([g],t.ops.map(Ot),{contextLines:3}),b=w.results[0];return w.ok?(c[u]=w.scripts[0],i({message:`\u5DF2\u5C40\u90E8\u66FF\u6362 ${u}`,hunk:b?.hunk??null})):r("OPS_FAILED",b?.message??"\u811A\u672C\u66FF\u6362\u5931\u8D25",{hunk:b?.hunk??null,suggestions:b?.suggestions??null})}case"add_businessmodel":{let s=e.businessmodel??(e.businessmodel=[]),l=s.find(u=>u?.modellogiccode===t.modellogiccode);if(l&&!t.overwrite)return i({message:`businessmodel \u5DF2\u5B58\u5728 ${t.modellogiccode}\uFF0C\u8DF3\u8FC7\uFF08overwrite=false\uFF09`});let c;try{c=(await L({modellogiccode:t.modellogiccode})).resp_data}catch(u){return r("FETCH_FAILED",`\u83B7\u53D6\u4E1A\u52A1\u903B\u8F91 ${t.modellogiccode} \u5931\u8D25\uFF1A${_(u)}`)}return c?l&&t.overwrite?(Object.assign(l,c),i({message:`\u5DF2\u8986\u76D6 businessmodel \u4E2D\u7684 ${t.modellogiccode}`})):(s.push(c),i({message:`\u5DF2\u8FFD\u52A0\u4E1A\u52A1\u903B\u8F91 ${t.modellogiccode} \u5230 businessmodel`})):r("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${t.modellogiccode} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`)}case"remove_businessmodel":{let s=e.businessmodel??[],l=s.findIndex(c=>c?.modellogiccode===t.modellogiccode);return l<0?i({message:`businessmodel \u4E2D\u4E0D\u5B58\u5728 ${t.modellogiccode}\uFF0C\u65E0\u9700\u79FB\u9664`}):t.checkRefs!==!1&&Te(e).has(t.modellogiccode)?r("REF_VIOLATION",`\u4ECD\u6709\u4E8B\u4EF6/handler \u5F15\u7528 ${t.modellogiccode}\uFF0C\u79FB\u9664\u524D\u8BF7\u5148\u89E3\u9664\u5F15\u7528\uFF08\u6216 checkRefs=false\uFF09`):(s.splice(l,1),i({message:`\u5DF2\u4ECE businessmodel \u79FB\u9664 ${t.modellogiccode}`}))}}}function Ct(e){let t=[];for(let r of e)r.hunk?t.push(`--- ops[${r.index}] ${r.op}${r.hunk}`):t.push(`ops[${r.index}] ${r.op} (${r.status}): ${r.message??""}`);let n=t.join(``),i=n.split(``);return i.length<=Ie?n:`${i.slice(0,Ie).join(``)}... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${i.length} \u884C\uFF09`}function Pt(e,t){let n=[],i=Y(e),r=new Set(i.map(s=>s.code).filter(s=>!!s));for(let s=0;s<t.length;s++){let l=t[s];switch(l.op){case"set_pageinfo":for(let[c,u]of Object.entries(l.patch))JSON.stringify(e.pageinfo?.[c])!==JSON.stringify(u)&&n.push(`ops[${s}] set_pageinfo.${c} \u672A\u751F\u6548`);break;case"set_attrs":{let c=i.find(u=>u.code===l.code);if(!c){n.push(`ops[${s}] set_attrs \u8282\u70B9 ${l.code} \u6D88\u5931`);break}for(let[u,g]of Object.entries(l.patch))JSON.stringify(c[u])!==JSON.stringify(g)&&n.push(`ops[${s}] set_attrs.${u} \u672A\u751F\u6548`);break}case"insert_node":r.has(l.node.code)||n.push(`ops[${s}] insert_node \u8282\u70B9\u672A\u51FA\u73B0`);break;case"remove_node":r.has(l.code)&&n.push(`ops[${s}] remove_node \u8282\u70B9\u4ECD\u5B58\u5728`);break;case"move_node":r.has(l.code)||n.push(`ops[${s}] move_node \u8282\u70B9\u6D88\u5931`);break;case"set_section":break;case"replace_script":{let u=e.presenter?.handlers?.find(k=>k?.code===l.handlerCode)?.actions??[],g=l.actionCode!=null?u.find(k=>k?.code===l.actionCode):u[l.actionIndex??0];if(!g){n.push(`ops[${s}] replace_script action \u672A\u627E\u5230`);break}let w=l.field??"script",b=g[w]??"";if(l.replacement!=null)b!==l.replacement&&n.push(`ops[${s}] replace_script \u6574\u6BB5\u8986\u76D6\u672A\u751F\u6548`);else if(l.ops)for(let k of l.ops)k.newString.length>0&&!b.includes(k.newString)&&n.push(`ops[${s}] replace_script \u65B0\u5185\u5BB9\u672A\u51FA\u73B0`),!k.newString.includes(k.oldString)&&b.includes(k.oldString)&&n.push(`ops[${s}] replace_script \u65E7\u5185\u5BB9\u4ECD\u5B58\u5728`);break}case"add_businessmodel":{(e.businessmodel??[]).some(u=>u?.modellogiccode===l.modellogiccode)||n.push(`ops[${s}] add_businessmodel \u672A\u8FFD\u52A0`);break}case"remove_businessmodel":{(e.businessmodel??[]).some(u=>u?.modellogiccode===l.modellogiccode)&&n.push(`ops[${s}] remove_businessmodel \u672A\u79FB\u9664`);break}}}return{verified:n.length===0,problems:n}}async function Me(e,t,n,i={}){let r=i.dryRun??!1,s=i.verify??!0,l=(h,R)=>({ok:!1,applied:!1,verified:null,errorCode:h,message:R,diff:"",ops:[]});if(!Array.isArray(t)||t.length===0)return l("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let c;try{c=(await A({code:e})).resp_data}catch(h){return l("FETCH_FAILED",_(h))}if(!c)return l("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 code=${e} \u5BF9\u5E94\u7684\u8868\u5355`);let u=structuredClone(c),g=[],w=!1;for(let h=0;h<t.length;h++)try{let R=await Ft(u,t[h],h);g.push(R),R.status==="FAILED"&&(w=!0)}catch(R){g.push({index:h,op:t[h].op,status:"FAILED",errorCode:"OP_ERROR",message:_(R),hunk:null,suggestions:null}),w=!0}let b=Ct(g);if(w){let h=g.filter(R=>R.status==="FAILED").map(R=>R.index).join("\u3001");return{ok:!1,applied:!1,verified:null,errorCode:"OPS_FAILED",message:`\u9884\u6F14\u5931\u8D25\uFF1A${g.filter(R=>R.status==="FAILED").length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${h}]\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:g}}if(r)return{ok:!0,applied:!1,verified:null,errorCode:"DRY_RUN",message:`\u9884\u6F14\u6210\u529F\uFF08dryRun=true\uFF09\uFF0C${t.length} \u4E2A op \u5168\u90E8\u547D\u4E2D\uFF0C\u672A\u843D\u5E93`,diff:b,ops:g};Le(n);let k=JSON.stringify(n),C;try{let h=await re({conf:u,message:k});C=typeof h?.resp_data=="string"?h.resp_data:JSON.stringify(h?.resp_data??null)}catch(h){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:_(h),diff:b,ops:g}}let P=null,O=C;if(s)try{let R=(await A({code:e})).resp_data;if(!R)P=!1,O=`${C} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let N=Pt(R,t);P=N.verified,N.verified||(O=`${C} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${N.problems.join("\uFF1B")}`)}}catch(h){P=!1,O=`${C} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${_(h)}`}return{ok:P===null?!0:P,applied:!0,verified:P,errorCode:P===!1?"VERIFY_FAILED":"OK",message:O,diff:b,ops:g}}async function $e(e,t){Le(t);let n=JSON.stringify(t);try{let i=await re({conf:e,message:n}),r=typeof i?.resp_data=="string"?i.resp_data:JSON.stringify(i?.resp_data??null);return{ok:!0,code:e.pageinfo?.code??void 0,message:r}}catch(i){return{ok:!1,code:e.pageinfo?.code??void 0,message:_(i)}}}var Nt=o.object({createtime:o.union([o.string(),o.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:o.union([o.string(),o.null()]).optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),createaccountname:o.union([o.string(),o.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),code:o.string().describe("\u8868\u5355/\u9875\u9762\u7684\u7F16\u7801"),clientcategorycode:o.union([o.string(),o.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),confsource:o.coerce.number().nullable().optional().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),directorytypecode:o.union([o.string(),o.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:o.union([o.string(),o.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),marktype:o.coerce.number().nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:o.union([o.string(),o.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C code \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),pagetemplatecode:o.union([o.string(),o.null()]).optional().describe("\u9875\u9762\u6A21\u677F\u7F16\u7801"),pagetypename:o.union([o.string(),o.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\u540D\u79F0"),pagedescr:o.union([o.string(),o.null()]).optional().describe("\u9875\u9762\u63CF\u8FF0"),ref:o.union([o.string(),o.null()]).optional().describe("\u5916\u90E8\u5F15\u7528\uFF0C\u4E00\u822C\u4F20\u7A7A\u5B57\u7B26\u4E32"),status:o.coerce.number().nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:o.union([o.string(),o.null()]).optional().describe("\u6807\u9898"),type:o.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:o.union([o.string(),o.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountcode:o.union([o.string(),o.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:o.union([o.string(),o.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),versionnum:o.union([o.string(),o.null()]).optional().describe("\u7248\u672C\u53F7")}).catchall(o.unknown()),ie={renderinfo:o.any().optional().describe("IDE \u6E32\u67D3\u6807\u8BB0"),pageinfo:o.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 1\uFF1A\u9875\u9762\u57FA\u7840\u4FE1\u606F"),businessmodel:o.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:o.any().optional().describe("\u52A8\u4F5C\u903B\u8F91\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),presenter:o.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:o.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:o.any().optional().describe("\u63A7\u4EF6\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),pageswitch:o.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:o.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")},ze=[{name:"page_form_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u8868\u5355/\u9875\u9762",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u5217\u8868\uFF08Form/Page\uFF09\u3002\u9002\u7528\u4E8E\u67E5\u627E\u9875\u9762\u53CA\u5176\u5143\u4FE1\u606F\u3002\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 status \u4F20 "1"\u3001type \u4F20 "5"\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF09- type\uFF08\u9875\u9762\u7C7B\u578B\uFF09\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- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528- clientcategorycode\uFF08\u7528\u6237\u7AEF\uFF09\uFF1A1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E`,inputSchema:{status:o.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),keys:o.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355 code / title"),keywords:o.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355\u4E2D\u7684\u5173\u952E\u8BCD"),clientcategorycode:o.string().optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),page:o.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:o.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),type:o.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:o.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D"),updatetimestart:o.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:o.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:o.array(Nt).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 e=>{let{status:t="",keys:n="",keywords:i="",clientcategorycode:r="",page:s=1,rows:l=20,type:c="",updateopname:u="",updatetimestart:g="",updatetimeend:w=""}=e;try{let b=await Ne({centercode:"",directorytypecode:"rootNode",starttime:"",status:t,keys:n,keywords:i,clientcategorycode:r,page:Number(s)||1,rows:Number(l)||20,type:c,updateopname:u,updatetimestart:g,updatetimeend:w});return{content:[{type:"text",text:JSON.stringify(b.resp_data)}],structuredContent:b.resp_data}}catch(b){return{isError:!0,content:[{type:"text",text:_(b)}]}}}},{name:"get_form",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u8BE6\u60C5",description:`\u6839\u636E\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801 code \u83B7\u53D6\u5176\u5B8C\u6574\u8BE6\u60C5\u3002\u8FD4\u56DE\u7ED3\u6784\u4E3A\u9876\u5C42\u5BF9\u8C61\uFF0C\u5305\u542B\uFF1A- pageinfo\uFF1A\u9875\u9762\u57FA\u7840\u4FE1\u606F- businessmodel\uFF1A\u5F15\u7528\u7684\u540E\u7AEF\u4E1A\u52A1\u6A21\u578B/\u63A5\u53E3\uFF08\u7ED3\u6784\u540C logicClient \u7684 LogicResult\uFF09- presenter\uFF1A\u4E8B\u4EF6\u5904\u7406\u5668\uFF08\u52A0\u8F7D/\u6309\u94AE\u70B9\u51FB/\u4E0B\u62C9\u6539\u53D8\u7B49\u65F6\u673A\u89E6\u53D1\uFF09- view\uFF1A\u9875\u9762\u7ED3\u6784\uFF0C\u9012\u5F52\u7684\u63A7\u4EF6\u8282\u70B9\u6811- controls\uFF1A\u6241\u5E73\u63A7\u4EF6\u6570\u7EC4\uFF08\u90E8\u5206\u9875\u9762\u624D\u6709\uFF09- pageswitch\uFF1A\u4EC5 switchpage \u7C7B\u578B\u624D\u6709\u7684\u9875\u9762\u5207\u6362\u914D\u7F6E- message\uFF1A\u6BCF\u6B21\u4FDD\u5B58\u586B\u5199\u7684\u63D0\u4EA4\u4FE1\u606F\uFF08\u7C7B\u4F3C git \u63D0\u4EA4\u4FE1\u606F\uFF09\u3010\u5B57\u6BB5\u901F\u67E5\uFF08\u7F16\u7801\u5B57\u6BB5\u4E0E\u5173\u952E\u7ED3\u6784\uFF0C\u4F9B\u7406\u89E3\u8FD4\u56DE JSON\uFF09\u3011pageinfo \u5173\u952E\u5B57\u6BB5\uFF1A code \u7F16\u7801\uFF1Btitle \u6807\u9898\uFF1Btype \u9875\u9762\u7C7B\u578B\u6574\u6570\uFF08\u540C page_form_list \u7684 type\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\uFF09\uFF1Bstatus \u72B6\u6001\uFF081-\u542F\u7528/2-\u505C\u7528\uFF09\uFF1Bmarktype \u521B\u5EFA\u6807\u8BB0\uFF080-\u5E73\u53F0/1-\u4EA7\u54C1/2-\u79DF\u6237\uFF09\uFF1Bversionnum \u7248\u672C\u53F7\uFF1Bdirectorytypecode \u76EE\u5F55\u5206\u7C7B\u7F16\u7801\uFF1Bpagetemplatecode \u6A21\u677F\u7F16\u7801\uFF1Bclientcategorycode \u7528\u6237\u7AEF\uFF081-web/2-app/6-\u5C0F\u7A0B\u5E8F\uFF09\uFF1Bpagedescr \u63CF\u8FF0\uFF1Bref \u5916\u90E8\u5F15\u7528\uFF08\u4E00\u822C\u7A7A\uFF09\uFF1Beventlist \u9875\u9762\u7EA7\u4E8B\u4EF6\uFF08\u5982 onload\uFF0C\u542B trigger/handler\uFF09\uFF1Breportdesclist \u5173\u8054\u62A5\u8868\uFF08reportcode/desccode\uFF09\uFF1Bcache \u7F13\u5B58\u914D\u7F6E\uFF08keys/enable/submitevents\uFF09\u3002businessmodel\uFF08\u6570\u7EC4\uFF0C\u6BCF\u9879\uFF09\uFF1Aactioncategory/actiontype \u52A8\u4F5C\u7C7B\u578B\uFF1Bmarktype \u521B\u5EFA\u6807\u8BB0\uFF1Bmodelcode \u6A21\u578B\u7F16\u7801\uFF1Bmodellogiccode/modellogicname \u903B\u8F91\u7F16\u7801/\u540D\u79F0\uFF1Binput/output \u4E1A\u52A1\u5BF9\u8C61\u53CA\u5176 properties\uFF08name/objectcode/propertycode/propertytypecode\uFF09\uFF1Boperations \u6267\u884C\u6B65\u9AA4\uFF08seq \u5E8F\u53F7/status/templateref \u6A21\u677F\u5F15\u7528/templateparams\uFF09\uFF1Bstatus \u72B6\u6001\u3002presenter\uFF1Ainitial \u521D\u59CB\u5316\u5904\u7406\u5668\u3001interface \u5BF9\u5916\u63A5\u53E3\uFF08\u4F9B\u5176\u4ED6\u9875\u9762\u8C03\u7528\uFF0C\u9760 key \u6807\u8BC6\uFF09\u3001handlers \u4E8B\u4EF6\u5904\u7406\u5668\uFF08\u6309\u94AE\u70B9\u51FB\u7B49\uFF09\uFF1B\u6BCF\u9879\u542B code/desc/name/key/condition\uFF08flycode \u6761\u4EF6\uFF09/actions\uFF1Baction \u7684 type\uFF08receivelink \u63A5\u6536\u53C2\u6570/flycode \u811A\u672C/datarequest \u8BF7\u6C42\u540E\u7AEF/eventlink \u4E8B\u4EF6/exportfile \u5BFC\u51FA/popup \u5F39\u7A97\u7B49\uFF09\u3001script\uFF08flycode \u811A\u672C\u4F53\uFF09\u3001logiccode\uFF08\u5173\u8054\u540E\u7AEF\u903B\u8F91\uFF09\u3001param\uFF08receivelink \u4F20\u53C2\uFF1Adatatype/name/ctrlcode/properties\uFF09\u3002view\uFF08\u9012\u5F52\u8282\u70B9\u6811\uFF09\uFF1A\u6BCF\u4E2A\u8282\u70B9 type \u4E3A\u63A7\u4EF6\u79CD\u7C7B\u5224\u522B\u7B26\uFF08layout \u5E03\u5C40/report \u62A5\u8868/datagrid \u8868\u683C/textinput \u6587\u672C\u8F93\u5165/button \u6309\u94AE/table \u8868\u683C/dateinput \u65E5\u671F/select \u4E0B\u62C9/checkbox \u591A\u9009/image \u56FE\u7247/upload \u4E0A\u4F20/text \u6587\u672C \u7B49\uFF09\uFF0Ccontent \u4E3A\u5B50\u8282\u70B9\u6570\u7EC4\uFF08\u9012\u5F52\uFF09\uFF0Ceventlist \u8282\u70B9\u4E8B\u4EF6\uFF1B\u5E38\u7528\u6837\u5F0F/\u4EA4\u4E92\u5C5E\u6027\uFF1Atitle \u6807\u9898\u3001hidden \u9690\u85CF\uFF08'1'/'0'\uFF09\u3001readonly \u53EA\u8BFB\u3001required \u5FC5\u586B\u3001placeholder \u5360\u4F4D\u63D0\u793A\u3001text \u6587\u672C\u3001icon \u56FE\u6807\u3001width/height \u5C3A\u5BF8\u3001color/backgroundcolor \u989C\u8272\u3001flex/flexdirection/flexgrow \u5F39\u6027\u5E03\u5C40\u3001margin*/padding* \u8FB9\u8DDD/\u5185\u8FB9\u8DDD\u3001display \u663E\u793A\u65B9\u5F0F\u3001bordervisible \u8FB9\u6846\u3001checkable \u53EF\u52FE\u9009\u3001multiselectable \u591A\u9009\u3001searchable \u53EF\u641C\u7D22\u3001maxlength \u6700\u5927\u957F\u5EA6\u3001format \u683C\u5F0F\uFF08\u5982\u65E5\u671F\uFF09\u3001decimaldigits \u5C0F\u6570\u4F4D\u3001options \u4E0B\u62C9\u9009\u9879\uFF08[{key,text}]\uFF09\u3001cols \u8868\u683C\u5217\u5B9A\u4E49\u3002controls\uFF08\u6241\u5E73\u6570\u7EC4\uFF09\uFF1Atype/code/name/title/eventlist/options/rows\uFF0C\u5C5E\u6027\u542B\u4E49\u540C view \u8282\u70B9\u3002pageswitch\uFF08\u4EC5 switchpage\uFF09\uFF1Amode \u5207\u6362\u6A21\u5F0F\u3001menu \u83DC\u5355\u3001pagerefs \u88AB\u5F15\u7528\u9875\u9762\uFF08pagecode/functioncode/title/hidden/marktype\uFF09\u3001eventlist\u3002message\uFF1A\u63D0\u4EA4\u4FE1\u606F\u6587\u672C\u3002`,inputSchema:{code:o.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:o.looseObject(ie),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{code:t}=e;try{let n=await A({code:t});return{content:[{type:"text",text:JSON.stringify(n.resp_data)}],structuredContent:n.resp_data}}catch(n){return{isError:!0,content:[{type:"text",text:_(n)}]}}}},{name:"get_form_outline",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u9AA8\u67B6",description:`\u83B7\u53D6\u8868\u5355/\u9875\u9762\u7684\u8F7B\u91CF\u9AA8\u67B6\uFF08\u5730\u5740\u7C3F / \u51B3\u7B56\u4F9D\u636E\uFF09\uFF0C\u7EA6 2\u20134KB\uFF0C\u907F\u514D\u4E3A\u65E5\u5E38\u6539\u52A8\u62C9\u53D6\u5B8C\u6574 88KB \u7684\u8868\u5355 JSON\u3002\u8FD4\u56DE\uFF1A\u9875\u9762\u7684 pageinfo \u5173\u952E\u5B57\u6BB5\u3001view \u6811\u9AA8\u67B6\uFF08\u4EC5 code/type/title + \u9012\u5F52 children\uFF0C\u4E0D\u542B\u5C5E\u6027\u566A\u58F0\uFF09\u3001presenter \u7684 handlers \u6E05\u5355\u4E0E interfaces \u6E05\u5355\u3001businessmodel \u5F15\u7528\u7684\u903B\u8F91\u540D\uFF08\u4EC5\u540D\u5B57\uFF0C\u4E0D\u56DE\u5185\u5BB9\uFF09\u3002\u3010\u7528\u9014\u3011- \u5728\u4E0D\u77E5\u9053\u5168\u91CF\u5185\u5BB9\u65F6\uFF0C\u5148\u62FF\u5230\u6240\u6709\u53EF\u6539\u5BF9\u8C61\u7684 code\uFF08\u8282\u70B9 / \u5904\u7406\u5668 / \u63A5\u53E3 / \u903B\u8F91\uFF09\uFF0C\u907F\u514D NODE_NOT_FOUND \u76F2\u731C- \u770B\u6E05\u5168\u8C8C\u540E\u5224\u65AD\u6539\u54EA\uFF0C\u518D\u51B3\u5B9A\u8981\u4E0D\u8981\u62C9\u7247\u6BB5\u968F\u540E\u5982\u9700\u6539\u67D0\u8282\u70B9\u5C5E\u6027\u6216\u811A\u672C\uFF0C\u8BF7\u7528 get_form_fragment(nodeCode/handlerCode) \u53D6\u771F\u5B9E\u5C5E\u6027\u540D\u4E0E\u811A\u672C\u5185\u5BB9\uFF0C\u518D\u7528 patch_form \u4FEE\u6539\u3002`,inputSchema:{code:o.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:{code:o.string().describe("\u8868\u5355\u7F16\u7801"),title:o.union([o.string(),o.null()]).optional().describe("\u6807\u9898"),type:o.union([o.string(),o.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\uFF08\u540C page_form_list \u7684 type\uFF09"),status:o.union([o.string(),o.null()]).optional().describe("\u72B6\u6001"),clientcategorycode:o.union([o.string(),o.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B"),marktype:o.union([o.string(),o.null()]).optional().describe("\u521B\u5EFA\u6807\u8BB0"),versionnum:o.union([o.string(),o.null()]).optional().describe("\u7248\u672C\u53F7"),viewTree:o.array(o.lazy(()=>o.object({code:o.union([o.string(),o.null()]).optional(),type:o.union([o.string(),o.null()]).optional(),title:o.union([o.string(),o.null()]).optional(),children:o.array(o.lazy(()=>o.object({code:o.union([o.string(),o.null()]).optional(),type:o.union([o.string(),o.null()]).optional(),title:o.union([o.string(),o.null()]).optional(),children:o.array(o.unknown()).optional()}))).optional()}))).optional().describe("view \u6811\u9AA8\u67B6\uFF08\u9012\u5F52\uFF0C\u4EC5 code/type/title + children\uFF09"),handlers:o.array(o.object({code:o.union([o.string(),o.null()]).optional(),name:o.union([o.string(),o.null()]).optional(),desc:o.union([o.string(),o.null()]).optional(),key:o.union([o.string(),o.null()]).optional(),condition:o.union([o.string(),o.null()]).optional(),actionCount:o.coerce.number().optional(),actionTypes:o.array(o.string()).optional()})).optional().describe("presenter \u4E8B\u4EF6\u5904\u7406\u5668\u6E05\u5355"),interfaces:o.array(o.object({code:o.union([o.string(),o.null()]).optional(),key:o.union([o.string(),o.null()]).optional(),desc:o.union([o.string(),o.null()]).optional(),actionCount:o.coerce.number().optional()})).optional().describe("presenter \u5BF9\u5916\u63A5\u53E3\u6E05\u5355"),businessModels:o.array(o.object({modelcode:o.union([o.string(),o.null()]).optional(),modellogiccode:o.union([o.string(),o.null()]).optional(),modellogicname:o.union([o.string(),o.null()]).optional(),actiontype:o.union([o.string(),o.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:o.union([o.string(),o.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{code:t}=e;try{let n=await Ae(t);return{content:[{type:"text",text:JSON.stringify(n)}],structuredContent:n}}catch(n){return{isError:!0,content:[{type:"text",text:_(n)}]}}}},{name:"get_form_fragment",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u5C40\u90E8\u5185\u5BB9",description:`\u6309 code \u53D6\u8868\u5355\u7684\u5C40\u90E8\u5185\u5BB9\uFF08\u51E0 KB\uFF09\uFF0C\u907F\u514D\u4E3A\u6539\u4E00\u5904\u800C\u62C9\u5B8C\u6574 88KB \u8868\u5355 JSON\u3002\u4E09\u79CD\u5BFB\u5740\u65B9\u5F0F\u4E09\u9009\u4E00\uFF08\u53EF\u7EC4\u5408\uFF09\uFF1A- nodeCode\uFF1A\u8FD4\u56DE\u8BE5 view \u6811\u8282\u70B9 / controls \u9879\u7684\u5B8C\u6574\u5B50\u6811\uFF08\u770B\u6E05\u771F\u5B9E\u5C5E\u6027\u540D\uFF0C\u5982 hidden \u8FD8\u662F visible\uFF09- handlerCode\uFF1A\u8FD4\u56DE\u8BE5 presenter \u5904\u7406\u5668\u7684\u5B8C\u6574\u5B9A\u4E49\uFF0C\u5E76\u9644 actionIndex \u6E05\u5355\uFF08\u6BCF\u4E2A action \u7684 code/type \u4E0E script/condition/expression \u957F\u5EA6\uFF09\uFF0C\u4FBF\u4E8E\u7CBE\u786E\u6784\u9020 patch_form \u7684 replace_script- section\uFF1A\u8FD4\u56DE\u6574\u6BB5 pageinfo / view / presenter / controls / pageswitch / businessmodel\uFF08\u4EC5\u6838\u5BF9\u5F15\u7528\u65F6\u4F7F\u7528\uFF0Cbusinessmodel \u4FDD\u5B58\u65F6\u7531 add_businessmodel \u81EA\u52A8\u8865\u94FE\uFF0C\u4E0D\u8981\u6C42\u4F60\u4F20\u5165\u5927\u6BB5 JSON\uFF09\u3010\u5178\u578B\u914D\u5408\u3011\u6539\u67D0\u6309\u94AE\u811A\u672C\uFF1Aget_form_fragment(handlerCode:"xxx") \u770B action \u7ED3\u6784\u4E0E\u811A\u672C\u5185\u5BB9 \u2192 patch_form(replace_script, handlerCode:"xxx", actionIndex:0, ops:[{oldString,newString}])\u3002`,inputSchema:{code:o.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),nodeCode:o.string().optional().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B50\u6811"),handlerCode:o.string().optional().describe("\u76EE\u6807 presenter \u5904\u7406\u5668\u7F16\u7801\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B9A\u4E49\u4E0E actionIndex \u6E05\u5355"),section:o.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:o.string().describe("\u8868\u5355\u7F16\u7801"),node:o.any().optional().describe("nodeCode \u547D\u4E2D\u7684\u8282\u70B9\u5B50\u6811"),handler:o.any().optional().describe("handlerCode \u547D\u4E2D\u7684\u5904\u7406\u5668\u5B8C\u6574\u5B9A\u4E49"),section:o.any().optional().describe("section \u547D\u4E2D\u7684\u6574\u6BB5\u5185\u5BB9"),actionIndex:o.array(o.object({index:o.coerce.number().describe("action \u4E0B\u6807"),code:o.union([o.string(),o.null()]).optional().describe("action \u7F16\u7801"),type:o.union([o.string(),o.null()]).optional().describe("action \u7C7B\u578B"),scriptLen:o.coerce.number().describe("script \u5B57\u7B26\u957F\u5EA6"),conditionLen:o.coerce.number().describe("condition \u5B57\u7B26\u957F\u5EA6"),expressionLen:o.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:o.union([o.string(),o.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{code:t,nodeCode:n,handlerCode:i,section:r}=e;try{let s=await He(t,{nodeCode:n,handlerCode:i,section:r});return{content:[{type:"text",text:JSON.stringify(s)}],structuredContent:s}}catch(s){return{isError:!0,content:[{type:"text",text:_(s)}]}}}}];import{z as d}from"zod";var qe=d.object({committype:d.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:d.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:d.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")}),It=d.discriminatedUnion("op",[d.object({op:d.literal("set_pageinfo"),patch:d.record(d.string(),d.unknown()).describe('\u6D45\u5408\u5E76\u8FDB pageinfo \u7684\u5B57\u6BB5\uFF0C\u5982 { "title": "\u65B0\u6807\u9898", "status": "1" }')}),d.object({op:d.literal("set_attrs"),code:d.string().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF08\u6574\u4E2A\u8868\u5355\u552F\u4E00\uFF09"),patch:d.record(d.string(),d.unknown()).describe('\u8981\u6539\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u6309 code \u5B9A\u4F4D\u540E\u6D45\u5408\u5E76\uFF0C\u5982 { "hidden": "1" }')}),d.object({op:d.literal("insert_node"),parentCode:d.string().describe("\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:d.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E"),node:d.record(d.string(),d.unknown()).describe("\u65B0\u8282\u70B9\u5BF9\u8C61\uFF08\u542B type/code/title/content \u7B49\uFF09\uFF0C\u540C view \u6811\u8282\u70B9\u7ED3\u6784")}),d.object({op:d.literal("remove_node"),code:d.string().describe("\u8981\u5220\u9664\u7684\u8282\u70B9 code"),checkRefs:d.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")}),d.object({op:d.literal("move_node"),code:d.string().describe("\u79FB\u52A8\u8282\u70B9 code"),newParentCode:d.string().describe("\u65B0\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:d.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),d.object({op:d.literal("set_section"),section:d.enum(["view","presenter","controls","pageswitch"]).describe("\u6574\u6BB5\u66FF\u6362\u76EE\u6807"),value:d.unknown().describe("\u6574\u6BB5\u65B0\u5185\u5BB9\uFF08\u900F\u4F20\u539F\u6837\u4FDD\u5B58\uFF09")}),d.object({op:d.literal("replace_script"),handlerCode:d.string().describe("presenter \u5904\u7406\u5668 code"),actionIndex:d.number().int().nonnegative().optional().describe("\u7B2C\u51E0\u4E2A action\uFF0C\u9ED8\u8BA4 0\uFF1B\u4E0E actionCode \u4E8C\u9009\u4E00"),actionCode:d.string().optional().describe("\u4EE5 action code \u5B9A\u4F4D\uFF08\u4E0E actionIndex \u4E8C\u9009\u4E00\uFF09"),field:d.enum(["script","condition","expression"]).optional().describe("\u76EE\u6807\u5B57\u7B26\u4E32\u5B57\u6BB5\uFF0C\u9ED8\u8BA4 script"),replacement:d.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:d.array(d.object({oldString:d.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:d.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:d.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:d.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:d.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:d.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")}),d.object({op:d.literal("add_businessmodel"),modellogiccode:d.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:d.boolean().optional().describe("\u5F53 businessmodel \u5DF2\u5B58\u5728\u8BE5 modellogiccode \u65F6\u662F\u5426\u8986\u76D6\uFF0C\u9ED8\u8BA4 false\uFF08\u8DF3\u8FC7\uFF09")}),d.object({op:d.literal("remove_businessmodel"),modellogiccode:d.string().describe("\u8981\u79FB\u9664\u7684\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),checkRefs:d.boolean().optional().describe("\u524D\u7F6E\u5F15\u7528\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true")})]),Je=[{name:"patch_form",config:{title:"\u5C40\u90E8\u8865\u4E01\u4FEE\u6539\u8868\u5355/\u9875\u9762",description:`\u4EE5\u7ED3\u6784\u5316\u8865\u4E01\uFF08delta ops\uFF09\u5C40\u90E8\u4FEE\u6539\u8868\u5355/\u9875\u9762\uFF0C\u65E0\u9700\u56DE\u4F20\u5B8C\u6574 88KB \u7684\u8868\u5355 JSON\u3002MCP \u4F1A\u5148\u62C9\u53D6\u6700\u65B0\u5B8C\u6574\u5BF9\u8C61\uFF0C\u5728\u5185\u5B58\u526F\u672C\u4E0A\u6309 ops \u987A\u5E8F\u5408\u5E76\uFF0C\u518D\u4E00\u6B21\u6027\u5168\u91CF\u4FDD\u5B58\uFF08\u670D\u52A1\u7AEF\u4EC5\u63D0\u4F9B\u5168\u91CF\u8986\u76D6\u4FDD\u5B58\u63A5\u53E3\uFF09\u3002\u3010\u5DE5\u4F5C\u6D41\u30111. get_form_outline \u770B\u5168\u8C8C\u3001\u62FF\u5230\u5404\u8282\u70B9/handler \u7684 code\uFF08~2-4KB\uFF0C\u4E0D\u8BFB\u5168\u91CF\uFF09\uFF1B2. \u6539\u67D0\u8282\u70B9\u5C5E\u6027\u524D\uFF0C\u5148 get_form_fragment(nodeCode/handlerCode) \u786E\u8BA4\u771F\u5B9E\u5C5E\u6027\u540D\u4E0E\u811A\u672C\u5185\u5BB9\uFF1B3. \u8C03\u7528\u672C\u5DE5\u5177\uFF0Ccode \u6307\u5B9A\u8868\u5355\uFF0Cops \u6570\u7EC4\u63CF\u8FF0\u5177\u4F53\u6539\u52A8\u3002\u30109 \u7C7B ops \u901F\u67E5\u3011- set_pageinfo\uFF1A\u5408\u5E76 pageinfo \u5B57\u6BB5\uFF08\u5982\u6807\u9898/\u72B6\u6001\uFF09- set_attrs\uFF1A\u6309 code \u5B9A\u4F4D\u5355\u4E2A\u8282\u70B9\uFF0C\u6D45\u5408\u5E76\u5C5E\u6027\uFF08\u5982 hidden/required\uFF09- insert_node\uFF1A\u5728 parentCode \u4E0B\u63D2\u5165\u65B0\u8282\u70B9- remove_node\uFF1A\u6309 code \u5220\u9664\u8282\u70B9\uFF08\u9ED8\u8BA4\u6821\u9A8C\u5F15\u7528\uFF0C\u65E0\u5F15\u7528\u65B9\u53EF\u5220\uFF09- move_node\uFF1A\u628A\u8282\u70B9\u79FB\u52A8\u5230 newParentCode \u4E0B- set_section\uFF1A\u6574\u6BB5\u66FF\u6362 view/presenter/controls/pageswitch \u4E4B\u4E00- replace_script\uFF1A\u6539 presenter handler \u7684 action \u811A\u672C/\u6761\u4EF6/\u8868\u8FBE\u5F0F\uFF08\u652F\u6301\u6574\u6BB5 replacement \u6216 old\u2192new \u5C40\u90E8\u66FF\u6362\uFF09- add_businessmodel\uFF1A\u4EC5\u7ED9 modellogiccode\uFF0CMCP \u81EA\u52A8\u62C9\u53D6\u903B\u8F91 JSON \u8FFD\u52A0\uFF08\u89E3\u51B3"\u5927 JSON \u4E0D\u8BA9 AI \u4F20"\uFF09- remove_businessmodel\uFF1A\u4ECE businessmodel \u79FB\u9664\u6307\u5B9A\u903B\u8F91\uFF08\u9ED8\u8BA4\u6821\u9A8C\u5F15\u7528\uFF09\u3010\u4E8B\u52A1\u6027\u3011ops \u5177\u5907\u4E8B\u52A1\u6027\uFF1A\u5168\u90E8 op \u9884\u6F14\u6210\u529F\u624D\u4F1A\u843D\u5E93\uFF0C\u4EFB\u4E00 op \u5931\u8D25\uFF08NODE_NOT_FOUND/DUP_CODE/REF_VIOLATION/FETCH_FAILED\uFF09\u5219\u6574\u6279\u4E2D\u6B62\u3001\u96F6\u5199\u5165\u56DE\u6EDA\u3002\u6574\u6279\u53EA\u53D1\u8D77\u4E00\u6B21\u4FDD\u5B58\u8BF7\u6C42\u3002\u3010oldString \u4E66\u5199\u8981\u6C42\uFF08replace_script \u5C40\u90E8\u6A21\u5F0F\uFF09\u3011\u5FC5\u987B\u975E\u7A7A\u4E14\u552F\u4E00\u547D\u4E2D\uFF1B\u76F4\u63A5\u4ECE\u67E5\u8BE2\u811A\u672C\u539F\u6587\u590D\u5236\uFF0C\u7F29\u8FDB\u6362\u884C\u4E00\u81F4\uFF1B\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u65F6\u5148 dryRun=true \u9884\u89C8 diff\u3002\u5931\u8D25\u8FD4\u56DE ops[].suggestions \u7ED9\u51FA\u76F8\u4F3C\u5019\u9009\uFF0C\u636E\u6B64\u4FEE\u6B63\u5373\u53EF\u3002`,inputSchema:{code:d.string().describe("\u76EE\u6807\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),ops:d.array(It).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:qe.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:d.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:d.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:d.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:d.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:d.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:d.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:d.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:d.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:d.array(d.object({index:d.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:d.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:d.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:d.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801"),message:d.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),hunk:d.string().nullable().optional().describe("\u8BE5 op \u4EA7\u751F\u7684 diff \u7247\u6BB5\uFF08replace_script \u624D\u6709\uFF09"),suggestions:d.array(d.object({startLine:d.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:d.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:d.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 e=>{let{code:t,commitMessage:n,dryRun:i=!1,verify:r=!0}=e,s=e.ops,l={committype:n.committype,committypetext:n.committypetext,msgbody:n.msgbody??""};try{let c=await Me(t,s,l,{dryRun:i,verify:r});return{isError:!c.ok,content:[{type:"text",text:JSON.stringify(c)}],structuredContent:c}}catch(c){let u=_(c);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\u7B49\uFF09\u65F6\u6CA1\u6709\u5176\u4ED6\u8868\u8FBE\u65B9\u5F0F\uFF0C\u624D\u7528\u672C\u5DE5\u5177\uFF1A\u628A\u4ECE get_form \u67E5\u8BE2\u5230\u7684\u5B8C\u6574 FormResult \u5BF9\u8C61\u6309\u9700\u4FEE\u6539\u540E\u6574\u4EFD\u56DE\u4F20\u4FDD\u5B58\u3002\u65E5\u5E38\u5C40\u90E8\u6539\u52A8\u8BF7\u4F18\u5148\u7528 patch_form\uFF0C\u907F\u514D\u56DE\u4F20\u5E9E\u5927\u7684\u5B8C\u6574 JSON\u3002\u3010\u6784\u9020\u8981\u70B9\u3011- form \u4E3A\u5B8C\u6574 FormResult\uFF1A\u901A\u5E38\u6765\u81EA get_form \u7684\u8FD4\u56DE\uFF0C\u6539\u540E\u56DE\u4F20\uFF1Bbusinessmodel \u968F\u8868\u5355\u539F\u6837\u900F\u4F20\uFF08\u542B\u5B8C\u6574 LogicResult[]\uFF09\uFF0CMCP \u4E0D\u4F1A\u5265\u79BB\u5B83- \u670D\u52A1\u7AEF\u6309 overwrite=false \u4FDD\u5B58\uFF08\u4E0D\u8986\u76D6\u4ED6\u4EBA\u6700\u65B0\u7248\u672C\uFF09\uFF0Cmessage \u4F5C\u4E3A\u9876\u5C42\u63D0\u4EA4\u53C2\u6570\u4F20\u5165\uFF08\u975E FormResult \u5185\u90E8 message \u5B57\u6BB5\uFF09`,inputSchema:{form:d.looseObject(ie).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:qe.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:d.boolean().describe("\u662F\u5426\u4FDD\u5B58\u6210\u529F"),code:d.string().optional().describe("\u4FDD\u5B58\u6210\u529F\u7684\u8868\u5355\u7F16\u7801"),message:d.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 e=>{let{form:t,commitMessage:n}=e,i={committype:n.committype,committypetext:n.committypetext,msgbody:n.msgbody??""};try{let r=await $e(t,i);return{isError:!r.ok,content:[{type:"text",text:JSON.stringify(r)}],structuredContent:r}}catch(r){let s=_(r);return{isError:!0,content:[{type:"text",text:s}],structuredContent:{ok:!1,code:void 0,message:s}}}}}];import{z as f}from"zod";function Ve(e,t){return F({url:"/api/masterserv/hpage/listH5Page",method:"post",data:e,type:"business",token:t})}function Ue(e,t){return F({url:"/api/masterserv/hpage/listH5PageByOne",method:"post",data:e,type:"business",token:t})}function Be(e){return F({url:"/pemission/rolepermission/account/getPreviewAccounts",method:"post",data:e,type:"tenant"})}async function Ye(){let e=H();if(!e)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 t;for(let n=1;n<=3;n++)try{let i=await Be({pvcode:e.productVersionCode,rows:200}),s=(Array.isArray(i?.resp_data)?i.resp_data:[]).find(l=>l.positionname==="SFA\u7CFB\u7EDF\u7BA1\u7406\u5458");if(!s)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(!s.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 s.token}catch(i){t=i,n<3&&await new Promise(r=>setTimeout(r,800))}throw t}async function Ke(e){let t=await Ye();return Ve(e,t)}async function Ze(e){let t=await Ye();return Ue(e,t)}var Qe=f.object({confjson:f.union([f.string(),f.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:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF0C\u9884\u7559\u5B57\u6BB5"),pagecode:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801"),pagedescr:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u63CF\u8FF0"),pagetype:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u9875\u9762\u7C7B\u578B\uFF0C\u9884\u7559\u5B57\u6BB5"),platcreateop:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u4EBA\u59D3\u540D"),platcreatetime:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u65F6\u95F4"),platstatus:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u5E73\u53F0\u72B6\u6001"),platupdateop:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),platupdatetime:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),status:f.union([f.string(),f.number(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u72B6\u6001\uFF1B1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:f.union([f.string(),f.null()]).optional().describe("H5 \u8868\u5355\u7684\u6807\u9898")}).catchall(f.unknown()),Et=Qe.omit({confjson:!0}),Tt={data:f.array(Et).describe("\u8FD9\u4E00\u9875\u7684 H5 \u8868\u5355\u6570\u636E"),pageCount:f.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:f.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:f.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:f.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},Lt=Qe.shape,Ge=[{name:"page_h5_form",config:{title:"\u5206\u9875\u67E5\u8BE2 H5 \u8868\u5355\u5217\u8868",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u667A\u6167100\u7684 H5 \u5F15\u64CE\u914D\u7F6E\u7684 H5 \u8868\u5355\u5217\u8868\u3002\u9002\u7528\u4E8E\u67E5\u627E H5 \u8868\u5355\u53CA\u5176\u5143\u4FE1\u606F\uFF08\u7F16\u7801\u3001\u6807\u9898\u3001\u72B6\u6001\u3001\u521B\u5EFA/\u66F4\u65B0\u65F6\u95F4\u7B49\uFF09\u3002\u6CE8\u610F\uFF1A\u5217\u8868\u7ED3\u679C\u4E0D\u542B confjson \u5B57\u6BB5\uFF08\u8BE5\u5B57\u6BB5\u4E3A H5 \u8868\u5355\u7684\u5185\u5BB9 JSON\uFF0C\u4F53\u79EF\u8F83\u5927\uFF09\uFF1B\u5982\u9700\u83B7\u53D6\u8868\u5355\u7684 confjson \u5185\u5BB9\uFF0C\u8BF7\u8C03\u7528 get_h5_form \u83B7\u53D6\u8BE6\u60C5\u3002\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 status \u4F20 "1"\uFF1B\u8F93\u51FA status \u4EE5 string | number \u8FD4\u56DE\uFF09- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u5F53\u63A5\u53E3\u8FD4\u56DE\u6570\u636E\u5305\u542B "HTTP 404 Not Found" \u65F6\u8BF4\u660E\u6B64\u79DF\u6237\u6CA1\u6709\u5B89\u88C5 H5 \u5F15\u64CE\u3002`,inputSchema:{keywords:f.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:f.string().optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),status:f.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),title:f.string().optional().describe("H5 \u8868\u5355\u7684\u6807\u9898\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),updateopname:f.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),page:f.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:f.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:Tt,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{keywords:t="",pagecode:n="",status:i="",title:r="",updateopname:s="",page:l=1,rows:c=20}=e;try{let g=(await Ke({keywords:t,pagecode:n,status:i,title:r,updateopname:s,page:Number(l)||1,rows:Number(c)||20})).resp_data,w=Array.isArray(g?.data)?g.data.map(k=>{let C={...k};return delete C.confjson,C}):g?.data,b={...g,data:w};return{content:[{type:"text",text:JSON.stringify(b)}],structuredContent:b}}catch(u){return{isError:!0,content:[{type:"text",text:_(u)}]}}}},{name:"get_h5_form",config:{title:"\u67E5\u8BE2 H5 \u8868\u5355\u8BE6\u60C5",description:`\u6839\u636E H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801 pagecode \u83B7\u53D6\u5176\u5B8C\u6574\u8BE6\u60C5\u3002\u8FD4\u56DE\u7ED3\u6784\u4E3A\u300C\u5355\u4E2A H5 \u8868\u5355\u5BF9\u8C61\u300D\uFF08\u5305\u542B pagecode/title/confjson \u7B49\u5B57\u6BB5\uFF09\uFF0C\u5173\u952E\u5B57\u6BB5\uFF1A- pagecode\uFF1AH5 \u8868\u5355\u552F\u4E00\u7F16\u7801- title\uFF1A\u6807\u9898- status\uFF1A\u72B6\u6001\uFF081-\u542F\u7528/2-\u505C\u7528\uFF09- pagedescr\uFF1A\u63CF\u8FF0- confjson\uFF1AH5 \u8868\u5355\u7684\u5185\u5BB9 JSON \u5B57\u7B26\u4E32\uFF0C\u5305\u542B H5 \u8868\u5355\u7684 Vue \u4EE3\u7801\u4E0E\u5143\u6570\u636E\u914D\u7F6E\uFF08\u6838\u5FC3\u5185\u5BB9\uFF09- platcreateop / platcreatetime\uFF1A\u521B\u5EFA\u4EBA / \u521B\u5EFA\u65F6\u95F4- platupdateop / platupdatetime\uFF1A\u6700\u8FD1\u66F4\u65B0\u4EBA / \u6700\u8FD1\u66F4\u65B0\u65F6\u95F4- platstatus\uFF1A\u5E73\u53F0\u72B6\u6001\u5F53\u63A5\u53E3\u8FD4\u56DE\u6570\u636E\u5305\u542B "HTTP 404 Not Found" \u65F6\u8BF4\u660E\u6B64\u79DF\u6237\u6CA1\u6709\u5B89\u88C5 H5 \u5F15\u64CE\u3002`,inputSchema:{pagecode:f.string().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:Lt,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{pagecode:t}=e;try{let n=await Ze({pagecode:t});return{content:[{type:"text",text:JSON.stringify(n.resp_data)}],structuredContent:n.resp_data}}catch(n){return{isError:!0,content:[{type:"text",text:_(n)}]}}}}];import{z as a}from"zod";function We(e){return F({url:"/bizserv/bizmodel/pageList",method:"post",data:e,type:"tenant"})}function Xe(e){return F({url:"/bizserv/bizmodel/get",method:"post",data:e,type:"tenant"})}var Dt=a.object({classname:a.union([a.string(),a.null()]).optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),createaccountcode:a.union([a.string(),a.number()]).nullable().optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:a.union([a.string(),a.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:a.union([a.string(),a.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),dddlayer:a.union([a.string(),a.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:a.union([a.string(),a.number()]).nullable().optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:a.union([a.string(),a.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:a.union([a.string(),a.number()]).nullable().optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modelcode:a.union([a.string(),a.number()]).nullable().optional().describe("\u51FD\u6570\u7684\u7F16\u7801"),modeldescr:a.union([a.string(),a.null()]).optional().describe("\u51FD\u6570\u63CF\u8FF0"),modelname:a.union([a.string(),a.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),seq:a.union([a.string(),a.number()]).nullable().optional().describe("\u987A\u5E8F"),status:a.union([a.string(),a.number()]).nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:a.union([a.string(),a.null()]).optional().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u51FD\u6570\u4E00\u822C\u65E0\u5BF9\u5E94\u8868\uFF0C\u901A\u5E38\u4E3A\u7A7A\uFF09"),updateaccountcode:a.union([a.string(),a.number()]).nullable().optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7 code"),updateaccountname:a.union([a.string(),a.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),updatetime:a.union([a.string(),a.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(a.unknown()),jt={classname:a.union([a.string(),a.null()]).optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),createaccountcode:a.union([a.string(),a.number()]).nullable().optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:a.union([a.string(),a.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:a.union([a.string(),a.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),dddlayer:a.union([a.string(),a.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:a.union([a.string(),a.number()]).nullable().optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:a.union([a.string(),a.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:a.union([a.string(),a.number()]).nullable().optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modelcode:a.union([a.string(),a.number()]).nullable().optional().describe("\u51FD\u6570\u7684\u7F16\u7801"),modeldescr:a.union([a.string(),a.null()]).optional().describe("\u51FD\u6570\u63CF\u8FF0"),modelname:a.union([a.string(),a.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),seq:a.union([a.string(),a.number()]).nullable().optional().describe("\u987A\u5E8F"),status:a.union([a.string(),a.number()]).nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:a.union([a.string(),a.null()]).optional().describe("\u6570\u636E\u5E93\u8868\u540D\uFF08\u51FD\u6570\u4E00\u822C\u65E0\u5BF9\u5E94\u8868\uFF0C\u901A\u5E38\u4E3A\u7A7A\uFF09"),updateaccountcode:a.union([a.string(),a.number()]).nullable().optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7 code"),updateaccountname:a.union([a.string(),a.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),updatetime:a.union([a.string(),a.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),confjson:a.string().nullable().optional().describe("flycode \u51FD\u6570\u4EE3\u7801\u5185\u5BB9")},et=[{name:"page_function_list",config:{title:"\u5206\u9875\u67E5\u8BE2 flycode \u51FD\u6570",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2 flycode \u51FD\u6570\u5217\u8868\uFF08Function\uFF09\u3002\u9002\u7528\u4E8E\u67E5\u627E\u51FD\u6570\u53CA\u5176\u5143\u4FE1\u606F\u3002\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 status \u4F20 "1"\u3001dddlayer \u56FA\u5B9A\u4F20 "3"\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u6216\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09- dddlayer\uFF08\u51FD\u6570\u5C42\u7EA7\uFF09\uFF1A\u56FA\u5B9A\u4F20 3\uFF0C\u4EE3\u8868\u51FD\u6570\u7C7B- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- status\uFF08\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528`,inputSchema:{classname:a.string().optional().describe("\u51FD\u6570\u82F1\u6587\u540D"),name:a.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u901A\u5E38\u548C modelname \u4E00\u81F4"),modelname:a.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u901A\u5E38\u548C name \u4E00\u81F4"),flycodekey:a.string().optional().describe("\u51FD\u6570\u5185\u5BB9\u5173\u952E\u5B57"),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")},outputSchema:{data:a.array(Dt).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 e=>{let{classname:t="",name:n="",modelname:i="",flycodekey:r="",page:s=1,rows:l=20}=e;try{let c=await We({dddlayer:3,directorytypecode:"",starttime:"",classname:t,name:n,modelname:i,flycodekey:r,page:Number(s)||1,rows:Number(l)||20});return{content:[{type:"text",text:JSON.stringify(c.resp_data)}],structuredContent:c.resp_data}}catch(c){return{isError:!0,content:[{type:"text",text:_(c)}]}}}},{name:"get_function",config:{title:"\u67E5\u8BE2 flycode \u51FD\u6570\u8BE6\u60C5",description:`\u6839\u636E\u51FD\u6570\u7684\u7F16\u7801 modelcode \u67E5\u8BE2\u5176\u5B8C\u6574\u8BE6\u60C5\uFF1A\u5305\u542B\u51FD\u6570\u7684\u57FA\u672C\u4FE1\u606F\uFF08\u82F1\u6587\u540D\u3001\u4E2D\u6587\u540D\u3001\u63CF\u8FF0\u3001\u5C42\u7EA7\u3001\u72B6\u6001\u7B49\uFF09\u4EE5\u53CA\u51FD\u6570\u7684\u4EE3\u7801\u5185\u5BB9 confjson\u3002\u6CE8\u610F\uFF1A\u6B64\u5904\u7684\u4EE3\u7801\u548C\u4E1A\u52A1\u903B\u8F91\u7684 flycode \u7A0D\u6709\u4E0D\u540C\uFF0C\u6B64\u5904\u7684\u4EE3\u7801\u4EC5\u4EC5\u662F\u8FD0\u884C\u5728 Java Nashorn \u5F15\u64CE\u7684 ES5 Javascript \u4EE3\u7801\uFF0C\u6CA1\u6709 flycode \u4EE3\u7801\u4E00\u6837\u7684\u7F16\u8BD1 FlyQL \u5904\u7406\u3001\u5185\u7F6E\u5BF9\u8C61\u3002\u5728\u4E1A\u52A1\u903B\u8F91 flycode \u4E2D\u901A\u8FC7 loadex("\u65B9\u6CD5\u540D") \u52A0\u8F7D\u3002\u3010\u6574\u6570/\u679A\u4E3E\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8BE6\u60C5\u8FD4\u56DE\u5B57\u6BB5\uFF0C\u90E8\u5206\u4EE5\u6570\u5B57\u8FD4\u56DE\u3001\u90E8\u5206\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u89E3\u6790\u65F6\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09- dddlayer\uFF08\u51FD\u6570\u5C42\u7EA7\uFF09\uFF1A\u56FA\u5B9A\u4F20 3\uFF0C\u4EE3\u8868\u51FD\u6570\u7C7B- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528- confjson\uFF1Aflycode \u51FD\u6570\u4EE3\u7801\u5185\u5BB9\uFF0C\u662F\u51FD\u6570\u5B9E\u73B0\u4F53\u7684\u6838\u5FC3\u5B57\u6BB5`,inputSchema:{modelcode:a.string().describe("\u51FD\u6570\u7684\u7F16\u7801")},outputSchema:a.looseObject(jt),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{modelcode:t}=e;try{let n=await Xe({modelcode:t});return{content:[{type:"text",text:JSON.stringify(n.resp_data)}],structuredContent:n.resp_data}}catch(n){return{isError:!0,content:[{type:"text",text:_(n)}]}}}}];import{z as x}from"zod";function tt(e){return F({url:"/bizserv/customfunction/list",method:"post",data:e,type:"tenant"})}var At=x.object({createtime:x.union([x.string(),x.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),creator:x.union([x.string(),x.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),dbfunctionname:x.union([x.string(),x.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D"),functioncode:x.union([x.string(),x.null()]).optional().describe("\u51FD\u6570\u552F\u4E00\u7F16\u7801"),functionname:x.union([x.string(),x.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),functionscript:x.union([x.string(),x.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u5185\u5BB9\uFF08PostgreSQL \u51FD\u6570\u4F53\uFF09"),marktype:x.union([x.string(),x.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:x.union([x.string(),x.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C functioncode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),publishstatus:x.union([x.string(),x.number()]).nullable().optional().describe("\u53D1\u5E03\u72B6\u6001\uFF0C1-\u672A\u53D1\u5E03\uFF1B2-\u5DF2\u53D1\u5E03"),remark:x.union([x.string(),x.null()]).optional().describe("\u5907\u6CE8"),status:x.union([x.string(),x.number()]).nullable().optional().describe("\u72B6\u6001\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),updatetime:x.union([x.string(),x.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updator:x.union([x.string(),x.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA")}).catchall(x.unknown()),nt=[{name:"page_database_function_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u6570\u636E\u5E93\u51FD\u6570",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u6570\u636E\u5E93\u51FD\u6570\uFF08PostgreSQL \u81EA\u5B9A\u4E49\u51FD\u6570\uFF09\u5217\u8868\u3002\u9002\u7528\u4E8E\u67E5\u627E\u6570\u636E\u5E93\u51FD\u6570\u53CA\u5176\u5143\u4FE1\u606F\uFF0C\u5217\u8868\u7ED3\u679C\u5DF2\u968F\u884C\u8FD4\u56DE\u51FD\u6570\u5185\u5BB9 functionscript\uFF08PostgreSQL \u51FD\u6570\u4F53\uFF09\uFF0C\u56E0\u6B64\u65E0\u9700\u518D\u8C03\u7528\u8BE6\u60C5\u63A5\u53E3\u3002\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 status \u4F20 "1"\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u6216\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237- publishstatus\uFF08\u53D1\u5E03\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u672A\u53D1\u5E03\uFF1B2-\u5DF2\u53D1\u5E03- status\uFF08\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528`,inputSchema:{dbfunctionname:x.string().optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),name:x.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),pageindex:x.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),pagesize:x.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:x.array(At).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:x.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:x.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:x.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:x.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{dbfunctionname:t="",name:n="",pageindex:i=1,pagesize:r=20}=e;try{let s=await tt({dbfunctionname:t,name:n,pageindex:Number(i)||1,pagesize:Number(r)||20});return{content:[{type:"text",text:JSON.stringify(s.resp_data)}],structuredContent:s.resp_data}}catch(s){return{isError:!0,content:[{type:"text",text:_(s)}]}}}}];import{z as J}from"zod";function ot(e){return F({url:"/api/biz/sqlrun",method:"post",data:e,type:"business"})}var Ht={data:J.array(J.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:J.coerce.number().nullable().optional().describe("\u67E5\u8BE2\u7ED3\u679C\u603B\u6570")},rt=[{name:"run_sql",config:{title:"\u6267\u884C SQL \u67E5\u8BE2",description:"\u5728\u4E1A\u52A1\u5E93\uFF08\u6570\u636E\u5E93\u4E3A PostgreSQL\uFF09\u4E2D\u6267\u884C\u4E00\u6761 SELECT \u67E5\u8BE2 SQL\uFF08\u63A5\u53E3\u4EC5\u652F\u6301 SELECT\uFF0C\u4E00\u6B21\u53EA\u80FD\u4E00\u6761 SQL\uFF0C\u53EA\u80FD\u67E5\u4E1A\u52A1\u8868\u7684\u6570\u636E\uFF0C\u9700\u8981\u67E5\u8868\u6709\u54EA\u4E9B\u5B57\u6BB5\u8BF7\u4F7F\u7528 get_entity \uFF09\uFF0C\u8FD4\u56DE\u67E5\u8BE2\u7ED3\u679C\u6570\u636E data \u4E0E\u7ED3\u679C\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:J.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:J.looseObject(Ht),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async e=>{let{sql:t}=e;try{let n=await ot({sql:t});return{content:[{type:"text",text:JSON.stringify(n.resp_data)}],structuredContent:n.resp_data}}catch(n){return{isError:!0,content:[{type:"text",text:_(n)}]}}}}];import{z as st}from"zod";var se=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(t,n,i=15778368e5){if(t>this.maxWorkerId||t<0)throw new Error(`workerId \u5FC5\u987B\u5728 0 ~ ${this.maxWorkerId} \u4E4B\u95F4`);if(n>this.maxDatacenterId||n<0)throw new Error(`datacenterId \u5FC5\u987B\u5728 0 ~ ${this.maxDatacenterId} \u4E4B\u95F4`);this.workerId=BigInt(t),this.datacenterId=BigInt(n),this.epoch=BigInt(i)}nextId(){let t=this.currentTimestamp();if(t<this.lastTimestamp){let i=this.lastTimestamp-t;if(i<=5n)for(;t<this.lastTimestamp;)t=this.currentTimestamp();else throw new Error(`\u65F6\u949F\u56DE\u62E8\u8FC7\u5927: ${i}ms\uFF0C\u65E0\u6CD5\u751F\u6210 ID`)}return t===this.lastTimestamp?(this.sequence=this.sequence+1n&BigInt(this.sequenceMask),this.sequence===0n&&(t=this.waitNextMillis(this.lastTimestamp))):this.sequence=0n,this.lastTimestamp=t,t-this.epoch<<BigInt(this.timestampShift)|this.datacenterId<<BigInt(this.datacenterIdShift)|this.workerId<<BigInt(this.workerIdShift)|this.sequence}waitNextMillis(t){let n=this.currentTimestamp();for(;n<=t;)n=this.currentTimestamp();return n}currentTimestamp(){return BigInt(Date.now())}parse(t){let n=(t>>BigInt(this.timestampShift))+this.epoch,i=t>>BigInt(this.datacenterIdShift)&BigInt(this.maxDatacenterId),r=t>>BigInt(this.workerIdShift)&BigInt(this.maxWorkerId),s=t&BigInt(this.sequenceMask);return{timestamp:n,datacenterId:i,workerId:r,sequence:s,generateTime:new Date(Number(n))}}},Mt=1,$t=1,zt=new se(Mt,$t),it=()=>zt.nextId();var lt=[{name:"generate_unique_code",config:{title:"\u751F\u6210\u552F\u4E00\u7F16\u7801",description:"\u901A\u8FC7\u96EA\u82B1\u7B97\u6CD5\uFF08snowflake\uFF09\u751F\u6210\u4E00\u4E2A\u5168\u5C40\u552F\u4E00 ID\uFF08code\uFF09\u3002\u5728\u65B0\u5EFA\u5B9E\u4F53\u3001\u9886\u57DF\u3001\u8868\u5355\u7B49\u5185\u5BB9\u65F6\uFF0C\u5176 JSON \u5B57\u6BB5\u4E2D\u901A\u5E38\u9700\u8981\u643A\u5E26\u4E00\u4E2A\u552F\u4E00 code\uFF0C\u53EF\u8C03\u7528\u672C\u5DE5\u5177\u83B7\u53D6\u3002",inputSchema:{prefix:st.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:st.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 e=>{let{prefix:t=""}=e;try{let n=it().toString(),r={code:t?`${t}${n}`:n};return{content:[{type:"text",text:JSON.stringify(r)}],structuredContent:r}}catch(n){let r={error:n.message??String(n)};return{isError:!0,content:[{type:"text",text:JSON.stringify(r)}]}}}}];await be();var Z=new qt({name:"flycode-mcp",version:"1.0.0"}),Vt=[...he,...Se,...Pe,...ze,...Je,...Ge,...et,...nt,...rt,...lt];for(let e of Vt)Z.registerTool(e.name,e.config,e.handler);async function Ut(){let e=new Jt;await Z.connect(e),process.on("SIGINT",async()=>{await Z.close(),process.exit(0)}),process.on("SIGTERM",async()=>{await Z.close(),process.exit(0)}),console.error("flycode-mcp listening on stdio")}Ut().catch(e=>{console.error(e),process.exit(1)});
2
+ import{McpServer as rn}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as on}from"@modelcontextprotocol/sdk/server/stdio.js";var le="http://mconfig.xuantongkeji.com:51074",xt="username",kt="password",Rt="tenantCode",Ot="envName";function W(t,e){let l=process.argv.slice(2).join("&"),o=new URLSearchParams(l).get(t);if(o!==null&&o!=="")return o;if(e!==void 0)return e;throw new Error(`Missing required arg: ${t}`)}var T={username:W(xt),password:W(kt),tenantCode:W(Rt),envName:W(Ot)};import vt from"axios";var _e=null;function ae(t){_e=t}function we(){return _e}var xe=null;function ke(t){xe=t}function J(){return xe}var ce=vt.create({baseURL:le||"",timeout:2e4,headers:{"Content-Type":"application/json"}});ce.interceptors.request.use(t=>{let n=t.token??we();return n&&(t.headers=t.headers||{},t.headers.token=n),delete t.token,t});ce.interceptors.response.use(t=>t.data,t=>Promise.reject(t));function P(t){let{type:e="center",...n}=t,l;switch(e){case"center":l=le||"";break;case"tenant":case"business":{let r=J();if(!r)return Promise.reject(new Error(`type \u4E3A ${e} \u65F6\uFF0C\u5FC5\u987B\u5148\u8C03\u7528 setTenant() \u8BBE\u7F6E\u79DF\u6237\u4FE1\u606F`));l=e==="tenant"?r.conn.config:r.conn.business;break}}return ce({...n,baseURL:l})}var X="1";function Re(t){return P({url:"/api/multiplat/auth/login",method:"post",data:t})}function Oe(){return P({url:"/api/multiplat/auth/getTenantInfo",method:"post",data:{appid:X}})}function ve(t){return P({url:"/api/multiplat/auth/getIdeToken",method:"post",data:t})}async function Ne(){let t=await Re({appid:X,username:T.username,password:T.password});if(t.code!==200)throw new Error(`Unable to login: ${t.msg}`);ae(t.data.token),console.error("flycode-mcp \u767B\u5F55\u5B8C\u6210");let n=(await Oe()).resp_data.find(a=>a.tenantcode===T.tenantCode),l=n?.envs.find(a=>a.envname===T.envName);if(n&&l){let a;try{a=JSON.parse(l.conn)}catch{throw new Error(`\u79DF\u6237\u73AF\u5883\u8FDE\u63A5\u4FE1\u606F\u89E3\u6790\u5931\u8D25, \u79DF\u6237\u53F7: ${T.tenantCode}, \u73AF\u5883\u540D: ${T.envName}, env.conn \u4E0D\u662F\u5408\u6CD5\u7684 JSON: ${l.conn}`)}ke({metaModelCode:n.metamodelcode,metaModelType:n.metamodeltype,productCode:n.productcode,productName:n.productname,productSeriesCode:n.productseriescode,productVersionCode:n.productversioncode,productVersionName:n.productversionname,tenantCode:n.tenantcode,tenantName:n.tenantname,conn:a,envId:l.envid,envName:l.envname,tenantEnvName:l.tenantenvname})}let r=J();if(!r)throw new Error(`\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u79DF\u6237\u4FE1\u606F, \u79DF\u6237\u53F7: ${T.tenantCode}, \u73AF\u5883\u540D: ${T.envName}`);console.error("flycode-mcp \u83B7\u53D6\u79DF\u6237\u4FE1\u606F\u5B8C\u6210");let i=(await ve({appid:X,envid:r.envId,metamodeltype:r.metaModelType,productcode:r.productCode,productversioncode:r.productVersionCode,tenantcode:r.tenantCode})).resp_data?.idetoken;if(!i)throw new Error(`\u83B7\u53D6 IDE Token \u5931\u8D25, \u79DF\u6237\u53F7: ${r.tenantCode}, \u73AF\u5883\u540D: ${r.envName}, \u8FD4\u56DE\u4F53\u4E2D\u672A\u5305\u542B\u6709\u6548\u7684 idetoken`);ae(i),console.error("flycode-mcp \u83B7\u53D6 IDE Token \u5B8C\u6210")}import{z as S}from"zod";function Se(t){return P({url:"/bizserv/bizmodel/pageModelLogicList",method:"post",data:t,type:"tenant"})}function $(t){return P({url:"/bizserv/bizmodel/getModelLogic",method:"post",data:t,type:"tenant"})}function ee(t){return P({url:"/bizserv/bizmodel/saveModelLogic",method:"post",data:{...t,overwrite:!1},type:"tenant"})}import{z as u}from"zod";var ue=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()),Nt=u.array(ue),Fe=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:Nt.optional().nullable().describe("\u6B64\u53C2\u6570\u7684\u5C5E\u6027\u6570\u7EC4\uFF1A\u5355\u5B9E\u4F53\u65F6\u662F IN.name \u8FD9\u4E2A\u5BF9\u8C61\u6709\u7684\u5C5E\u6027\uFF1B\u6570\u7EC4\u65F6\u662F IN.name \u8FD9\u4E2A\u6570\u7EC4\u4E2D\u7684\u5143\u7D20\u5BF9\u8C61\u7684\u5C5E\u6027"),customcode: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()),Pe=u.array(Fe),St=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())),de=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()),Pt=u.object({bindcols:u.array(de).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()),pe={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:Pe.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:St.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:Pe.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:Pt.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")},Ce=u.looseObject(pe),Ie=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:Fe.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:ue.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:ue.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:de.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:de.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" }')})]);function F(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 C(t){return{content:[{type:"text",text:JSON.stringify(t)}],structuredContent:t}}function I(t){return{isError:!0,content:[{type:"text",text:F(t)}]}}var Le=[{name:"page_model_logic_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u5217\u8868\uFF08ModelLogic\uFF09\u3002\u9002\u7528\u4E8E\u67E5\u627E\u67D0\u4E1A\u52A1\u903B\u8F91\u53CA\u5176\u5143\u4FE1\u606F\u3002\n\n\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 actiontype \u4F20 "3"\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF09\n- actiontype\uFF08\u64CD\u4F5C\u7C7B\u578B\uFF09\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\n- actioncategory\uFF08\u884C\u4E3A\u7C7B\u578B\uFF09\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\n- jobstatus\uFF08\u5B9A\u65F6\u8C03\u5EA6\u4EFB\u52A1\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B0-\u505C\u7528\uFF1B2-\u65E0\u8C03\u5EA6\n- tenantdbname\uFF08\u811A\u672C\u64CD\u4F5C\u6570\u636E\u5E93\u7C7B\u578B\uFF09\uFF1A\u5B57\u7B26\u4E32\u679A\u4E3E\uFF0C\u503C=\u53EA\u8BFB / \u8BFB\u5199 / \u62A5\u8868\n- execmode\uFF08\u6267\u884C\u65B9\u5F0F\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u540C\u6B65\uFF1B2-\u5F02\u6B65\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- status\uFF08\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u542F\u7528\n- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E`,inputSchema:{keys:S.string().optional().describe("\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898\u3001modellogiccode\u3001\u6216\u8005\u884C\u4E3A\u65B9\u6CD5\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),keywords:S.string().optional().describe("\u5B8C\u6574 JSON (\u5185\u542B\u4EE3\u7801) \u4E2D\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u5339\u914D"),page:S.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:S.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updateopname:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),updatetimestart:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4 - \u5F00\u59CB\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u6700\u8FD1\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),updatetimeend:S.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u65F6\u95F4 - \u7ED3\u675F\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u6700\u8FD1\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),actiontype:S.string().optional().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),actioncategory:S.string().optional().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),tenantdbname:S.string().optional().describe("\u811A\u672C\u64CD\u4F5C\u6570\u636E\u5E93\u7684\u7C7B\u578B\uFF0C\u5B57\u7B26\u4E32\u679A\u4E3E\uFF0C\u679A\u4E3E\u503C\uFF1A\u53EA\u8BFB\u3001\u8BFB\u5199\u3001\u62A5\u8868"),jobstatus:S.string().optional().describe("\u5B9A\u65F6\u8C03\u5EA6\u4EFB\u52A1\u72B6\u6001\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B0-\u505C\u7528\uFF1B2-\u65E0\u8C03\u5EA6")},outputSchema:{data:S.array(S.object({actiontype:S.coerce.number().optional().nullable().describe("\u64CD\u4F5C\u7C7B\u578B, \u6574\u6570, \u542B\u4E49\uFF1A1-\u5217\u8868\u67E5\u8BE2\uFF1B2-\u5355\u4E2A\u67E5\u8BE2\uFF1B3-\u6570\u636E\u63D0\u4EA4\uFF1B4-\u6279\u91CF\u63D0\u4EA4\uFF1B5-\u5BFC\u5165\uFF1B6-\u5BFC\u51FA\uFF1B7-\u79BB\u7EBF\u6570\u636E\u83B7\u53D6\uFF1B8-\u6D41\u7A0B\uFF1B9-\u4E1A\u52A1\u8C03\u5EA6\uFF1B10-ipaas\u63A5\u53E3"),createtime:S.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801"),modelname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u540D"),modellogiccode:S.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),modellogicname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u6807\u9898"),metamodelcode:S.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C modellogiccode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),execmode:S.coerce.number().optional().nullable().describe("\u6267\u884C\u65B9\u5F0F\uFF0C1-\u540C\u6B65\uFF1B2-\u5F02\u6B65"),functionname:S.string().optional().nullable().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u7684\u51FD\u6570\u547D\u540D\uFF08A\u4E1A\u52A1\u903B\u8F91\u4E2D\u8C03\u7528B\u4E1A\u52A1\u903B\u8F91\u65F6\u8981\u5199\u51FD\u6570\u540D\uFF09"),actioncategory:S.coerce.number().optional().nullable().describe("\u884C\u4E3A\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-flycode\u63A5\u53E3\uFF1B2-\u5FAE\u670D\u52A1\uFF1B3-\u5185\u90E8\u51FD\u6570\uFF1B4-\u5BFC\u5165\uFF1B5-\u5BFC\u51FA\uFF1B6-flycode\u5BFC\u5165\uFF1B7-flycode\u5BFC\u51FA"),modelcode:S.string().describe("\u6B64\u4E1A\u52A1\u903B\u8F91\u6240\u5C5E\u7684\u4E1A\u52A1\u6A21\u578B\u7684\u552F\u4E00\u7F16\u7801"),marktype:S.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),updatetime:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountname:S.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),createaccountname:S.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),seq:S.coerce.number().optional().nullable().describe("\u987A\u5E8F"),status:S.coerce.number().optional().nullable().describe("\u72B6\u6001\uFF0C1-\u542F\u7528"),confsource:S.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),updateaccountcode:S.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u8D26\u53F7\u7684\u552F\u4E00\u7F16\u7801")}).catchall(S.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:S.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:S.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:S.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:S.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keys:e="",keywords:n="",page:l=1,rows:r=20,updateopname:o="",updatetimestart:i="",updatetimeend:a="",actiontype:c="",actioncategory:d="",tenantdbname:g="",jobstatus:b=null}=t;try{let f=await Se({actioncategory:d,actiontype:c,centercode:"",directorytypecode:"rootNode",jobstatus:b,keys:e,keywords:n,modelcode:"rootNode",page:Number(l)||1,rows:Number(r)||20,tenantdbname:g,updateopname:o,updatetimeend:a,updatetimestart:i});return C(f.resp_data)}catch(f){return I(f)}}},{name:"get_model_logic",config:{title:"\u67E5\u8BE2\u4E1A\u52A1\u903B\u8F91\u8BE6\u60C5",description:`\u6839\u636E\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801 modellogiccode \u67E5\u8BE2\u5176\u5B8C\u6574\u8BE6\u60C5\uFF1A\u5305\u542B flycode \u811A\u672C\uFF08operations \u5185 templateparams.flycode\uFF09\u3001\u8F93\u5165\u8F93\u51FA\u53C2\u6570\uFF08input/output\uFF0C\u5206\u522B\u5B9A\u4E49 flycode \u5185\u7F6E\u5BF9\u8C61 IN / OUT \u7684\u7ED3\u6784\u4E0E\u5B57\u6BB5\u5C5E\u6027 properties\uFF0C\u542B propertytypecode \u5B57\u6BB5\u7C7B\u578B\uFF09\u4EE5\u53CA\u64CD\u4F5C\u6B65\u9AA4\u7B49\u3002\n\n\u3010\u6574\u6570/\u679A\u4E3E\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8BE6\u60C5\u8FD4\u56DE\u5B57\u6BB5\uFF0C\u90E8\u5206\u4EE5\u6570\u5B57\u8FD4\u56DE\u3001\u90E8\u5206\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u89E3\u6790\u65F6\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09\n- actioncategory\uFF08\u884C\u4E3A\u7C7B\u578B\uFF09\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\n- actiontype\uFF08\u64CD\u4F5C\u7C7B\u578B\uFF09\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\n- execmode\uFF08\u6267\u884C\u65B9\u5F0F\uFF09\uFF1A1-\u540C\u6B65\uFF1B2-\u5F02\u6B65\n- executionmode\uFF08\u6267\u884C\u6A21\u5F0F\uFF09\uFF1Astandard-\u6807\u51C6\u6A21\u5F0F\uFF1Bstrict-\u4E25\u683C\u6A21\u5F0F\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\n- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E\n- tenantdbname\uFF08\u79DF\u6237\u6570\u636E\u5E93\u64CD\u4F5C\u6743\u9650\uFF09\uFF1A\u53EA\u8BFB-\u53EA\u80FD\u67E5\u8BE2\uFF1B\u8BFB\u5199-\u53EF\u589E\u5220\u6539\u67E5\uFF1B\u62A5\u8868-\u4FDD\u7559\u5B57\u6BB5\n- usedatarule\uFF08\u662F\u5426\u4F7F\u7528\u6570\u636E\u6743\u9650\uFF09\uFF1A1 \u4EE3\u8868\u4F7F\u7528\u6570\u636E\u6743\u9650\n- input/output[].datatype\uFF08\u53C2\u6570\u5F62\u6001\uFF09\uFF1A0-\u5355\u5B9E\u4F53\uFF08IN.name \u662F\u5BF9\u8C61\uFF09\uFF1B1-\u6570\u7EC4\uFF08IN.name \u662F\u6570\u7EC4\uFF09\n- input/output[].properties[].propertytypecode\uFF08\u5B57\u6BB5\u7C7B\u578B\uFF09\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)`,inputSchema:{modellogiccode:S.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801")},outputSchema:pe,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{modellogiccode:e}=t;try{let n=await $({modellogiccode:e});return C(n.resp_data)}catch(n){return I(n)}}}];import{z as h}from"zod";import{z as te}from"zod";var z=te.object({committype:te.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:te.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:te.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 V(t){return{committype:t.committype,committypetext:t.committypetext,msgbody:t.msgbody??""}}function M(t,e="YYYY-MM-DD HH:mm:ss"){if(isNaN(t.getTime()))throw new Error("Invalid date provided");let n={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")},l=Object.keys(n).sort((o,i)=>i.length-o.length),r=e;for(let o of l)r=r.replace(new RegExp(o,"g"),n[o]);return r}function Ae(t,e){let n=[],l=[];if(e==="exact"){for(let r=0;r<t.length;r++)n.push(t[r]),l.push(r);return{text:n.join(""),map:l}}for(let r=0;r<t.length;r++){let o=t[r];if(o==="\r"){n.push(`\n`),l.push(r),t[r+1]===`\n`&&r++;continue}if(o===" "||o===" "){let i=r;for(;i<t.length&&(t[i]===" "||t[i]===" ");)i++;if(i>=t.length||t[i]===`\n`||t[i]==="\r"){r=i-1;continue}n.push(o),l.push(r);continue}n.push(o),l.push(r)}return{text:n.join(""),map:l}}function ge(t){return t.replace(/\r\n?/g,`\n`)}function me(t,e){let n=1,l=Math.min(e,t.length);for(let r=0;r<l;r++)t[r]===`\n`&&n++;return n}function Ft(t,e,n="normalized"){if(e.length===0)return[];let l=Ae(t,n),r=Ae(e,n);if(r.text.length===0)return[];let o=[],i=0;for(;;){let a=l.text.indexOf(r.text,i);if(a===-1)break;let c=l.map[a],d=l.map[a+r.text.length-1]+1;o.push({startOffset:c,endOffset:d,startLine:me(t,c),endLine:me(t,Math.max(d-1,0))}),i=a+r.text.length}return o}function De(t){let e=new Map;if(t.length<2)return t.length===1&&e.set(t,1),e;for(let n=0;n<t.length-1;n++){let l=t.slice(n,n+2);e.set(l,(e.get(l)??0)+1)}return e}function Ct(t,e){if(t.size===0&&e.size===0)return 1;if(t.size===0||e.size===0)return 0;let n=0,[l,r]=t.size<=e.size?[t,e]:[e,t];for(let[i,a]of l){let c=r.get(i);c&&(n+=Math.min(a,c))}let o=0;for(let i of t.values())o+=i;for(let i of e.values())o+=i;return o===0?0:2*n/o}function It(t,e,n=3){let l=ge(t).split(`\n`),r=ge(e).split(`\n`);if(l.length===0||r.length===0)return[];let o=r.map(g=>g.trim()).join(`\n`),i=De(o),a=l.map(g=>g.trim()),c=new Map,d=new Set([r.length-1,r.length,r.length+1]);for(let g of d)if(!(g<1))for(let b=0;b+g<=l.length;b++){let f=a.slice(b,b+g).join(`\n`),k=Ct(De(f),i);if(k<=.3)continue;let v=c.get(b);(!v||k>v.score)&&c.set(b,{score:k,preview:l.slice(b,b+g).join(`\n`).slice(0,120)})}return Array.from(c.entries()).map(([g,b])=>({startLine:g+1,score:Math.round(b.score*100)/100,preview:b.preview})).sort((g,b)=>b.score-g.score).slice(0,n)}function Lt(t){let e=(t.match(/\r\n/g)??[]).length,n=(t.match(/\n/g)??[]).length-e;return e>n?`\r\n`:`\n`}function Ee(t,e){let n=Lt(e);return t.replace(/\r\n?|\n/g,n)}var B=40;function At(t,e,n,l=3){let r=ge(t).split(`\n`),o=[],i=e.slice().sort((a,c)=>a.startOffset-c.startOffset);for(let a of i){let c=Math.max(1,a.startLine-l),d=Math.min(r.length,a.endLine+l),g=t.slice(a.startOffset,a.endOffset).split(`\n`).map(y=>y.replace(/\r$/,"")),b=n.split(`\n`),f=g.length,k=b.length,w=[["@@",`-${a.startLine},${f}`,`+${a.startLine},${k}`,"@@"].join(" ")];for(let y=c;y<a.startLine;y++)w.push(` ${r[y-1]}`);for(let y of g.slice(0,B))w.push(`-${y}`);f>B&&w.push(`... \u7701\u7565 ${f-B} \u884C`);for(let y of b.slice(0,B))w.push(`+${y}`);k>B&&w.push(`... \u7701\u7565 ${k-B} \u884C`);for(let y=a.endLine+1;y<=d;y++)w.push(` ${r[y-1]}`);o.push(w.join(`\n`))}return o.join(`\n`)}function ne(t,e,n={}){let l=n.contextLines??3,r=n.topN??3,o=t.slice(),i=[],a=!1;for(let c=0;c<e.length;c++){let d=e[c],g=d.operationIndex??0,b=()=>({index:c,label:d.label??null,status:"FAILED",errorCode:"OK",message:null,operationIndex:g,matchCount:0,replacedCount:0,range:null,suggestions:null,dependentOnFailedOp:a,hunk:null}),f=(L,E,U={})=>{i.push({...b(),status:"FAILED",errorCode:L,message:E,...U}),a=!0};if(!Number.isInteger(g)||g<0||g>=o.length){f("NO_TARGET",`operationIndex=${g} \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(d.rewrite!==!0&&(typeof d.oldString!="string"||d.oldString.length===0)){f("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(d.replaceAll===!0&&d.occurrence!=null){f("INVALID_PARAMS","replaceAll \u4E0E occurrence \u4E92\u65A5\uFF0C\u53EA\u80FD\u4E8C\u9009\u4E00");continue}if(d.rewrite===!0){if(typeof d.newString!="string"){f("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 L=o[g],E=Ee(d.newString,L),U=me(L,L.length);o[g]=E,i.push({...b(),status:"OK",errorCode:"OK",matchCount:1,replacedCount:1,range:{startOffset:0,endOffset:L.length,startLine:1,endLine:U},hunk:`\u6574\u4EFD\u66FF\u6362\uFF1A${L.length} \u2192 ${E.length} \u5B57\u7B26\uFF08rewrite \u6A21\u5F0F\uFF0C\u672A\u56DE\u663E\u65E7\u5168\u6587\uFF09`});continue}let k=d.matchMode??"normalized",v=o[g],w=Ft(v,d.oldString,k);if(w.length===0){f("NOT_FOUND",`oldString \u5728 operation[${g}] \u7684\u811A\u672C\u4E2D\u672A\u5339\u914D\u5230\u4EFB\u4F55\u5185\u5BB9\uFF08matchMode=${k}\uFF09`,{suggestions:It(v,d.oldString,r)});continue}let y;if(d.replaceAll===!0)y=w;else if(d.occurrence!=null){if(!Number.isInteger(d.occurrence)||d.occurrence<1||d.occurrence>w.length){f("OCCURRENCE_OUT_OF_RANGE",`occurrence=${d.occurrence} \u8D8A\u754C\uFF0C\u5B9E\u9645\u5339\u914D\u6570\u4E3A ${w.length}`,{matchCount:w.length});continue}y=[w[d.occurrence-1]]}else if(w.length>1){let L=w.map(E=>`\u7B2C ${E.startLine}~${E.endLine} \u884C`).join("\u3001");f("NOT_UNIQUE",`oldString \u5339\u914D\u5230 ${w.length} \u5904\uFF08${L}\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 y=w;let O=Ee(d.newString,v),A=v;for(let L=y.length-1;L>=0;L--)A=A.slice(0,y[L].startOffset)+O+A.slice(y[L].endOffset);let H=At(v,y,O,l);o[g]=A,i.push({...b(),status:"OK",errorCode:"OK",matchCount:w.length,replacedCount:y.length,range:y[0],hunk:H})}return{scripts:o,results:i,ok:i.length>0&&i.every(c=>c.status==="OK")}}async function Te(t,e){e.committype==="saverecord"&&(e.msgbody=M(new Date,"YYYY-MM-DD HH:mm")),t.message=JSON.stringify(e);try{return(await ee(t)).resp_data}catch(n){return F(n)}}function Y(t,e){return(e==="input"?t.input:t.output)??[]}function Q(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 q(t){let e=D(t.field)?t.field:void 0,n=D(t.column)?t.column:void 0;return{fieldKey:e,colKey:n}}function j(t,e,n){return e!==void 0&&t?.field===e||n!==void 0&&e===void 0&&t?.column===n}function D(t){return t==null?!1:typeof t=="string"?t.trim().length>0:!0}async function Dt(t,e,n){let l=(o={})=>({index:n,op:e.op,status:"OK",errorCode:"OK",message:null,...o}),r=(o,i,a={})=>({index:n,op:e.op,status:"FAILED",errorCode:o,message:i,...a});switch(e.op){case"add_param":{let o=Y(t,e.target);if(D(e.param.name)&&o.some(a=>a?.name===e.param.name))return r("DUP_NAME",`target=${e.target} \u4E2D\u5DF2\u5B58\u5728 name=${e.param.name} \u7684\u53C2\u6570\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);let i=e.position??o.length;return o.splice(i,0,e.param),e.target==="input"?t.input=o:t.output=o,l({message:`\u5DF2\u5728 ${e.target} \u7684 position=${i} \u8FFD\u52A0\u53C2\u6570 ${e.param.name??"(\u672A\u547D\u540D)"}`})}case"remove_param":{let o=Y(t,e.target),i=o.filter(c=>c?.name===e.name);if(i.length===0)return r("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`);if(i.length>1)return r("DUP_NAME",`name=${e.name} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${i.length} \u6B21\uFF0C\u4E0D\u552F\u4E00\uFF0C\u65E0\u6CD5\u5B9A\u4F4D`);let a=o.findIndex(c=>c?.name===e.name);return o.splice(a,1),e.target==="input"?t.input=o:t.output=o,l({message:`\u5DF2\u4ECE ${e.target} \u79FB\u9664\u53C2\u6570 ${e.name}`})}case"set_param_attrs":{let i=Y(t,e.target).filter(a=>a?.name===e.name);return i.length===0?r("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.name} \u7684\u53C2\u6570`):i.length>1?r("DUP_NAME",`name=${e.name} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${i.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):(Object.assign(i[0],e.patch),l({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230 ${e.target} \u53C2\u6570 ${e.name}`}))}case"add_property":{let i=Y(t,e.target).filter(k=>k?.name===e.paramName);if(i.length===0)return r("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(i.length>1)return r("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${i.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let a=i[0],c=a.properties??(a.properties=[]),d=D(e.property.name)?e.property.name:void 0,g=D(e.property.propertycode)?e.property.propertycode:void 0,b=c.find(k=>d!==void 0&&k?.name===d||g!==void 0&&k?.propertycode===g);if(b){let k=d!==void 0&&b?.name===d?`name=${d}`:`propertycode=${g}`;return r("DUP_NAME",`\u53C2\u6570 ${e.paramName} \u4E2D\u5DF2\u5B58\u5728 ${k} \u7684\u5C5E\u6027\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`)}let f=e.position??c.length;return c.splice(f,0,e.property),l({message:`\u5DF2\u5728 ${e.target}.${e.paramName} \u7684 position=${f} \u8FFD\u52A0\u5C5E\u6027 ${e.property.name??e.property.propertycode??"(\u672A\u547D\u540D)"}`})}case"remove_property":{let o=D(e.propertyName)?e.propertyName:void 0,i=D(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&i===void 0)return r("INVALID_PARAMS","remove_property \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 propertyName \u6216 propertyCode\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E\uFF08\u5E73\u53F0\u4E0A\u81EA\u5B9A\u4E49\u5B57\u6BB5\u7684 propertycode \u6052\u4E3A\u7A7A\u4E32\uFF09");let c=Y(t,e.target).filter(v=>v?.name===e.paramName);if(c.length===0)return r("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(c.length>1)return r("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${c.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let g=c[0].properties??[],b=v=>o!==void 0&&v?.name===o||i!==void 0&&v?.propertycode===i,f=g.filter(b);if(f.length===0)return r("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(f.length>1)return r("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${f.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let k=g.findIndex(b);return g.splice(k,1),l({message:`\u5DF2\u4ECE ${e.target}.${e.paramName} \u79FB\u9664\u5C5E\u6027 ${e.propertyName??e.propertyCode}`})}case"replace_property":{let o=D(e.propertyName)?e.propertyName:void 0,i=D(e.propertyCode)?e.propertyCode:void 0;if(o===void 0&&i===void 0)return r("INVALID_PARAMS","replace_property \u9700\u63D0\u4F9B\u975E\u7A7A\u7684 propertyName \u6216 propertyCode\uFF08\u4E8C\u9009\u4E00\uFF09\u7528\u4E8E\u5B9A\u4F4D\uFF1B\u7A7A\u5B57\u7B26\u4E32\u4E0D\u80FD\u4F5C\u4E3A\u5B9A\u4F4D\u952E\uFF08\u5E73\u53F0\u4E0A\u81EA\u5B9A\u4E49\u5B57\u6BB5\u7684 propertycode \u6052\u4E3A\u7A7A\u4E32\uFF09");let c=Y(t,e.target).filter(v=>v?.name===e.paramName);if(c.length===0)return r("PARAM_NOT_FOUND",`target=${e.target} \u4E2D\u672A\u627E\u5230 name=${e.paramName} \u7684\u53C2\u6570`);if(c.length>1)return r("DUP_NAME",`name=${e.paramName} \u5728 ${e.target} \u4E2D\u51FA\u73B0 ${c.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let g=c[0].properties??[],b=v=>o!==void 0&&v?.name===o||i!==void 0&&v?.propertycode===i,f=g.filter(b);if(f.length===0)return r("PROP_NOT_FOUND",`\u53C2\u6570 ${e.paramName} \u4E2D\u672A\u627E\u5230\u5339\u914D\u5C5E\u6027`);if(f.length>1)return r("DUP_NAME",`\u5C5E\u6027\u5728\u53C2\u6570 ${e.paramName} \u4E2D\u5339\u914D\u5230 ${f.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let k=g.findIndex(b);return g[k]=e.property,l({message:`\u5DF2\u5728 ${e.target}.${e.paramName} \u66FF\u6362\u5C5E\u6027 ${e.propertyName??e.propertyCode}`})}case"set_meta":{let o=["input","output","operations"].filter(i=>i in e.patch);return o.length>0?r("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),l({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=Q(t);if(o===null)return r("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:i,colKey:a}=q(e.column);if(i!==void 0&&o.some(d=>d?.field===i))return r("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 field=${i} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);if(a!==void 0&&i===void 0&&o.some(d=>d?.column===a))return r("DUP_NAME",`bindcols \u4E2D\u5DF2\u5B58\u5728 column=${a} \u7684\u5217\uFF0C\u65E0\u6CD5\u91CD\u590D\u6DFB\u52A0`);let c=e.position??o.length;return o.splice(c,0,e.column),l({message:`\u5DF2\u5728 bindcols \u7684 position=${c} \u8FFD\u52A0\u5BFC\u51FA\u5217 ${i??a??"(\u672A\u547D\u540D)"}`})}case"remove_export_column":{let{fieldKey:o,colKey:i}=q(e);if(o===void 0&&i===void 0)return r("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=Q(t);if(a===null)return r("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 remove_export_column\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(g=>j(g,o,i));if(c.length===0)return r("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(c.length>1)return r("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00\uFF08field/column \u7EC4\u5408\u4E0D\u8DB3\u4EE5\u552F\u4E00\u5B9A\u4F4D\uFF09`);let d=a.findIndex(g=>j(g,o,i));return a.splice(d,1),l({message:`\u5DF2\u4ECE bindcols \u79FB\u9664\u5BFC\u51FA\u5217 ${o??i}`})}case"replace_export_column":{let{fieldKey:o,colKey:i}=q(e);if(o===void 0&&i===void 0)return r("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=Q(t);if(a===null)return r("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 replace_export_column\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(g=>j(g,o,i));if(c.length===0)return r("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217");if(c.length>1)return r("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`);let d=a.findIndex(g=>j(g,o,i));return a[d]=e.newColumn,l({message:`\u5DF2\u5728 bindcols \u66FF\u6362\u5BFC\u51FA\u5217 ${o??i}`})}case"set_export_column_attrs":{let{fieldKey:o,colKey:i}=q(e);if(o===void 0&&i===void 0)return r("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=Q(t);if(a===null)return r("INVALID_PARAMS","\u5F53\u524D\u4E1A\u52A1\u903B\u8F91\u975E\u5BFC\u51FA\u7C7B\u578B\uFF08actioncategory\u22605\uFF09\uFF0C\u4E0D\u80FD\u4F7F\u7528 set_export_column_attrs\uFF1B\u8BF7\u6539\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58");let c=a.filter(d=>j(d,o,i));return c.length===0?r("PROP_NOT_FOUND","bindcols \u4E2D\u672A\u627E\u5230\u5339\u914D\u7684\u5BFC\u51FA\u5217"):c.length>1?r("DUP_NAME",`\u5BFC\u51FA\u5217\u5339\u914D\u5230 ${c.length} \u4E2A\uFF0C\u4E0D\u552F\u4E00`):(Object.assign(c[0],e.patch),l({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230\u5BFC\u51FA\u5217 ${o??i}`}))}case"set_bind_meta":{if(Q(t)===null)return r("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 r("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 i=t.bindjson;return i?(Object.assign(i,e.patch),l({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A bindjson \u9876\u5C42\u5B57\u6BB5`})):r("INVALID_PARAMS","bindjson \u7F3A\u5931\uFF0C\u65E0\u6CD5\u6267\u884C set_bind_meta")}default:return r("OP_ERROR",`\u672A\u77E5 op \u7C7B\u578B\uFF1A${e.op}`)}}function Et(t){let e=t.map(l=>`ops[${l.index}] ${l.op} (${l.status}): ${l.message??""}`).join(`\n`),n=e.split(`\n`);return n.length<=re?e:`${n.slice(0,re).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${n.length} \u884C\uFF09`}function Tt(t,e){let n=[],l=r=>(r==="input"?t.input:t.output)??[];for(let r=0;r<e.length;r++){let o=e[r];switch(o.op){case"set_meta":for(let[i,a]of Object.entries(o.patch))JSON.stringify(t[i])!==JSON.stringify(a)&&n.push(`ops[${r}] set_meta.${i} \u672A\u751F\u6548`);break;case"add_param":{l(o.target).some(a=>a?.name===o.param.name)||n.push(`ops[${r}] add_param \u53C2\u6570\u672A\u8FFD\u52A0`);break}case"remove_param":{l(o.target).some(a=>a?.name===o.name)&&n.push(`ops[${r}] remove_param \u53C2\u6570\u4ECD\u5B58\u5728`);break}case"set_param_attrs":{let a=l(o.target).find(c=>c?.name===o.name);if(!a){n.push(`ops[${r}] set_param_attrs \u53C2\u6570\u6D88\u5931`);break}for(let[c,d]of Object.entries(o.patch))JSON.stringify(a[c])!==JSON.stringify(d)&&n.push(`ops[${r}] set_param_attrs.${c} \u672A\u751F\u6548`);break}case"add_property":{let a=l(o.target).find(f=>f?.name===o.paramName);if(!a){n.push(`ops[${r}] add_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],d=D(o.property.name)?o.property.name:void 0,g=D(o.property.propertycode)?o.property.propertycode:void 0;c.some(f=>d!==void 0&&f?.name===d||g!==void 0&&f?.propertycode===g)||n.push(`ops[${r}] add_property \u5C5E\u6027\u672A\u8FFD\u52A0`);break}case"remove_property":{let a=l(o.target).find(f=>f?.name===o.paramName);if(!a){n.push(`ops[${r}] remove_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],d=D(o.propertyName)?o.propertyName:void 0,g=D(o.propertyCode)?o.propertyCode:void 0,b=f=>d!==void 0&&f?.name===d||g!==void 0&&f?.propertycode===g;c.some(b)&&n.push(`ops[${r}] remove_property \u5C5E\u6027\u4ECD\u5B58\u5728`);break}case"replace_property":{let a=l(o.target).find(k=>k?.name===o.paramName);if(!a){n.push(`ops[${r}] replace_property \u53C2\u6570\u6D88\u5931`);break}let c=a.properties??[],d=D(o.propertyName)?o.propertyName:void 0,g=D(o.propertyCode)?o.propertyCode:void 0,b=k=>d!==void 0&&k?.name===d||g!==void 0&&k?.propertycode===g,f=c.find(b);if(!f){n.push(`ops[${r}] replace_property \u5C5E\u6027\u6D88\u5931`);break}for(let[k,v]of Object.entries(o.property))JSON.stringify(f[k])!==JSON.stringify(v)&&n.push(`ops[${r}] replace_property.${k} \u672A\u751F\u6548`);break}case"add_export_column":{let i=t.bindjson?.bindcols??[],a=D(o.column.field)?o.column.field:void 0,c=D(o.column.column)?o.column.column:void 0;i.some(g=>j(g,a,c))||n.push(`ops[${r}] add_export_column \u5217\u672A\u8FFD\u52A0`);break}case"remove_export_column":{let i=t.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=q(o);i.some(d=>j(d,a,c))&&n.push(`ops[${r}] remove_export_column \u5217\u4ECD\u5B58\u5728`);break}case"replace_export_column":{let i=t.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=q(o),d=i.find(g=>j(g,a,c));if(!d){n.push(`ops[${r}] replace_export_column \u5217\u6D88\u5931`);break}for(let[g,b]of Object.entries(o.newColumn))JSON.stringify(d[g])!==JSON.stringify(b)&&n.push(`ops[${r}] replace_export_column.${g} \u672A\u751F\u6548`);break}case"set_export_column_attrs":{let i=t.bindjson?.bindcols??[],{fieldKey:a,colKey:c}=q(o),d=i.find(g=>j(g,a,c));if(!d){n.push(`ops[${r}] set_export_column_attrs \u5217\u6D88\u5931`);break}for(let[g,b]of Object.entries(o.patch))JSON.stringify(d[g])!==JSON.stringify(b)&&n.push(`ops[${r}] set_export_column_attrs.${g} \u672A\u751F\u6548`);break}case"set_bind_meta":{let i=t.bindjson;if(!i){n.push(`ops[${r}] set_bind_meta bindjson \u672A\u751F\u6548`);break}for(let[a,c]of Object.entries(o.patch))JSON.stringify(i[a])!==JSON.stringify(c)&&n.push(`ops[${r}] set_bind_meta.${a} \u672A\u751F\u6548`);break}}}return{verified:n.length===0,problems:n}}async function $e(t,e,n,l={}){let r=l.dryRun??!1,o=l.verify??!0,i=(w,y)=>({ok:!1,applied:!1,verified:null,errorCode:w,message:y,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return i("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let a;try{a=(await $({modellogiccode:t})).resp_data}catch(w){return i("FETCH_FAILED",F(w))}if(!a)return i("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${t} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);let c=structuredClone(a),d=[],g=!1;for(let w=0;w<e.length;w++)try{let y=await Dt(c,e[w],w);d.push(y),y.status==="FAILED"&&(g=!0)}catch(y){d.push({index:w,op:e[w].op,status:"FAILED",errorCode:"OP_ERROR",message:F(y)}),g=!0}let b=Et(d);if(g){let w=d.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${d.filter(y=>y.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:d}}if(r)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:d};n.committype==="saverecord"&&(n.msgbody=M(new Date,"YYYY-MM-DD HH:mm")),c.message=JSON.stringify(n);let f;try{let w=await ee(c);f=typeof w?.resp_data=="string"?w.resp_data:JSON.stringify(w?.resp_data??null)}catch(w){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:F(w),diff:b,ops:d}}let k=null,v=f;if(o)try{let y=(await $({modellogiccode:t})).resp_data;if(!y)k=!1,v=`${f} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let O=Tt(y,e);k=O.verified,O.verified||(v=`${f} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${O.problems.join("\uFF1B")}`)}}catch(w){k=!1,v=`${f} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(w)}`}return{ok:k===null?!0:k,applied:!0,verified:k,errorCode:k===!1?"VERIFY_FAILED":"OK",message:v,diff:b,ops:d}}var re=150;function $t(t){let e=t.filter(r=>r.hunk).map(r=>`--- ops[${r.index}]${r.label?` (${r.label})`:""} @ operation[${r.operationIndex}]\n${r.hunk}`);if(e.length===0)return"";let n=e.join(`\n`),l=n.split(`\n`);return l.length<=re?n:`${l.slice(0,re).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${l.length} \u884C\uFF09`}async function jt(t,e){e.committype==="saverecord"&&(e.msgbody=M(new Date,"YYYY-MM-DD HH:mm")),t.message=JSON.stringify(e);try{let n=await ee(t);return{ok:!0,text:typeof n?.resp_data=="string"?n.resp_data:JSON.stringify(n?.resp_data??null)}}catch(n){return{ok:!1,text:F(n)}}}async function je(t,e,n,l={}){let r=l.contextLines??3,o=l.dryRun??!1,i=l.verify??!0,a=(O,A)=>({ok:!1,applied:!1,verified:null,errorCode:O,message:A,lengthBefore:0,lengthAfter:0,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return a("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let c;try{c=(await $({modellogiccode:t})).resp_data}catch(O){return a("FETCH_FAILED",F(O))}if(!c)return a("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${t} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`);if(!c.operations||c.operations.length===0)return a("NO_OPERATIONS","\u8BE5\u4E1A\u52A1\u903B\u8F91\u4E0D\u542B operations\uFF08\u5373\u6CA1\u6709 flycode \u811A\u672C\uFF09\uFF0C\u8BF7\u6539\u7528 save_model_logic \u4FDD\u5B58");let d=c.operations.map(O=>O.templateparams?.flycode??""),g=d.reduce((O,A)=>O+A.length,0),b=ne(d,e,{contextLines:r}),f=$t(b.results),k=b.scripts.reduce((O,A)=>O+A.length,0);if(!b.ok){let O=b.results.filter(H=>H.status==="FAILED"),A=O.map(H=>H.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[${A}]\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:g,lengthAfter:k,diff:f,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:g,lengthAfter:k,diff:f,ops:b.results};for(let O=0;O<b.scripts.length;O++)if(b.scripts[O]!==d[O]){let A=c.operations[O].templateparams;c.operations[O].templateparams={...A??{},flycode:b.scripts[O]}}let v=await jt(c,n);if(!v.ok)return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:v.text,lengthBefore:g,lengthAfter:k,diff:f,ops:b.results};let w=null,y=v.text;if(i)try{let H=((await $({modellogiccode:t})).resp_data?.operations??[]).map(E=>E.templateparams?.flycode??""),L=[];b.results.forEach((E,U)=>{let Z=e[U],he=H[E.operationIndex]??"";Z.newString.length>0&&!he.includes(Z.newString)&&L.push(`ops[${U}] \u7684\u65B0\u5185\u5BB9\u672A\u51FA\u73B0\u5728\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`),!Z.newString.includes(Z.oldString)&&he.includes(Z.oldString)&&L.push(`ops[${U}] \u7684 oldString \u4ECD\u7136\u5B58\u5728\u4E8E\u4FDD\u5B58\u540E\u7684\u811A\u672C\u4E2D`)}),w=L.length===0,L.length>0&&(y=`${v.text} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${L.join("\uFF1B")}`)}catch(O){w=!1,y=`${v.text} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(O)}`}return{ok:w===null?!0:w,applied:!0,verified:w,errorCode:w===!1?"VERIFY_FAILED":"OK",message:y,lengthBefore:g,lengthAfter:k,diff:f,ops:b.results}}var Me=[{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:`\u4FDD\u5B58\u4E00\u6761\u4E1A\u52A1\u903B\u8F91\uFF08\u5B8C\u6574\u5168\u91CF\u4FDD\u5B58\uFF09\u3002\n\n\u3010\u7528\u9014\u8FB9\u754C\u3011\u672C\u5DE5\u5177\u53EA\u9002\u5408\u4EE5\u4E0B\u4E24\u7C7B\u573A\u666F\uFF0C\u5176\u4F59\u8BF7\u6539\u7528\u53E6\u4E24\u4E2A\u5DE5\u5177\uFF1A\n\u2460 \u65B0\u589E\u4E1A\u52A1\u903B\u8F91\uFF08\u6700\u5E38\u89C1\uFF09\uFF1A\u9996\u6B21\u521B\u5EFA\u4E00\u6761\u4E1A\u52A1\u903B\u8F91\u65F6\uFF0C\u56DE\u4F20\u4ECE get_model_logic \u6A21\u677F\u6784\u9020\u6216\u65B0\u5EFA\u7684\u5B8C\u6574 LogicResult \u5BF9\u8C61\uFF08\u542B flycode \u811A\u672C\u3001input/output\u3001\u6807\u9898\u7B49\uFF09\uFF1B\n\u2461 \u5DF2\u6709\u903B\u8F91\u7684\u3010\u5168\u91CF JSON \u5F88\u5C0F\u3011\u65F6\uFF08\u5178\u578B\u5982\u5FAE\u670D\u52A1 actioncategory=2\uFF0CJSON \u5F80\u5F80\u53EA\u6709\u51E0\u884C\uFF09\u2014\u2014patch_model_logic / str_replace_flycode \u90FD\u6CA1\u6709\u9488\u5BF9\u5FAE\u670D\u52A1\u7684\u4E13\u7528 op\uFF0C\u76F4\u63A5\u7528\u672C\u5DE5\u5177\u5168\u91CF\u4FDD\u5B58\u66F4\u7701\u4E8B\u3002\n\u7F16\u8F91\u666E\u901A flycode \u63A5\u53E3\uFF08JSON \u8F83\u5927\uFF09\u7684\u5DF2\u6709\u903B\u8F91\u65F6\uFF0C\u8BF7\u52FF\u56DE\u4F20\u6574\u4EFD\u5BF9\u8C61\uFF1A\u6539 flycode \u811A\u672C\u8BF7\u7528 str_replace_flycode\uFF1B\u6539 input/output \u7ED3\u6784\u6216\u9876\u5C42\u5143\u6570\u636E\u8BF7\u7528 patch_model_logic\u3002\u6574\u4EFD LogicResult \u56DE\u4F20\u4E0A\u4E0B\u6587\u5360\u7528\u6781\u5927\u4E14\u6613\u56E0\u8D85\u957F\u88AB\u622A\u65AD\u3002\n\n\u4F20\u5165\u4ECE get_model_logic \u67E5\u8BE2\u5F97\u5230\u7684\u5B8C\u6574 LogicResult \u5BF9\u8C61\uFF0C\u6309\u9700\u4FEE\u6539\u5176\u4E2D\u7684 flycode \u811A\u672C\uFF08operations[].templateparams.flycode\uFF09\u3001\u8F93\u5165\u8F93\u51FA\u53C2\u6570\uFF08input/output\uFF09\u6216\u6807\u9898\u540E\u56DE\u4F20\uFF0C\u5E76\u9644\u5E26\u63D0\u4EA4\u4FE1\u606F commitMessage\u3002\u670D\u52A1\u7AEF\u6309 overwrite=false \u4FDD\u5B58\uFF08\u4E0D\u8986\u76D6\u4ED6\u4EBA\u6700\u65B0\u7248\u672C\uFF09\u3002\n\n\u3010\u6784\u9020 LogicResult \u7684\u679A\u4E3E\u901F\u67E5\u3011\uFF08\u5B57\u6BB5\u542B\u4E49\u4E0E get_model_logic \u8FD4\u56DE\u4E00\u81F4\uFF0C\u539F\u6837\u56DE\u4F20\u5373\u53EF\uFF09\n- actioncategory\uFF08\u884C\u4E3A\u7C7B\u578B\uFF09\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\n- actiontype\uFF08\u64CD\u4F5C\u7C7B\u578B\uFF09\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\n- execmode\uFF08\u6267\u884C\u65B9\u5F0F\uFF09\uFF1A1-\u540C\u6B65\uFF1B2-\u5F02\u6B65\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\n- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E\n- input/output[].datatype\uFF08\u53C2\u6570\u5F62\u6001\uFF09\uFF1A0-\u5355\u5B9E\u4F53\uFF1B1-\u6570\u7EC4\n- input/output[].properties[].propertytypecode\uFF08\u5B57\u6BB5\u7C7B\u578B\uFF09\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)`,inputSchema:{logic:Ce.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:z.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:h.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:n}=t,l=V(n);try{let r=await Te(e,l);return{content:[{type:"text",text:r}],structuredContent:{result:r}}}catch(r){let o=F(r);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\u7ED3\u6784\u5316\u8865\u4E01\uFF08delta ops\uFF09\u5C40\u90E8\u4FEE\u6539\u4E1A\u52A1\u903B\u8F91\u7684 input / output \u7ED3\u6784\u6216\u9876\u5C42\u5143\u6570\u636E\uFF0C\u65E0\u9700\u56DE\u4F20\u5B8C\u6574 LogicResult\uFF0C\u5927\u5E45\u8282\u7701\u4E0A\u4E0B\u6587\u3002MCP \u4F1A\u5148\u6309 modellogiccode \u62C9\u53D6\u6700\u65B0\u5B8C\u6574\u5BF9\u8C61\uFF0C\u5728\u5185\u5B58\u526F\u672C\u4E0A\u6309 ops \u987A\u5E8F\u5408\u5E76\uFF0C\u518D\u4E00\u6B21\u6027\u5168\u91CF\u4FDD\u5B58\uFF08\u670D\u52A1\u7AEF\u4EC5\u63D0\u4F9B\u5168\u91CF\u8986\u76D6\u4FDD\u5B58\u63A5\u53E3\uFF09\u3002\n\n\u3010\u9002\u7528\u8303\u56F4\u3011\n- \u6539 input / output \u7ED3\u6784\uFF1A\u589E\u5220\u53C2\u6570\uFF08add_param / remove_param\uFF09\u3001\u6539\u53C2\u6570\u5C5E\u6027\uFF08set_param_attrs\uFF09\u3001\u589E\u5220\u6539\u53C2\u6570\u5185\u5B57\u6BB5\uFF08add_property / remove_property / replace_property\uFF09\n- \u6539\u9876\u5C42\u5143\u6570\u636E\uFF1A\u6807\u9898 / \u63CF\u8FF0 / actiontype / execmode / functionname / marktype \u7B49\uFF08set_meta\uFF09\n- \u6539\u5BFC\u51FA\u5217\uFF08\u4EC5 actioncategory=5 \u5BFC\u51FA\u7C7B\uFF09\uFF1A\u589E\u5220\u6539\u5BFC\u51FA\u5217\uFF08add_export_column / remove_export_column / replace_export_column / set_export_column_attrs\uFF09\u3001\u5B89\u5168\u6539 bindjson \u9876\u5C42\uFF08set_bind_meta\uFF09\n- \u6539 flycode \u811A\u672C\u4E0D\u5728\u6B64\u5DE5\u5177\u8303\u56F4\u5185\uFF0C\u8BF7\u7528 str_replace_flycode\n- \u5FAE\u670D\u52A1\uFF08actioncategory=2\uFF09JSON \u5F88\u5C0F\uFF0C\u4E14\u672C\u5DE5\u5177\u65E0\u5BF9\u5E94 op\uFF0C\u8BF7\u76F4\u63A5\u7528 save_model_logic \u5168\u91CF\u4FDD\u5B58\n\n\u301012 \u7C7B ops \u901F\u67E5\u3011\ninput / output \u7ED3\u6784\u7C7B\uFF086 \u7C7B\uFF09\uFF1A\n- add_param\uFF1A\u5411 input / output \u8FFD\u52A0\u4E00\u6761\u53C2\u6570\uFF08\u589E\u52A0\u4E00\u4E2A input / \u589E\u52A0\u4E00\u4E2A output\uFF09\uFF0Cparam \u4E3A\u5355\u6761 LogicParameters \u5BF9\u8C61\n- remove_param\uFF1A\u6309 name \u4ECE input / output \u5220\u9664\u6574\u6761\u53C2\u6570\uFF08\u5220\u9664\u4E00\u4E2A input / output\uFF09\n- set_param_attrs\uFF1A\u6309 name \u5B9A\u4F4D\u53C2\u6570\uFF0C\u6D45\u5408\u5E76\u5176\u9876\u5C42\u5C5E\u6027\uFF08\u5982 datatype / objectcode / objectname\uFF09\n- add_property\uFF1A\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\uFF0Cproperty \u4E3A\u5355\u6761 LogicParameterProperties \u5BF9\u8C61\n- remove_property\uFF1A\u4ECE\u6307\u5B9A\u53C2\u6570\u7684 properties[] \u5220\u9664\u4E00\u4E2A\u5B57\u6BB5\uFF0C\u6309 propertyName \u6216 propertyCode \u5B9A\u4F4D\uFF08\u4E8C\u9009\u4E00\uFF09\n- replace_property\uFF1A\u6309 propertyName / propertyCode \u5B9A\u4F4D\u5E76\u6574\u4F53\u66FF\u6362\u4E00\u4E2A\u5B57\u6BB5\n\u5143\u6570\u636E\u7C7B\uFF081 \u7C7B\uFF09\uFF1A\n- set_meta\uFF1A\u6D45\u5408\u5E76\u9876\u5C42\u4E1A\u52A1\u903B\u8F91\u5143\u6570\u636E\uFF1B\u4E0D\u80FD\u542B input / output / operations\uFF08\u90A3\u4E09\u7C7B\u8BF7\u7528\u5BF9\u5E94\u7684 param / property op\uFF09\n\u5BFC\u51FA\u5217\u7C7B\uFF08\u4EC5 actioncategory=5\uFF0C5 \u7C7B\uFF09\uFF1A\n- add_export_column\uFF1A\u5411 bindjson.bindcols \u8FFD\u52A0\u4E00\u5217\uFF0Ccolumn \u4E3A\u5355\u6761 LogicBindColumn \u5BF9\u8C61\uFF08\u5EFA\u8BAE\u81F3\u5C11\u5E26 field\uFF09\n- remove_export_column\uFF1A\u6309 field \u6216 column \u5220\u9664\u4E00\u5217\uFF08\u4E8C\u9009\u4E00\uFF09\n- replace_export_column\uFF1A\u6309 field / column \u5B9A\u4F4D\u5E76\u6574\u4F53\u66FF\u6362\u4E00\u5217\uFF0CnewColumn \u4E3A\u65B0\u7684\u5B8C\u6574\u5217\u5BF9\u8C61\n- set_export_column_attrs\uFF1A\u6309 field / 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\uFF1B\u4E0D\u6539 field\uFF09\n- set_bind_meta\uFF1A\u5B89\u5168\u6D45\u5408\u5E76 bindjson \u9876\u5C42\uFF08\u5982 logicname\uFF09\uFF0C\u4E0D\u5F71\u54CD bindcols\uFF1B\u4E0D\u80FD\u542B bindcols\n\n\u3010\u4E8B\u52A1\u6027\u3011ops \u5177\u5907\u4E8B\u52A1\u6027\uFF1A\u5168\u90E8 op \u9884\u6F14\u6210\u529F\u624D\u4F1A\u843D\u5E93\uFF0C\u4EFB\u4E00 op \u5931\u8D25\uFF08PARAM_NOT_FOUND / PROP_NOT_FOUND / DUP_NAME / INVALID_PARAMS\uFF09\u5219\u6574\u6279\u4E2D\u6B62\u3001\u96F6\u5199\u5165\u56DE\u6EDA\u3002\u6574\u6279\u53EA\u53D1\u8D77\u4E00\u6B21\u4FDD\u5B58\u8BF7\u6C42\uFF08overwrite=false\uFF0C\u4E0D\u8986\u76D6\u4ED6\u4EBA\u6700\u65B0\u7248\u672C\uFF09\u3002\n\n\u3010\u5B9A\u4F4D\u7EA6\u5B9A\u3011add_param / set_param_attrs / \u5404 property op \u5747\u4EE5 name\uFF08\u6216 propertyCode\uFF09\u5B9A\u4F4D\uFF0C\u5047\u8BBE\u540C\u4E00 target \u5185 name \u552F\u4E00\uFF1B\u82E5\u540C\u540D\u4F1A\u62A5 DUP_NAME \u5E76\u62D2\u7EDD\u3002\u5404 export op \u4EE5 field\uFF08\u4F18\u5148\uFF09\u6216 column \u5B9A\u4F4D\uFF0C\u5047\u8BBE\u80FD\u552F\u4E00\u5B9A\u4F4D\uFF1B\u82E5\u5339\u914D\u5230\u591A\u4E2A\u4F1A\u62A5 DUP_NAME \u5E76\u62D2\u7EDD\u3002\n\n\u3010\u7A7A\u5B57\u7B26\u4E32\u4E0D\u662F\u5B9A\u4F4D\u952E\u3011\u81EA\u5B9A\u4E49\u5B57\u6BB5\uFF08\u672A\u6302\u5230\u5B9E\u4F53\u5B57\u6BB5\u4E0A\u7684\u5C5E\u6027\uFF09\u7684 propertycode / objectcode \u6052\u4E3A\u7A7A\u5B57\u7B26\u4E32 ""\uFF1B\u5BFC\u51FA\u5217\uFF08bindjson.bindcols \u9879\uFF09\u7684 field \u4E5F\u53EF\u80FD\u4E3A\u7A7A\u4E32\u3002\u7A7A\u4E32\u4E00\u5F8B\u89C6\u4E3A\u300C\u672A\u63D0\u4F9B\u8BE5\u952E\u300D\uFF0C\u4E0D\u53C2\u4E0E\u5339\u914D\u4E0E\u5224\u91CD\u2014\u2014\u56E0\u6B64\u5220\u9664/\u66FF\u6362\u65F6\u82E5\u53EA\u4F20\u4E86 column \u800C field \u4E3A\u7A7A\uFF0C\u7CFB\u7EDF\u53EA\u6309 column \u5339\u914D\uFF0C\u4E0D\u4F1A\u4E0E\u6240\u6709\u7A7A field \u7684\u5217\u8BEF\u5339\u914D\u3002\n\n\u3010\u5BFC\u51FA op \u4EC5\u5BFC\u51FA\u7C7B\u578B\u53EF\u7528\u3011add_export_column / remove_export_column / replace_export_column / set_export_column_attrs / set_bind_meta \u4EC5 actioncategory=5 \u5BFC\u51FA\u7C7B\u53EF\u7528\uFF1B\u82E5\u5BF9\u5FAE\u670D\u52A1 / \u666E\u901A flycode \u8C03\u7528\u4F1A\u62A5 INVALID_PARAMS \u5E76\u5F15\u5BFC\u6539\u7528 save_model_logic\u3002**\u5207\u52FF\u7528 set_meta \u53BB\u78B0 bindjson**\u2014\u2014set_meta \u4F1A\u6574\u4F53\u8986\u76D6\u9876\u5C42\u5B57\u6BB5\u3001\u53EF\u80FD\u4E22\u5931\u5BFC\u51FA\u5217\u5B9A\u4E49\uFF1B\u6539 bindjson \u8BF7\u7528 set_bind_meta\uFF08\u81EA\u52A8\u6392\u9664 bindcols\uFF09\u3002\n\n\u3010DUP_NAME \u7684\u6B63\u786E\u8BFB\u6CD5\u3011\u62A5\u300C\u5DF2\u5B58\u5728\u300D\u65F6\u6D88\u606F\u4F1A\u660E\u786E\u6307\u660E\u547D\u4E2D\u4E86\u54EA\u4E00\u4E2A\u952E\uFF08name=xxx \u6216 propertycode=xxx\uFF09\u3002\u8BF7\u636E\u6B64\u76F4\u63A5\u6838\u5BF9\uFF0C**\u4E0D\u8981\u81C6\u6D4B\u4E3A\u5E73\u53F0\u81EA\u52A8\u540C\u6B65\u6216\u5916\u90E8\u6539\u52A8**\u2014\u2014\u672C\u5DE5\u5177\u53EA\u6309\u4E0A\u8FF0\u89C4\u5219\u5728\u670D\u52A1\u7AEF\u6700\u65B0\u6570\u636E\u4E0A\u5224\u5B9A\uFF0C\u4E0D\u4F1A\u51ED\u7A7A\u8BA4\u5B9A\u5B57\u6BB5\u5DF2\u5B58\u5728\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u65F6\u5EFA\u8BAE\u5148 dryRun=true \u9884\u89C8\u6458\u8981\u3002`,inputSchema:{modellogiccode:h.string().describe("\u76EE\u6807\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:h.array(Ie).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:z.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:h.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:h.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:h.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:h.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:h.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:h.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:h.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:h.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:h.array(h.object({index:h.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:h.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:h.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:h.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801\uFF1AOK / PARAM_NOT_FOUND / PROP_NOT_FOUND / DUP_NAME / INVALID_PARAMS / OP_ERROR"),message:h.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:n,dryRun:l=!1,verify:r=!0}=t,o=t.ops,i=V(n);try{let a=await $e(e,o,i,{dryRun:l,verify:r});return{isError:!a.ok,content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a}}catch(a){let c=F(a);return{isError:!0,content:[{type:"text",text:c}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:c,diff:"",ops:[]}}}}},{name:"str_replace_flycode",config:{title:"\u6279\u91CF\u5C40\u90E8\u66FF\u6362 flycode \u811A\u672C",description:`\u4EE5 str_replace_editor \u6A21\u5F0F\u5C40\u90E8\u4FEE\u6539\u4E1A\u52A1\u903B\u8F91\u7684 flycode \u811A\u672C\uFF1A\u53EA\u9700\u4F20\u5165\u8981\u6539\u52A8\u7684\u65B0\u65E7\u4EE3\u7801\u7247\u6BB5\uFF08oldString / newString\uFF09\uFF0C\u4E0D\u5FC5\u56DE\u4F20\u6574\u4EFD\u811A\u672C\uFF0C\u7531\u670D\u52A1\u7AEF\u62C9\u53D6\u5B8C\u6574\u5BF9\u8C61\u540E\u5B8C\u6210\u5B9A\u4F4D\u4E0E\u66FF\u6362\uFF0C\u5927\u5E45\u8282\u7701\u4E0A\u4E0B\u6587\u3002\n\n\u3010\u4F55\u65F6\u7528\u672C\u5DE5\u5177 / \u4F55\u65F6\u7528\u522B\u7684\u3011\n- \u6539 1~N \u5904\u5C40\u90E8\u7247\u6BB5\uFF08\u6700\u5E38\u7528\uFF09\u2192 \u672C\u5DE5\u5177\uFF0C\u4E00\u6B21\u8C03\u7528\u53EF\u6279\u91CF\u63D0\u4EA4\u591A\u4E2A ops\uFF08oldString / newString\uFF09\n- \u6574\u4EFD\u811A\u672C\u91CD\u5199\u3001\u5927\u8303\u56F4\u91CD\u6784 \u2192 \u672C\u5DE5\u5177 + \u5355\u4E2A op \u7F6E rewrite=true\uFF08\u53EA\u4F20 newString\uFF0C\u4E0D\u5FC5\u56DE\u4F20\u65E7\u5168\u6587\uFF0C\u7701\u4E0A\u4E0B\u6587\uFF09\n- \u6539 input / output \u7ED3\u6784\uFF08\u589E\u5220\u53C2\u6570\u3001\u589E\u5220\u5B57\u6BB5\u3001\u6539\u5C5E\u6027\uFF09\u2192 patch_model_logic\n- \u6539\u9876\u5C42\u5143\u6570\u636E\uFF08\u6807\u9898 / \u63CF\u8FF0 / actiontype \u7B49\uFF09\u2192 patch_model_logic\n- \u521B\u5EFA\u4E00\u6761\u5168\u65B0\u7684\u4E1A\u52A1\u903B\u8F91 \u2192 save_model_logic\uFF08\u65B0\u589E\u573A\u666F\uFF09\n- \u5DF2\u6709\u903B\u8F91\u5168\u91CF JSON \u5F88\u5C0F\uFF08\u5982\u5FAE\u670D\u52A1 actioncategory=2\uFF09\u2192 save_model_logic \u5168\u91CF\u4FDD\u5B58\uFF08patch_model_logic \u4E0E\u672C\u5DE5\u5177\u5747\u65E0\u5BF9\u5E94 op\uFF09\n\n\u3010\u4E8B\u52A1\u6027\u3011ops \u5177\u5907\u4E8B\u52A1\u6027\uFF1A\u5168\u90E8 op \u9884\u6F14\u6210\u529F\u624D\u4F1A\u843D\u5E93\uFF0C\u4EFB\u4E00 op \u5931\u8D25\u5219\u6574\u6279\u4E2D\u6B62\u3001\u4E0D\u4EA7\u751F\u4EFB\u4F55\u5199\u5165\uFF08\u96F6\u5199\u5165\u56DE\u6EDA\uFF09\u3002\u5B9E\u73B0\u4E0A\u6574\u6279\u53EA\u53D1\u8D77\u4E00\u6B21\u4FDD\u5B58\u8BF7\u6C42\uFF0C\u4E0D\u5B58\u5728\u5199\u4E00\u534A\u7684\u4E2D\u95F4\u6001\u3002\n\n\u3010\u6267\u884C\u987A\u5E8F\u3011ops \u6309\u6570\u7EC4\u987A\u5E8F\u4F9D\u6B21\u6267\u884C\uFF0Cops[i+1] \u5728 ops[i] \u7684\u7ED3\u679C\u4E0A\u5339\u914D\uFF0C\u56E0\u6B64\u5141\u8BB8\u300C\u5148\u63D2\u5165\u4E00\u6BB5\u4EE3\u7801\uFF0C\u518D\u6539\u8FD9\u6BB5\u91CC\u7684\u67D0\u884C\u300D\u8FD9\u7C7B\u4F9D\u8D56\uFF1B\u53CD\u4E4B\u82E5 ops[i+1] \u7684\u539F\u6587\u5DF2\u88AB ops[i] \u5220\u9664\uFF0C\u5219\u62A5 NOT_FOUND \u5E76\u6574\u6279\u4E2D\u6B62\u3002\n\n\u3010oldString \u4E66\u5199\u8981\u6C42\uFF08\u51B3\u5B9A\u6210\u8D25\uFF0C\u4EC5 partial \u6A21\u5F0F\uFF09\u3011\n- partial \u6A21\u5F0F\uFF08rewrite \u975E true\uFF09\u4E0B oldString \u5FC5\u987B\u975E\u7A7A\uFF0C\u4E14\u5728\u76EE\u6807\u811A\u672C\u4E2D\u552F\u4E00\u547D\u4E2D\uFF08\u5426\u5219\u62A5 NOT_UNIQUE\uFF09\n- \u63A8\u8350 3~10 \u884C\uFF0C\u52A1\u5FC5\u5305\u542B\u4E00\u5904\u80FD\u533A\u5206\u4E8E\u5176\u4ED6\u4F4D\u7F6E\u7684\u4E0A\u4E0B\u6587\uFF1B\u592A\u77ED\u5BB9\u6613\u591A\u547D\u4E2D\n- \u76F4\u63A5\u4ECE\u67E5\u8BE2\u5230\u7684\u811A\u672C\u539F\u6587\u91CC\u590D\u5236\uFF0C\u4E0D\u8981\u51ED\u8BB0\u5FC6\u91CD\u5199\uFF1B\u7F29\u8FDB\u3001\u7A7A\u884C\u3001\u6362\u884C\u90FD\u8981\u4E00\u81F4\n- \u5339\u914D\u9ED8\u8BA4\u5BB9\u5FCD\u6362\u884C\u7B26\u5DEE\u5F02\uFF08CRLF / LF\uFF09\u4E0E\u884C\u5C3E\u7A7A\u767D\u5DEE\u5F02\uFF1B\u9700\u8981\u5B57\u8282\u4E25\u683C\u76F8\u7B49\u65F6\u628A matchMode \u8BBE\u4E3A exact\n- \u547D\u4E2D\u591A\u5904\u7684\u76F8\u540C\u7247\u6BB5\uFF1A\u7528 occurrence \u6307\u5B9A\u6539\u7B2C\u51E0\u5904\uFF0C\u6216 replaceAll=true \u5168\u90E8\u66FF\u6362\n- \u6574\u4EFD\u91CD\u5199\u8BF7\u6539\u7528 rewrite=true\uFF08\u4EC5\u4F20 newString\uFF09\uFF0C\u4E0D\u8981\u4E3A oldString \u586B\u6574\u6BB5\u539F\u6587\u2014\u2014\u90A3\u4F1A\u628A\u521A\u8BFB\u5230\u7684\u65E7\u5168\u6587\u53C8\u56DE\u4F20\u4E00\u904D\uFF0C\u6D6A\u8D39\u4E0A\u4E0B\u6587\n\n\u3010\u5931\u8D25\u540E\u7684\u81EA\u7EA0\u3011\u8FD4\u56DE\u4F53\u4E2D ops[].message \u8BF4\u660E\u539F\u56E0\uFF1BNOT_FOUND \u65F6 ops[].suggestions \u4F1A\u7ED9\u51FA\u6700\u76F8\u4F3C\u7684\u5019\u9009\uFF08\u542B\u884C\u53F7\u4E0E\u76F8\u4F3C\u5EA6\uFF09\uFF0C\u636E\u6B64\u4FEE\u6B63 oldString \u540E\u91CD\u8BD5\u5373\u53EF\u3002\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u662F\u5426\u552F\u4E00\u65F6\uFF0C\u5EFA\u8BAE\u5148 dryRun=true \u9884\u89C8 diff \u518D\u6B63\u5F0F\u63D0\u4EA4\u3002`,inputSchema:{modelLogicCode:h.string().describe("\u8981\u4FEE\u6539\u7684\u4E1A\u52A1\u903B\u8F91\u7684\u7F16\u7801\uFF08\u5373 get_model_logic \u8FD4\u56DE\u7684 modellogiccode\uFF09"),ops:h.array(h.object({oldString:h.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:h.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:h.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:h.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:h.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:h.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:h.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:h.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:z.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:h.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:h.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:h.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:h.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:h.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:h.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:h.string().describe("\u9519\u8BEF\u7801\uFF1AOK / DRY_RUN / EMPTY_OPS / FETCH_FAILED / NO_OPERATIONS / OPS_FAILED / SAVE_FAILED / VERIFY_FAILED"),message:h.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),lengthBefore:h.coerce.number().describe("\u66FF\u6362\u524D\u811A\u672C\u603B\u5B57\u7B26\u6570"),lengthAfter:h.coerce.number().describe("\u66FF\u6362\u540E\u811A\u672C\u603B\u5B57\u7B26\u6570"),diff:h.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:h.array(h.object({index:h.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),label:h.string().nullable().describe("\u8C03\u7528\u65B9\u4F20\u5165\u7684\u6807\u8BC6"),status:h.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:h.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:h.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),operationIndex:h.coerce.number().describe("\u5B9E\u9645\u4F5C\u7528\u7684 operation \u4E0B\u6807"),matchCount:h.coerce.number().describe("oldString \u7684\u5339\u914D\u603B\u6570"),replacedCount:h.coerce.number().describe("\u5B9E\u9645\u66FF\u6362\u7684\u5904\u6570"),range:h.object({startOffset:h.coerce.number().describe("\u8D77\u59CB\u5B57\u7B26\u504F\u79FB"),endOffset:h.coerce.number().describe("\u7ED3\u675F\u5B57\u7B26\u504F\u79FB\uFF08\u4E0D\u542B\uFF09"),startLine:h.coerce.number().describe("\u8D77\u59CB\u884C\u53F7\uFF0C1-based"),endLine:h.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:h.array(h.object({startLine:h.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:h.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:h.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:h.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:h.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:n,commitMessage:l,dryRun:r=!1,contextLines:o=3,verify:i=!0}=t,a=V(l);try{let c=await je(e,n,a,{dryRun:r,contextLines:o,verify:i});return{isError:!c.ok,content:[{type:"text",text:JSON.stringify({ok:c.ok,applied:c.applied,verified:c.verified,errorCode:c.errorCode,message:c.message,ops:c.ops.map(d=>({index:d.index,status:d.status,errorCode:d.errorCode,message:d.message,operationIndex:d.operationIndex,matchCount:d.matchCount,replacedCount:d.replacedCount,range:d.range,suggestions:d.suggestions,dependentOnFailedOp:d.dependentOnFailedOp})),diff:c.diff})}],structuredContent:c}}catch(c){let d=F(c);return{isError:!0,content:[{type:"text",text:d}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:d,lengthBefore:0,lengthAfter:0,diff:"",ops:[]}}}}}];import{z as N}from"zod";function He(t){return P({url:"/bizserv/biz/pageList",method:"post",data:t,type:"tenant"})}function Ue(t){return P({url:"/bizserv/biz/getBizObject",method:"post",data:t,type:"tenant"})}import{z as _}from"zod";var Mt=_.array(_.object({columnname:_.string().optional().nullable().describe("\u5C5E\u6027\u5217\u7684\u5217\u540D\uFF0C\u5373\u6570\u636E\u5E93\u8868\u7684\u5B57\u6BB5\u7684\u540D\u5B57"),idxtype:_.union([_.string(),_.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:_.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:_.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),propertycategorycode:_.string().optional().nullable().describe("\u5C5E\u6027\u7C7B\u522B\u7F16\u7801"),propertycode:_.string().optional().nullable().describe("\u5C5E\u6027\u7F16\u7801\uFF0C\u552F\u4E00\u6807\u8BC6\u4E00\u4E2A\u5C5E\u6027"),propertydescr:_.string().optional().nullable().describe("\u5C5E\u6027\u63CF\u8FF0"),propertyname:_.string().optional().nullable().describe("\u5C5E\u6027\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),propertytypecode:_.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:_.union([_.string(),_.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:_.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:_.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:_.union([_.string(),_.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:_.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:_.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:_.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:_.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:_.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(_.unknown())),Ht={confsource:_.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:_.union([_.string(),_.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:_.union([_.string(),_.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:_.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),marktype:_.string().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),message:_.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:_.union([_.string(),_.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:_.string().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:_.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:_.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:_.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:_.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801\u3002\u4EC5\u6570\u636E\u5B57\u5178\u5B9E\u4F53\u8FD4\u56DE"),objecttypecode:_.union([_.string(),_.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:_.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode\u3002\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u4E0D\u8FD4\u56DE"),properties:Mt.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:_.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),script:_.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:_.union([_.string(),_.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:_.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:_.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u5E8F\u53F7\u3002\u4EC5\u89C6\u56FE/\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u8FD4\u56DE"),tablename:_.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D")},ze=_.looseObject(Ht);var Ve=[{name:"page_entity_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u5B9E\u4F53",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u5B9E\u4F53\u5217\u8868\u3002\u9002\u7528\u4E8E\u67E5\u627E\u4E1A\u52A1\u5BF9\u8C61\uFF08\u8868\uFF09\u53CA\u5176\u5143\u4FE1\u606F\u3002\n\n\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 datapattern \u4F20 "3" \u8868\u793A\u89C6\u56FE\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF0C\u90E8\u5206\u5B9E\u4F53\u7C7B\u578B\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF09\n- datapattern\uFF08\u5B9E\u4F53\u7C7B\u578B\uFF09\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\n- objecttypecode\uFF08\u5B9E\u4F53\u5206\u7C7B\uFF09\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53\n- objectcatgory\uFF08\u662F\u5426\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u662F\uFF1B2-\u5426\n- status\uFF08\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\n- publishstatus\uFF08\u53D1\u5E03\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E\n- hasoffline\uFF08\u662F\u5426\u6709\u79BB\u7EBF\u8BBE\u7F6E\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u6709\uFF1B0-\u65E0`,inputSchema:{objectname:N.string().optional().describe("\u5B9E\u4F53\u4E2D\u6587\u540D\u3001\u5B9E\u4F53\u8868\u540D\u3001\u5B9E\u4F53 objectcode \u6A21\u7CCA\u5339\u914D"),page:N.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:N.string().optional().describe("\u5206\u9875\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),updatetimestart:N.string().optional().describe("\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),updatetimeend:N.string().optional().describe("\u4FEE\u6539\u7ED3\u675F\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1Ayyyy-MM-dd hh:mm:ss\uFF0C\u548C\u4FEE\u6539\u5F00\u59CB\u65F6\u95F4\u6210\u5BF9\u51FA\u73B0"),datapattern:N.string().optional().describe("\u5B9E\u4F53\u7C7B\u578B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53"),objecttypecode:N.string().optional().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53")},outputSchema:{data:N.array(N.object({confsource:N.coerce.number().optional().nullable().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),createaccountcode:N.coerce.number().optional().nullable().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7 code"),createaccountname:N.string().optional().nullable().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),createtime:N.string().optional().nullable().describe("\u521B\u5EFA\u65F6\u95F4"),datapattern:N.coerce.number().optional().nullable().describe("\u6570\u636E\u6A21\u5F0F\uFF0C\u542B\u4E49\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\u3002\u539F\u751F\u5B9E\u4F53\uFF1A\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF1B\u884D\u751F\u3001\u89C6\u56FE\uFF1A\u4E0D\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF1B\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\uFF1A\u9700\u8981\u5728\u6570\u636E\u5E93\u771F\u6B63\u521B\u5EFA\u8868\uFF0C\u4F46\u662F\u662F\u5E73\u53F0\u6839\u636E\u7528\u6237\u7684\u914D\u7F6E\u81EA\u52A8\u521B\u5EFA\u7684\uFF0C\u8868\u540D\u65E0\u542B\u4E49"),directorytypecode:N.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:N.string().optional().nullable().describe("\u5B9E\u4F53\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),hasoffline:N.string().optional().nullable().describe("\u5B9E\u4F53\u662F\u5426\u6709\u79BB\u7EBF\u8BBE\u7F6E\uFF0C1-\u6709\uFF1B0-\u65E0"),marktype:N.coerce.number().optional().nullable().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:N.string().optional().nullable().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C objectcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectcatgory:N.coerce.number().optional().nullable().describe("\u5BF9\u8C61\u7C7B\u522B\uFF0C\u8868\u793A\u662F\u5426\u4E3A\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF0C1-\u662F\uFF1B2-\u5426"),objectcode:N.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u7F16\u7801\uFF0C\u548C metamodelcode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),objectdescr:N.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u63CF\u8FF0"),objectmark:N.string().optional().nullable().describe("\u5B9E\u4F53\u6807\u8BB0\uFF0C\u4E00\u822C\u548C\u6570\u636E\u5E93\u8868\u540D\u540C\u540D\uFF0C\u5B57\u5178\u7C7B\u578B\u7684\u5B9E\u4F53\u6709\u81EA\u5DF1\u7684\u6807\u8BB0"),objectname:N.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u4E2D\u6587\u540D\uFF0C\u4FBF\u4E8E\u9605\u8BFB"),objecttemplatecode:N.string().optional().nullable().describe("\u5B9E\u4F53\u7684\u6A21\u677F\u7F16\u7801"),objecttypecode:N.string().optional().nullable().describe("\u5B9E\u4F53\u5206\u7C7B\uFF0C\u6574\u6570\uFF0C\u542B\u4E49\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53"),parentobjectcode:N.string().optional().nullable().describe("\u7236\u5B9E\u4F53\u7684 objectcode"),publishstatus:N.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u53D1\u5E03\u72B6\u6001\uFF0C1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03"),status:N.coerce.number().optional().nullable().describe("\u5B9E\u4F53\u7684\u72B6\u6001\uFF0C1-\u542F\u7528\uFF1B2-\u505C\u7528"),tablename:N.string().optional().nullable().describe("\u6570\u636E\u5E93\u8868\u540D"),updateaccountcode:N.coerce.number().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:N.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),updatetime:N.string().optional().nullable().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4")}).catchall(N.unknown())).describe("\u8FD9\u4E00\u9875\u7684\u4E1A\u52A1\u6570\u636E"),pageCount:N.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:N.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:N.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:N.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{objectname:e="",page:n=1,rows:l=20,updatetimestart:r="",updatetimeend:o="",datapattern:i="",objecttypecode:a=""}=t;try{let c=await He({centercode:"",directorytypecode:"rootNode",starttime:"",objectname:e,page:Number(n)||1,rows:Number(l)||20,updatetimestart:r,updatetimeend:o,datapattern:i,objecttypecode:a});return C(c.resp_data)}catch(c){return I(c)}}},{name:"get_entity",config:{title:"\u67E5\u8BE2\u5B9E\u4F53\u8BE6\u60C5",description:`\u6839\u636E\u5B9E\u4F53\u7684\u7F16\u7801 objectcode \u67E5\u8BE2\u5176\u5B8C\u6574\u8BE6\u60C5\uFF1A\u5305\u542B\u5B9E\u4F53\u7684\u57FA\u672C\u4FE1\u606F\uFF08\u4E2D\u6587\u540D\u3001\u6807\u8BB0\u3001\u63CF\u8FF0\u3001\u5206\u7C7B\u3001\u6570\u636E\u6A21\u5F0F\u3001\u53D1\u5E03\u72B6\u6001\u7B49\uFF09\u4EE5\u53CA\u5B9E\u4F53\u7684\u5C5E\u6027\u6570\u7EC4 properties\uFF08\u6BCF\u4E2A\u5C5E\u6027\u7684\u5217\u540D\u3001\u7C7B\u578B\u3001\u5173\u8054\u5B9E\u4F53\u3001\u7D22\u5F15\u65B9\u5F0F\u7B49\uFF09\u3002\n\n\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8BE6\u60C5\u8FD4\u56DE\u5B57\u6BB5\uFF0C\u591A\u6570\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF0C\u90E8\u5206\u5B9E\u4F53\u7C7B\u578B\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u89E3\u6790\u65F6\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09\n- datapattern\uFF08\u6570\u636E\u6A21\u5F0F\uFF09\uFF1A1-\u539F\u751F\u5B9E\u4F53\uFF1B2-\u884D\u751F\u5B9E\u4F53\uFF1B3-\u89C6\u56FE\uFF1B4-\u8D85\u7EA7\u8868\u5355\u5B9E\u4F53\uFF08\u6CE8\uFF1A\u8BE6\u60C5\u63A5\u53E3\u591A\u6570\u5B9E\u4F53\u7C7B\u578B\u4E0D\u8FD4\u56DE\u8BE5\u5B57\u6BB5\uFF0C\u5B83\u662F\u5217\u8868\u63A5\u53E3\u5B57\u6BB5\uFF09\n- objecttypecode\uFF08\u5B9E\u4F53\u5206\u7C7B\uFF09\uFF1A1-\u57FA\u672C\u5B9E\u4F53\uFF1B2-\u6811\u5F62\u5B9E\u4F53\uFF1B3-\u6570\u636E\u5B57\u5178\uFF1B4-\u5173\u8054\u5B9E\u4F53\n- objectcatgory\uFF08\u662F\u5426\u6743\u9650\u8BBE\u7F6E\u5BF9\u8C61\uFF09\uFF1A1-\u662F\uFF1B2-\u5426\n- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\uFF08\u8BE6\u60C5\u63A5\u53E3\u8BE5\u5B57\u6BB5\u8FD4\u56DE\u4E0D\u7A33\u5B9A\uFF0C\u90E8\u5206\u8C03\u7528\u4E0D\u8FD4\u56DE\uFF09\n- publishstatus\uFF08\u53D1\u5E03\u72B6\u6001\uFF09\uFF1A1-\u5DF2\u53D1\u5E03\uFF1B2-\u672A\u53D1\u5E03\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E\n- properties[].idxtype\uFF08\u7D22\u5F15\u65B9\u5F0F\uFF09\uFF1A1-\u65E0\uFF1B2-\u4E3B\u952E\u7D22\u5F15\n- properties[].propertytypecode\uFF08\u5C5E\u6027\u7C7B\u578B\uFF09\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)`,inputSchema:{objectcode:N.string().describe("\u8981\u67E5\u8BE6\u60C5\u7684\u5B9E\u4F53\u7684\u7F16\u7801")},outputSchema:ze,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{objectcode:e}=t;try{let n=await Ue({objectcode:e});return C(n.resp_data)}catch(n){return I(n)}}}];import{z as s}from"zod";function qe(t){return P({url:"/bizserv/bizpage/pageList",method:"post",data:t,type:"tenant"})}function K(t){return P({url:"/bizserv/bizpage/getPage",method:"post",data:t,type:"tenant"})}function be(t){let{conf:e,message:n,ui:l,edittime:r=M(new Date,"YYYY-MM-DD HH:mm:ss"),overwrite:o=!1,clearuserconfig:i=!0}=t;return P({url:"/biserv/bizpage/saveNewPage",method:"post",data:{clearuserconfig:i,conf:e,edittime:r,message:n,overwrite:o,ui:l??e},type:"tenant"})}var Ke=150;function Ye(t){t.committype==="saverecord"&&(t.msgbody=M(new Date,"YYYY-MM-DD HH:mm"))}function ie(t,e){if(!t)return null;if(t.code===e)return t;if(Array.isArray(t.content))for(let n of t.content){let l=ie(n,e);if(l)return l}return null}function oe(t){let e=[],n=l=>{l&&(e.push(l),Array.isArray(l.content)&&l.content.forEach(n))};return n(t.view?.body??null),Array.isArray(t.controls)&&t.controls.forEach(l=>{l&&e.push(l)}),e}function Ze(t,e){if(!t?.content)return null;let n=t.content.findIndex(l=>l?.code===e);if(n>=0){let[l]=t.content.splice(n,1);return l??null}for(let l of t.content){let r=Ze(l,e);if(r)return r}return null}function Je(t,e){let n=Ze(t.view?.body??null,e);if(n)return n;if(Array.isArray(t.controls)){let l=t.controls.findIndex(r=>r?.code===e);if(l>=0){let[r]=t.controls.splice(l,1);return r??null}}return null}function Be(t){let e=new Set,n=l=>{if(l){for(let r of l.eventlist??[])r?.handler&&e.add(r.handler);Array.isArray(l.content)&&l.content.forEach(n)}};n(t.view?.body??null);for(let l of t.presenter?.handlers??[]){for(let r of l?.actions??[])r?.handler&&e.add(r.handler),r?.logiccode&&e.add(r.logiccode);for(let r of l?.eventlist??[])r?.handler&&e.add(r.handler)}for(let l of t.presenter?.interface??[])for(let r of l?.actions??[])r?.handler&&e.add(r.handler);return e}function Ut(t){return{oldString:t.oldString,newString:t.newString,replaceAll:t.replaceAll,occurrence:t.occurrence,matchMode:t.matchMode,label:t.label}}function Qe(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(Qe)),e}async function Ge(t){let n=(await K({code:t})).resp_data;if(!n)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let l=(n.presenter?.handlers??[]).map(i=>({code:i?.code??null,name:i?.name??null,desc:i?.desc??null,key:i?.key??null,condition:i?.condition??null,actionCount:i?.actions?.length??0,actionTypes:(i?.actions??[]).map(a=>a?.type??"").filter(a=>!!a)})),r=(n.presenter?.interface??[]).map(i=>({code:i?.code??null,key:i?.key??null,desc:i?.desc??null,actionCount:i?.actions?.length??0})),o=(n.businessmodel??[]).map(i=>({modelcode:i?.modelcode??null,modellogiccode:i?.modellogiccode??null,modellogicname:i?.modellogicname??null,actiontype:i?.actiontype??null}));return{code:t,title:n.pageinfo?.title??null,type:n.pageinfo?.type??null,status:n.pageinfo?.status??null,clientcategorycode:n.pageinfo?.clientcategorycode??null,marktype:n.pageinfo?.marktype??null,versionnum:n.pageinfo?.versionnum??null,viewTree:n.view?.body?[Qe(n.view.body)]:[],handlers:l,interfaces:r,businessModels:o,message:n.message??null}}async function We(t,e){let l=(await K({code:t})).resp_data;if(!l)throw new Error(`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let r,o,i;e.nodeCode&&(r=ie(l.view?.body??null,e.nodeCode)??l.controls?.find(c=>c?.code===e.nodeCode)??null),e.handlerCode&&(o=l.presenter?.handlers?.find(c=>c?.code===e.handlerCode)??null),e.section&&(i=l[e.section]??null);let a=o?.actions?o.actions.map((c,d)=>({index:d,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:r??void 0,handler:o??void 0,section:i??void 0,actionIndex:a,message:l.message??null}}async function zt(t,e,n){let l=(o={})=>({index:n,op:e.op,status:"OK",errorCode:"OK",message:null,hunk:null,suggestions:null,...o}),r=(o,i,a={})=>({index:n,op:e.op,status:"FAILED",errorCode:o,message:i,hunk:null,suggestions:null,...a});switch(e.op){case"set_pageinfo":return t.pageinfo={...t.pageinfo??{},...e.patch},l({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5B57\u6BB5\u5230 pageinfo`});case"set_attrs":{let o=oe(t).filter(i=>i.code===e.code);return o.length===0?r("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`):o.length>1?r("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),l({message:`\u5DF2\u5408\u5E76 ${Object.keys(e.patch).length} \u4E2A\u5C5E\u6027\u5230\u8282\u70B9 ${e.code}`}))}case"insert_node":{let o=ie(t.view?.body??null,e.parentCode);if(!o)return r("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 parentCode=${e.parentCode} \u7684\u7236\u8282\u70B9`);o.content||(o.content=[]);let i=e.position??o.content.length;return o.content.splice(i,0,e.node),l({message:`\u5DF2\u5728 ${e.parentCode} \u7684 position=${i} \u63D2\u5165\u8282\u70B9`})}case"remove_node":{let o=oe(t).filter(a=>a.code===e.code);return o.length===0?r("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`):o.length>1?r("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`):e.checkRefs!==!1&&Be(t).has(e.code)?r("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`):Je(t,e.code)?l({message:`\u5DF2\u79FB\u9664\u8282\u70B9 ${e.code}`}):r("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`)}case"move_node":{let o=oe(t).filter(d=>d.code===e.code);if(o.length===0)return r("NODE_NOT_FOUND",`\u672A\u5728\u8868\u5355\u4E2D\u627E\u5230 code=${e.code} \u7684\u8282\u70B9`);if(o.length>1)return r("DUP_CODE",`code=${e.code} \u5728\u8868\u5355\u4E2D\u51FA\u73B0 ${o.length} \u6B21\uFF0C\u4E0D\u552F\u4E00`);let i=Je(t,e.code);if(!i)return r("NODE_NOT_FOUND",`\u8282\u70B9 ${e.code} \u6458\u9664\u5931\u8D25`);let a=ie(t.view?.body??null,e.newParentCode);if(!a)return r("NODE_NOT_FOUND",`\u672A\u5728 view \u6811\u4E2D\u627E\u5230 newParentCode=${e.newParentCode} \u7684\u7236\u8282\u70B9`);a.content||(a.content=[]);let c=e.position??a.content.length;return a.content.splice(c,0,i),l({message:`\u5DF2\u5C06 ${e.code} \u79FB\u52A8\u5230 ${e.newParentCode} \u7684 position=${c}`})}case"set_section":return t[e.section]=e.value,l({message:`\u5DF2\u6574\u6BB5\u66FF\u6362 ${e.section}`});case"replace_script":{let o=t.presenter?.handlers?.find(f=>f?.code===e.handlerCode);if(!o)return r("NODE_NOT_FOUND",`\u672A\u5728 presenter.handlers \u4E2D\u627E\u5230 handlerCode=${e.handlerCode}`);let i=o.actions??[],a;if(e.actionCode!=null){if(a=i.find(f=>f?.code===e.actionCode),!a)return r("NODE_NOT_FOUND",`handler ${e.handlerCode} \u4E2D\u672A\u627E\u5230 actionCode=${e.actionCode}`)}else{let f=e.actionIndex??0;if(f<0||f>=i.length)return r("NO_TARGET",`actionIndex=${f} \u8D8A\u754C\uFF0Chandler ${e.handlerCode} \u5171\u6709 ${i.length} \u4E2A action`);a=i[f]}let c=e.field??"script";if(e.replacement!=null)return a[c]=e.replacement,l({message:`\u5DF2\u6574\u6BB5\u8986\u76D6 ${e.handlerCode}.actions[${e.actionIndex??0}].${c}`});if(!e.ops||e.ops.length===0)return r("INVALID_PARAMS","replace_script \u9700\u63D0\u4F9B replacement \u6216 ops\uFF08oldString\u2192newString \u6570\u7EC4\uFF09");let d=a[c]??"",g=ne([d],e.ops.map(Ut),{contextLines:3}),b=g.results[0];return g.ok?(a[c]=g.scripts[0],l({message:`\u5DF2\u5C40\u90E8\u66FF\u6362 ${c}`,hunk:b?.hunk??null})):r("OPS_FAILED",b?.message??"\u811A\u672C\u66FF\u6362\u5931\u8D25",{hunk:b?.hunk??null,suggestions:b?.suggestions??null})}case"add_businessmodel":{let o=t.businessmodel??(t.businessmodel=[]),i=o.find(c=>c?.modellogiccode===e.modellogiccode);if(i&&!e.overwrite)return l({message:`businessmodel \u5DF2\u5B58\u5728 ${e.modellogiccode}\uFF0C\u8DF3\u8FC7\uFF08overwrite=false\uFF09`});let a;try{a=(await $({modellogiccode:e.modellogiccode})).resp_data}catch(c){return r("FETCH_FAILED",`\u83B7\u53D6\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5931\u8D25\uFF1A${F(c)}`)}return a?i&&e.overwrite?(Object.assign(i,a),l({message:`\u5DF2\u8986\u76D6 businessmodel \u4E2D\u7684 ${e.modellogiccode}`})):(o.push(a),l({message:`\u5DF2\u8FFD\u52A0\u4E1A\u52A1\u903B\u8F91 ${e.modellogiccode} \u5230 businessmodel`})):r("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 modellogiccode=${e.modellogiccode} \u5BF9\u5E94\u7684\u4E1A\u52A1\u903B\u8F91`)}case"remove_businessmodel":{let o=t.businessmodel??[],i=o.findIndex(a=>a?.modellogiccode===e.modellogiccode);return i<0?l({message:`businessmodel \u4E2D\u4E0D\u5B58\u5728 ${e.modellogiccode}\uFF0C\u65E0\u9700\u79FB\u9664`}):e.checkRefs!==!1&&Be(t).has(e.modellogiccode)?r("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(i,1),l({message:`\u5DF2\u4ECE businessmodel \u79FB\u9664 ${e.modellogiccode}`}))}}}function Vt(t){let e=[];for(let r of t)r.hunk?e.push(`--- ops[${r.index}] ${r.op}\n${r.hunk}`):e.push(`ops[${r.index}] ${r.op} (${r.status}): ${r.message??""}`);let n=e.join(`\n`),l=n.split(`\n`);return l.length<=Ke?n:`${l.slice(0,Ke).join(`\n`)}\n... diff \u8FC7\u957F\u5DF2\u622A\u65AD\uFF08\u5171 ${l.length} \u884C\uFF09`}function qt(t,e){let n=[],l=oe(t),r=new Set(l.map(o=>o.code).filter(o=>!!o));for(let o=0;o<e.length;o++){let i=e[o];switch(i.op){case"set_pageinfo":for(let[a,c]of Object.entries(i.patch))JSON.stringify(t.pageinfo?.[a])!==JSON.stringify(c)&&n.push(`ops[${o}] set_pageinfo.${a} \u672A\u751F\u6548`);break;case"set_attrs":{let a=l.find(c=>c.code===i.code);if(!a){n.push(`ops[${o}] set_attrs \u8282\u70B9 ${i.code} \u6D88\u5931`);break}for(let[c,d]of Object.entries(i.patch))JSON.stringify(a[c])!==JSON.stringify(d)&&n.push(`ops[${o}] set_attrs.${c} \u672A\u751F\u6548`);break}case"insert_node":r.has(i.node.code)||n.push(`ops[${o}] insert_node \u8282\u70B9\u672A\u51FA\u73B0`);break;case"remove_node":r.has(i.code)&&n.push(`ops[${o}] remove_node \u8282\u70B9\u4ECD\u5B58\u5728`);break;case"move_node":r.has(i.code)||n.push(`ops[${o}] move_node \u8282\u70B9\u6D88\u5931`);break;case"set_section":break;case"replace_script":{let c=t.presenter?.handlers?.find(f=>f?.code===i.handlerCode)?.actions??[],d=i.actionCode!=null?c.find(f=>f?.code===i.actionCode):c[i.actionIndex??0];if(!d){n.push(`ops[${o}] replace_script action \u672A\u627E\u5230`);break}let g=i.field??"script",b=d[g]??"";if(i.replacement!=null)b!==i.replacement&&n.push(`ops[${o}] replace_script \u6574\u6BB5\u8986\u76D6\u672A\u751F\u6548`);else if(i.ops)for(let f of i.ops)f.newString.length>0&&!b.includes(f.newString)&&n.push(`ops[${o}] replace_script \u65B0\u5185\u5BB9\u672A\u51FA\u73B0`),!f.newString.includes(f.oldString)&&b.includes(f.oldString)&&n.push(`ops[${o}] replace_script \u65E7\u5185\u5BB9\u4ECD\u5B58\u5728`);break}case"add_businessmodel":{(t.businessmodel??[]).some(c=>c?.modellogiccode===i.modellogiccode)||n.push(`ops[${o}] add_businessmodel \u672A\u8FFD\u52A0`);break}case"remove_businessmodel":{(t.businessmodel??[]).some(c=>c?.modellogiccode===i.modellogiccode)&&n.push(`ops[${o}] remove_businessmodel \u672A\u79FB\u9664`);break}}}return{verified:n.length===0,problems:n}}async function Xe(t,e,n,l={}){let r=l.dryRun??!1,o=l.verify??!0,i=(y,O)=>({ok:!1,applied:!1,verified:null,errorCode:y,message:O,diff:"",ops:[]});if(!Array.isArray(e)||e.length===0)return i("EMPTY_OPS","ops \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5143\u7D20");let a;try{a=(await K({code:t})).resp_data}catch(y){return i("FETCH_FAILED",F(y))}if(!a)return i("FETCH_FAILED",`\u672A\u67E5\u8BE2\u5230 code=${t} \u5BF9\u5E94\u7684\u8868\u5355`);let c=structuredClone(a),d=[],g=!1;for(let y=0;y<e.length;y++)try{let O=await zt(c,e[y],y);d.push(O),O.status==="FAILED"&&(g=!0)}catch(O){d.push({index:y,op:e[y].op,status:"FAILED",errorCode:"OP_ERROR",message:F(O),hunk:null,suggestions:null}),g=!0}let b=Vt(d);if(g){let y=d.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${d.filter(O=>O.status==="FAILED").length} \u4E2A op \u672A\u901A\u8FC7\uFF08ops[${y}]\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:d}}if(r)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:d};Ye(n);let f=JSON.stringify(n),k;try{let y=await be({conf:c,message:f});k=typeof y?.resp_data=="string"?y.resp_data:JSON.stringify(y?.resp_data??null)}catch(y){return{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:F(y),diff:b,ops:d}}let v=null,w=k;if(o)try{let O=(await K({code:t})).resp_data;if(!O)v=!1,w=`${k} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A\u91CD\u65B0\u67E5\u8BE2\u4E3A\u7A7A`;else{let A=qt(O,e);v=A.verified,A.verified||(w=`${k} | \u56DE\u8BFB\u6821\u9A8C\u672A\u901A\u8FC7\uFF1A${A.problems.join("\uFF1B")}`)}}catch(y){v=!1,w=`${k} | \u56DE\u8BFB\u6821\u9A8C\u5931\u8D25\uFF1A${F(y)}`}return{ok:v===null?!0:v,applied:!0,verified:v,errorCode:v===!1?"VERIFY_FAILED":"OK",message:w,diff:b,ops:d}}async function et(t,e){Ye(e);let n=JSON.stringify(e);try{let l=await be({conf:t,message:n}),r=typeof l?.resp_data=="string"?l.resp_data:JSON.stringify(l?.resp_data??null);return{ok:!0,code:t.pageinfo?.code??void 0,message:r}}catch(l){return{ok:!1,code:t.pageinfo?.code??void 0,message:F(l)}}}var Kt=s.object({createtime:s.union([s.string(),s.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),createaccountcode:s.union([s.string(),s.null()]).optional().describe("\u521B\u5EFA\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),createaccountname:s.union([s.string(),s.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),code:s.string().describe("\u8868\u5355/\u9875\u9762\u7684\u7F16\u7801"),clientcategorycode:s.union([s.string(),s.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),confsource:s.coerce.number().nullable().optional().describe("\u914D\u7F6E\u6765\u6E90\uFF0C\u542B\u4E49\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E"),directorytypecode:s.union([s.string(),s.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u7F16\u7801"),directorytypename:s.union([s.string(),s.null()]).optional().describe("\u6240\u5C5E\u76EE\u5F55\u5206\u7C7B\u7684\u540D\u79F0"),marktype:s.coerce.number().nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:s.union([s.string(),s.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C code \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),pagetemplatecode:s.union([s.string(),s.null()]).optional().describe("\u9875\u9762\u6A21\u677F\u7F16\u7801"),pagetypename:s.union([s.string(),s.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\u540D\u79F0"),pagedescr:s.union([s.string(),s.null()]).optional().describe("\u9875\u9762\u63CF\u8FF0"),ref:s.union([s.string(),s.null()]).optional().describe("\u5916\u90E8\u5F15\u7528\uFF0C\u4E00\u822C\u4F20\u7A7A\u5B57\u7B26\u4E32"),status:s.coerce.number().nullable().optional().describe("\u72B6\u6001\uFF0C\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:s.union([s.string(),s.null()]).optional().describe("\u6807\u9898"),type:s.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:s.union([s.string(),s.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updateaccountcode:s.union([s.string(),s.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u8D26\u53F7\u7F16\u7801"),updateaccountname:s.union([s.string(),s.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA\u7684\u59D3\u540D"),versionnum:s.union([s.string(),s.null()]).optional().describe("\u7248\u672C\u53F7")}).catchall(s.unknown()),fe={renderinfo:s.any().optional().describe("IDE \u6E32\u67D3\u6807\u8BB0"),pageinfo:s.any().optional().describe("\u6838\u5FC3\u5BF9\u8C61 1\uFF1A\u9875\u9762\u57FA\u7840\u4FE1\u606F"),businessmodel:s.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:s.any().optional().describe("\u52A8\u4F5C\u903B\u8F91\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),presenter:s.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:s.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:s.any().optional().describe("\u63A7\u4EF6\uFF0C\u4EC5\u90E8\u5206\u9875\u9762\u5B58\u5728\uFF0C\u975E\u6838\u5FC3\u5BF9\u8C61"),pageswitch:s.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:s.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")},tt=[{name:"page_form_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u8868\u5355/\u9875\u9762",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u5217\u8868\uFF08Form/Page\uFF09\u3002\u9002\u7528\u4E8E\u67E5\u627E\u9875\u9762\u53CA\u5176\u5143\u4FE1\u606F\u3002\n\n\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 status \u4F20 "1"\u3001type \u4F20 "5"\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u8FD4\u56DE\uFF09\n- type\uFF08\u9875\u9762\u7C7B\u578B\uFF09\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\n- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\n- clientcategorycode\uFF08\u7528\u6237\u7AEF\uFF09\uFF1A1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- confsource\uFF08\u914D\u7F6E\u6765\u6E90\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-IDE\u914D\u7F6E\uFF1B2-\u7528\u6237\u7EA7\u914D\u7F6E`,inputSchema:{status:s.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),keys:s.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355 code / title"),keywords:s.string().optional().describe("\u6A21\u7CCA\u5339\u914D\u8868\u5355\u4E2D\u7684\u5173\u952E\u8BCD"),clientcategorycode:s.string().optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B\u7F16\u7801\uFF0C1-web\u7AEF\uFF1B2-app\u7AEF\uFF1B6-\u5C0F\u7A0B\u5E8F\u7AEF"),page:s.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:s.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570"),type:s.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:s.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D"),updatetimestart:s.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:s.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:s.array(Kt).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{status:e="",keys:n="",keywords:l="",clientcategorycode:r="",page:o=1,rows:i=20,type:a="",updateopname:c="",updatetimestart:d="",updatetimeend:g=""}=t;try{let b=await qe({centercode:"",directorytypecode:"rootNode",starttime:"",status:e,keys:n,keywords:l,clientcategorycode:r,page:Number(o)||1,rows:Number(i)||20,type:a,updateopname:c,updatetimestart:d,updatetimeend:g});return C(b.resp_data)}catch(b){return I(b)}}},{name:"get_form",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u8BE6\u60C5",description:`\u6839\u636E\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801 code \u83B7\u53D6\u5176\u5B8C\u6574\u8BE6\u60C5\u3002\u8FD4\u56DE\u7ED3\u6784\u4E3A\u9876\u5C42\u5BF9\u8C61\uFF0C\u5305\u542B\uFF1A\n- pageinfo\uFF1A\u9875\u9762\u57FA\u7840\u4FE1\u606F\n- businessmodel\uFF1A\u5F15\u7528\u7684\u540E\u7AEF\u4E1A\u52A1\u6A21\u578B/\u63A5\u53E3\uFF08\u7ED3\u6784\u540C logicClient \u7684 LogicResult\uFF09\n- presenter\uFF1A\u4E8B\u4EF6\u5904\u7406\u5668\uFF08\u52A0\u8F7D/\u6309\u94AE\u70B9\u51FB/\u4E0B\u62C9\u6539\u53D8\u7B49\u65F6\u673A\u89E6\u53D1\uFF09\n- view\uFF1A\u9875\u9762\u7ED3\u6784\uFF0C\u9012\u5F52\u7684\u63A7\u4EF6\u8282\u70B9\u6811\n- controls\uFF1A\u6241\u5E73\u63A7\u4EF6\u6570\u7EC4\uFF08\u90E8\u5206\u9875\u9762\u624D\u6709\uFF09\n- pageswitch\uFF1A\u4EC5 switchpage \u7C7B\u578B\u624D\u6709\u7684\u9875\u9762\u5207\u6362\u914D\u7F6E\n- message\uFF1A\u6BCF\u6B21\u4FDD\u5B58\u586B\u5199\u7684\u63D0\u4EA4\u4FE1\u606F\uFF08\u7C7B\u4F3C git \u63D0\u4EA4\u4FE1\u606F\uFF09\n\n\u3010\u5B57\u6BB5\u901F\u67E5\uFF08\u7F16\u7801\u5B57\u6BB5\u4E0E\u5173\u952E\u7ED3\u6784\uFF0C\u4F9B\u7406\u89E3\u8FD4\u56DE JSON\uFF09\u3011\npageinfo \u5173\u952E\u5B57\u6BB5\uFF1A\n code \u7F16\u7801\uFF1Btitle \u6807\u9898\uFF1Btype \u9875\u9762\u7C7B\u578B\u6574\u6570\uFF08\u540C page_form_list \u7684 type\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\uFF09\uFF1Bstatus \u72B6\u6001\uFF081-\u542F\u7528/2-\u505C\u7528\uFF09\uFF1Bmarktype \u521B\u5EFA\u6807\u8BB0\uFF080-\u5E73\u53F0/1-\u4EA7\u54C1/2-\u79DF\u6237\uFF09\uFF1Bversionnum \u7248\u672C\u53F7\uFF1Bdirectorytypecode \u76EE\u5F55\u5206\u7C7B\u7F16\u7801\uFF1Bpagetemplatecode \u6A21\u677F\u7F16\u7801\uFF1Bclientcategorycode \u7528\u6237\u7AEF\uFF081-web/2-app/6-\u5C0F\u7A0B\u5E8F\uFF09\uFF1Bpagedescr \u63CF\u8FF0\uFF1Bref \u5916\u90E8\u5F15\u7528\uFF08\u4E00\u822C\u7A7A\uFF09\uFF1Beventlist \u9875\u9762\u7EA7\u4E8B\u4EF6\uFF08\u5982 onload\uFF0C\u542B trigger/handler\uFF09\uFF1Breportdesclist \u5173\u8054\u62A5\u8868\uFF08reportcode/desccode\uFF09\uFF1Bcache \u7F13\u5B58\u914D\u7F6E\uFF08keys/enable/submitevents\uFF09\u3002\nbusinessmodel\uFF08\u6570\u7EC4\uFF0C\u6BCF\u9879\uFF09\uFF1Aactioncategory/actiontype \u52A8\u4F5C\u7C7B\u578B\uFF1Bmarktype \u521B\u5EFA\u6807\u8BB0\uFF1Bmodelcode \u6A21\u578B\u7F16\u7801\uFF1Bmodellogiccode/modellogicname \u903B\u8F91\u7F16\u7801/\u540D\u79F0\uFF1Binput/output \u4E1A\u52A1\u5BF9\u8C61\u53CA\u5176 properties\uFF08name/objectcode/propertycode/propertytypecode\uFF09\uFF1Boperations \u6267\u884C\u6B65\u9AA4\uFF08seq \u5E8F\u53F7/status/templateref \u6A21\u677F\u5F15\u7528/templateparams\uFF09\uFF1Bstatus \u72B6\u6001\u3002\npresenter\uFF1Ainitial \u521D\u59CB\u5316\u5904\u7406\u5668\u3001interface \u5BF9\u5916\u63A5\u53E3\uFF08\u4F9B\u5176\u4ED6\u9875\u9762\u8C03\u7528\uFF0C\u9760 key \u6807\u8BC6\uFF09\u3001handlers \u4E8B\u4EF6\u5904\u7406\u5668\uFF08\u6309\u94AE\u70B9\u51FB\u7B49\uFF09\uFF1B\u6BCF\u9879\u542B code/desc/name/key/condition\uFF08flycode \u6761\u4EF6\uFF09/actions\uFF1Baction \u7684 type\uFF08receivelink \u63A5\u6536\u53C2\u6570/flycode \u811A\u672C/datarequest \u8BF7\u6C42\u540E\u7AEF/eventlink \u4E8B\u4EF6/exportfile \u5BFC\u51FA/popup \u5F39\u7A97\u7B49\uFF09\u3001script\uFF08flycode \u811A\u672C\u4F53\uFF09\u3001logiccode\uFF08\u5173\u8054\u540E\u7AEF\u903B\u8F91\uFF09\u3001param\uFF08receivelink \u4F20\u53C2\uFF1Adatatype/name/ctrlcode/properties\uFF09\u3002\nview\uFF08\u9012\u5F52\u8282\u70B9\u6811\uFF09\uFF1A\u6BCF\u4E2A\u8282\u70B9 type \u4E3A\u63A7\u4EF6\u79CD\u7C7B\u5224\u522B\u7B26\uFF08layout \u5E03\u5C40/report \u62A5\u8868/datagrid \u8868\u683C/textinput \u6587\u672C\u8F93\u5165/button \u6309\u94AE/table \u8868\u683C/dateinput \u65E5\u671F/select \u4E0B\u62C9/checkbox \u591A\u9009/image \u56FE\u7247/upload \u4E0A\u4F20/text \u6587\u672C \u7B49\uFF09\uFF0Ccontent \u4E3A\u5B50\u8282\u70B9\u6570\u7EC4\uFF08\u9012\u5F52\uFF09\uFF0Ceventlist \u8282\u70B9\u4E8B\u4EF6\uFF1B\u5E38\u7528\u6837\u5F0F/\u4EA4\u4E92\u5C5E\u6027\uFF1Atitle \u6807\u9898\u3001hidden \u9690\u85CF\uFF08'1'/'0'\uFF09\u3001readonly \u53EA\u8BFB\u3001required \u5FC5\u586B\u3001placeholder \u5360\u4F4D\u63D0\u793A\u3001text \u6587\u672C\u3001icon \u56FE\u6807\u3001width/height \u5C3A\u5BF8\u3001color/backgroundcolor \u989C\u8272\u3001flex/flexdirection/flexgrow \u5F39\u6027\u5E03\u5C40\u3001margin*/padding* \u8FB9\u8DDD/\u5185\u8FB9\u8DDD\u3001display \u663E\u793A\u65B9\u5F0F\u3001bordervisible \u8FB9\u6846\u3001checkable \u53EF\u52FE\u9009\u3001multiselectable \u591A\u9009\u3001searchable \u53EF\u641C\u7D22\u3001maxlength \u6700\u5927\u957F\u5EA6\u3001format \u683C\u5F0F\uFF08\u5982\u65E5\u671F\uFF09\u3001decimaldigits \u5C0F\u6570\u4F4D\u3001options \u4E0B\u62C9\u9009\u9879\uFF08[{key,text}]\uFF09\u3001cols \u8868\u683C\u5217\u5B9A\u4E49\u3002\ncontrols\uFF08\u6241\u5E73\u6570\u7EC4\uFF09\uFF1Atype/code/name/title/eventlist/options/rows\uFF0C\u5C5E\u6027\u542B\u4E49\u540C view \u8282\u70B9\u3002\npageswitch\uFF08\u4EC5 switchpage\uFF09\uFF1Amode \u5207\u6362\u6A21\u5F0F\u3001menu \u83DC\u5355\u3001pagerefs \u88AB\u5F15\u7528\u9875\u9762\uFF08pagecode/functioncode/title/hidden/marktype\uFF09\u3001eventlist\u3002\nmessage\uFF1A\u63D0\u4EA4\u4FE1\u606F\u6587\u672C\u3002`,inputSchema:{code:s.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:s.looseObject(fe),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{code:e}=t;try{let n=await K({code:e});return C(n.resp_data)}catch(n){return I(n)}}},{name:"get_form_outline",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u9AA8\u67B6",description:`\u83B7\u53D6\u8868\u5355/\u9875\u9762\u7684\u8F7B\u91CF\u9AA8\u67B6\uFF08\u5730\u5740\u7C3F / \u51B3\u7B56\u4F9D\u636E\uFF09\uFF0C\u7EA6 2\u20134KB\uFF0C\u907F\u514D\u4E3A\u65E5\u5E38\u6539\u52A8\u62C9\u53D6\u5B8C\u6574 88KB \u7684\u8868\u5355 JSON\u3002\u8FD4\u56DE\uFF1A\u9875\u9762\u7684 pageinfo \u5173\u952E\u5B57\u6BB5\u3001view \u6811\u9AA8\u67B6\uFF08\u4EC5 code/type/title + \u9012\u5F52 children\uFF0C\u4E0D\u542B\u5C5E\u6027\u566A\u58F0\uFF09\u3001presenter \u7684 handlers \u6E05\u5355\u4E0E interfaces \u6E05\u5355\u3001businessmodel \u5F15\u7528\u7684\u903B\u8F91\u540D\uFF08\u4EC5\u540D\u5B57\uFF0C\u4E0D\u56DE\u5185\u5BB9\uFF09\u3002\n\n\u3010\u7528\u9014\u3011\n- \u5728\u4E0D\u77E5\u9053\u5168\u91CF\u5185\u5BB9\u65F6\uFF0C\u5148\u62FF\u5230\u6240\u6709\u53EF\u6539\u5BF9\u8C61\u7684 code\uFF08\u8282\u70B9 / \u5904\u7406\u5668 / \u63A5\u53E3 / \u903B\u8F91\uFF09\uFF0C\u907F\u514D NODE_NOT_FOUND \u76F2\u731C\n- \u770B\u6E05\u5168\u8C8C\u540E\u5224\u65AD\u6539\u54EA\uFF0C\u518D\u51B3\u5B9A\u8981\u4E0D\u8981\u62C9\u7247\u6BB5\n\u968F\u540E\u5982\u9700\u6539\u67D0\u8282\u70B9\u5C5E\u6027\u6216\u811A\u672C\uFF0C\u8BF7\u7528 get_form_fragment(nodeCode/handlerCode) \u53D6\u771F\u5B9E\u5C5E\u6027\u540D\u4E0E\u811A\u672C\u5185\u5BB9\uFF0C\u518D\u7528 patch_form \u4FEE\u6539\u3002`,inputSchema:{code:s.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:{code:s.string().describe("\u8868\u5355\u7F16\u7801"),title:s.union([s.string(),s.null()]).optional().describe("\u6807\u9898"),type:s.union([s.string(),s.null()]).optional().describe("\u9875\u9762\u7C7B\u578B\uFF08\u540C page_form_list \u7684 type\uFF09"),status:s.union([s.string(),s.null()]).optional().describe("\u72B6\u6001"),clientcategorycode:s.union([s.string(),s.null()]).optional().describe("\u7528\u6237\u7AEF\u5206\u7C7B"),marktype:s.union([s.string(),s.null()]).optional().describe("\u521B\u5EFA\u6807\u8BB0"),versionnum:s.union([s.string(),s.null()]).optional().describe("\u7248\u672C\u53F7"),viewTree:s.array(s.lazy(()=>s.object({code:s.union([s.string(),s.null()]).optional(),type:s.union([s.string(),s.null()]).optional(),title:s.union([s.string(),s.null()]).optional(),children:s.array(s.lazy(()=>s.object({code:s.union([s.string(),s.null()]).optional(),type:s.union([s.string(),s.null()]).optional(),title:s.union([s.string(),s.null()]).optional(),children:s.array(s.unknown()).optional()}))).optional()}))).optional().describe("view \u6811\u9AA8\u67B6\uFF08\u9012\u5F52\uFF0C\u4EC5 code/type/title + children\uFF09"),handlers:s.array(s.object({code:s.union([s.string(),s.null()]).optional(),name:s.union([s.string(),s.null()]).optional(),desc:s.union([s.string(),s.null()]).optional(),key:s.union([s.string(),s.null()]).optional(),condition:s.union([s.string(),s.null()]).optional(),actionCount:s.coerce.number().optional(),actionTypes:s.array(s.string()).optional()})).optional().describe("presenter \u4E8B\u4EF6\u5904\u7406\u5668\u6E05\u5355"),interfaces:s.array(s.object({code:s.union([s.string(),s.null()]).optional(),key:s.union([s.string(),s.null()]).optional(),desc:s.union([s.string(),s.null()]).optional(),actionCount:s.coerce.number().optional()})).optional().describe("presenter \u5BF9\u5916\u63A5\u53E3\u6E05\u5355"),businessModels:s.array(s.object({modelcode:s.union([s.string(),s.null()]).optional(),modellogiccode:s.union([s.string(),s.null()]).optional(),modellogicname:s.union([s.string(),s.null()]).optional(),actiontype:s.union([s.string(),s.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:s.union([s.string(),s.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{code:e}=t;try{let n=await Ge(e);return C(n)}catch(n){return I(n)}}},{name:"get_form_fragment",config:{title:"\u67E5\u8BE2\u8868\u5355/\u9875\u9762\u5C40\u90E8\u5185\u5BB9",description:`\u6309 code \u53D6\u8868\u5355\u7684\u5C40\u90E8\u5185\u5BB9\uFF08\u51E0 KB\uFF09\uFF0C\u907F\u514D\u4E3A\u6539\u4E00\u5904\u800C\u62C9\u5B8C\u6574 88KB \u8868\u5355 JSON\u3002\u4E09\u79CD\u5BFB\u5740\u65B9\u5F0F\u4E09\u9009\u4E00\uFF08\u53EF\u7EC4\u5408\uFF09\uFF1A\n- nodeCode\uFF1A\u8FD4\u56DE\u8BE5 view \u6811\u8282\u70B9 / controls \u9879\u7684\u5B8C\u6574\u5B50\u6811\uFF08\u770B\u6E05\u771F\u5B9E\u5C5E\u6027\u540D\uFF0C\u5982 hidden \u8FD8\u662F visible\uFF09\n- handlerCode\uFF1A\u8FD4\u56DE\u8BE5 presenter \u5904\u7406\u5668\u7684\u5B8C\u6574\u5B9A\u4E49\uFF0C\u5E76\u9644 actionIndex \u6E05\u5355\uFF08\u6BCF\u4E2A action \u7684 code/type \u4E0E script/condition/expression \u957F\u5EA6\uFF09\uFF0C\u4FBF\u4E8E\u7CBE\u786E\u6784\u9020 patch_form \u7684 replace_script\n- section\uFF1A\u8FD4\u56DE\u6574\u6BB5 pageinfo / view / presenter / controls / pageswitch / businessmodel\uFF08\u4EC5\u6838\u5BF9\u5F15\u7528\u65F6\u4F7F\u7528\uFF0Cbusinessmodel \u4FDD\u5B58\u65F6\u7531 add_businessmodel \u81EA\u52A8\u8865\u94FE\uFF0C\u4E0D\u8981\u6C42\u4F60\u4F20\u5165\u5927\u6BB5 JSON\uFF09\n\n\u3010\u5178\u578B\u914D\u5408\u3011\u6539\u67D0\u6309\u94AE\u811A\u672C\uFF1Aget_form_fragment(handlerCode:"xxx") \u770B action \u7ED3\u6784\u4E0E\u811A\u672C\u5185\u5BB9 \u2192 patch_form(replace_script, handlerCode:"xxx", actionIndex:0, ops:[{oldString,newString}])\u3002`,inputSchema:{code:s.string().describe("\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),nodeCode:s.string().optional().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B50\u6811"),handlerCode:s.string().optional().describe("\u76EE\u6807 presenter \u5904\u7406\u5668\u7F16\u7801\uFF0C\u8FD4\u56DE\u5176\u5B8C\u6574\u5B9A\u4E49\u4E0E actionIndex \u6E05\u5355"),section:s.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:s.string().describe("\u8868\u5355\u7F16\u7801"),node:s.any().optional().describe("nodeCode \u547D\u4E2D\u7684\u8282\u70B9\u5B50\u6811"),handler:s.any().optional().describe("handlerCode \u547D\u4E2D\u7684\u5904\u7406\u5668\u5B8C\u6574\u5B9A\u4E49"),section:s.any().optional().describe("section \u547D\u4E2D\u7684\u6574\u6BB5\u5185\u5BB9"),actionIndex:s.array(s.object({index:s.coerce.number().describe("action \u4E0B\u6807"),code:s.union([s.string(),s.null()]).optional().describe("action \u7F16\u7801"),type:s.union([s.string(),s.null()]).optional().describe("action \u7C7B\u578B"),scriptLen:s.coerce.number().describe("script \u5B57\u7B26\u957F\u5EA6"),conditionLen:s.coerce.number().describe("condition \u5B57\u7B26\u957F\u5EA6"),expressionLen:s.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:s.union([s.string(),s.null()]).optional().describe("\u63D0\u4EA4\u4FE1\u606F")},annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{code:e,nodeCode:n,handlerCode:l,section:r}=t;try{let o=await We(e,{nodeCode:n,handlerCode:l,section:r});return C(o)}catch(o){return I(o)}}}];import{z as m}from"zod";var Jt=m.discriminatedUnion("op",[m.object({op:m.literal("set_pageinfo"),patch:m.record(m.string(),m.unknown()).describe('\u6D45\u5408\u5E76\u8FDB pageinfo \u7684\u5B57\u6BB5\uFF0C\u5982 { "title": "\u65B0\u6807\u9898", "status": "1" }')}),m.object({op:m.literal("set_attrs"),code:m.string().describe("\u76EE\u6807\u63A7\u4EF6/\u8282\u70B9\u7F16\u7801\uFF08\u6574\u4E2A\u8868\u5355\u552F\u4E00\uFF09"),patch:m.record(m.string(),m.unknown()).describe('\u8981\u6539\u7684\u5C5E\u6027\u952E\u503C\uFF0C\u6309 code \u5B9A\u4F4D\u540E\u6D45\u5408\u5E76\uFF0C\u5982 { "hidden": "1" }')}),m.object({op:m.literal("insert_node"),parentCode:m.string().describe("\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:m.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E"),node:m.record(m.string(),m.unknown()).describe("\u65B0\u8282\u70B9\u5BF9\u8C61\uFF08\u542B type/code/title/content \u7B49\uFF09\uFF0C\u540C view \u6811\u8282\u70B9\u7ED3\u6784")}),m.object({op:m.literal("remove_node"),code:m.string().describe("\u8981\u5220\u9664\u7684\u8282\u70B9 code"),checkRefs:m.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")}),m.object({op:m.literal("move_node"),code:m.string().describe("\u79FB\u52A8\u8282\u70B9 code"),newParentCode:m.string().describe("\u65B0\u7236\u8282\u70B9 code\uFF08view \u6811\u4E2D\uFF09"),position:m.number().int().nonnegative().optional().describe("\u63D2\u5165\u4F4D\u7F6E\u4E0B\u6807\uFF0C\u9ED8\u8BA4\u672B\u5C3E")}),m.object({op:m.literal("set_section"),section:m.enum(["view","presenter","controls","pageswitch"]).describe("\u6574\u6BB5\u66FF\u6362\u76EE\u6807"),value:m.unknown().describe("\u6574\u6BB5\u65B0\u5185\u5BB9\uFF08\u900F\u4F20\u539F\u6837\u4FDD\u5B58\uFF09")}),m.object({op:m.literal("replace_script"),handlerCode:m.string().describe("presenter \u5904\u7406\u5668 code"),actionIndex:m.number().int().nonnegative().optional().describe("\u7B2C\u51E0\u4E2A action\uFF0C\u9ED8\u8BA4 0\uFF1B\u4E0E actionCode \u4E8C\u9009\u4E00"),actionCode:m.string().optional().describe("\u4EE5 action code \u5B9A\u4F4D\uFF08\u4E0E actionIndex \u4E8C\u9009\u4E00\uFF09"),field:m.enum(["script","condition","expression"]).optional().describe("\u76EE\u6807\u5B57\u7B26\u4E32\u5B57\u6BB5\uFF0C\u9ED8\u8BA4 script"),replacement:m.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:m.array(m.object({oldString:m.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:m.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:m.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:m.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:m.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:m.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")}),m.object({op:m.literal("add_businessmodel"),modellogiccode:m.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:m.boolean().optional().describe("\u5F53 businessmodel \u5DF2\u5B58\u5728\u8BE5 modellogiccode \u65F6\u662F\u5426\u8986\u76D6\uFF0C\u9ED8\u8BA4 false\uFF08\u8DF3\u8FC7\uFF09")}),m.object({op:m.literal("remove_businessmodel"),modellogiccode:m.string().describe("\u8981\u79FB\u9664\u7684\u4E1A\u52A1\u903B\u8F91\u7F16\u7801"),checkRefs:m.boolean().optional().describe("\u524D\u7F6E\u5F15\u7528\u6821\u9A8C\uFF0C\u9ED8\u8BA4 true")})]),nt=[{name:"patch_form",config:{title:"\u5C40\u90E8\u8865\u4E01\u4FEE\u6539\u8868\u5355/\u9875\u9762",description:`\u4EE5\u7ED3\u6784\u5316\u8865\u4E01\uFF08delta ops\uFF09\u5C40\u90E8\u4FEE\u6539\u8868\u5355/\u9875\u9762\uFF0C\u65E0\u9700\u56DE\u4F20\u5B8C\u6574 88KB \u7684\u8868\u5355 JSON\u3002MCP \u4F1A\u5148\u62C9\u53D6\u6700\u65B0\u5B8C\u6574\u5BF9\u8C61\uFF0C\u5728\u5185\u5B58\u526F\u672C\u4E0A\u6309 ops \u987A\u5E8F\u5408\u5E76\uFF0C\u518D\u4E00\u6B21\u6027\u5168\u91CF\u4FDD\u5B58\uFF08\u670D\u52A1\u7AEF\u4EC5\u63D0\u4F9B\u5168\u91CF\u8986\u76D6\u4FDD\u5B58\u63A5\u53E3\uFF09\u3002\n\n\u3010\u5DE5\u4F5C\u6D41\u3011\n1. get_form_outline \u770B\u5168\u8C8C\u3001\u62FF\u5230\u5404\u8282\u70B9/handler \u7684 code\uFF08~2-4KB\uFF0C\u4E0D\u8BFB\u5168\u91CF\uFF09\uFF1B\n2. \u6539\u67D0\u8282\u70B9\u5C5E\u6027\u524D\uFF0C\u5148 get_form_fragment(nodeCode/handlerCode) \u786E\u8BA4\u771F\u5B9E\u5C5E\u6027\u540D\u4E0E\u811A\u672C\u5185\u5BB9\uFF1B\n3. \u8C03\u7528\u672C\u5DE5\u5177\uFF0Ccode \u6307\u5B9A\u8868\u5355\uFF0Cops \u6570\u7EC4\u63CF\u8FF0\u5177\u4F53\u6539\u52A8\u3002\n\n\u30109 \u7C7B ops \u901F\u67E5\u3011\n- set_pageinfo\uFF1A\u5408\u5E76 pageinfo \u5B57\u6BB5\uFF08\u5982\u6807\u9898/\u72B6\u6001\uFF09\n- set_attrs\uFF1A\u6309 code \u5B9A\u4F4D\u5355\u4E2A\u8282\u70B9\uFF0C\u6D45\u5408\u5E76\u5C5E\u6027\uFF08\u5982 hidden/required\uFF09\n- insert_node\uFF1A\u5728 parentCode \u4E0B\u63D2\u5165\u65B0\u8282\u70B9\n- remove_node\uFF1A\u6309 code \u5220\u9664\u8282\u70B9\uFF08\u9ED8\u8BA4\u6821\u9A8C\u5F15\u7528\uFF0C\u65E0\u5F15\u7528\u65B9\u53EF\u5220\uFF09\n- move_node\uFF1A\u628A\u8282\u70B9\u79FB\u52A8\u5230 newParentCode \u4E0B\n- set_section\uFF1A\u6574\u6BB5\u66FF\u6362 view/presenter/controls/pageswitch \u4E4B\u4E00\n- replace_script\uFF1A\u6539 presenter handler \u7684 action \u811A\u672C/\u6761\u4EF6/\u8868\u8FBE\u5F0F\uFF08\u652F\u6301\u6574\u6BB5 replacement \u6216 old\u2192new \u5C40\u90E8\u66FF\u6362\uFF09\n- add_businessmodel\uFF1A\u4EC5\u7ED9 modellogiccode\uFF0CMCP \u81EA\u52A8\u62C9\u53D6\u903B\u8F91 JSON \u8FFD\u52A0\uFF08\u89E3\u51B3"\u5927 JSON \u4E0D\u8BA9 AI \u4F20"\uFF09\n- remove_businessmodel\uFF1A\u4ECE businessmodel \u79FB\u9664\u6307\u5B9A\u903B\u8F91\uFF08\u9ED8\u8BA4\u6821\u9A8C\u5F15\u7528\uFF09\n\n\u3010\u4E8B\u52A1\u6027\u3011ops \u5177\u5907\u4E8B\u52A1\u6027\uFF1A\u5168\u90E8 op \u9884\u6F14\u6210\u529F\u624D\u4F1A\u843D\u5E93\uFF0C\u4EFB\u4E00 op \u5931\u8D25\uFF08NODE_NOT_FOUND/DUP_CODE/REF_VIOLATION/FETCH_FAILED\uFF09\u5219\u6574\u6279\u4E2D\u6B62\u3001\u96F6\u5199\u5165\u56DE\u6EDA\u3002\u6574\u6279\u53EA\u53D1\u8D77\u4E00\u6B21\u4FDD\u5B58\u8BF7\u6C42\u3002\n\n\u3010oldString \u4E66\u5199\u8981\u6C42\uFF08replace_script \u5C40\u90E8\u6A21\u5F0F\uFF09\u3011\u5FC5\u987B\u975E\u7A7A\u4E14\u552F\u4E00\u547D\u4E2D\uFF1B\u76F4\u63A5\u4ECE\u67E5\u8BE2\u811A\u672C\u539F\u6587\u590D\u5236\uFF0C\u7F29\u8FDB\u6362\u884C\u4E00\u81F4\uFF1B\u6539\u52A8\u8F83\u5927\u6216\u4E0D\u786E\u5B9A\u65F6\u5148 dryRun=true \u9884\u89C8 diff\u3002\u5931\u8D25\u8FD4\u56DE ops[].suggestions \u7ED9\u51FA\u76F8\u4F3C\u5019\u9009\uFF0C\u636E\u6B64\u4FEE\u6B63\u5373\u53EF\u3002`,inputSchema:{code:m.string().describe("\u76EE\u6807\u8868\u5355/\u9875\u9762\u7684\u552F\u4E00\u7F16\u7801"),ops:m.array(Jt).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:z.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:m.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:m.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:m.boolean().describe("\u6574\u4F53\u662F\u5426\u6210\u529F\uFF08dryRun \u6210\u529F\u4E5F\u4E3A true\uFF0C\u4F46 applied=false\uFF09"),applied:m.boolean().describe("\u662F\u5426\u5DF2\u843D\u5E93\uFF1BdryRun \u6216\u4EFB\u4E00 op \u9884\u6F14\u5931\u8D25\u65F6\u4E3A false"),verified:m.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:m.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:m.string().describe("\u7ED3\u679C\u8BF4\u660E\uFF1B\u5931\u8D25\u65F6\u7ED9\u51FA\u53EF\u76F4\u63A5\u6267\u884C\u7684\u5904\u7406\u5EFA\u8BAE"),diff:m.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:m.array(m.object({index:m.coerce.number().describe("\u5728 ops \u6570\u7EC4\u4E2D\u7684\u4E0B\u6807"),op:m.string().describe("\u64CD\u4F5C\u7C7B\u578B\uFF08op \u5B57\u6BB5\u503C\uFF09"),status:m.string().describe("\u8BE5 op \u7684\u6267\u884C\u72B6\u6001\uFF1AOK / FAILED"),errorCode:m.string().describe("\u8BE5 op \u7684\u9519\u8BEF\u7801"),message:m.string().nullable().describe("\u5931\u8D25\u539F\u56E0\u8BF4\u660E\uFF0C\u6210\u529F\u65F6\u4E3A null"),hunk:m.string().nullable().optional().describe("\u8BE5 op \u4EA7\u751F\u7684 diff \u7247\u6BB5\uFF08replace_script \u624D\u6709\uFF09"),suggestions:m.array(m.object({startLine:m.coerce.number().describe("\u5019\u9009\u7247\u6BB5\u8D77\u59CB\u884C\u53F7"),score:m.coerce.number().describe("\u76F8\u4F3C\u5EA6\uFF0C0~1"),preview:m.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:n,dryRun:l=!1,verify:r=!0}=t,o=t.ops,i=V(n);try{let a=await Xe(e,o,i,{dryRun:l,verify:r});return{isError:!a.ok,content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a}}catch(a){let c=F(a);return{isError:!0,content:[{type:"text",text:c}],structuredContent:{ok:!1,applied:!1,verified:null,errorCode:"SAVE_FAILED",message:c,diff:"",ops:[]}}}}},{name:"save_form",config:{title:"\u5168\u91CF\u4FDD\u5B58\u8868\u5355/\u9875\u9762",description:`\u6574\u9875\u91CD\u6784\uFF08\u91CD\u6392\u5E03\u5C40\u3001\u6A21\u677F\u8FC1\u79FB\u7B49\uFF09\u65F6\u6CA1\u6709\u5176\u4ED6\u8868\u8FBE\u65B9\u5F0F\uFF0C\u624D\u7528\u672C\u5DE5\u5177\uFF1A\u628A\u4ECE get_form \u67E5\u8BE2\u5230\u7684\u5B8C\u6574 FormResult \u5BF9\u8C61\u6309\u9700\u4FEE\u6539\u540E\u6574\u4EFD\u56DE\u4F20\u4FDD\u5B58\u3002\u65E5\u5E38\u5C40\u90E8\u6539\u52A8\u8BF7\u4F18\u5148\u7528 patch_form\uFF0C\u907F\u514D\u56DE\u4F20\u5E9E\u5927\u7684\u5B8C\u6574 JSON\u3002\n\n\u3010\u6784\u9020\u8981\u70B9\u3011\n- form \u4E3A\u5B8C\u6574 FormResult\uFF1A\u901A\u5E38\u6765\u81EA get_form \u7684\u8FD4\u56DE\uFF0C\u6539\u540E\u56DE\u4F20\uFF1Bbusinessmodel \u968F\u8868\u5355\u539F\u6837\u900F\u4F20\uFF08\u542B\u5B8C\u6574 LogicResult[]\uFF09\uFF0CMCP \u4E0D\u4F1A\u5265\u79BB\u5B83\n- \u670D\u52A1\u7AEF\u6309 overwrite=false \u4FDD\u5B58\uFF08\u4E0D\u8986\u76D6\u4ED6\u4EBA\u6700\u65B0\u7248\u672C\uFF09\uFF0Cmessage \u4F5C\u4E3A\u9876\u5C42\u63D0\u4EA4\u53C2\u6570\u4F20\u5165\uFF08\u975E FormResult \u5185\u90E8 message \u5B57\u6BB5\uFF09`,inputSchema:{form:m.looseObject(fe).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:z.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:m.boolean().describe("\u662F\u5426\u4FDD\u5B58\u6210\u529F"),code:m.string().optional().describe("\u4FDD\u5B58\u6210\u529F\u7684\u8868\u5355\u7F16\u7801"),message:m.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:n}=t,l=V(n);try{let r=await et(e,l);return{isError:!r.ok,content:[{type:"text",text:JSON.stringify(r)}],structuredContent:r}}catch(r){let o=F(r);return{isError:!0,content:[{type:"text",text:o}],structuredContent:{ok:!1,code:void 0,message:o}}}}}];import{z as x}from"zod";function rt(t,e){return P({url:"/api/masterserv/hpage/listH5Page",method:"post",data:t,type:"business",token:e})}function ot(t,e){return P({url:"/api/masterserv/hpage/listH5PageByOne",method:"post",data:t,type:"business",token:e})}function it(t){return P({url:"/pemission/rolepermission/account/getPreviewAccounts",method:"post",data:t,type:"tenant"})}async function st(){let t=J();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 n=1;n<=3;n++)try{let l=await it({pvcode:t.productVersionCode,rows:200}),o=(Array.isArray(l?.resp_data)?l.resp_data:[]).find(i=>i.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(l){e=l,n<3&&await new Promise(r=>setTimeout(r,800))}throw e}async function lt(t){let e=await st();return rt(t,e)}async function at(t){let e=await st();return ot(t,e)}var ct=x.object({confjson:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u5185\u5BB9 JSON \u5B57\u7B26\u4E32\uFF0C\u5305\u542B H5 \u8868\u5355\u7684 Vue \u4EE3\u7801\uFF0C\u5143\u6570\u636E\u914D\u7F6E"),directorytypecode:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6240\u5C5E\u76EE\u5F55\u7F16\u7801\uFF0C\u9884\u7559\u5B57\u6BB5"),pagecode:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801"),pagedescr:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u63CF\u8FF0"),pagetype:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u9875\u9762\u7C7B\u578B\uFF0C\u9884\u7559\u5B57\u6BB5"),platcreateop:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u4EBA\u59D3\u540D"),platcreatetime:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u521B\u5EFA\u65F6\u95F4"),platstatus:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u5E73\u53F0\u72B6\u6001"),platupdateop:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u4EBA\u59D3\u540D"),platupdatetime:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),status:x.union([x.string(),x.number(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u72B6\u6001\uFF1B1-\u542F\u7528\uFF1B2-\u505C\u7528"),title:x.union([x.string(),x.null()]).optional().describe("H5 \u8868\u5355\u7684\u6807\u9898")}).catchall(x.unknown()),Bt=ct.omit({confjson:!0}),Yt={data:x.array(Bt).describe("\u8FD9\u4E00\u9875\u7684 H5 \u8868\u5355\u6570\u636E"),pageCount:x.coerce.number().describe("\u603B\u9875\u6570"),pageIndex:x.coerce.number().describe("\u7B2C\u51E0\u9875"),pageSize:x.coerce.number().describe("\u6BCF\u9875\u8BB0\u5F55\u6570"),resultCount:x.coerce.number().describe("\u603B\u8BB0\u5F55\u6570")},Zt=ct.shape,ut=[{name:"page_h5_form",config:{title:"\u5206\u9875\u67E5\u8BE2 H5 \u8868\u5355\u5217\u8868",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u667A\u6167100\u7684 H5 \u5F15\u64CE\u914D\u7F6E\u7684 H5 \u8868\u5355\u5217\u8868\u3002\u9002\u7528\u4E8E\u67E5\u627E H5 \u8868\u5355\u53CA\u5176\u5143\u4FE1\u606F\uFF08\u7F16\u7801\u3001\u6807\u9898\u3001\u72B6\u6001\u3001\u521B\u5EFA/\u66F4\u65B0\u65F6\u95F4\u7B49\uFF09\u3002\n\n\u6CE8\u610F\uFF1A\u5217\u8868\u7ED3\u679C\u4E0D\u542B confjson \u5B57\u6BB5\uFF08\u8BE5\u5B57\u6BB5\u4E3A H5 \u8868\u5355\u7684\u5185\u5BB9 JSON\uFF0C\u4F53\u79EF\u8F83\u5927\uFF09\uFF1B\u5982\u9700\u83B7\u53D6\u8868\u5355\u7684 confjson \u5185\u5BB9\uFF0C\u8BF7\u8C03\u7528 get_h5_form \u83B7\u53D6\u8BE6\u60C5\u3002\n\n\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 status \u4F20 "1"\uFF1B\u8F93\u51FA status \u4EE5 string | number \u8FD4\u56DE\uFF09\n- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\n\n\u5F53\u63A5\u53E3\u8FD4\u56DE\u6570\u636E\u5305\u542B "HTTP 404 Not Found" \u65F6\u8BF4\u660E\u6B64\u79DF\u6237\u6CA1\u6709\u5B89\u88C5 H5 \u5F15\u64CE\u3002`,inputSchema:{keywords:x.string().optional().describe("H5 \u8868\u5355\u4EE3\u7801\u53CA\u5176\u5143\u6570\u636E\u4E2D\u5305\u542B\u7684\u5173\u952E\u5B57\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),pagecode:x.string().optional().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),status:x.string().optional().describe('\u72B6\u6001\uFF0C\u6574\u6570\u542B\u4E49\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\u3002\u793A\u4F8B\u4F20 "1"'),title:x.string().optional().describe("H5 \u8868\u5355\u7684\u6807\u9898\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),updateopname:x.string().optional().describe("\u6700\u8FD1\u4FEE\u6539\u4EBA\u59D3\u540D\uFF0C\u6A21\u7CCA\u67E5\u8BE2"),page:x.string().optional().describe("\u5206\u9875\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),rows:x.string().optional().describe("\u5206\u9875\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:Yt,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{keywords:e="",pagecode:n="",status:l="",title:r="",updateopname:o="",page:i=1,rows:a=20}=t;try{let d=(await lt({keywords:e,pagecode:n,status:l,title:r,updateopname:o,page:Number(i)||1,rows:Number(a)||20})).resp_data,g=Array.isArray(d?.data)?d.data.map(f=>{let k={...f};return delete k.confjson,k}):d?.data,b={...d,data:g};return C(b)}catch(c){return I(c)}}},{name:"get_h5_form",config:{title:"\u67E5\u8BE2 H5 \u8868\u5355\u8BE6\u60C5",description:`\u6839\u636E H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801 pagecode \u83B7\u53D6\u5176\u5B8C\u6574\u8BE6\u60C5\u3002\u8FD4\u56DE\u7ED3\u6784\u4E3A\u300C\u5355\u4E2A H5 \u8868\u5355\u5BF9\u8C61\u300D\uFF08\u5305\u542B pagecode/title/confjson \u7B49\u5B57\u6BB5\uFF09\uFF0C\u5173\u952E\u5B57\u6BB5\uFF1A\n- pagecode\uFF1AH5 \u8868\u5355\u552F\u4E00\u7F16\u7801\n- title\uFF1A\u6807\u9898\n- status\uFF1A\u72B6\u6001\uFF081-\u542F\u7528/2-\u505C\u7528\uFF09\n- pagedescr\uFF1A\u63CF\u8FF0\n- confjson\uFF1AH5 \u8868\u5355\u7684\u5185\u5BB9 JSON \u5B57\u7B26\u4E32\uFF0C\u5305\u542B H5 \u8868\u5355\u7684 Vue \u4EE3\u7801\u4E0E\u5143\u6570\u636E\u914D\u7F6E\uFF08\u6838\u5FC3\u5185\u5BB9\uFF09\n- platcreateop / platcreatetime\uFF1A\u521B\u5EFA\u4EBA / \u521B\u5EFA\u65F6\u95F4\n- platupdateop / platupdatetime\uFF1A\u6700\u8FD1\u66F4\u65B0\u4EBA / \u6700\u8FD1\u66F4\u65B0\u65F6\u95F4\n- platstatus\uFF1A\u5E73\u53F0\u72B6\u6001\n\n\u5F53\u63A5\u53E3\u8FD4\u56DE\u6570\u636E\u5305\u542B "HTTP 404 Not Found" \u65F6\u8BF4\u660E\u6B64\u79DF\u6237\u6CA1\u6709\u5B89\u88C5 H5 \u5F15\u64CE\u3002`,inputSchema:{pagecode:x.string().describe("H5 \u8868\u5355\u7684\u552F\u4E00\u7F16\u7801")},outputSchema:Zt,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{pagecode:e}=t;try{let n=await at({pagecode:e});return{content:[{type:"text",text:JSON.stringify(n.resp_data)}],structuredContent:n.resp_data}}catch(n){return I(n)}}}];import{z as p}from"zod";function dt(t){return P({url:"/bizserv/bizmodel/pageList",method:"post",data:t,type:"tenant"})}function pt(t){return P({url:"/bizserv/bizmodel/get",method:"post",data:t,type:"tenant"})}var Qt=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()),Gt={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")},gt=[{name:"page_function_list",config:{title:"\u5206\u9875\u67E5\u8BE2 flycode \u51FD\u6570",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2 flycode \u51FD\u6570\u5217\u8868\uFF08Function\uFF09\u3002\u9002\u7528\u4E8E\u67E5\u627E\u51FD\u6570\u53CA\u5176\u5143\u4FE1\u606F\u3002\n\n\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 status \u4F20 "1"\u3001dddlayer \u56FA\u5B9A\u4F20 "3"\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u6216\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09\n- dddlayer\uFF08\u51FD\u6570\u5C42\u7EA7\uFF09\uFF1A\u56FA\u5B9A\u4F20 3\uFF0C\u4EE3\u8868\u51FD\u6570\u7C7B\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- status\uFF08\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528`,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(Qt).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:n="",modelname:l="",flycodekey:r="",page:o=1,rows:i=20}=t;try{let a=await dt({dddlayer:3,directorytypecode:"",starttime:"",classname:e,name:n,modelname:l,flycodekey:r,page:Number(o)||1,rows:Number(i)||20});return C(a.resp_data)}catch(a){return I(a)}}},{name:"get_function",config:{title:"\u67E5\u8BE2 flycode \u51FD\u6570\u8BE6\u60C5",description:`\u6839\u636E\u51FD\u6570\u7684\u7F16\u7801 modelcode \u67E5\u8BE2\u5176\u5B8C\u6574\u8BE6\u60C5\uFF1A\u5305\u542B\u51FD\u6570\u7684\u57FA\u672C\u4FE1\u606F\uFF08\u82F1\u6587\u540D\u3001\u4E2D\u6587\u540D\u3001\u63CF\u8FF0\u3001\u5C42\u7EA7\u3001\u72B6\u6001\u7B49\uFF09\u4EE5\u53CA\u51FD\u6570\u7684\u4EE3\u7801\u5185\u5BB9 confjson\u3002\n\u6CE8\u610F\uFF1A\u6B64\u5904\u7684\u4EE3\u7801\u548C\u4E1A\u52A1\u903B\u8F91\u7684 flycode \u7A0D\u6709\u4E0D\u540C\uFF0C\u6B64\u5904\u7684\u4EE3\u7801\u4EC5\u4EC5\u662F\u8FD0\u884C\u5728 Java Nashorn \u5F15\u64CE\u7684 ES5 Javascript \u4EE3\u7801\uFF0C\u6CA1\u6709 flycode \u4EE3\u7801\u4E00\u6837\u7684\u7F16\u8BD1 FlyQL \u5904\u7406\u3001\u5185\u7F6E\u5BF9\u8C61\u3002\n\u5728\u4E1A\u52A1\u903B\u8F91 flycode \u4E2D\u901A\u8FC7 loadex("\u65B9\u6CD5\u540D") \u52A0\u8F7D\u3002\n\n\u3010\u6574\u6570/\u679A\u4E3E\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8BE6\u60C5\u8FD4\u56DE\u5B57\u6BB5\uFF0C\u90E8\u5206\u4EE5\u6570\u5B57\u8FD4\u56DE\u3001\u90E8\u5206\u4EE5\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u89E3\u6790\u65F6\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09\n- dddlayer\uFF08\u51FD\u6570\u5C42\u7EA7\uFF09\uFF1A\u56FA\u5B9A\u4F20 3\uFF0C\u4EE3\u8868\u51FD\u6570\u7C7B\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- status\uFF08\u72B6\u6001\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528\n- confjson\uFF1Aflycode \u51FD\u6570\u4EE3\u7801\u5185\u5BB9\uFF0C\u662F\u51FD\u6570\u5B9E\u73B0\u4F53\u7684\u6838\u5FC3\u5B57\u6BB5`,inputSchema:{modelcode:p.string().describe("\u51FD\u6570\u7684\u7F16\u7801")},outputSchema:p.looseObject(Gt),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{modelcode:e}=t;try{let n=await pt({modelcode:e});return C(n.resp_data)}catch(n){return I(n)}}}];import{z as R}from"zod";function mt(t){return P({url:"/bizserv/customfunction/list",method:"post",data:t,type:"tenant"})}var Wt=R.object({createtime:R.union([R.string(),R.null()]).optional().describe("\u521B\u5EFA\u65F6\u95F4"),creator:R.union([R.string(),R.null()]).optional().describe("\u521B\u5EFA\u4EBA\u59D3\u540D"),dbfunctionname:R.union([R.string(),R.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D"),functioncode:R.union([R.string(),R.null()]).optional().describe("\u51FD\u6570\u552F\u4E00\u7F16\u7801"),functionname:R.union([R.string(),R.null()]).optional().describe("\u51FD\u6570\u4E2D\u6587\u540D"),functionscript:R.union([R.string(),R.null()]).optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u5185\u5BB9\uFF08PostgreSQL \u51FD\u6570\u4F53\uFF09"),marktype:R.union([R.string(),R.number()]).nullable().optional().describe("\u521B\u5EFA\u6807\u8BB0\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237"),metamodelcode:R.union([R.string(),R.null()]).optional().describe("\u9886\u57DF\u6A21\u578B\u7F16\u7801\uFF0C\u548C functioncode \u5171\u540C\u6784\u6210\u590D\u5408\u4E3B\u952E"),publishstatus:R.union([R.string(),R.number()]).nullable().optional().describe("\u53D1\u5E03\u72B6\u6001\uFF0C1-\u672A\u53D1\u5E03\uFF1B2-\u5DF2\u53D1\u5E03"),remark:R.union([R.string(),R.null()]).optional().describe("\u5907\u6CE8"),status:R.union([R.string(),R.number()]).nullable().optional().describe("\u72B6\u6001\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528"),updatetime:R.union([R.string(),R.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u65F6\u95F4"),updator:R.union([R.string(),R.null()]).optional().describe("\u6700\u8FD1\u66F4\u65B0\u4EBA")}).catchall(R.unknown()),bt=[{name:"page_database_function_list",config:{title:"\u5206\u9875\u67E5\u8BE2\u6570\u636E\u5E93\u51FD\u6570",description:`\u6839\u636E\u67E5\u8BE2\u6761\u4EF6\u5206\u9875\u67E5\u8BE2\u6570\u636E\u5E93\u51FD\u6570\uFF08PostgreSQL \u81EA\u5B9A\u4E49\u51FD\u6570\uFF09\u5217\u8868\u3002\u9002\u7528\u4E8E\u67E5\u627E\u6570\u636E\u5E93\u51FD\u6570\u53CA\u5176\u5143\u4FE1\u606F\uFF0C\u5217\u8868\u7ED3\u679C\u5DF2\u968F\u884C\u8FD4\u56DE\u51FD\u6570\u5185\u5BB9 functionscript\uFF08PostgreSQL \u51FD\u6570\u4F53\uFF09\uFF0C\u56E0\u6B64\u65E0\u9700\u518D\u8C03\u7528\u8BE6\u60C5\u63A5\u53E3\u3002\n\n\u3010\u6574\u6570\u6620\u5C04\u901F\u67E5\u3011\uFF08\u8F93\u5165\u7B5B\u9009\u6309\u5B57\u7B26\u4E32\u4F20\u5165\uFF0C\u5982 status \u4F20 "1"\uFF1B\u8F93\u51FA\u5B57\u6BB5\u4EE5\u6570\u5B57\u6216\u5B57\u7B26\u4E32\u8FD4\u56DE\uFF0C\u4E24\u79CD\u90FD\u517C\u5BB9\uFF09\n- marktype\uFF08\u521B\u5EFA\u6807\u8BB0\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A0-\u5E73\u53F0\uFF1B1-\u4EA7\u54C1\uFF1B2-\u79DF\u6237\n- publishstatus\uFF08\u53D1\u5E03\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u672A\u53D1\u5E03\uFF1B2-\u5DF2\u53D1\u5E03\n- status\uFF08\u72B6\u6001\uFF0C\u4EC5\u8F93\u51FA\uFF09\uFF1A1-\u542F\u7528\uFF1B2-\u505C\u7528`,inputSchema:{dbfunctionname:R.string().optional().describe("\u6570\u636E\u5E93\u51FD\u6570\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),name:R.string().optional().describe("\u51FD\u6570\u4E2D\u6587\u540D\uFF0C\u6A21\u7CCA\u5339\u914D"),pageindex:R.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u5F53\u524D\u9875\uFF0C\u4ECE 1 \u5F00\u59CB"),pagesize:R.string().optional().describe("\u5206\u9875\u67E5\u8BE2\u53C2\u6570\uFF0C\u6BCF\u9875\u8BB0\u5F55\u6570")},outputSchema:{data:R.array(Wt).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{dbfunctionname:e="",name:n="",pageindex:l=1,pagesize:r=20}=t;try{let o=await mt({dbfunctionname:e,name:n,pageindex:Number(l)||1,pagesize:Number(r)||20});return C(o.resp_data)}catch(o){return I(o)}}}];import{z as G}from"zod";function ft(t){return P({url:"/api/biz/sqlrun",method:"post",data:t,type:"business"})}var Xt={data:G.array(G.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:G.coerce.number().nullable().optional().describe("\u67E5\u8BE2\u7ED3\u679C\u603B\u6570")},yt=[{name:"run_sql",config:{title:"\u6267\u884C SQL \u67E5\u8BE2",description:"\u5728\u4E1A\u52A1\u5E93\uFF08\u6570\u636E\u5E93\u4E3A PostgreSQL\uFF09\u4E2D\u6267\u884C\u4E00\u6761 SELECT \u67E5\u8BE2 SQL\uFF08\u63A5\u53E3\u4EC5\u652F\u6301 SELECT\uFF0C\u4E00\u6B21\u53EA\u80FD\u4E00\u6761 SQL\uFF0C\u53EA\u80FD\u67E5\u4E1A\u52A1\u8868\u7684\u6570\u636E\uFF0C\u9700\u8981\u67E5\u8868\u6709\u54EA\u4E9B\u5B57\u6BB5\u8BF7\u4F7F\u7528 get_entity \uFF09\uFF0C\u8FD4\u56DE\u67E5\u8BE2\u7ED3\u679C\u6570\u636E data \u4E0E\u7ED3\u679C\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:G.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:G.looseObject(Xt),annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0}},handler:async t=>{let{sql:e}=t;try{let n=await ft({sql:e});return C(n.resp_data)}catch(n){return I(n)}}}];import{z as _t}from"zod";var ye=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,n,l=15778368e5){if(e>this.maxWorkerId||e<0)throw new Error(`workerId \u5FC5\u987B\u5728 0 ~ ${this.maxWorkerId} \u4E4B\u95F4`);if(n>this.maxDatacenterId||n<0)throw new Error(`datacenterId \u5FC5\u987B\u5728 0 ~ ${this.maxDatacenterId} \u4E4B\u95F4`);this.workerId=BigInt(e),this.datacenterId=BigInt(n),this.epoch=BigInt(l)}nextId(){let e=this.currentTimestamp();if(e<this.lastTimestamp){let l=this.lastTimestamp-e;if(l<=5n)for(;e<this.lastTimestamp;)e=this.currentTimestamp();else throw new Error(`\u65F6\u949F\u56DE\u62E8\u8FC7\u5927: ${l}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 n=this.currentTimestamp();for(;n<=e;)n=this.currentTimestamp();return n}currentTimestamp(){return BigInt(Date.now())}parse(e){let n=(e>>BigInt(this.timestampShift))+this.epoch,l=e>>BigInt(this.datacenterIdShift)&BigInt(this.maxDatacenterId),r=e>>BigInt(this.workerIdShift)&BigInt(this.maxWorkerId),o=e&BigInt(this.sequenceMask);return{timestamp:n,datacenterId:l,workerId:r,sequence:o,generateTime:new Date(Number(n))}}},en=1,tn=1,nn=new ye(en,tn),ht=()=>nn.nextId();var wt=[{name:"generate_unique_code",config:{title:"\u751F\u6210\u552F\u4E00\u7F16\u7801",description:"\u901A\u8FC7\u96EA\u82B1\u7B97\u6CD5\uFF08snowflake\uFF09\u751F\u6210\u4E00\u4E2A\u5168\u5C40\u552F\u4E00 ID\uFF08code\uFF09\u3002\u5728\u65B0\u5EFA\u5B9E\u4F53\u3001\u9886\u57DF\u3001\u8868\u5355\u7B49\u5185\u5BB9\u65F6\uFF0C\u5176 JSON \u5B57\u6BB5\u4E2D\u901A\u5E38\u9700\u8981\u643A\u5E26\u4E00\u4E2A\u552F\u4E00 code\uFF0C\u53EF\u8C03\u7528\u672C\u5DE5\u5177\u83B7\u53D6\u3002",inputSchema:{prefix:_t.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:_t.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 n=ht().toString(),r={code:e?`${e}${n}`:n};return C(r)}catch(n){let r={error:n.message??String(n)};return{isError:!0,content:[{type:"text",text:JSON.stringify(r)}]}}}}];await Ne();var se=new rn({name:"flycode-mcp",version:"1.0.0"}),sn=[...Le,...Me,...Ve,...tt,...nt,...ut,...gt,...bt,...yt,...wt];for(let t of sn)se.registerTool(t.name,t.config,t.handler);async function ln(){let t=new on;await se.connect(t),process.on("SIGINT",async()=>{await se.close(),process.exit(0)}),process.on("SIGTERM",async()=>{await se.close(),process.exit(0)}),console.error("flycode-mcp listening on stdio")}ln().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.11.0",
3
+ "version": "1.12.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/flycode-mcp.min.js",