@becrafter/prompt-manager 0.0.19 → 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.
Files changed (103) hide show
  1. package/README.md +145 -234
  2. package/app/desktop/assets/app.1.png +0 -0
  3. package/app/desktop/assets/app.png +0 -0
  4. package/app/desktop/assets/icons/icon.icns +0 -0
  5. package/app/desktop/assets/icons/icon.ico +0 -0
  6. package/app/desktop/assets/icons/icon.png +0 -0
  7. package/app/desktop/assets/icons/tray.png +0 -0
  8. package/app/desktop/assets/tray.1.png +0 -0
  9. package/app/desktop/assets/tray.png +0 -0
  10. package/app/desktop/main.js +27 -0
  11. package/app/desktop/package-lock.json +216 -48
  12. package/app/desktop/package.json +23 -29
  13. package/app/desktop/src/services/module-loader.js +43 -22
  14. package/app/desktop/src/services/runtime-manager.js +172 -23
  15. package/app/desktop/src/ui/admin-window-manager.js +757 -0
  16. package/app/desktop/src/ui/splash-manager.js +253 -0
  17. package/app/desktop/src/ui/tray-manager.js +8 -24
  18. package/app/desktop/src/utils/icon-manager.js +39 -47
  19. package/app/desktop/src/utils/resource-paths.js +0 -23
  20. package/app/desktop/src/utils/resource-sync.js +260 -0
  21. package/app/desktop/src/utils/runtime-sync.js +241 -0
  22. package/examples/prompts/recommend/human_3-0_growth_diagnostic_coach_prompt.yaml +105 -0
  23. package/package.json +16 -13
  24. package/packages/admin-ui/.babelrc +3 -0
  25. package/packages/admin-ui/admin.html +237 -4784
  26. package/packages/admin-ui/css/main.css +2592 -0
  27. package/packages/admin-ui/css/recommended-prompts.css +610 -0
  28. package/packages/admin-ui/package-lock.json +6981 -0
  29. package/packages/admin-ui/package.json +36 -0
  30. package/packages/admin-ui/src/codemirror.js +53 -0
  31. package/packages/admin-ui/src/index.js +3188 -0
  32. package/packages/admin-ui/webpack.config.js +76 -0
  33. package/packages/resources/tools/chrome-devtools/README.md +310 -0
  34. package/packages/resources/tools/chrome-devtools/chrome-devtools.tool.js +1703 -0
  35. package/packages/resources/tools/file-reader/README.md +289 -0
  36. package/packages/resources/tools/file-reader/file-reader.tool.js +1545 -0
  37. package/packages/resources/tools/filesystem/README.md +359 -0
  38. package/packages/resources/tools/filesystem/filesystem.tool.js +514 -160
  39. package/packages/resources/tools/ollama-remote/README.md +192 -0
  40. package/packages/resources/tools/ollama-remote/ollama-remote.tool.js +421 -0
  41. package/packages/resources/tools/pdf-reader/README.md +236 -0
  42. package/packages/resources/tools/pdf-reader/pdf-reader.tool.js +565 -0
  43. package/packages/resources/tools/playwright/README.md +306 -0
  44. package/packages/resources/tools/playwright/playwright.tool.js +1186 -0
  45. package/packages/resources/tools/todolist/README.md +394 -0
  46. package/packages/resources/tools/todolist/todolist.tool.js +1312 -0
  47. package/packages/server/README.md +142 -0
  48. package/packages/server/api/admin.routes.js +42 -11
  49. package/packages/server/api/surge.routes.js +43 -0
  50. package/packages/server/app.js +119 -14
  51. package/packages/server/index.js +39 -0
  52. package/packages/server/mcp/mcp.server.js +324 -105
  53. package/packages/server/mcp/sequential-thinking.handler.js +318 -0
  54. package/packages/server/mcp/think-plan.handler.js +274 -0
  55. package/packages/server/middlewares/auth.middleware.js +6 -0
  56. package/packages/server/package.json +51 -0
  57. package/packages/server/server.js +37 -1
  58. package/packages/server/toolm/index.js +9 -0
  59. package/packages/server/toolm/package-installer.service.js +267 -0
  60. package/packages/server/toolm/test-tools.js +264 -0
  61. package/packages/server/toolm/tool-context.service.js +334 -0
  62. package/packages/server/toolm/tool-dependency.service.js +168 -0
  63. package/packages/server/toolm/tool-description-generator-optimized.service.js +375 -0
  64. package/packages/server/toolm/tool-description-generator.service.js +312 -0
  65. package/packages/server/toolm/tool-environment.service.js +200 -0
  66. package/packages/server/toolm/tool-execution.service.js +277 -0
  67. package/packages/server/toolm/tool-loader.service.js +219 -0
  68. package/packages/server/toolm/tool-logger.service.js +223 -0
  69. package/packages/server/toolm/tool-manager.handler.js +65 -0
  70. package/packages/server/toolm/tool-manual-generator.service.js +389 -0
  71. package/packages/server/toolm/tool-mode-handlers.service.js +224 -0
  72. package/packages/server/toolm/tool-storage.service.js +111 -0
  73. package/packages/server/toolm/tool-sync.service.js +138 -0
  74. package/packages/server/toolm/tool-utils.js +20 -0
  75. package/packages/server/toolm/tool-yaml-parser.service.js +81 -0
  76. package/packages/server/toolm/validate-system.js +421 -0
  77. package/packages/server/utils/config.js +49 -5
  78. package/packages/server/utils/util.js +65 -10
  79. package/scripts/build-icons.js +99 -69
  80. package/scripts/build.sh +57 -0
  81. package/scripts/surge/CNAME +1 -0
  82. package/scripts/surge/README.md +47 -0
  83. package/scripts/surge/package-lock.json +34 -0
  84. package/scripts/surge/package.json +20 -0
  85. package/scripts/surge/sync-to-surge.js +151 -0
  86. package/app/desktop/assets/icons/icon_1024x1024.png +0 -0
  87. package/app/desktop/assets/icons/icon_128x128.png +0 -0
  88. package/app/desktop/assets/icons/icon_16x16.png +0 -0
  89. package/app/desktop/assets/icons/icon_24x24.png +0 -0
  90. package/app/desktop/assets/icons/icon_256x256.png +0 -0
  91. package/app/desktop/assets/icons/icon_32x32.png +0 -0
  92. package/app/desktop/assets/icons/icon_48x48.png +0 -0
  93. package/app/desktop/assets/icons/icon_512x512.png +0 -0
  94. package/app/desktop/assets/icons/icon_64x64.png +0 -0
  95. package/app/desktop/assets/icons/icon_96x96.png +0 -0
  96. package/packages/admin-ui/js/closebrackets.min.js +0 -8
  97. package/packages/admin-ui/js/codemirror.min.js +0 -8
  98. package/packages/admin-ui/js/js-yaml.min.js +0 -2
  99. package/packages/admin-ui/js/markdown.min.js +0 -8
  100. package/packages/resources/tools/index.js +0 -16
  101. package/packages/server/mcp/toolx.handler.js +0 -131
  102. package/scripts/icns-builder/package.json +0 -12
  103. /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
+