@becrafter/prompt-manager 0.0.19 → 0.1.2
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 +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/tray.1.png +0 -0
- package/app/desktop/assets/tray.png +0 -0
- package/app/desktop/main.js +27 -0
- package/app/desktop/package-lock.json +201 -4
- package/app/desktop/package.json +23 -29
- package/app/desktop/src/services/module-loader.js +43 -22
- package/app/desktop/src/services/runtime-manager.js +172 -23
- package/app/desktop/src/services/update-manager.js +6 -7
- 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 +8 -24
- package/app/desktop/src/utils/icon-manager.js +39 -47
- package/app/desktop/src/utils/resource-paths.js +0 -23
- package/app/desktop/src/utils/resource-sync.js +260 -0
- package/app/desktop/src/utils/runtime-sync.js +241 -0
- package/examples/prompts/recommend/human_3-0_growth_diagnostic_coach_prompt.yaml +105 -0
- package/package.json +16 -13
- 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 +6973 -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 +514 -160
- 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 +324 -105
- 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 +99 -69
- 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/app/desktop/assets/icons/icon_1024x1024.png +0 -0
- package/app/desktop/assets/icons/icon_128x128.png +0 -0
- package/app/desktop/assets/icons/icon_16x16.png +0 -0
- package/app/desktop/assets/icons/icon_24x24.png +0 -0
- package/app/desktop/assets/icons/icon_256x256.png +0 -0
- package/app/desktop/assets/icons/icon_32x32.png +0 -0
- package/app/desktop/assets/icons/icon_48x48.png +0 -0
- package/app/desktop/assets/icons/icon_512x512.png +0 -0
- package/app/desktop/assets/icons/icon_64x64.png +0 -0
- package/app/desktop/assets/icons/icon_96x96.png +0 -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/packages/resources/tools/index.js +0 -16
- package/packages/server/mcp/toolx.handler.js +0 -131
- package/scripts/icns-builder/package.json +0 -12
- /package/packages/server/mcp/{mcp.handler.js → prompt.handler.js} +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
|
+
|