flycode-mcp 1.1.1 → 1.2.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 +51 -7
- package/dist/service/logic.js +42 -1
- package/dist/service/logic.js.map +1 -1
- package/dist/tools/logic/write.js +69 -2
- package/dist/tools/logic/write.js.map +1 -1
- package/package.json +1 -1
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`)切换中心服务地址与当前租户连接地址,并自动注入鉴权 Token。
|
|
14
|
-
- 当前提供工具:业务逻辑类 `page_model_logic_list`(分页查询业务逻辑列表)、`get_model_logic
|
|
14
|
+
- 当前提供工具:业务逻辑类 `page_model_logic_list`(分页查询业务逻辑列表)、`get_model_logic`(查询单个业务逻辑详情)、`save_model_logic`(保存 / 更新业务逻辑完整 JSON)、`simple_save_model_logic`(轻量保存 flycode 业务逻辑,只传 `modelLogicCode` / `flycode` / 可选 `input` / `output`);实体类 `page_entity_list`(分页查询实体列表)、`get_entity`(查询实体详情)。
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -116,6 +116,46 @@ username=<账号>&password=<密码>&tenantCode=<租户号>&envName=<环境名>
|
|
|
116
116
|
- `operations`:操作步骤,其中 `templateparams.flycode` 内含具体的 flycode 脚本代码
|
|
117
117
|
- `description` / `message` / `status` 等
|
|
118
118
|
|
|
119
|
+
### `save_model_logic` — 保存 / 更新业务逻辑
|
|
120
|
+
|
|
121
|
+
将一条业务逻辑保存到 APaaS 平台(新增或更新,非破坏性写入)。典型用法是:先 `get_model_logic` 取回完整的 `LogicResult` 对象,按需修改其中的 flycode 脚本(`operations[].templateparams.flycode`)、输入输出参数(`input` / `output`)或标题后,连同提交信息 `commitMessage` 一起回传。底层调用 `service/logic.ts` 的 `saveModelLogic`,再经 `logicClient.saveModelLogic` 以 `overwrite: false`(不覆盖他人最新版本)提交到 `/bizserv/bizmodel/saveModelLogic`。
|
|
122
|
+
|
|
123
|
+
**输入参数:**
|
|
124
|
+
|
|
125
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
126
|
+
| -------------- | -------- | ---- | ---------------------------------------------------------------------------------------------------------- |
|
|
127
|
+
| `logic` | object | 是 | 完整的业务逻辑 JSON 对象(`LogicResult`)。通常来自 `get_model_logic` 的返回,修改后原样回传;微服务 / 导出 / 内部函数等各类结构均兼容(未声明字段会被保留) |
|
|
128
|
+
| `commitMessage`| object | 是 | 提交信息,含以下字段: |
|
|
129
|
+
| ├─ `committype`| enum | 是 | 提交类型:`saverecord` / `feature` / `fix` / `stylefix` / `refactor` / `testfix`(与 `committypetext` 一一对应) |
|
|
130
|
+
| ├─ `committypetext`| enum | 是 | 提交类型名称:`保存记录` / `新功能添加` / `bug修改` / `样式修改` / `重构` / `测试`(与 `committype` 一一对应) |
|
|
131
|
+
| └─ `msgbody` | string | 条件 | 提交内容。`committype=saverecord` 时忽略(服务端自动填入 `yyyy-MM-dd hh:mm` 格式的当前时间);其他类型必填,按 git 提交规范书写 |
|
|
132
|
+
|
|
133
|
+
**返回:** 保存操作的结果消息(服务端返回的 `resp_data` 字符串;失败时返回错误体 JSON)。
|
|
134
|
+
|
|
135
|
+
> 注:保存后建议重新 `get_model_logic` 核对最新版本。`committype=saverecord` 的提交时间由服务端写入,无需在 `msgbody` 中重复填写。
|
|
136
|
+
|
|
137
|
+
### `simple_save_model_logic` — 轻量保存 flycode 业务逻辑
|
|
138
|
+
|
|
139
|
+
`save_model_logic` 的轻量版:同样用于保存 / 更新一条业务逻辑,但**只需提供少量参数**,避免回传从 `get_model_logic` 查到的庞大完整 `LogicResult`(易因超长被截断、占用大量上下文)。底层调用 `service/logic.ts` 的 `simpleSaveFlyCodeModelLogic`:先按 `modelLogicCode` 拉取完整对象,只把 `flycode` 写入 `operations[].templateparams.flycode`、按需覆盖 `input` / `output`,其余字段原样保留,再以 `overwrite: false` 提交到 `/bizserv/bizmodel/saveModelLogic`。
|
|
140
|
+
|
|
141
|
+
**适用场景**:你正在修改的业务逻辑领域是 flycode(如 `actioncategory` 为 1 / 6 / 7 等含 flycode 脚本的类型),仅需变更脚本或输入 / 输出参数时,优先用本工具,大幅减少上下文占用。
|
|
142
|
+
|
|
143
|
+
**不适用场景**:导出(`actioncategory=5`)、微服务(`=2`)等不含 `operations` 的特殊领域没有 flycode 脚本结构,请改用完整的 `save_model_logic` 工具保存(若该领域返回对象不含 `operations`,本工具会返回错误提示并引导改用完整工具)。
|
|
144
|
+
|
|
145
|
+
**输入参数:**
|
|
146
|
+
|
|
147
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
148
|
+
| --------------- | ------ | ---- | ------------------------------------------------------------------------------------- |
|
|
149
|
+
| `modelLogicCode`| string | 是 | 要保存的业务逻辑编码(即 `get_model_logic` 返回的 `modellogiccode`) |
|
|
150
|
+
| `flycode` | string | 是 | flycode 脚本代码字符串,将写入 `operations[0].templateparams.flycode`,覆盖原有脚本 |
|
|
151
|
+
| `input` | array | 否 | 输入参数(IN 结构)。不传则保留该业务逻辑原值;传空数组表示清空输入 |
|
|
152
|
+
| `output` | array | 否 | 输出参数(OUT 结构)。不传则保留该业务逻辑原值;传空数组表示清空输出 |
|
|
153
|
+
| `commitMessage` | object | 是 | 提交信息,结构与 `save_model_logic` 的 `commitMessage` 一致(含 `committype` / `committypetext` / `msgbody`) |
|
|
154
|
+
|
|
155
|
+
**返回:** 保存操作的结果消息(服务端返回的 `resp_data` 字符串;失败时返回错误体 JSON)。
|
|
156
|
+
|
|
157
|
+
> 注:`input` / `output` 与 `save_model_logic` 中的结构一致(`LogicParameters[]`,含 `datatype` / `marktype` / `name` / `objectcode` / `objectname` / `properties` 等字段)。仅需变更 `flycode` 时,可只传 `modelLogicCode` + `flycode`,`input` / `output` 留空由服务端保留原值。
|
|
158
|
+
|
|
119
159
|
### `page_entity_list` — 分页查询实体列表
|
|
120
160
|
|
|
121
161
|
根据查询条件分页查询 APaaS 平台中的实体定义(只读、幂等)。底层调用 `entityClient.pageEntityList`。
|
|
@@ -163,11 +203,12 @@ username=<账号>&password=<密码>&tenantCode=<租户号>&envName=<环境名>
|
|
|
163
203
|
flycode-mcp/
|
|
164
204
|
├── src/
|
|
165
205
|
│ ├── index.ts # 入口:启动鉴权、注册工具、启动 stdio 服务
|
|
166
|
-
│ ├── service/ #
|
|
167
|
-
│ │
|
|
206
|
+
│ ├── service/ # 业务封装
|
|
207
|
+
│ │ ├── auth.ts # 登录 → 获取租户信息 → 获取 IDE Token
|
|
208
|
+
│ │ └── logic.ts # 保存业务逻辑(saveModelLogic / simpleSaveFlyCodeModelLogic):提交信息处理 + 异常兜底
|
|
168
209
|
│ ├── clients/ # 平台接口封装
|
|
169
210
|
│ │ ├── authClient.ts # 登录 / 获取租户信息 / 获取 IDE Token 请求
|
|
170
|
-
│ │ ├── logicClient.ts #
|
|
211
|
+
│ │ ├── logicClient.ts # 业务逻辑分页/详情查询、保存请求
|
|
171
212
|
│ │ ├── entityClient.ts # 实体列表 pageEntityList / 详情 getEntity 请求
|
|
172
213
|
│ │ └── types.ts # 公共响应信封类型(DataResponse / PageResponse / CommonResponse)
|
|
173
214
|
│ ├── store/ # 运行时内存存储
|
|
@@ -175,13 +216,16 @@ flycode-mcp/
|
|
|
175
216
|
│ │ └── tenant.ts # 当前租户及连接信息存储器
|
|
176
217
|
│ ├── tools/ # 按能力分类的 MCP 工具定义
|
|
177
218
|
│ │ ├── logic/
|
|
178
|
-
│ │ │
|
|
219
|
+
│ │ │ ├── read.ts # 只读类工具(page_model_logic_list / get_model_logic)
|
|
220
|
+
│ │ │ ├── write.ts # 写入类工具(save_model_logic / simple_save_model_logic)
|
|
221
|
+
│ │ │ └── schemas.ts # 业务逻辑共享 zod schema(LogicResult / 参数 / operations / bindjson)
|
|
179
222
|
│ │ └── entity/
|
|
180
223
|
│ │ └── read.ts # 只读类工具(page_entity_list / get_entity)
|
|
181
224
|
│ └── utils/
|
|
182
225
|
│ ├── config.ts # 从命令行参数解析连接配置(BASE_URL / 账号等)
|
|
183
226
|
│ ├── request.ts # 统一 axios 请求层(中心/租户地址切换 + Token 注入)
|
|
184
|
-
│
|
|
227
|
+
│ ├── mcp-types.ts # MCP 工具统一定义类型 ToolDef
|
|
228
|
+
│ └── date.ts # 日期格式化工具(saverecord 提交时间用)
|
|
185
229
|
├── dist/ # 编译产物(由 tsc 生成,已忽略)
|
|
186
230
|
├── package.json
|
|
187
231
|
├── tsconfig.json
|
|
@@ -196,7 +240,7 @@ flycode-mcp/
|
|
|
196
240
|
2. **登录**:`service/auth.ts` 中的 `authenticate()` 调用 `/api/multiplat/auth/login` 获取 Token,存入内存。
|
|
197
241
|
3. **定位租户与环境**:`authenticate()` 调用 `/api/multiplat/auth/getTenantInfo`,依据 `tenantCode + envName` 匹配出目标租户,保存其连接信息(`conn.config`)到内存。
|
|
198
242
|
4. **获取 IDE Token**:`authenticate()` 调用 `/api/multiplat/auth/getIdeToken` 换取 IDE 专用 Token 并覆盖内存中的 Token。
|
|
199
|
-
5. **注册并启动**:创建 `McpServer`,注册 `page_model_logic_list`、`get_model_logic`、`page_entity_list`、`get_entity` 等工具,通过 `StdioServerTransport` 监听请求。
|
|
243
|
+
5. **注册并启动**:创建 `McpServer`,注册 `page_model_logic_list`、`get_model_logic`、`save_model_logic`、`simple_save_model_logic`、`page_entity_list`、`get_entity` 等工具,通过 `StdioServerTransport` 监听请求。
|
|
200
244
|
6. **业务请求**:工具被调用时,`logicClient` / `entityClient` 通过 `request({ type: "tenant" })` 自动切换到当前租户连接地址,并携带已注入的 Token 发起查询。
|
|
201
245
|
|
|
202
246
|
---
|
package/dist/service/logic.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { saveModelLogic as saveModelLogicApi } from "../clients/logicClient.js";
|
|
1
|
+
import { getModelLogic, saveModelLogic as saveModelLogicApi } from "../clients/logicClient.js";
|
|
2
2
|
import { formatDate } from "../utils/date.js";
|
|
3
3
|
/**
|
|
4
4
|
* service 层保存业务逻辑方法
|
|
@@ -23,4 +23,45 @@ export async function saveModelLogic(logic, commitMessage) {
|
|
|
23
23
|
return JSON.stringify(body);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* 简易保存 flycode 的方法
|
|
28
|
+
* saveModelLogic 的参数需要完整的 LogicResult 对象,很大
|
|
29
|
+
* AI 调用 saveModelLogic 需要消耗很多上下文
|
|
30
|
+
* 但大多数情况整个 LogicResult 中只有 flycode 和 input 、output 会修改,其他内容都不变
|
|
31
|
+
* 故提供一个只需要接受 flycode 、input 和 output 的方法供 AI 使用
|
|
32
|
+
* 当 AI 修改的业务模型领域是 flycode 时,调用此方法进行保存
|
|
33
|
+
* 否则仍然调用 saveModelLogic 进行保存(如导出等不含 flycode 的特殊领域)
|
|
34
|
+
*
|
|
35
|
+
* 实现思路:先按 modellogiccode 拉取完整的 LogicResult(服务端返回的全部字段原样保留),
|
|
36
|
+
* 只把调用方传入的 flycode 写入 operations[0].templateparams.flycode,并可选地覆盖
|
|
37
|
+
* input / output,其余字段(modelcode、functionname、marktype 等)不动,最后复用
|
|
38
|
+
* saveModelLogic 落库,从而避免 AI 重复拼接、回传庞大的完整 JSON 。
|
|
39
|
+
*
|
|
40
|
+
* @param modelLogicCode 要保存的业务逻辑编码(modellogiccode)
|
|
41
|
+
* @param flycode flycode 脚本代码,写入 operations[0].templateparams.flycode
|
|
42
|
+
* @param input 输入参数(IN 结构),不传则保留原值;传空数组表示清空
|
|
43
|
+
* @param output 输出参数(OUT 结构),不传则保留原值;传空数组表示清空
|
|
44
|
+
* @param commitMessage 提交信息
|
|
45
|
+
* @returns 操作结果消息
|
|
46
|
+
*/
|
|
47
|
+
export async function simpleSaveFlyCodeModelLogic(modelLogicCode, flycode, input, output, commitMessage = { committype: 'saverecord', committypetext: '保存记录', msgbody: '' }) {
|
|
48
|
+
// 1. 拉取完整的 logic JSON(保留服务端返回的全部字段,仅覆盖需要变更的部分)
|
|
49
|
+
const res = await getModelLogic({ modellogiccode: modelLogicCode });
|
|
50
|
+
const logic = res.resp_data;
|
|
51
|
+
if (!logic || !logic.operations || logic.operations.length === 0) {
|
|
52
|
+
return JSON.stringify({
|
|
53
|
+
error: '该业务逻辑不含 operations(即没有 flycode 脚本),无法通过 simpleSaveFlyCodeModelLogic 保存',
|
|
54
|
+
hint: '请改用完整的 save_model_logic 工具,传入从 get_model_logic 查询到的完整 LogicResult 对象'
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// 2. 更新其中的 flycode 和 input 和 output
|
|
58
|
+
// flycode 位于 operations[].templateparams.flycode,通常数组内只有单元素,更新首元素即可
|
|
59
|
+
logic.operations[0].templateparams.flycode = flycode;
|
|
60
|
+
if (input !== undefined)
|
|
61
|
+
logic.input = input;
|
|
62
|
+
if (output !== undefined)
|
|
63
|
+
logic.output = output;
|
|
64
|
+
// 3. 复用 saveModelLogic 落库(内部会写入 commitMessage 并以 overwrite=false 保存)
|
|
65
|
+
return saveModelLogic(logic, commitMessage);
|
|
66
|
+
}
|
|
26
67
|
//# sourceMappingURL=logic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../src/service/logic.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../../src/service/logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,aAAa,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC5H,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAc7C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAkB,EAAE,aAA4B;IACnF,qCAAqC;IACrC,IAAI,aAAa,CAAC,UAAU,KAAK,YAAY;QAAE,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAA;IAEjH,oBAAoB;IACpB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAA;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAsC,CAAA;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAA;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,cAAsB,EAC7B,OAAe,EACf,KAAyB,EACzB,MAA0B,EAC1B,aAAa,GAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACzI,+CAA+C;IAC/C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAA;IACnE,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAA;IAE3B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,wEAAwE;YAC/E,IAAI,EAAE,sEAAsE;SAC7E,CAAC,CAAA;IACJ,CAAC;IAED,oCAAoC;IACpC,oEAAoE;IACpE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,GAAG,OAAO,CAAA;IACpD,IAAI,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;IAC5C,IAAI,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAE/C,qEAAqE;IACrE,OAAO,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;AAC7C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { saveModelLogic } from '../../service/logic.js';
|
|
3
|
-
import { logicResultSchema } from './schemas.js';
|
|
2
|
+
import { saveModelLogic, simpleSaveFlyCodeModelLogic } from '../../service/logic.js';
|
|
3
|
+
import { logicResultSchema, logicParametersSchema } from './schemas.js';
|
|
4
4
|
/**
|
|
5
5
|
* 提交信息结构(CommitMessage)。
|
|
6
6
|
*/
|
|
@@ -67,6 +67,73 @@ export const writeTools = [
|
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'simple_save_flycode_model_logic',
|
|
73
|
+
config: {
|
|
74
|
+
title: '简易保存 flycode 业务逻辑',
|
|
75
|
+
description: `保存(新增或更新)一条“含 flycode 脚本”的业务逻辑,但只需提供少量参数,大幅减少上下文占用。
|
|
76
|
+
|
|
77
|
+
与 save_model_logic 的区别:save_model_logic 需要回传从 get_model_logic 查到的完整 LogicResult 对象(往往很大,易因超长被截断);本工具只需传入 modellogiccode、flycode 以及(可选的)input / output,服务端会自动按 modellogiccode 拉取完整对象并只覆盖这几个字段,其余字段原样保留。
|
|
78
|
+
|
|
79
|
+
适用场景:你正在修改的业务逻辑领域是 flycode(actioncategory 为 1/6/7 等含 flycode 的类型),仅需变更脚本或输入/输出参数时,优先用本工具。
|
|
80
|
+
不适用场景:导出(actioncategory=5)等不含 flycode 的特殊领域,没有 operations 脚本结构,请改用完整的 save_model_logic 工具保存。
|
|
81
|
+
|
|
82
|
+
服务端按 overwrite=false 保存(不覆盖他人最新版本)。`,
|
|
83
|
+
inputSchema: {
|
|
84
|
+
modelLogicCode: z.string().describe('要保存的业务逻辑的编码(即 get_model_logic 返回的 modellogiccode)'),
|
|
85
|
+
flycode: z.string().describe('flycode 脚本代码字符串,将写入 operations[0].templateparams.flycode,覆盖原有脚本'),
|
|
86
|
+
input: logicParametersSchema.optional().describe('输入参数(IN 结构)。不传则保留该业务逻辑原值;传空数组表示清空输入'),
|
|
87
|
+
output: logicParametersSchema.optional().describe('输出参数(OUT 结构)。不传则保留该业务逻辑原值;传空数组表示清空输出'),
|
|
88
|
+
commitMessage: commitMessageSchema.describe('提交信息,类型与名称需一一对应;msgbody 在非 saverecord 时必填')
|
|
89
|
+
},
|
|
90
|
+
outputSchema: {
|
|
91
|
+
result: z.string().describe('保存操作的结果消息(服务端返回的 resp_data 字符串;失败时返回错误体 JSON)')
|
|
92
|
+
},
|
|
93
|
+
annotations: {
|
|
94
|
+
readOnlyHint: false, // 此操作会修改数据
|
|
95
|
+
destructiveHint: false, // 保存为非破坏性写入
|
|
96
|
+
idempotentHint: false // 重复保存可能产生新的提交版本
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
handler: async (args) => {
|
|
100
|
+
const { modelLogicCode, flycode, input, output, commitMessage } = args;
|
|
101
|
+
// 兜底 msgbody:service 仅在 committype==='saverecord' 时自动填当前时间,
|
|
102
|
+
// 其他类型若未传则给空字符串,避免把 undefined 透传给服务端。
|
|
103
|
+
const commit = {
|
|
104
|
+
committype: commitMessage.committype,
|
|
105
|
+
committypetext: commitMessage.committypetext,
|
|
106
|
+
msgbody: commitMessage.msgbody ?? ''
|
|
107
|
+
};
|
|
108
|
+
try {
|
|
109
|
+
const text = await simpleSaveFlyCodeModelLogic(modelLogicCode, flycode, input, output, commit);
|
|
110
|
+
return {
|
|
111
|
+
content: [{
|
|
112
|
+
type: 'text',
|
|
113
|
+
text
|
|
114
|
+
}],
|
|
115
|
+
// outputSchema 已在工具上声明,SDK 1.30 要求调用结果必须携带
|
|
116
|
+
// structuredContent 与之匹配,否则会抛 -32602;这里同时返回
|
|
117
|
+
// 文本(给人/模型阅读)和结构化内容(供 schema 校验)。
|
|
118
|
+
structuredContent: { result: text }
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (e) {
|
|
122
|
+
// simpleSaveFlyCodeModelLogic 内 getModelLogic 拉取失败等异常会透传到这里,
|
|
123
|
+
// 把原始错误体原样返回。
|
|
124
|
+
const err = e;
|
|
125
|
+
const body = err.response?.data ?? e;
|
|
126
|
+
const text = JSON.stringify(body);
|
|
127
|
+
return {
|
|
128
|
+
isError: true,
|
|
129
|
+
content: [{
|
|
130
|
+
type: 'text',
|
|
131
|
+
text
|
|
132
|
+
}],
|
|
133
|
+
structuredContent: { result: text }
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
70
137
|
}
|
|
71
138
|
];
|
|
72
139
|
//# sourceMappingURL=write.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/tools/logic/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,cAAc,EAAsB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/tools/logic/write.ts"],"names":[],"mappings":"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"}
|