@szc-ft/mcp-szcd-client 0.28.1 → 0.29.0

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 (36) hide show
  1. package/agents/szcd-component-expert.qoder.md +1 -0
  2. package/opencode-extension/skills/local-browser-test/SKILL.md +189 -53
  3. package/opencode-extension/skills/local-browser-test/lib/ant-adapter.js +735 -0
  4. package/opencode-extension/skills/local-browser-test/lib/browser-engine.js +2427 -0
  5. package/opencode-extension/skills/local-browser-test/lib/chrome-finder.js +125 -0
  6. package/opencode-extension/skills/local-browser-test/lib/expect.js +392 -0
  7. package/opencode-extension/skills/local-browser-test/lib/shared-deps.js +137 -0
  8. package/opencode-extension/skills/local-browser-test/lib/test-plan.js +48 -0
  9. package/opencode-extension/skills/local-browser-test/lib/visual-compare.js +192 -0
  10. package/opencode-extension/skills/local-browser-test/local-browser-executor.js +735 -0
  11. package/opencode-extension/skills/local-browser-test/package.json +1 -0
  12. package/opencode-extension/skills/szcd-upload-zip/SKILL.md +122 -0
  13. package/package.json +1 -1
  14. package/qwen-extension/qwen-extension.json +1 -1
  15. package/qwen-extension/skills/local-browser-test/SKILL.md +189 -53
  16. package/qwen-extension/skills/local-browser-test/lib/ant-adapter.js +735 -0
  17. package/qwen-extension/skills/local-browser-test/lib/browser-engine.js +2427 -0
  18. package/qwen-extension/skills/local-browser-test/lib/chrome-finder.js +125 -0
  19. package/qwen-extension/skills/local-browser-test/lib/expect.js +392 -0
  20. package/qwen-extension/skills/local-browser-test/lib/shared-deps.js +137 -0
  21. package/qwen-extension/skills/local-browser-test/lib/test-plan.js +48 -0
  22. package/qwen-extension/skills/local-browser-test/lib/visual-compare.js +192 -0
  23. package/qwen-extension/skills/local-browser-test/local-browser-executor.js +735 -0
  24. package/qwen-extension/skills/local-browser-test/package.json +1 -0
  25. package/qwen-extension/skills/szcd-upload-zip/SKILL.md +122 -0
  26. package/standard-skill/local-browser-test/SKILL.md +189 -53
  27. package/standard-skill/local-browser-test/lib/ant-adapter.js +735 -0
  28. package/standard-skill/local-browser-test/lib/browser-engine.js +2427 -0
  29. package/standard-skill/local-browser-test/lib/chrome-finder.js +125 -0
  30. package/standard-skill/local-browser-test/lib/expect.js +392 -0
  31. package/standard-skill/local-browser-test/lib/shared-deps.js +137 -0
  32. package/standard-skill/local-browser-test/lib/test-plan.js +48 -0
  33. package/standard-skill/local-browser-test/lib/visual-compare.js +192 -0
  34. package/standard-skill/local-browser-test/local-browser-executor.js +735 -0
  35. package/standard-skill/local-browser-test/package.json +1 -0
  36. package/standard-skill/szcd-upload-zip/SKILL.md +122 -0
@@ -0,0 +1 @@
1
+ {"type": "module"}
@@ -0,0 +1,122 @@
1
+ ---
2
+ name: szcd-upload-zip
3
+ description: |
4
+ 本地 ZIP 文件上传与解压工具。将用户本地的 zip 压缩包通过 `upload-zip` REST 端点上传到 szcd-mcp-server,
5
+ 自动解压到服务器的 `uploads/<zip包名>/` 目录,并返回解压后的文件列表。
6
+ 上传后解压的文件可通过文件下载接口按路径获取或供其他流程使用。
7
+ compatibility:
8
+ tools:
9
+ - run_command
10
+ runtime:
11
+ - node >= 18(读取配置用,仅 `cat ~/.szcd-mcp-config.json` 场景)
12
+ - curl(文件上传所需)
13
+ ---
14
+
15
+ # ZIP 上传与解压工具(szcd-upload-zip)
16
+
17
+ ## 概述
18
+
19
+ 当 AI 需要将用户本地的 ZIP 压缩包上传到 szcd-mcp-server 时,使用此技能。
20
+ 上传后服务器自动解压,开发者或 AI 可通过下载 API 访问解压后的文件。
21
+
22
+ ## 适用场景
23
+
24
+ - 用户有一个本地 zip 包需要上传到服务器存储
25
+ - zipped 源码/资源包需要上传到服务器供后续流程使用
26
+ - 需要在服务器端解压 zip 并取用其中的文件
27
+
28
+ ## 工作流
29
+
30
+ ### 第 0 步:探测运行时
31
+
32
+ ```bash
33
+ node --version 2>/dev/null && echo "NODE_OK"; \
34
+ curl --version 2>/dev/null | head -1 && echo "CURL_OK"
35
+ ```
36
+
37
+ ### 第 1 步:读取配置获取服务器地址和 API Key
38
+
39
+ ```bash
40
+ cat ~/.szcd-mcp-config.json
41
+ ```
42
+
43
+ 配置示例:
44
+ ```json
45
+ {
46
+ "MCP_SERVER_URL": "http://localhost:3456",
47
+ "MCP_TIMEOUT": 30000,
48
+ "MCP_API_KEY": "your-api-key"
49
+ }
50
+ ```
51
+
52
+ - 若 `MCP_API_KEY` 为空字符串,则上传时不带 `X-API-Key` header
53
+ - 若 `MCP_SERVER_URL` 未配置,默认使用 `http://localhost:3456`
54
+
55
+ ### 第 2 步:上传 ZIP 文件
56
+
57
+ ```bash
58
+ # 从 ~/.szcd-mcp-config.json 取 URL 和 API Key
59
+ MCP_URL=$(node -e "const c=require('fs').readFileSync(require('os').homedir()+'/.szcd-mcp-config.json','utf8');const j=JSON.parse(c);console.log(j.MCP_SERVER_URL||'http://localhost:3456')")
60
+ MCP_KEY=$(node -e "const c=require('fs').readFileSync(require('os').homedir()+'/.szcd-mcp-config.json','utf8');const j=JSON.parse(c);console.log(j.MCP_API_KEY||'')")
61
+
62
+ # 上传 zip 文件
63
+ if [ -n "$MCP_KEY" ]; then
64
+ curl -s -X POST "$MCP_URL/upload-zip" -H "X-API-Key: $MCP_KEY" -F "file=@<zip文件路径>"
65
+ else
66
+ curl -s -X POST "$MCP_URL/upload-zip" -F "file=@<zip文件路径>"
67
+ fi
68
+ ```
69
+
70
+ 其中 `<zip文件路径>` 替换为实际 zip 文件的绝对路径。
71
+
72
+ **响应示例:**
73
+ ```json
74
+ {
75
+ "ok": true,
76
+ "dir_name": "my-package",
77
+ "extract_dir": "/scity/zengzhijie/mcp/uploads/my-package",
78
+ "file_count": 5,
79
+ "files": [
80
+ { "path": "index.html", "size": 2048 },
81
+ { "path": "js/app.js", "size": 15360 },
82
+ { "path": "css/style.css", "size": 4096 },
83
+ { "path": "images/logo.png", "size": 819200 },
84
+ { "path": "data/config.json", "size": 512 }
85
+ ]
86
+ }
87
+ ```
88
+
89
+ ### 第 3 步:查看解压后的文件
90
+
91
+ 上传成功后,可通过下载 API 查看解压后的文件或取单个文件内容:
92
+
93
+ ```bash
94
+ # 列出解压目录
95
+ curl -s "$MCP_URL/api/download/list?dir=/scity/zengzhijie/mcp/uploads/my-package" \
96
+ ${MCP_KEY:+-H "X-API-Key: $MCP_KEY"}
97
+
98
+ # 下载单个文件
99
+ curl -s "$MCP_URL/api/download?path=/scity/zengzhijie/mcp/uploads/my-package/data/config.json" \
100
+ ${MCP_KEY:+-H "X-API-Key: $MCP_KEY"}
101
+ ```
102
+
103
+ ## 限制说明
104
+
105
+ - 仅支持真正的 ZIP 格式(magic number `PK\x03\x04` 校验),改扩展名无用
106
+ - 单文件大小上限 100MB
107
+ - 同名 zip 包名会覆盖服务器上已有的目录
108
+ - 解压后文件持久存储,无自动过期
109
+ - 上传路径始终为 `/upload-zip`(不含 `/api/` 前缀)
110
+
111
+ ## 完整命令示例(一步完成)
112
+
113
+ ```bash
114
+ # 读取配置
115
+ MCP_URL=$(node -e "try{const c=require('fs').readFileSync(require('os').homedir()+'/.szcd-mcp-config.json','utf8');const j=JSON.parse(c);console.log(j.MCP_SERVER_URL||'http://localhost:3456')}catch{console.log('http://localhost:3456')}")
116
+ MCP_KEY=$(node -e "try{const c=require('fs').readFileSync(require('os').homedir()+'/.szcd-mcp-config.json','utf8');const j=JSON.parse(c);console.log(j.MCP_API_KEY||'')}catch{console.log('')}")
117
+
118
+ # 上传
119
+ curl -s -X POST "$MCP_URL/upload-zip" \
120
+ ${MCP_KEY:+-H "X-API-Key: $MCP_KEY"} \
121
+ -F "file=@/path/to/archive.zip" | python3 -m json.tool
122
+ ```