From 1895d56e516e22aa85e056eede0c2f7ebf5a2672 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Thu, 30 Oct 2025 12:20:33 +0800
Subject: [PATCH 1/4] Install packages
---
modules/tool/packages/test1/DESIGN.md | 24 +++++++++
modules/tool/packages/test1/README.md | 13 +++++
modules/tool/packages/test1/config.ts | 52 +++++++++++++++++++
modules/tool/packages/test1/index.ts | 10 ++++
modules/tool/packages/test1/logo.svg | 20 +++++++
modules/tool/packages/test1/package.json | 17 ++++++
modules/tool/packages/test1/src/index.ts | 28 ++++++++++
.../tool/packages/test1/test/index.test.ts | 8 +++
8 files changed, 172 insertions(+)
create mode 100644 modules/tool/packages/test1/DESIGN.md
create mode 100644 modules/tool/packages/test1/README.md
create mode 100644 modules/tool/packages/test1/config.ts
create mode 100644 modules/tool/packages/test1/index.ts
create mode 100644 modules/tool/packages/test1/logo.svg
create mode 100644 modules/tool/packages/test1/package.json
create mode 100644 modules/tool/packages/test1/src/index.ts
create mode 100644 modules/tool/packages/test1/test/index.test.ts
diff --git a/modules/tool/packages/test1/DESIGN.md b/modules/tool/packages/test1/DESIGN.md
new file mode 100644
index 00000000..86458c8a
--- /dev/null
+++ b/modules/tool/packages/test1/DESIGN.md
@@ -0,0 +1,24 @@
+# xxx 系统工具
+
+## 参考信息
+
+### 参考文档
+
+### 测试密钥环境变量名
+
+### 工具集/子工具列表
+
+描述工具集名称,以及子工具,子工具需要包含 ID,名字,哪些输入输出,例如:
+
+```
+工具集名:Redis 操作,需要填写 redis 链接字符串做为密钥。
+
+子工具列表:
+1. get;获取缓存了;输入 key;输出 value和是否存在
+2. set;设置缓存;输入 key,value,ttl;输出是否成功
+3. del;删除缓存;输入 key;输出是否成功
+```
+
+---
+
+下面由 AI 生成完整的设计文档
\ No newline at end of file
diff --git a/modules/tool/packages/test1/README.md b/modules/tool/packages/test1/README.md
new file mode 100644
index 00000000..aa6ec764
--- /dev/null
+++ b/modules/tool/packages/test1/README.md
@@ -0,0 +1,13 @@
+# example tool
+
+Write the introduction for your tool here.
+
+You can insert a picture with following markdown
+
+```markdown
+Insert a assets picture (you need to put you picture file in the assets dir)
+
+
+Or insert a public pic
+
+```
diff --git a/modules/tool/packages/test1/config.ts b/modules/tool/packages/test1/config.ts
new file mode 100644
index 00000000..e70cec4e
--- /dev/null
+++ b/modules/tool/packages/test1/config.ts
@@ -0,0 +1,52 @@
+import { defineTool } from '@tool/type';
+import {
+ FlowNodeInputTypeEnum,
+ FlowNodeOutputTypeEnum,
+ WorkflowIOValueTypeEnum
+} from '@tool/type/fastgpt';
+import { ToolTagEnum } from '@tool/type/tags';
+
+export default defineTool({
+ name: {
+ 'zh-CN': '模版工具',
+ en: 'Template tool'
+ },
+ tags: [ToolTagEnum.enum.tools],
+ description: {
+ 'zh-CN': '描述',
+ en: 'description'
+ },
+ toolDescription:
+ 'tool description for ai to use, fallback to English description if not provided',
+ secretInputConfig: [
+ {
+ key: 'apiKey',
+ label: 'API Key',
+ description: '可以在 xxx 获取',
+ required: true,
+ inputType: 'secret'
+ }
+ ],
+ versionList: [
+ {
+ value: '0.1.0',
+ description: 'Default version',
+ inputs: [
+ {
+ key: 'formatStr',
+ label: '格式化字符串',
+ renderTypeList: [FlowNodeInputTypeEnum.input, FlowNodeInputTypeEnum.reference],
+ valueType: WorkflowIOValueTypeEnum.string
+ }
+ ],
+ outputs: [
+ {
+ valueType: WorkflowIOValueTypeEnum.string,
+ key: 'time',
+ label: '时间',
+ description: '当前时间'
+ }
+ ]
+ }
+ ]
+});
diff --git a/modules/tool/packages/test1/index.ts b/modules/tool/packages/test1/index.ts
new file mode 100644
index 00000000..d698ed48
--- /dev/null
+++ b/modules/tool/packages/test1/index.ts
@@ -0,0 +1,10 @@
+import config from './config';
+import { InputType, OutputType, tool as toolCb } from './src';
+import { exportTool } from '@tool/utils/tool';
+
+export default exportTool({
+ toolCb,
+ InputType,
+ OutputType,
+ config
+});
diff --git a/modules/tool/packages/test1/logo.svg b/modules/tool/packages/test1/logo.svg
new file mode 100644
index 00000000..1e4b9a3d
--- /dev/null
+++ b/modules/tool/packages/test1/logo.svg
@@ -0,0 +1,20 @@
+
diff --git a/modules/tool/packages/test1/package.json b/modules/tool/packages/test1/package.json
new file mode 100644
index 00000000..9f45f2f5
--- /dev/null
+++ b/modules/tool/packages/test1/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "@fastgpt-plugins/tool-test1",
+ "module": "index.ts",
+ "type": "module",
+ "scripts": {
+ "build": "bun ../../../../scripts/build.ts"
+ },
+ "devDependencies": {
+ "@types/bun": "latest"
+ },
+ "peerDependencies": {
+ "typescript": "^5.0.0"
+ },
+ "dependencies": {
+ "zod": "^3.24.3"
+ }
+}
diff --git a/modules/tool/packages/test1/src/index.ts b/modules/tool/packages/test1/src/index.ts
new file mode 100644
index 00000000..5f1bd641
--- /dev/null
+++ b/modules/tool/packages/test1/src/index.ts
@@ -0,0 +1,28 @@
+import { format } from 'date-fns';
+import { z } from 'zod';
+import axios from 'next';
+export const InputType = z.object({
+ apiKey: z.string(),
+ formatStr: z.string().optional().default('yyyy-MM-dd HH:mm:ss')
+});
+
+export const OutputType = z.object({
+ time: z.string()
+});
+
+export async function tool({
+ apiKey,
+ formatStr
+}: z.infer): Promise> {
+ // 请求数据
+ // const result = await fetch('https://api.example.com/data', {
+ // method: 'POST',
+ // body: JSON.stringify({
+ // apiKey
+ // })
+ // });
+
+ return {
+ time: format(new Date(), formatStr)
+ };
+}
diff --git a/modules/tool/packages/test1/test/index.test.ts b/modules/tool/packages/test1/test/index.test.ts
new file mode 100644
index 00000000..b70e289f
--- /dev/null
+++ b/modules/tool/packages/test1/test/index.test.ts
@@ -0,0 +1,8 @@
+import { expect, test } from 'vitest';
+import tool from '..';
+
+test(async () => {
+ expect(tool.name).toBeDefined();
+ expect(tool.description).toBeDefined();
+ expect(tool.cb).toBeDefined();
+});
From ac5d3a9e90b176fde717c881c86058014e20b991 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Thu, 30 Oct 2025 14:56:36 +0800
Subject: [PATCH 2/4] fix: tag union field
---
modules/tool/packages/test1/DESIGN.md | 24 ---------
modules/tool/packages/test1/README.md | 13 -----
modules/tool/packages/test1/config.ts | 52 -------------------
modules/tool/packages/test1/index.ts | 10 ----
modules/tool/packages/test1/logo.svg | 20 -------
modules/tool/packages/test1/package.json | 17 ------
modules/tool/packages/test1/src/index.ts | 28 ----------
.../tool/packages/test1/test/index.test.ts | 8 ---
8 files changed, 172 deletions(-)
delete mode 100644 modules/tool/packages/test1/DESIGN.md
delete mode 100644 modules/tool/packages/test1/README.md
delete mode 100644 modules/tool/packages/test1/config.ts
delete mode 100644 modules/tool/packages/test1/index.ts
delete mode 100644 modules/tool/packages/test1/logo.svg
delete mode 100644 modules/tool/packages/test1/package.json
delete mode 100644 modules/tool/packages/test1/src/index.ts
delete mode 100644 modules/tool/packages/test1/test/index.test.ts
diff --git a/modules/tool/packages/test1/DESIGN.md b/modules/tool/packages/test1/DESIGN.md
deleted file mode 100644
index 86458c8a..00000000
--- a/modules/tool/packages/test1/DESIGN.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# xxx 系统工具
-
-## 参考信息
-
-### 参考文档
-
-### 测试密钥环境变量名
-
-### 工具集/子工具列表
-
-描述工具集名称,以及子工具,子工具需要包含 ID,名字,哪些输入输出,例如:
-
-```
-工具集名:Redis 操作,需要填写 redis 链接字符串做为密钥。
-
-子工具列表:
-1. get;获取缓存了;输入 key;输出 value和是否存在
-2. set;设置缓存;输入 key,value,ttl;输出是否成功
-3. del;删除缓存;输入 key;输出是否成功
-```
-
----
-
-下面由 AI 生成完整的设计文档
\ No newline at end of file
diff --git a/modules/tool/packages/test1/README.md b/modules/tool/packages/test1/README.md
deleted file mode 100644
index aa6ec764..00000000
--- a/modules/tool/packages/test1/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# example tool
-
-Write the introduction for your tool here.
-
-You can insert a picture with following markdown
-
-```markdown
-Insert a assets picture (you need to put you picture file in the assets dir)
-
-
-Or insert a public pic
-
-```
diff --git a/modules/tool/packages/test1/config.ts b/modules/tool/packages/test1/config.ts
deleted file mode 100644
index e70cec4e..00000000
--- a/modules/tool/packages/test1/config.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { defineTool } from '@tool/type';
-import {
- FlowNodeInputTypeEnum,
- FlowNodeOutputTypeEnum,
- WorkflowIOValueTypeEnum
-} from '@tool/type/fastgpt';
-import { ToolTagEnum } from '@tool/type/tags';
-
-export default defineTool({
- name: {
- 'zh-CN': '模版工具',
- en: 'Template tool'
- },
- tags: [ToolTagEnum.enum.tools],
- description: {
- 'zh-CN': '描述',
- en: 'description'
- },
- toolDescription:
- 'tool description for ai to use, fallback to English description if not provided',
- secretInputConfig: [
- {
- key: 'apiKey',
- label: 'API Key',
- description: '可以在 xxx 获取',
- required: true,
- inputType: 'secret'
- }
- ],
- versionList: [
- {
- value: '0.1.0',
- description: 'Default version',
- inputs: [
- {
- key: 'formatStr',
- label: '格式化字符串',
- renderTypeList: [FlowNodeInputTypeEnum.input, FlowNodeInputTypeEnum.reference],
- valueType: WorkflowIOValueTypeEnum.string
- }
- ],
- outputs: [
- {
- valueType: WorkflowIOValueTypeEnum.string,
- key: 'time',
- label: '时间',
- description: '当前时间'
- }
- ]
- }
- ]
-});
diff --git a/modules/tool/packages/test1/index.ts b/modules/tool/packages/test1/index.ts
deleted file mode 100644
index d698ed48..00000000
--- a/modules/tool/packages/test1/index.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import config from './config';
-import { InputType, OutputType, tool as toolCb } from './src';
-import { exportTool } from '@tool/utils/tool';
-
-export default exportTool({
- toolCb,
- InputType,
- OutputType,
- config
-});
diff --git a/modules/tool/packages/test1/logo.svg b/modules/tool/packages/test1/logo.svg
deleted file mode 100644
index 1e4b9a3d..00000000
--- a/modules/tool/packages/test1/logo.svg
+++ /dev/null
@@ -1,20 +0,0 @@
-
diff --git a/modules/tool/packages/test1/package.json b/modules/tool/packages/test1/package.json
deleted file mode 100644
index 9f45f2f5..00000000
--- a/modules/tool/packages/test1/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "@fastgpt-plugins/tool-test1",
- "module": "index.ts",
- "type": "module",
- "scripts": {
- "build": "bun ../../../../scripts/build.ts"
- },
- "devDependencies": {
- "@types/bun": "latest"
- },
- "peerDependencies": {
- "typescript": "^5.0.0"
- },
- "dependencies": {
- "zod": "^3.24.3"
- }
-}
diff --git a/modules/tool/packages/test1/src/index.ts b/modules/tool/packages/test1/src/index.ts
deleted file mode 100644
index 5f1bd641..00000000
--- a/modules/tool/packages/test1/src/index.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { format } from 'date-fns';
-import { z } from 'zod';
-import axios from 'next';
-export const InputType = z.object({
- apiKey: z.string(),
- formatStr: z.string().optional().default('yyyy-MM-dd HH:mm:ss')
-});
-
-export const OutputType = z.object({
- time: z.string()
-});
-
-export async function tool({
- apiKey,
- formatStr
-}: z.infer): Promise> {
- // 请求数据
- // const result = await fetch('https://api.example.com/data', {
- // method: 'POST',
- // body: JSON.stringify({
- // apiKey
- // })
- // });
-
- return {
- time: format(new Date(), formatStr)
- };
-}
diff --git a/modules/tool/packages/test1/test/index.test.ts b/modules/tool/packages/test1/test/index.test.ts
deleted file mode 100644
index b70e289f..00000000
--- a/modules/tool/packages/test1/test/index.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { expect, test } from 'vitest';
-import tool from '..';
-
-test(async () => {
- expect(tool.name).toBeDefined();
- expect(tool.description).toBeDefined();
- expect(tool.cb).toBeDefined();
-});
From fa0b732a68e59e1fd8f8cf428761303b5a6fcac4 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Tue, 4 Nov 2025 11:35:33 +0800
Subject: [PATCH 3/4] update sdk
---
modules/model/constants.ts | 4 +---
sdk/package.json | 2 +-
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/modules/model/constants.ts b/modules/model/constants.ts
index 061ae19e..fa2d89ec 100644
--- a/modules/model/constants.ts
+++ b/modules/model/constants.ts
@@ -202,13 +202,11 @@ export const ModelProviders = Object.entries(ModelProviderMap)
return 0;
});
-export type ModelProviderIdType = keyof typeof ModelProviderMap;
-
export type AiproxyMapProviderType = Record<
number,
{
name: I18nStringStrictType | string;
- provider: ModelProviderIdType; // Use to sort,get avatar
+ provider?: string; // Use to sort,get avatar
avatar?: string;
}
>;
diff --git a/sdk/package.json b/sdk/package.json
index 27f32bdd..077988fe 100644
--- a/sdk/package.json
+++ b/sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@fastgpt-sdk/plugin",
- "version": "0.2.14",
+ "version": "0.2.15",
"description": "fastgpt-plugin sdk",
"main": "dist/client.js",
"types": "dist/client.d.ts",
From 19d272b454e88b8eeb48eb7022713bd983626fe0 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Tue, 4 Nov 2025 15:09:28 +0800
Subject: [PATCH 4/4] issue template
---
.github/ISSUE_TEMPLATE/bugs.md | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
create mode 100644 .github/ISSUE_TEMPLATE/bugs.md
diff --git a/.github/ISSUE_TEMPLATE/bugs.md b/.github/ISSUE_TEMPLATE/bugs.md
new file mode 100644
index 00000000..ea6f7c92
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bugs.md
@@ -0,0 +1,30 @@
+---
+name: 问题反馈
+about: 详细清晰的描述你遇到的问题
+title: ''
+labels: bug
+assignees: ''
+---
+
+**例行检查**
+
+[//]: # '方框内填 x 表示打钩'
+
+- [ ] 我已确认目前没有类似 issue
+- [ ] 我已完整查看过项目 README,以及[项目文档](https://doc.fastgpt.io/docs/introduction/)
+- [ ] 我使用了自己的 key,并确认我的 key 是可正常使用的
+- [ ] 我理解并愿意跟进此 issue,协助测试和提供反馈
+- [x] 我理解并认可上述内容,并理解项目维护者精力有限,**不遵循规则的 issue 可能会被无视或直接关闭**
+
+**你的版本**
+
+- [ ] 公有云版本
+- [ ] 私有部署版本, 具体版本号:
+
+**问题描述, 日志截图,配置文件等**
+
+**复现步骤**
+
+**预期结果**
+
+**相关截图**