@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.
Files changed (108) hide show
  1. package/IFLOW.md +175 -0
  2. package/README.md +145 -234
  3. package/app/desktop/assets/app.1.png +0 -0
  4. package/app/desktop/assets/app.png +0 -0
  5. package/app/desktop/assets/icons/icon.icns +0 -0
  6. package/app/desktop/assets/icons/icon.ico +0 -0
  7. package/app/desktop/assets/icons/icon.png +0 -0
  8. package/app/desktop/assets/icons/tray.png +0 -0
  9. package/app/desktop/assets/templates/about.html +147 -0
  10. package/app/desktop/assets/tray.png +0 -0
  11. package/app/desktop/main.js +187 -732
  12. package/app/desktop/package-lock.json +723 -522
  13. package/app/desktop/package.json +54 -25
  14. package/app/desktop/preload.js +7 -0
  15. package/app/desktop/src/core/error-handler.js +108 -0
  16. package/app/desktop/src/core/event-emitter.js +84 -0
  17. package/app/desktop/src/core/logger.js +108 -0
  18. package/app/desktop/src/core/state-manager.js +125 -0
  19. package/app/desktop/src/services/module-loader.js +214 -0
  20. package/app/desktop/src/services/runtime-manager.js +301 -0
  21. package/app/desktop/src/services/service-manager.js +169 -0
  22. package/app/desktop/src/services/update-manager.js +268 -0
  23. package/app/desktop/src/ui/about-dialog-manager.js +208 -0
  24. package/app/desktop/src/ui/admin-window-manager.js +757 -0
  25. package/app/desktop/src/ui/splash-manager.js +253 -0
  26. package/app/desktop/src/ui/tray-manager.js +186 -0
  27. package/app/desktop/src/utils/icon-manager.js +133 -0
  28. package/app/desktop/src/utils/path-utils.js +58 -0
  29. package/app/desktop/src/utils/resource-paths.js +49 -0
  30. package/app/desktop/src/utils/resource-sync.js +260 -0
  31. package/app/desktop/src/utils/runtime-sync.js +241 -0
  32. package/app/desktop/src/utils/template-renderer.js +284 -0
  33. package/app/desktop/src/utils/version-utils.js +59 -0
  34. package/examples/prompts/engineer/engineer-professional.yaml +92 -0
  35. package/examples/prompts/engineer/laowang-engineer.yaml +132 -0
  36. package/examples/prompts/engineer/nekomata-engineer.yaml +123 -0
  37. package/examples/prompts/engineer/ojousama-engineer.yaml +124 -0
  38. package/examples/prompts/recommend/human_3-0_growth_diagnostic_coach_prompt.yaml +105 -0
  39. package/examples/prompts/workflow/sixstep-workflow.yaml +192 -0
  40. package/package.json +18 -9
  41. package/packages/admin-ui/.babelrc +3 -0
  42. package/packages/admin-ui/admin.html +237 -4784
  43. package/packages/admin-ui/css/main.css +2592 -0
  44. package/packages/admin-ui/css/recommended-prompts.css +610 -0
  45. package/packages/admin-ui/package-lock.json +6981 -0
  46. package/packages/admin-ui/package.json +36 -0
  47. package/packages/admin-ui/src/codemirror.js +53 -0
  48. package/packages/admin-ui/src/index.js +3188 -0
  49. package/packages/admin-ui/webpack.config.js +76 -0
  50. package/packages/resources/tools/chrome-devtools/README.md +310 -0
  51. package/packages/resources/tools/chrome-devtools/chrome-devtools.tool.js +1703 -0
  52. package/packages/resources/tools/file-reader/README.md +289 -0
  53. package/packages/resources/tools/file-reader/file-reader.tool.js +1545 -0
  54. package/packages/resources/tools/filesystem/README.md +359 -0
  55. package/packages/resources/tools/filesystem/filesystem.tool.js +538 -0
  56. package/packages/resources/tools/ollama-remote/README.md +192 -0
  57. package/packages/resources/tools/ollama-remote/ollama-remote.tool.js +421 -0
  58. package/packages/resources/tools/pdf-reader/README.md +236 -0
  59. package/packages/resources/tools/pdf-reader/pdf-reader.tool.js +565 -0
  60. package/packages/resources/tools/playwright/README.md +306 -0
  61. package/packages/resources/tools/playwright/playwright.tool.js +1186 -0
  62. package/packages/resources/tools/todolist/README.md +394 -0
  63. package/packages/resources/tools/todolist/todolist.tool.js +1312 -0
  64. package/packages/server/README.md +142 -0
  65. package/packages/server/api/admin.routes.js +42 -11
  66. package/packages/server/api/surge.routes.js +43 -0
  67. package/packages/server/app.js +119 -14
  68. package/packages/server/index.js +39 -0
  69. package/packages/server/mcp/mcp.server.js +346 -28
  70. package/packages/server/mcp/{mcp.handler.js → prompt.handler.js} +108 -9
  71. package/packages/server/mcp/sequential-thinking.handler.js +318 -0
  72. package/packages/server/mcp/think-plan.handler.js +274 -0
  73. package/packages/server/middlewares/auth.middleware.js +6 -0
  74. package/packages/server/package.json +51 -0
  75. package/packages/server/server.js +37 -1
  76. package/packages/server/toolm/index.js +9 -0
  77. package/packages/server/toolm/package-installer.service.js +267 -0
  78. package/packages/server/toolm/test-tools.js +264 -0
  79. package/packages/server/toolm/tool-context.service.js +334 -0
  80. package/packages/server/toolm/tool-dependency.service.js +168 -0
  81. package/packages/server/toolm/tool-description-generator-optimized.service.js +375 -0
  82. package/packages/server/toolm/tool-description-generator.service.js +312 -0
  83. package/packages/server/toolm/tool-environment.service.js +200 -0
  84. package/packages/server/toolm/tool-execution.service.js +277 -0
  85. package/packages/server/toolm/tool-loader.service.js +219 -0
  86. package/packages/server/toolm/tool-logger.service.js +223 -0
  87. package/packages/server/toolm/tool-manager.handler.js +65 -0
  88. package/packages/server/toolm/tool-manual-generator.service.js +389 -0
  89. package/packages/server/toolm/tool-mode-handlers.service.js +224 -0
  90. package/packages/server/toolm/tool-storage.service.js +111 -0
  91. package/packages/server/toolm/tool-sync.service.js +138 -0
  92. package/packages/server/toolm/tool-utils.js +20 -0
  93. package/packages/server/toolm/tool-yaml-parser.service.js +81 -0
  94. package/packages/server/toolm/validate-system.js +421 -0
  95. package/packages/server/utils/config.js +49 -5
  96. package/packages/server/utils/util.js +65 -10
  97. package/scripts/build-icons.js +135 -0
  98. package/scripts/build.sh +57 -0
  99. package/scripts/surge/CNAME +1 -0
  100. package/scripts/surge/README.md +47 -0
  101. package/scripts/surge/package-lock.json +34 -0
  102. package/scripts/surge/package.json +20 -0
  103. package/scripts/surge/sync-to-surge.js +151 -0
  104. package/packages/admin-ui/js/closebrackets.min.js +0 -8
  105. package/packages/admin-ui/js/codemirror.min.js +0 -8
  106. package/packages/admin-ui/js/js-yaml.min.js +0 -2
  107. package/packages/admin-ui/js/markdown.min.js +0 -8
  108. /package/app/desktop/assets/{icon.png → tray.1.png} +0 -0
@@ -0,0 +1,359 @@
1
+ # Filesystem Tool
2
+
3
+ 基于MCP标准的文件系统操作工具,提供读写、搜索、编辑等功能。
4
+
5
+ ## 功能特性
6
+
7
+ 1. **文件读取** (`read_text_file`, `read_media_file`, `read_multiple_files`)
8
+ - 读取文本文件(支持 head/tail 参数)
9
+ - 读取媒体文件(图片、音频等,转换为 base64)
10
+ - 批量读取多个文件
11
+
12
+ 2. **文件写入** (`write_file`, `edit_file`)
13
+ - 写入文件(自动创建父目录)
14
+ - 编辑文件(支持多个替换操作)
15
+ - 预览模式(dryRun)
16
+
17
+ 3. **目录操作** (`create_directory`, `list_directory`, `list_directory_with_sizes`, `directory_tree`)
18
+ - 创建目录
19
+ - 列出目录内容
20
+ - 列出目录内容(带大小信息)
21
+ - 构建目录树
22
+
23
+ 4. **文件管理** (`move_file`, `search_files`, `get_file_info`, `list_allowed_directories`)
24
+ - 移动/重命名文件
25
+ - 搜索文件(支持模式匹配)
26
+ - 获取文件信息
27
+ - 列出允许访问的目录
28
+
29
+ ## 环境变量配置
30
+
31
+ 工具需要配置以下环境变量:
32
+
33
+ - `ALLOWED_DIRECTORIES` (可选): 允许访问的目录列表(JSON数组格式)
34
+ - 默认值: `["~/.prompt-manager"]`
35
+ - 示例: `["~/.prompt-manager", "/tmp"]`
36
+
37
+ ## 使用方法
38
+
39
+ ### 1. 配置环境变量
40
+
41
+ ```yaml
42
+ tool: tool://filesystem
43
+ mode: configure
44
+ parameters:
45
+ ALLOWED_DIRECTORIES: '["~/.prompt-manager", "/tmp"]'
46
+ ```
47
+
48
+ ### 2. 读取文本文件
49
+
50
+ ```yaml
51
+ tool: tool://filesystem
52
+ mode: execute
53
+ parameters:
54
+ method: read_text_file
55
+ path: "~/.prompt-manager/config.json"
56
+ head: 10 # 可选,读取前10行
57
+ tail: 20 # 可选,读取后20行
58
+ ```
59
+
60
+ ### 3. 写入文件
61
+
62
+ ```yaml
63
+ tool: tool://filesystem
64
+ mode: execute
65
+ parameters:
66
+ method: write_file
67
+ path: "~/.prompt-manager/test.txt"
68
+ content: "文件内容"
69
+ ```
70
+
71
+ ### 4. 编辑文件
72
+
73
+ ```yaml
74
+ tool: tool://filesystem
75
+ mode: execute
76
+ parameters:
77
+ method: edit_file
78
+ path: "~/.prompt-manager/config.json"
79
+ edits:
80
+ - oldText: "旧文本"
81
+ newText: "新文本"
82
+ dryRun: false # 可选,预览模式
83
+ ```
84
+
85
+ ### 5. 列出目录
86
+
87
+ ```yaml
88
+ tool: tool://filesystem
89
+ mode: execute
90
+ parameters:
91
+ method: list_directory
92
+ path: "~/.prompt-manager"
93
+ ```
94
+
95
+ ### 6. 搜索文件
96
+
97
+ ```yaml
98
+ tool: tool://filesystem
99
+ mode: execute
100
+ parameters:
101
+ method: search_files
102
+ path: "~/.prompt-manager"
103
+ pattern: "*.json"
104
+ excludePatterns: ["node_modules", "*.log"]
105
+ ```
106
+
107
+ ### 7. 获取文件信息
108
+
109
+ ```yaml
110
+ tool: tool://filesystem
111
+ mode: execute
112
+ parameters:
113
+ method: get_file_info
114
+ path: "~/.prompt-manager/config.json"
115
+ ```
116
+
117
+ ## 参数说明
118
+
119
+ ### read_text_file 方法
120
+
121
+ - `method` (必需): 必须为 `"read_text_file"`
122
+ - `path` (必需): 文件路径
123
+ - `head` (可选): 读取前N行
124
+ - `tail` (可选): 读取后N行
125
+
126
+ ### read_media_file 方法
127
+
128
+ - `method` (必需): 必须为 `"read_media_file"`
129
+ - `path` (必需): 媒体文件路径
130
+
131
+ ### read_multiple_files 方法
132
+
133
+ - `method` (必需): 必须为 `"read_multiple_files"`
134
+ - `paths` (必需): 文件路径数组
135
+
136
+ ### write_file 方法
137
+
138
+ - `method` (必需): 必须为 `"write_file"`
139
+ - `path` (必需): 文件路径
140
+ - `content` (必需): 文件内容
141
+
142
+ ### edit_file 方法
143
+
144
+ - `method` (必需): 必须为 `"edit_file"`
145
+ - `path` (必需): 文件路径
146
+ - `edits` (必需): 编辑操作数组,每个元素包含:
147
+ - `oldText`: 要替换的原始文本(必须完全匹配)
148
+ - `newText`: 替换后的新文本
149
+ - `dryRun` (可选): 仅预览不执行,默认 `false`
150
+
151
+ ### create_directory 方法
152
+
153
+ - `method` (必需): 必须为 `"create_directory"`
154
+ - `path` (必需): 目录路径
155
+
156
+ ### list_directory 方法
157
+
158
+ - `method` (必需): 必须为 `"list_directory"`
159
+ - `path` (必需): 目录路径
160
+
161
+ ### list_directory_with_sizes 方法
162
+
163
+ - `method` (必需): 必须为 `"list_directory_with_sizes"`
164
+ - `path` (必需): 目录路径
165
+ - `sortBy` (可选): 排序方式(name/size),默认按名称排序
166
+
167
+ ### directory_tree 方法
168
+
169
+ - `method` (必需): 必须为 `"directory_tree"`
170
+ - `path` (必需): 目录路径
171
+
172
+ ### move_file 方法
173
+
174
+ - `method` (必需): 必须为 `"move_file"`
175
+ - `source` (必需): 源路径
176
+ - `destination` (必需): 目标路径
177
+
178
+ ### search_files 方法
179
+
180
+ - `method` (必需): 必须为 `"search_files"`
181
+ - `path` (必需): 搜索根目录
182
+ - `pattern` (必需): 搜索模式(支持通配符)
183
+ - `excludePatterns` (可选): 排除模式数组
184
+
185
+ ### get_file_info 方法
186
+
187
+ - `method` (必需): 必须为 `"get_file_info"`
188
+ - `path` (必需): 文件或目录路径
189
+
190
+ ### list_allowed_directories 方法
191
+
192
+ - `method` (必需): 必须为 `"list_allowed_directories"`
193
+ - 无需其他参数
194
+
195
+ ## 返回格式
196
+
197
+ ### read_text_file 返回
198
+
199
+ ```json
200
+ "文件内容..."
201
+ ```
202
+
203
+ ### read_media_file 返回
204
+
205
+ ```json
206
+ {
207
+ "base64": "base64-encoded-data",
208
+ "mimeType": "image/png"
209
+ }
210
+ ```
211
+
212
+ ### read_multiple_files 返回
213
+
214
+ ```json
215
+ [
216
+ {
217
+ "path": "file1.txt",
218
+ "content": "内容1",
219
+ "success": true
220
+ },
221
+ {
222
+ "path": "file2.txt",
223
+ "error": "错误信息",
224
+ "success": false
225
+ }
226
+ ]
227
+ ```
228
+
229
+ ### write_file 返回
230
+
231
+ ```json
232
+ {
233
+ "bytesWritten": 1024,
234
+ "path": "~/.prompt-manager/test.txt"
235
+ }
236
+ ```
237
+
238
+ ### edit_file 返回
239
+
240
+ ```json
241
+ {
242
+ "editsApplied": 2,
243
+ "path": "~/.prompt-manager/config.json"
244
+ }
245
+ ```
246
+
247
+ ### list_directory 返回
248
+
249
+ ```json
250
+ [
251
+ {
252
+ "name": "file1.txt",
253
+ "type": "file"
254
+ },
255
+ {
256
+ "name": "dir1",
257
+ "type": "directory"
258
+ }
259
+ ]
260
+ ```
261
+
262
+ ### get_file_info 返回
263
+
264
+ ```json
265
+ {
266
+ "size": 1024,
267
+ "created": "2025-01-01T00:00:00.000Z",
268
+ "modified": "2025-01-01T00:00:00.000Z",
269
+ "accessed": "2025-01-01T00:00:00.000Z",
270
+ "isDirectory": false,
271
+ "isFile": true,
272
+ "permissions": 33188
273
+ }
274
+ ```
275
+
276
+ ## 错误处理
277
+
278
+ 工具定义了以下业务错误:
279
+
280
+ - `PATH_OUTSIDE_SCOPE`: 路径越权访问
281
+ - `FILE_NOT_FOUND`: 文件或目录不存在
282
+ - `PERMISSION_DENIED`: 权限不足
283
+ - `FILE_TOO_LARGE`: 文件过大
284
+ - `DIRECTORY_NOT_EMPTY`: 目录非空
285
+ - `INVALID_PATH`: 无效路径
286
+
287
+ ## 注意事项
288
+
289
+ 1. **服务器同步**: 新添加的工具需要重启服务器才能被加载
290
+ 2. **路径限制**: 默认只能访问 `~/.prompt-manager` 目录,可通过环境变量配置额外允许的目录
291
+ 3. **自动创建目录**: `write_file` 方法会自动创建父目录
292
+ 4. **路径解析**: 支持 `~` 开头的路径(自动展开为用户主目录)
293
+ 5. **文件大小**: 单文件大小建议不超过 10MB
294
+ 6. **编辑操作**: `edit_file` 的 `oldText` 必须完全匹配文件中的文本
295
+ 7. **搜索模式**: `search_files` 支持通配符(* 和 ?)
296
+
297
+ ## 测试步骤
298
+
299
+ 1. **重启服务器**(如果服务器已在运行)
300
+
301
+ 2. **查看工具手册**
302
+ ```yaml
303
+ tool: tool://filesystem
304
+ mode: manual
305
+ ```
306
+
307
+ 3. **配置环境变量**
308
+ ```yaml
309
+ tool: tool://filesystem
310
+ mode: configure
311
+ parameters:
312
+ ALLOWED_DIRECTORIES: '["~/.prompt-manager"]'
313
+ ```
314
+
315
+ 4. **测试列出允许的目录**
316
+ ```yaml
317
+ tool: tool://filesystem
318
+ mode: execute
319
+ parameters:
320
+ method: list_allowed_directories
321
+ ```
322
+
323
+ 5. **测试读取文件**
324
+ ```yaml
325
+ tool: tool://filesystem
326
+ mode: execute
327
+ parameters:
328
+ method: read_text_file
329
+ path: "~/.prompt-manager/test.txt"
330
+ ```
331
+
332
+ 6. **测试写入文件**
333
+ ```yaml
334
+ tool: tool://filesystem
335
+ mode: execute
336
+ parameters:
337
+ method: write_file
338
+ path: "~/.prompt-manager/test.txt"
339
+ content: "Hello, World!"
340
+ ```
341
+
342
+ ## 开发说明
343
+
344
+ 工具遵循 Prompt Manager 工具开发规范:
345
+
346
+ - 使用 ES6 模块格式 (`export default`)
347
+ - 实现必需方法 `execute()`
348
+ - 实现推荐方法:`getDependencies()`, `getMetadata()`, `getSchema()`, `getBusinessErrors()`
349
+ - 完整的错误处理和日志记录
350
+ - 符合工具开发指南的所有要求
351
+
352
+ ## 版本历史
353
+
354
+ - **2.0.0** (2025-01-01): 当前版本
355
+ - 实现所有 MCP 标准文件系统操作
356
+ - 支持批量文件读取
357
+ - 支持文件编辑和预览模式
358
+ - 完整的错误处理和路径验证
359
+