@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
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# PDF Reader Tool
|
|
2
|
+
|
|
3
|
+
PDF 分页阅读工具,支持按页码提取文本和图片,智能缓存避免重复解析。
|
|
4
|
+
|
|
5
|
+
## 功能特性
|
|
6
|
+
|
|
7
|
+
1. **分页阅读** (`read_pdf`)
|
|
8
|
+
- 不传 `pages` 参数:只返回 PDF 元信息(总页数、标题等)
|
|
9
|
+
- 传单个页码:读取指定页的文本和图片
|
|
10
|
+
- 传页码数组:批量读取多页内容
|
|
11
|
+
|
|
12
|
+
2. **智能缓存**
|
|
13
|
+
- 自动缓存 PDF 元信息
|
|
14
|
+
- 缓存已解析的页面内容
|
|
15
|
+
- 避免重复解析,提高性能
|
|
16
|
+
|
|
17
|
+
3. **图片提取**
|
|
18
|
+
- 支持提取 PDF 中的图片
|
|
19
|
+
- 图片存储在工具目录的 `pdf-cache` 子目录
|
|
20
|
+
- 返回图片路径和元信息
|
|
21
|
+
|
|
22
|
+
## 环境变量配置
|
|
23
|
+
|
|
24
|
+
工具需要配置以下环境变量:
|
|
25
|
+
|
|
26
|
+
- `ALLOWED_DIRECTORIES` (可选): 允许访问的目录列表(JSON数组格式)
|
|
27
|
+
- 默认值: `["~/.prompt-manager"]`
|
|
28
|
+
- 示例: `["~/.prompt-manager", "/tmp"]`
|
|
29
|
+
|
|
30
|
+
## 使用方法
|
|
31
|
+
|
|
32
|
+
### 1. 配置环境变量
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
tool: tool://pdf-reader
|
|
36
|
+
mode: configure
|
|
37
|
+
parameters:
|
|
38
|
+
ALLOWED_DIRECTORIES: '["~/.prompt-manager"]'
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. 获取 PDF 元信息
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
tool: tool://pdf-reader
|
|
45
|
+
mode: execute
|
|
46
|
+
parameters:
|
|
47
|
+
method: read_pdf
|
|
48
|
+
pdfPath: "~/.prompt-manager/document.pdf"
|
|
49
|
+
# 不传 pages 参数,只返回元信息
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. 读取指定页面
|
|
53
|
+
|
|
54
|
+
```yaml
|
|
55
|
+
tool: tool://pdf-reader
|
|
56
|
+
mode: execute
|
|
57
|
+
parameters:
|
|
58
|
+
method: read_pdf
|
|
59
|
+
pdfPath: "~/.prompt-manager/document.pdf"
|
|
60
|
+
pages: 1 # 读取第1页
|
|
61
|
+
extractImages: true # 可选,是否提取图片
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 4. 批量读取多页
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
tool: tool://pdf-reader
|
|
68
|
+
mode: execute
|
|
69
|
+
parameters:
|
|
70
|
+
method: read_pdf
|
|
71
|
+
pdfPath: "~/.prompt-manager/document.pdf"
|
|
72
|
+
pages: [1, 2, 3] # 读取第1、2、3页
|
|
73
|
+
extractImages: true
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 5. 强制刷新缓存
|
|
77
|
+
|
|
78
|
+
```yaml
|
|
79
|
+
tool: tool://pdf-reader
|
|
80
|
+
mode: execute
|
|
81
|
+
parameters:
|
|
82
|
+
method: read_pdf
|
|
83
|
+
pdfPath: "~/.prompt-manager/document.pdf"
|
|
84
|
+
pages: 1
|
|
85
|
+
forceRefresh: true # 强制重新解析,忽略缓存
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## 参数说明
|
|
89
|
+
|
|
90
|
+
### read_pdf 方法
|
|
91
|
+
|
|
92
|
+
- `method` (必需): 必须为 `"read_pdf"`
|
|
93
|
+
- `pdfPath` (必需): PDF 文件的绝对路径或相对路径(相对于允许的目录)
|
|
94
|
+
- `pages` (可选): 要读取的页码
|
|
95
|
+
- 不传:只返回 PDF 元信息
|
|
96
|
+
- 传数字:读取单页(如 `1`)
|
|
97
|
+
- 传数组:读取多页(如 `[1, 2, 3]`)
|
|
98
|
+
- `extractImages` (可选): 是否提取图片,默认 `true`
|
|
99
|
+
- `forceRefresh` (可选): 强制重新解析,忽略缓存,默认 `false`
|
|
100
|
+
|
|
101
|
+
## 返回格式
|
|
102
|
+
|
|
103
|
+
### 只获取元信息(不传 pages)
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"success": true,
|
|
108
|
+
"metadata": {
|
|
109
|
+
"totalPages": 10,
|
|
110
|
+
"title": "文档标题",
|
|
111
|
+
"author": "作者",
|
|
112
|
+
"cachedPages": 0
|
|
113
|
+
},
|
|
114
|
+
"message": "使用 pages 参数指定要读取的页码,例如:pages: 1 或 pages: [1,2,3]"
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 读取页面内容
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"success": true,
|
|
123
|
+
"metadata": {
|
|
124
|
+
"totalPages": 10,
|
|
125
|
+
"title": "文档标题",
|
|
126
|
+
"author": "作者",
|
|
127
|
+
"requestedPages": [1, 2]
|
|
128
|
+
},
|
|
129
|
+
"content": {
|
|
130
|
+
"text": "\n=== 第 1 页 ===\n页面1内容...\n=== 第 2 页 ===\n页面2内容...",
|
|
131
|
+
"pages": [
|
|
132
|
+
{
|
|
133
|
+
"page": 1,
|
|
134
|
+
"hasImages": true,
|
|
135
|
+
"imageCount": 2,
|
|
136
|
+
"images": [
|
|
137
|
+
{
|
|
138
|
+
"page": 1,
|
|
139
|
+
"index": 0,
|
|
140
|
+
"path": "/path/to/pdf-cache/hash/page-1-img-0.png",
|
|
141
|
+
"width": null,
|
|
142
|
+
"height": null
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
"fromCache": false
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
"hasImages": true,
|
|
149
|
+
"imageCount": 2,
|
|
150
|
+
"imagesDirectory": "/path/to/pdf-cache/hash"
|
|
151
|
+
},
|
|
152
|
+
"cache": {
|
|
153
|
+
"hits": 0,
|
|
154
|
+
"misses": 2,
|
|
155
|
+
"totalCachedPages": 2
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## 错误处理
|
|
161
|
+
|
|
162
|
+
工具定义了以下业务错误:
|
|
163
|
+
|
|
164
|
+
- `PATH_OUTSIDE_SCOPE`: 路径越权访问
|
|
165
|
+
- `FILE_NOT_FOUND`: PDF文件不存在
|
|
166
|
+
- `INVALID_PDF`: 无效的PDF文件
|
|
167
|
+
- `PERMISSION_DENIED`: 权限不足
|
|
168
|
+
- `PAGE_OUT_OF_RANGE`: 页码超出范围
|
|
169
|
+
|
|
170
|
+
## 注意事项
|
|
171
|
+
|
|
172
|
+
1. **服务器同步**: 新添加的工具需要重启服务器才能被加载
|
|
173
|
+
2. **路径限制**: 默认只能访问 `~/.prompt-manager` 目录,可通过环境变量配置额外允许的目录
|
|
174
|
+
3. **缓存机制**: PDF 元信息和已解析的页面会被缓存,提高后续读取性能
|
|
175
|
+
4. **图片存储**: 提取的图片存储在工具目录的 `pdf-cache/{pdf-hash}/` 目录下
|
|
176
|
+
5. **页码范围**: 页码从 1 开始,必须小于等于总页数
|
|
177
|
+
6. **大文件处理**: 大文件可能需要较长时间处理,建议先获取元信息了解总页数
|
|
178
|
+
7. **图片提取**: 图片提取依赖于 PDF 的图片存储格式,某些 PDF 可能无法提取图片
|
|
179
|
+
|
|
180
|
+
## 测试步骤
|
|
181
|
+
|
|
182
|
+
1. **重启服务器**(如果服务器已在运行)
|
|
183
|
+
|
|
184
|
+
2. **查看工具手册**
|
|
185
|
+
```yaml
|
|
186
|
+
tool: tool://pdf-reader
|
|
187
|
+
mode: manual
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
3. **配置环境变量**
|
|
191
|
+
```yaml
|
|
192
|
+
tool: tool://pdf-reader
|
|
193
|
+
mode: configure
|
|
194
|
+
parameters:
|
|
195
|
+
ALLOWED_DIRECTORIES: '["~/.prompt-manager"]'
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
4. **测试获取 PDF 元信息**
|
|
199
|
+
```yaml
|
|
200
|
+
tool: tool://pdf-reader
|
|
201
|
+
mode: execute
|
|
202
|
+
parameters:
|
|
203
|
+
method: read_pdf
|
|
204
|
+
pdfPath: "~/.prompt-manager/test.pdf"
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
5. **测试读取指定页面**
|
|
208
|
+
```yaml
|
|
209
|
+
tool: tool://pdf-reader
|
|
210
|
+
mode: execute
|
|
211
|
+
parameters:
|
|
212
|
+
method: read_pdf
|
|
213
|
+
pdfPath: "~/.prompt-manager/test.pdf"
|
|
214
|
+
pages: 1
|
|
215
|
+
extractImages: true
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## 开发说明
|
|
219
|
+
|
|
220
|
+
工具基于 `pdf-parse` 库开发,遵循 Prompt Manager 工具开发规范:
|
|
221
|
+
|
|
222
|
+
- 使用 ES6 模块格式 (`export default`)
|
|
223
|
+
- 实现必需方法 `execute()`
|
|
224
|
+
- 实现推荐方法:`getDependencies()`, `getMetadata()`, `getSchema()`, `getBusinessErrors()`
|
|
225
|
+
- 完整的错误处理和日志记录
|
|
226
|
+
- 智能缓存机制
|
|
227
|
+
- 符合工具开发指南的所有要求
|
|
228
|
+
|
|
229
|
+
## 版本历史
|
|
230
|
+
|
|
231
|
+
- **2.1.0** (2025-01-01): 当前版本
|
|
232
|
+
- 实现 PDF 分页阅读功能
|
|
233
|
+
- 支持图片提取
|
|
234
|
+
- 智能缓存机制
|
|
235
|
+
- 完整的错误处理
|
|
236
|
+
|