@becrafter/prompt-manager 0.0.18 → 0.1.1
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/IFLOW.md +175 -0
- package/README.md +145 -234
- package/app/desktop/assets/app.1.png +0 -0
- package/app/desktop/assets/app.png +0 -0
- package/app/desktop/assets/icons/icon.icns +0 -0
- package/app/desktop/assets/icons/icon.ico +0 -0
- package/app/desktop/assets/icons/icon.png +0 -0
- package/app/desktop/assets/icons/tray.png +0 -0
- package/app/desktop/assets/templates/about.html +147 -0
- package/app/desktop/assets/tray.png +0 -0
- package/app/desktop/main.js +187 -732
- package/app/desktop/package-lock.json +723 -522
- package/app/desktop/package.json +54 -25
- package/app/desktop/preload.js +7 -0
- package/app/desktop/src/core/error-handler.js +108 -0
- package/app/desktop/src/core/event-emitter.js +84 -0
- package/app/desktop/src/core/logger.js +108 -0
- package/app/desktop/src/core/state-manager.js +125 -0
- package/app/desktop/src/services/module-loader.js +214 -0
- package/app/desktop/src/services/runtime-manager.js +301 -0
- package/app/desktop/src/services/service-manager.js +169 -0
- package/app/desktop/src/services/update-manager.js +268 -0
- package/app/desktop/src/ui/about-dialog-manager.js +208 -0
- package/app/desktop/src/ui/admin-window-manager.js +757 -0
- package/app/desktop/src/ui/splash-manager.js +253 -0
- package/app/desktop/src/ui/tray-manager.js +186 -0
- package/app/desktop/src/utils/icon-manager.js +133 -0
- package/app/desktop/src/utils/path-utils.js +58 -0
- package/app/desktop/src/utils/resource-paths.js +49 -0
- package/app/desktop/src/utils/resource-sync.js +260 -0
- package/app/desktop/src/utils/runtime-sync.js +241 -0
- package/app/desktop/src/utils/template-renderer.js +284 -0
- package/app/desktop/src/utils/version-utils.js +59 -0
- package/examples/prompts/engineer/engineer-professional.yaml +92 -0
- package/examples/prompts/engineer/laowang-engineer.yaml +132 -0
- package/examples/prompts/engineer/nekomata-engineer.yaml +123 -0
- package/examples/prompts/engineer/ojousama-engineer.yaml +124 -0
- package/examples/prompts/recommend/human_3-0_growth_diagnostic_coach_prompt.yaml +105 -0
- package/examples/prompts/workflow/sixstep-workflow.yaml +192 -0
- package/package.json +18 -9
- package/packages/admin-ui/.babelrc +3 -0
- package/packages/admin-ui/admin.html +237 -4784
- package/packages/admin-ui/css/main.css +2592 -0
- package/packages/admin-ui/css/recommended-prompts.css +610 -0
- package/packages/admin-ui/package-lock.json +6981 -0
- package/packages/admin-ui/package.json +36 -0
- package/packages/admin-ui/src/codemirror.js +53 -0
- package/packages/admin-ui/src/index.js +3188 -0
- package/packages/admin-ui/webpack.config.js +76 -0
- package/packages/resources/tools/chrome-devtools/README.md +310 -0
- package/packages/resources/tools/chrome-devtools/chrome-devtools.tool.js +1703 -0
- package/packages/resources/tools/file-reader/README.md +289 -0
- package/packages/resources/tools/file-reader/file-reader.tool.js +1545 -0
- package/packages/resources/tools/filesystem/README.md +359 -0
- package/packages/resources/tools/filesystem/filesystem.tool.js +538 -0
- package/packages/resources/tools/ollama-remote/README.md +192 -0
- package/packages/resources/tools/ollama-remote/ollama-remote.tool.js +421 -0
- package/packages/resources/tools/pdf-reader/README.md +236 -0
- package/packages/resources/tools/pdf-reader/pdf-reader.tool.js +565 -0
- package/packages/resources/tools/playwright/README.md +306 -0
- package/packages/resources/tools/playwright/playwright.tool.js +1186 -0
- package/packages/resources/tools/todolist/README.md +394 -0
- package/packages/resources/tools/todolist/todolist.tool.js +1312 -0
- package/packages/server/README.md +142 -0
- package/packages/server/api/admin.routes.js +42 -11
- package/packages/server/api/surge.routes.js +43 -0
- package/packages/server/app.js +119 -14
- package/packages/server/index.js +39 -0
- package/packages/server/mcp/mcp.server.js +346 -28
- package/packages/server/mcp/{mcp.handler.js → prompt.handler.js} +108 -9
- package/packages/server/mcp/sequential-thinking.handler.js +318 -0
- package/packages/server/mcp/think-plan.handler.js +274 -0
- package/packages/server/middlewares/auth.middleware.js +6 -0
- package/packages/server/package.json +51 -0
- package/packages/server/server.js +37 -1
- package/packages/server/toolm/index.js +9 -0
- package/packages/server/toolm/package-installer.service.js +267 -0
- package/packages/server/toolm/test-tools.js +264 -0
- package/packages/server/toolm/tool-context.service.js +334 -0
- package/packages/server/toolm/tool-dependency.service.js +168 -0
- package/packages/server/toolm/tool-description-generator-optimized.service.js +375 -0
- package/packages/server/toolm/tool-description-generator.service.js +312 -0
- package/packages/server/toolm/tool-environment.service.js +200 -0
- package/packages/server/toolm/tool-execution.service.js +277 -0
- package/packages/server/toolm/tool-loader.service.js +219 -0
- package/packages/server/toolm/tool-logger.service.js +223 -0
- package/packages/server/toolm/tool-manager.handler.js +65 -0
- package/packages/server/toolm/tool-manual-generator.service.js +389 -0
- package/packages/server/toolm/tool-mode-handlers.service.js +224 -0
- package/packages/server/toolm/tool-storage.service.js +111 -0
- package/packages/server/toolm/tool-sync.service.js +138 -0
- package/packages/server/toolm/tool-utils.js +20 -0
- package/packages/server/toolm/tool-yaml-parser.service.js +81 -0
- package/packages/server/toolm/validate-system.js +421 -0
- package/packages/server/utils/config.js +49 -5
- package/packages/server/utils/util.js +65 -10
- package/scripts/build-icons.js +135 -0
- package/scripts/build.sh +57 -0
- package/scripts/surge/CNAME +1 -0
- package/scripts/surge/README.md +47 -0
- package/scripts/surge/package-lock.json +34 -0
- package/scripts/surge/package.json +20 -0
- package/scripts/surge/sync-to-surge.js +151 -0
- package/packages/admin-ui/js/closebrackets.min.js +0 -8
- package/packages/admin-ui/js/codemirror.min.js +0 -8
- package/packages/admin-ui/js/js-yaml.min.js +0 -2
- package/packages/admin-ui/js/markdown.min.js +0 -8
- /package/app/desktop/assets/{icon.png → tray.1.png} +0 -0
package/IFLOW.md
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Prompt Manager 项目概述
|
|
2
|
+
|
|
3
|
+
## 项目简介
|
|
4
|
+
|
|
5
|
+
Prompt Manager 是一个基于 MCP(Model Context Protocol)协议的 Prompt 管理服务。它支持 HTTP 流式传输、提供 Web 管理界面和桌面应用,能够将静态提示词模板转换为可通过 API 调用的动态服务。
|
|
6
|
+
|
|
7
|
+
核心特性包括:
|
|
8
|
+
- 完全兼容模型上下文协议(MCP)
|
|
9
|
+
- 基于 StreamableHTTP 协议优化的 HTTP 流式传输
|
|
10
|
+
- 自动发现子目录中的 prompt 文件
|
|
11
|
+
- 支持命令行参数和环境变量配置
|
|
12
|
+
- 内置 Electron 菜单应用,可一键启动/停止服务
|
|
13
|
+
- 提供 Web 管理界面,方便创建、编辑和管理提示词
|
|
14
|
+
|
|
15
|
+
## 技术栈
|
|
16
|
+
|
|
17
|
+
- **后端**: Node.js (>=18.0.0), Express.js
|
|
18
|
+
- **前端**: 内置管理界面使用原生 JavaScript 和 Codemirror
|
|
19
|
+
- **协议**: MCP (Model Context Protocol)
|
|
20
|
+
- **桌面应用**: Electron
|
|
21
|
+
- **包管理**: npm/pnpm
|
|
22
|
+
|
|
23
|
+
## 项目结构
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
prompt-manager/
|
|
27
|
+
├── app/
|
|
28
|
+
│ ├── cli/ # 命令行命令分发与共享工具
|
|
29
|
+
│ └── desktop/ # Electron 菜单应用
|
|
30
|
+
├── packages/
|
|
31
|
+
│ ├── admin-ui/ # 内置管理后台静态资源
|
|
32
|
+
│ └── server/ # 服务端核心逻辑
|
|
33
|
+
├── examples/
|
|
34
|
+
│ └── prompts/ # 随包示例提示词(首次启动会同步到 ~/.prompt-manager/prompts)
|
|
35
|
+
├── scripts/ # 安装/维护脚本(如 env 同步)
|
|
36
|
+
├── bin/ # 可执行入口
|
|
37
|
+
└── package.json
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 构建和运行
|
|
41
|
+
|
|
42
|
+
### 安装依赖
|
|
43
|
+
|
|
44
|
+
在项目根目录运行:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 启动开发服务器
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# 启动服务端开发服务器
|
|
54
|
+
npm run dev
|
|
55
|
+
|
|
56
|
+
# 启动桌面应用开发环境
|
|
57
|
+
npm run desktop:dev
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 构建桌面应用
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# 构建桌面应用安装包
|
|
64
|
+
npm run desktop:build
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 命令行使用
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# 使用默认配置启动
|
|
71
|
+
prompt-manager
|
|
72
|
+
|
|
73
|
+
# 指定提示词目录
|
|
74
|
+
prompt-manager --prompts-dir ./my-prompts
|
|
75
|
+
|
|
76
|
+
# 指定端口
|
|
77
|
+
prompt-manager --port 5621
|
|
78
|
+
|
|
79
|
+
# 显式使用 start/run 命令
|
|
80
|
+
prompt-manager start --port 6000
|
|
81
|
+
prompt-manager run --prompts-dir ./examples/prompts
|
|
82
|
+
|
|
83
|
+
# 获取帮助/版本信息
|
|
84
|
+
prompt-manager --help
|
|
85
|
+
prompt-manager --version
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## 开发约定
|
|
89
|
+
|
|
90
|
+
1. **代码风格**: 项目使用 ES6 模块系统,遵循标准的 JavaScript 编码规范。
|
|
91
|
+
2. **目录结构**:
|
|
92
|
+
- `app/` 目录包含客户端相关代码(CLI 和桌面应用)
|
|
93
|
+
- `packages/` 目录包含服务端核心逻辑和管理界面
|
|
94
|
+
- `examples/` 目录包含示例提示词文件
|
|
95
|
+
3. **配置管理**: 支持通过命令行参数、环境变量和配置文件进行配置。
|
|
96
|
+
4. **日志记录**: 使用自定义 logger 模块进行日志记录。
|
|
97
|
+
5. **错误处理**: 统一的错误处理机制,关键操作都有适当的错误捕获和处理。
|
|
98
|
+
|
|
99
|
+
## API 接口
|
|
100
|
+
|
|
101
|
+
### MCP 协议接口
|
|
102
|
+
|
|
103
|
+
服务器实现了 MCP 协议,支持以下工具:
|
|
104
|
+
|
|
105
|
+
- `search_prompts`: 搜索提示词
|
|
106
|
+
- `get_prompt`: 获取指定提示词的完整内容
|
|
107
|
+
- `reload_prompts`: 重新加载所有提示词(暂未启用)
|
|
108
|
+
|
|
109
|
+
### Web 管理接口
|
|
110
|
+
|
|
111
|
+
1. **获取提示词列表**
|
|
112
|
+
```
|
|
113
|
+
GET /prompts[?search=关键词]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
2. **获取单个提示词详情**
|
|
117
|
+
```
|
|
118
|
+
GET /api/prompts/:name[?path=文件路径]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
3. **创建/更新提示词**
|
|
122
|
+
```
|
|
123
|
+
POST /api/prompts
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
4. **删除提示词**
|
|
127
|
+
```
|
|
128
|
+
DELETE /api/prompts/:name[?path=文件路径]
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
5. **切换提示词启用状态**
|
|
132
|
+
```
|
|
133
|
+
POST /api/prompts/:name/toggle[?path=文件路径]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
6. **处理提示词**
|
|
137
|
+
```
|
|
138
|
+
POST /process
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
7. **分组管理**
|
|
142
|
+
- 获取所有分组列表: `GET /api/groups`
|
|
143
|
+
- 创建新分组: `POST /api/groups`
|
|
144
|
+
- 重命名分组: `PATCH /api/groups/rename`
|
|
145
|
+
- 更新分组启用状态: `PATCH /api/groups/status`
|
|
146
|
+
- 删除分组: `DELETE /api/groups?path=分组路径`
|
|
147
|
+
|
|
148
|
+
## 桌面应用
|
|
149
|
+
|
|
150
|
+
位于 `app/desktop` 目录,使用 Electron 构建的菜单栏应用,提供以下功能:
|
|
151
|
+
|
|
152
|
+
- 启/停服务
|
|
153
|
+
- 复制服务地址
|
|
154
|
+
- 打开管理后台
|
|
155
|
+
- 检查更新
|
|
156
|
+
- 关于服务信息
|
|
157
|
+
|
|
158
|
+
## 提示词格式
|
|
159
|
+
|
|
160
|
+
提示词文件使用 YAML 格式,需要包含以下基本结构:
|
|
161
|
+
|
|
162
|
+
```yaml
|
|
163
|
+
name: prompt-name
|
|
164
|
+
description: 提示词描述
|
|
165
|
+
messages:
|
|
166
|
+
- role: user
|
|
167
|
+
content:
|
|
168
|
+
text: 提示词内容,支持 {{参数名}} 格式的参数替换
|
|
169
|
+
arguments:
|
|
170
|
+
- name: 参数名
|
|
171
|
+
description: 参数描述
|
|
172
|
+
type: string|number|boolean
|
|
173
|
+
required: true|false
|
|
174
|
+
enabled: true|false # 是否启用该提示词
|
|
175
|
+
```
|
package/README.md
CHANGED
|
@@ -2,303 +2,205 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@becrafter/prompt-manager)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://nodejs.org/)
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
> **一个提示词管理工具,帮你把常用的 AI 提示词整理成库,随时调用。**
|
|
8
7
|
|
|
9
|
-
##
|
|
8
|
+
## 这是什么?
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
- 🌐 **HTTP流式传输**:基于StreamableHTTP协议优化,提供稳定的长连接支持
|
|
13
|
-
- 📁 **递归扫描**:自动发现子目录中的 prompt 文件
|
|
14
|
-
- ⚙️ **灵活配置**:支持命令行参数和环境变量配置
|
|
15
|
-
- 🖥️ **原生桌面壳**:内置 Electron 菜单应用,可一键启动/停止服务,并内嵌管理后台
|
|
16
|
-
- 📋 **管理界面**:提供Web管理界面,方便创建、编辑和管理提示词
|
|
10
|
+
想象一下,你经常用 AI 写代码、做翻译、写文案...每次都要重新输入类似的提示词,很麻烦。
|
|
17
11
|
|
|
18
|
-
|
|
12
|
+
**Prompt Manager 就是帮你管理这些提示词的工具:**
|
|
19
13
|
|
|
20
|
-
|
|
14
|
+
- 📝 把提示词保存成模板,随时调用
|
|
15
|
+
- 🔍 快速搜索你需要的提示词
|
|
16
|
+
- 🌐 通过网页界面管理,简单直观
|
|
17
|
+
- 💻 也可以作为服务运行,让其他程序调用
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
# 全局安装
|
|
24
|
-
npm install -g @becrafter/prompt-manager
|
|
19
|
+
**简单说:就像收藏夹,但专门用来管理 AI 提示词。**
|
|
25
20
|
|
|
26
|
-
|
|
27
|
-
npm install @becrafter/prompt-manager
|
|
28
|
-
```
|
|
21
|
+
## 快速开始
|
|
29
22
|
|
|
30
|
-
###
|
|
23
|
+
### 方式一:命令行使用(适合技术人员)
|
|
31
24
|
|
|
32
25
|
```bash
|
|
33
|
-
#
|
|
34
|
-
prompt-manager
|
|
35
|
-
|
|
36
|
-
# 指定提示词目录
|
|
37
|
-
prompt-manager --prompts-dir ./my-prompts
|
|
38
|
-
|
|
39
|
-
# 指定端口
|
|
40
|
-
prompt-manager --port 5621
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
> 默认情况下,服务会在 `~/.prompt-manager/prompts` 下创建并读取提示词目录。第一次启动会将仓库中的 `examples/prompts` 同步过去,方便快速体验。
|
|
44
|
-
|
|
45
|
-
### 3. CLI 命令
|
|
46
|
-
|
|
47
|
-
新版本的命令行逻辑已经集中在 `app/cli` 中,支持拓展式命令分发。常用用法保持不变:
|
|
26
|
+
# 1. 安装
|
|
27
|
+
npm install -g @becrafter/prompt-manager
|
|
48
28
|
|
|
49
|
-
|
|
50
|
-
# 默认等价于 prompt-manager start
|
|
29
|
+
# 2. 启动服务
|
|
51
30
|
prompt-manager
|
|
52
31
|
|
|
53
|
-
#
|
|
54
|
-
|
|
55
|
-
prompt-manager run --prompts-dir ./examples/prompts
|
|
56
|
-
|
|
57
|
-
# 获取帮助/版本信息
|
|
58
|
-
prompt-manager --help
|
|
59
|
-
prompt-manager --version
|
|
32
|
+
# 3. 打开浏览器访问
|
|
33
|
+
# http://localhost:5621/admin
|
|
60
34
|
```
|
|
61
35
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
## 桌面菜单应用(Electron)
|
|
65
|
-
|
|
66
|
-
为了让非技术同学也能便捷地运行服务,仓库新增了一个 Electron 菜单栏应用,位于 `app/desktop`。打包后的应用会连同 Node.js 运行时、`prompt-manager` 代码以及依赖一并分发,无需再额外配置环境。
|
|
67
|
-
|
|
68
|
-
### 目录与结构
|
|
69
|
-
|
|
70
|
-
- `app/desktop/main.js`:Electron 主进程,负责托盘 UI、服务生命周期、升级流程
|
|
71
|
-
- `app/desktop/assets/`:托盘、安装图标等资源
|
|
72
|
-
- `app/desktop/package.json`:单独的桌面工程配置与 `electron-builder` 打包描述
|
|
36
|
+
就这么简单!服务启动后,打开浏览器就能看到管理界面。
|
|
73
37
|
|
|
74
|
-
###
|
|
38
|
+
### 方式二:桌面应用(适合所有人)
|
|
75
39
|
|
|
76
|
-
|
|
77
|
-
- **复制服务地址**:一键复制当前 `http://127.0.0.1:<port>` 地址,方便分享或调试
|
|
78
|
-
- **打开管理后台**:在独立窗口中嵌入服务自带的 `/admin` 前端,可直接登录管理 prompt
|
|
79
|
-
- **检查更新**:调用 npm Registry 获取最新版本,下载 tarball、自动安装依赖,并保留 `examples/prompts` 内的示例内容(实际数据位于 `~/.prompt-manager/prompts`,不会受影响)
|
|
80
|
-
- **关于服务**:展示桌面端、服务端、Electron、Chromium、Node.js 等组件版本
|
|
81
|
-
- **退出服务**:先平滑停止 Express 服务,再退出 Electron 进程
|
|
40
|
+
下载桌面应用,双击运行,点击菜单栏图标就能管理提示词。
|
|
82
41
|
|
|
83
|
-
|
|
42
|
+
> 💡 桌面应用正在开发中,敬请期待
|
|
84
43
|
|
|
85
|
-
|
|
86
|
-
# 安装依赖(仓库根目录已经装好 server 依赖)
|
|
87
|
-
cd app/desktop
|
|
88
|
-
npm install
|
|
89
|
-
|
|
90
|
-
# 启动托盘应用(也可使用根目录脚本 npm run desktop:dev)
|
|
91
|
-
npm run dev
|
|
92
|
-
```
|
|
44
|
+
## 怎么用?
|
|
93
45
|
|
|
94
|
-
|
|
46
|
+
### 1. 创建提示词
|
|
95
47
|
|
|
96
|
-
|
|
48
|
+
在管理界面点击"新建",输入提示词内容:
|
|
97
49
|
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
|
|
50
|
+
```yaml
|
|
51
|
+
name: 代码审查
|
|
52
|
+
description: 帮我审查代码质量
|
|
53
|
+
messages:
|
|
54
|
+
- role: user
|
|
55
|
+
content:
|
|
56
|
+
text: |
|
|
57
|
+
请审查以下代码,找出潜在问题:
|
|
58
|
+
|
|
59
|
+
{{code}}
|
|
101
60
|
```
|
|
102
61
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### 升级机制
|
|
106
|
-
|
|
107
|
-
菜单中的 "检查更新" 会:
|
|
108
|
-
|
|
109
|
-
1. 读取当前运行的服务版本(`app.getPath('userData')/prompt-manager/package.json`)
|
|
110
|
-
2. 对比 npm Registry 上的最新版本
|
|
111
|
-
3. 在用户确认后停止服务、下载最新 tarball、重新写入运行目录
|
|
112
|
-
4. 通过 `npm install --omit=dev` 在沙盒目录中重新安装依赖
|
|
113
|
-
5. 保留示例 `examples/prompts` 目录(若存在),用户自定义数据保存在 `~/.prompt-manager/prompts`,无需额外迁移
|
|
62
|
+
### 2. 使用提示词
|
|
114
63
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
### 命令行参数
|
|
120
|
-
|
|
121
|
-
| 参数 | 简写 | 描述 |
|
|
122
|
-
|------|------|------|
|
|
123
|
-
| `--prompts-dir <目录>` | `-p` | 指定 prompts 文件所在目录 |
|
|
124
|
-
| `--port <端口>` | `-P` | 指定服务器端口 (默认: 5621) |
|
|
125
|
-
| `--help` | `-h` | 显示帮助信息 |
|
|
126
|
-
| `--version` | `-v` | 显示版本信息 |
|
|
127
|
-
|
|
128
|
-
### 环境变量
|
|
64
|
+
保存后,你可以:
|
|
65
|
+
- 在管理界面直接使用
|
|
66
|
+
- 通过 API 调用(适合程序员)
|
|
67
|
+
- 在支持 MCP 协议的 AI 客户端中使用
|
|
129
68
|
|
|
130
|
-
|
|
131
|
-
|----------|------|--------|
|
|
132
|
-
| `MCP_SERVER_NAME` | 服务器名称 | `prompt-manager` |
|
|
133
|
-
| `SERVER_PORT` | 服务器端口 | `5621` |
|
|
134
|
-
| `PROMPTS_DIR` | Prompts目录路径 | `~/.prompt-manager/prompts` |
|
|
135
|
-
| `MCP_SERVER_VERSION` | 服务器版本 | `0.0.18` |
|
|
136
|
-
| `LOG_LEVEL` | 日志级别 (error, warn, info, debug) | `info` |
|
|
137
|
-
| `MAX_PROMPTS` | 最大prompt数量限制 | `100` |
|
|
138
|
-
| `RECURSIVE_SCAN` | 是否启用递归扫描子目录 | `true` |
|
|
139
|
-
| `ADMIN_ENABLE` | 是否启用管理界面 | `true` |
|
|
140
|
-
| `ADMIN_PATH` | 管理界面路径 | `/admin` |
|
|
141
|
-
| `ADMIN_USERNAME` | 管理员用户名 | `admin` |
|
|
142
|
-
| `ADMIN_PASSWORD` | 管理员密码 | `admin` |
|
|
69
|
+
### 3. 管理提示词
|
|
143
70
|
|
|
144
|
-
|
|
71
|
+
- 📁 按文件夹分类整理
|
|
72
|
+
- 🔍 快速搜索
|
|
73
|
+
- ✏️ 随时编辑
|
|
74
|
+
- 🗑️ 删除不需要的
|
|
145
75
|
|
|
146
|
-
##
|
|
76
|
+
## 常见使用场景
|
|
147
77
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
- `search_prompts`: 搜索提示词
|
|
153
|
-
- `get_prompt`: 获取指定提示词的完整内容
|
|
154
|
-
- `reload_prompts`: 重新加载所有提示词
|
|
155
|
-
|
|
156
|
-
### Web管理接口
|
|
157
|
-
|
|
158
|
-
#### 获取提示词列表
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
GET /prompts[?search=关键词]
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
返回所有可用的提示词列表,支持搜索功能。
|
|
165
|
-
|
|
166
|
-
#### 获取单个提示词详情
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
GET /api/prompts/:name[?path=文件路径]
|
|
170
|
-
```
|
|
78
|
+
**场景 1:团队共享提示词**
|
|
79
|
+
- 把团队常用的提示词整理在一起
|
|
80
|
+
- 新成员直接使用,不用重复写
|
|
171
81
|
|
|
172
|
-
|
|
82
|
+
**场景 2:个人知识库**
|
|
83
|
+
- 把好用的提示词保存下来
|
|
84
|
+
- 按项目、按类型分类管理
|
|
173
85
|
|
|
174
|
-
|
|
86
|
+
**场景 3:集成到其他工具**
|
|
87
|
+
- 作为服务运行
|
|
88
|
+
- 其他程序通过 API 调用你的提示词库
|
|
175
89
|
|
|
176
|
-
|
|
177
|
-
POST /api/prompts
|
|
178
|
-
```
|
|
90
|
+
## 提示词格式
|
|
179
91
|
|
|
180
|
-
|
|
92
|
+
提示词用 YAML 格式保存,很简单:
|
|
181
93
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
94
|
+
```yaml
|
|
95
|
+
name: 提示词名称
|
|
96
|
+
description: 简短描述
|
|
97
|
+
messages:
|
|
98
|
+
- role: user
|
|
99
|
+
content:
|
|
100
|
+
text: 提示词内容,可以用 {{变量名}} 来占位
|
|
101
|
+
arguments:
|
|
102
|
+
- name: 变量名
|
|
103
|
+
description: 变量说明
|
|
104
|
+
type: string
|
|
105
|
+
enabled: true
|
|
189
106
|
```
|
|
190
107
|
|
|
191
|
-
|
|
108
|
+
**示例:代码审查提示词**
|
|
192
109
|
|
|
193
|
-
```
|
|
194
|
-
|
|
110
|
+
```yaml
|
|
111
|
+
name: code-review
|
|
112
|
+
description: 代码审查助手
|
|
113
|
+
messages:
|
|
114
|
+
- role: user
|
|
115
|
+
content:
|
|
116
|
+
text: |
|
|
117
|
+
请审查这段 {{language}} 代码:
|
|
118
|
+
|
|
119
|
+
```{{language}}
|
|
120
|
+
{{code}}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
请指出:
|
|
124
|
+
1. 潜在问题
|
|
125
|
+
2. 改进建议
|
|
126
|
+
arguments:
|
|
127
|
+
- name: language
|
|
128
|
+
description: 编程语言
|
|
129
|
+
type: string
|
|
130
|
+
- name: code
|
|
131
|
+
description: 要审查的代码
|
|
132
|
+
type: string
|
|
133
|
+
enabled: true
|
|
195
134
|
```
|
|
196
135
|
|
|
197
|
-
|
|
136
|
+
## 配置说明
|
|
198
137
|
|
|
199
|
-
|
|
138
|
+
### 命令行参数
|
|
200
139
|
|
|
140
|
+
```bash
|
|
141
|
+
prompt-manager --port 6000 # 指定端口
|
|
142
|
+
prompt-manager --prompts-dir ./prompts # 指定提示词目录
|
|
201
143
|
```
|
|
202
|
-
POST /api/prompts/:name/toggle[?path=文件路径]
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
切换提示词的启用/禁用状态。
|
|
206
|
-
|
|
207
|
-
#### 处理提示词
|
|
208
144
|
|
|
209
|
-
|
|
210
|
-
POST /process
|
|
211
|
-
```
|
|
145
|
+
### 环境变量
|
|
212
146
|
|
|
213
|
-
|
|
147
|
+
创建 `.env` 文件(可选):
|
|
214
148
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
"arguments": {
|
|
220
|
-
"language": "JavaScript",
|
|
221
|
-
"code": "function hello() { console.log('Hello'); }"
|
|
222
|
-
}
|
|
223
|
-
}
|
|
149
|
+
```env
|
|
150
|
+
SERVER_PORT=5621
|
|
151
|
+
ADMIN_USERNAME=admin
|
|
152
|
+
ADMIN_PASSWORD=你的密码
|
|
224
153
|
```
|
|
225
154
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
```
|
|
229
|
-
GET /api/groups
|
|
230
|
-
```
|
|
155
|
+
## 常见问题
|
|
231
156
|
|
|
232
|
-
|
|
157
|
+
**Q: 提示词保存在哪里?**
|
|
158
|
+
A: 默认保存在 `~/.prompt-manager/prompts` 目录
|
|
233
159
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
```
|
|
160
|
+
**Q: 可以多人使用吗?**
|
|
161
|
+
A: 可以,把提示词目录共享,或者部署为服务供团队使用
|
|
237
162
|
|
|
238
|
-
|
|
163
|
+
**Q: 支持哪些 AI 客户端?**
|
|
164
|
+
A: 支持 MCP 协议的客户端都可以使用(如 Claude Desktop)
|
|
239
165
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
```
|
|
166
|
+
**Q: 需要编程基础吗?**
|
|
167
|
+
A: 使用网页界面不需要,但作为服务运行需要基本的命令行知识
|
|
243
168
|
|
|
244
|
-
|
|
169
|
+
## 技术细节(可选看)
|
|
245
170
|
|
|
246
|
-
|
|
247
|
-
PATCH /api/groups/status
|
|
248
|
-
```
|
|
171
|
+
### 作为库使用
|
|
249
172
|
|
|
250
|
-
|
|
173
|
+
```javascript
|
|
174
|
+
import { startServer } from '@becrafter/prompt-manager-core';
|
|
251
175
|
|
|
252
|
-
|
|
253
|
-
|
|
176
|
+
await startServer({
|
|
177
|
+
configOverrides: {
|
|
178
|
+
promptsDir: './my-prompts',
|
|
179
|
+
port: 3000
|
|
180
|
+
}
|
|
181
|
+
});
|
|
254
182
|
```
|
|
255
183
|
|
|
256
|
-
|
|
184
|
+
### API 接口
|
|
257
185
|
|
|
258
|
-
|
|
186
|
+
- `GET /prompts` - 获取提示词列表
|
|
187
|
+
- `GET /api/prompts/:name` - 获取单个提示词
|
|
188
|
+
- `POST /api/prompts` - 创建/更新提示词
|
|
189
|
+
- `POST /process` - 处理提示词(支持参数替换)
|
|
259
190
|
|
|
260
|
-
|
|
191
|
+
### MCP 协议支持
|
|
261
192
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
- role: user
|
|
267
|
-
content:
|
|
268
|
-
text: 提示词内容,支持 {{参数名}} 格式的参数替换
|
|
269
|
-
arguments:
|
|
270
|
-
- name: 参数名
|
|
271
|
-
description: 参数描述
|
|
272
|
-
type: string|number|boolean
|
|
273
|
-
required: true|false
|
|
274
|
-
enabled: true|false # 是否启用该提示词
|
|
275
|
-
```
|
|
193
|
+
支持以下 MCP 工具:
|
|
194
|
+
- `search_prompts` - 搜索提示词
|
|
195
|
+
- `get_prompt` - 获取提示词
|
|
196
|
+
- `reload_prompts` - 重新加载
|
|
276
197
|
|
|
277
198
|
## 开发
|
|
278
199
|
|
|
279
|
-
### 项目结构
|
|
280
|
-
|
|
281
|
-
```
|
|
282
|
-
prompt-manager/
|
|
283
|
-
├── app/
|
|
284
|
-
│ ├── cli/ # 命令行命令分发与共享工具
|
|
285
|
-
│ └── desktop/ # Electron 菜单应用
|
|
286
|
-
├── packages/
|
|
287
|
-
│ ├── admin-ui/ # 内置管理后台静态资源
|
|
288
|
-
│ └── server/ # 服务端核心逻辑
|
|
289
|
-
├── examples/
|
|
290
|
-
│ └── prompts/ # 随包示例提示词(首次启动会同步到 ~/.prompt-manager/prompts)
|
|
291
|
-
├── scripts/ # 安装/维护脚本(如 env 同步)
|
|
292
|
-
├── bin/ # 可执行入口
|
|
293
|
-
└── package.json
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
### 本地开发
|
|
297
|
-
|
|
298
200
|
```bash
|
|
299
|
-
#
|
|
300
|
-
git clone https://github.com/BeCrafter/prompt-
|
|
301
|
-
cd prompt-
|
|
201
|
+
# 克隆项目
|
|
202
|
+
git clone https://github.com/BeCrafter/prompt-server.git
|
|
203
|
+
cd prompt-server
|
|
302
204
|
|
|
303
205
|
# 安装依赖
|
|
304
206
|
npm install
|
|
@@ -309,4 +211,13 @@ npm run dev
|
|
|
309
211
|
|
|
310
212
|
## 许可证
|
|
311
213
|
|
|
312
|
-
MIT License
|
|
214
|
+
MIT License
|
|
215
|
+
|
|
216
|
+
## 相关链接
|
|
217
|
+
|
|
218
|
+
- [npm 包](https://www.npmjs.com/package/@becrafter/prompt-manager)
|
|
219
|
+
- [问题反馈](https://github.com/BeCrafter/prompt-server/issues)
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
**Made with ❤️ by BeCrafter**
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|