@pwddd/skills-scanner 3.0.23 → 4.0.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.
- package/README.md +3 -509
- package/index.ts +209 -211
- package/openclaw.plugin.json +112 -70
- package/package.json +64 -49
- package/skills/skills-scanner/SKILL.md +245 -1065
- package/src/api-client.ts +275 -0
- package/src/before-install-hook.ts +274 -0
- package/src/cache.ts +138 -0
- package/src/commands.ts +56 -152
- package/src/config-validator.ts +94 -0
- package/src/config.ts +187 -170
- package/src/cron-manager.ts +158 -0
- package/src/debug.ts +40 -0
- package/src/error-handler.ts +103 -0
- package/src/metrics.ts +140 -0
- package/src/prompt-guidance.ts +42 -250
- package/src/rate-limiter.ts +102 -0
- package/src/scanner.ts +230 -54
- package/src/state.ts +119 -71
- package/src/structured-logger.ts +97 -0
- package/src/types.ts +72 -50
- package/skills/skills-scanner/__pycache__/scan.cpython-314.pyc +0 -0
- package/skills/skills-scanner/scan.py +0 -446
- package/src/cron.ts +0 -292
- package/src/deps.ts +0 -77
- package/src/high-risk-operation-guard.ts +0 -62
- package/src/prompt-injection-guard.ts +0 -56
- package/src/report.ts +0 -100
- package/src/watcher.ts +0 -125
package/openclaw.plugin.json
CHANGED
|
@@ -1,70 +1,112 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "skills-scanner",
|
|
3
|
-
"name": "Skills Scanner",
|
|
4
|
-
"description": "Security scanner for OpenClaw Skills to detect potential threats",
|
|
5
|
-
"version": "
|
|
6
|
-
"author": "pwddd",
|
|
7
|
-
"skills": ["./skills"],
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"description": "
|
|
66
|
-
"default":
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
1
|
+
{
|
|
2
|
+
"id": "skills-scanner",
|
|
3
|
+
"name": "Skills Scanner",
|
|
4
|
+
"description": "Security scanner for OpenClaw Skills to detect potential threats",
|
|
5
|
+
"version": "4.0.0",
|
|
6
|
+
"author": "pwddd",
|
|
7
|
+
"skills": ["./skills"],
|
|
8
|
+
"uiHints": {
|
|
9
|
+
"apiUrl": {
|
|
10
|
+
"label": "API 服务地址",
|
|
11
|
+
"help": "扫描 API 服务的 URL 地址",
|
|
12
|
+
"placeholder": "https://110.vemic.com/skills-scanner"
|
|
13
|
+
},
|
|
14
|
+
"scanDirs": {
|
|
15
|
+
"label": "扫描目录",
|
|
16
|
+
"help": "要监控的 Skills 目录列表,支持 ~ 路径"
|
|
17
|
+
},
|
|
18
|
+
"behavioral": {
|
|
19
|
+
"label": "行为分析",
|
|
20
|
+
"help": "启用深度行为分析(较慢但更准确)"
|
|
21
|
+
},
|
|
22
|
+
"useLLM": {
|
|
23
|
+
"label": "LLM 分析",
|
|
24
|
+
"help": "使用 LLM 进行语义分析"
|
|
25
|
+
},
|
|
26
|
+
"policy": {
|
|
27
|
+
"label": "扫描策略",
|
|
28
|
+
"help": "strict=严格 / balanced=平衡(推荐)/ permissive=宽松"
|
|
29
|
+
},
|
|
30
|
+
"onUnsafe": {
|
|
31
|
+
"label": "不安全处理",
|
|
32
|
+
"help": "warn=仅警告(推荐)/ quarantine=隔离 / delete=删除"
|
|
33
|
+
},
|
|
34
|
+
"injectSecurityGuidance": {
|
|
35
|
+
"label": "注入安全指导",
|
|
36
|
+
"help": "在系统提示中注入 Skills 安全指导"
|
|
37
|
+
},
|
|
38
|
+
"enablePromptInjectionGuard": {
|
|
39
|
+
"label": "提示注入防护",
|
|
40
|
+
"help": "启用提示注入检测防护"
|
|
41
|
+
},
|
|
42
|
+
"enableHighRiskOperationGuard": {
|
|
43
|
+
"label": "高风险操作防护",
|
|
44
|
+
"help": "启用高风险操作确认防护"
|
|
45
|
+
},
|
|
46
|
+
"enableBeforeInstallHook": {
|
|
47
|
+
"label": "安装前拦截",
|
|
48
|
+
"help": "启用 before_install hook,在安装前强制拦截不安全的 Skills(强烈推荐)"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"configSchema": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"properties": {
|
|
55
|
+
"apiUrl": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "Scanner API service URL",
|
|
58
|
+
"default": "https://110.vemic.com/skills-scanner"
|
|
59
|
+
},
|
|
60
|
+
"scanDirs": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"items": {
|
|
63
|
+
"type": "string"
|
|
64
|
+
},
|
|
65
|
+
"description": "List of directories to scan for Skills",
|
|
66
|
+
"default": []
|
|
67
|
+
},
|
|
68
|
+
"behavioral": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"description": "Enable behavioral analysis (slower but more accurate)",
|
|
71
|
+
"default": false
|
|
72
|
+
},
|
|
73
|
+
"useLLM": {
|
|
74
|
+
"type": "boolean",
|
|
75
|
+
"description": "Enable LLM-based semantic analysis",
|
|
76
|
+
"default": false
|
|
77
|
+
},
|
|
78
|
+
"policy": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"enum": ["strict", "balanced", "permissive"],
|
|
81
|
+
"description": "Scanning policy: strict (more false positives) / balanced (recommended) / permissive (may miss threats)",
|
|
82
|
+
"default": "balanced"
|
|
83
|
+
},
|
|
84
|
+
"onUnsafe": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"enum": ["quarantine", "delete", "warn"],
|
|
87
|
+
"description": "Action to take when unsafe Skill is detected: quarantine / delete / warn (recommended)",
|
|
88
|
+
"default": "warn"
|
|
89
|
+
},
|
|
90
|
+
"injectSecurityGuidance": {
|
|
91
|
+
"type": "boolean",
|
|
92
|
+
"description": "Inject Skills security guidance into system prompt (requires AI to scan before installing Skills)",
|
|
93
|
+
"default": true
|
|
94
|
+
},
|
|
95
|
+
"enablePromptInjectionGuard": {
|
|
96
|
+
"type": "boolean",
|
|
97
|
+
"description": "Enable prompt injection detection guard",
|
|
98
|
+
"default": false
|
|
99
|
+
},
|
|
100
|
+
"enableHighRiskOperationGuard": {
|
|
101
|
+
"type": "boolean",
|
|
102
|
+
"description": "Enable high-risk operation confirmation guard",
|
|
103
|
+
"default": false
|
|
104
|
+
},
|
|
105
|
+
"enableBeforeInstallHook": {
|
|
106
|
+
"type": "boolean",
|
|
107
|
+
"description": "Enable before_install hook to intercept unsafe installations (highly recommended)",
|
|
108
|
+
"default": true
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
package/package.json
CHANGED
|
@@ -1,49 +1,64 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@pwddd/skills-scanner",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "OpenClaw Skills security scanner plugin - detect malicious code, data exfiltration, and prompt injection",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./index.ts",
|
|
7
|
-
"author": "pwddd",
|
|
8
|
-
"license": "MIT",
|
|
9
|
-
"keywords": [
|
|
10
|
-
"openclaw",
|
|
11
|
-
"openclaw-plugin",
|
|
12
|
-
"security",
|
|
13
|
-
"scanner",
|
|
14
|
-
"skills",
|
|
15
|
-
"malware-detection"
|
|
16
|
-
],
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "https://github.com/
|
|
20
|
-
"directory": "extensions/skills-scanner"
|
|
21
|
-
},
|
|
22
|
-
"bugs": {
|
|
23
|
-
"url": "https://github.com/
|
|
24
|
-
},
|
|
25
|
-
"homepage": "https://github.com/
|
|
26
|
-
"files": [
|
|
27
|
-
"index.ts",
|
|
28
|
-
"openclaw.plugin.json",
|
|
29
|
-
"README.md",
|
|
30
|
-
"src/**/*.ts",
|
|
31
|
-
"skills
|
|
32
|
-
],
|
|
33
|
-
"dependencies": {
|
|
34
|
-
"@sinclair/typebox": "0.34.48"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@pwddd/skills-scanner",
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "OpenClaw Skills security scanner plugin - detect malicious code, data exfiltration, and prompt injection",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./index.ts",
|
|
7
|
+
"author": "pwddd",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"keywords": [
|
|
10
|
+
"openclaw",
|
|
11
|
+
"openclaw-plugin",
|
|
12
|
+
"security",
|
|
13
|
+
"scanner",
|
|
14
|
+
"skills",
|
|
15
|
+
"malware-detection"
|
|
16
|
+
],
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/pwddd/test.git",
|
|
20
|
+
"directory": "extensions/skills-scanner"
|
|
21
|
+
},
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/pwddd/test/issues"
|
|
24
|
+
},
|
|
25
|
+
"homepage": "https://github.com/pwddd/test/tree/main/extensions/skills-scanner#readme",
|
|
26
|
+
"files": [
|
|
27
|
+
"index.ts",
|
|
28
|
+
"openclaw.plugin.json",
|
|
29
|
+
"README.md",
|
|
30
|
+
"src/**/*.ts",
|
|
31
|
+
"skills/**/*.md"
|
|
32
|
+
],
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@sinclair/typebox": "0.34.48",
|
|
35
|
+
"archiver": "^7.0.1"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/archiver": "^6.0.2"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"openclaw": ">=2026.3.24-beta.2"
|
|
42
|
+
},
|
|
43
|
+
"peerDependenciesMeta": {
|
|
44
|
+
"openclaw": {
|
|
45
|
+
"optional": true
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"openclaw": {
|
|
49
|
+
"pluginId": "skills-scanner",
|
|
50
|
+
"displayName": "Skills Scanner",
|
|
51
|
+
"description": "Security scanner for OpenClaw Skills - detects malicious code, data exfiltration, and prompt injection",
|
|
52
|
+
"extensions": [
|
|
53
|
+
"./index.ts"
|
|
54
|
+
],
|
|
55
|
+
"compat": {
|
|
56
|
+
"pluginApi": ">=2026.3.24-beta.2",
|
|
57
|
+
"minGatewayVersion": "2026.3.24-beta.2"
|
|
58
|
+
},
|
|
59
|
+
"build": {
|
|
60
|
+
"openclawVersion": "2026.3.24-beta.2",
|
|
61
|
+
"pluginSdkVersion": "2026.3.24-beta.2"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|