Scan Report
20 /100
dynamic-model-router
智能路由任务到最佳AI模型
Skill is a legitimate local AI model router with filesystem WRITE for config/learning storage, but SKILL.md does not declare these permissions. No malicious indicators detected.
Safe to install
Update SKILL.md to declare filesystem:WRITE permission for config and learning data storage, as this is necessary for the skill's core functionality. Consider clarifying data retention policies.
Findings 3 items
| Severity | Finding | Location |
|---|---|---|
| Low | Undeclared Filesystem WRITE Permission Doc Mismatch | src/utils/config.ts:36 |
| Info | Privacy Claim Not Fully Accurate Doc Mismatch | SKILL.md:1 |
| Info | Dependency Version Not Fully Pinned Supply Chain | package.json:30 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | WRITE | ✗ Violation | src/utils/config.ts:36 writes to ~/.openclaw/dynamic-router/ |
| Environment | NONE | READ | ✓ Aligned | src/storage/basic-storage.ts:62 reads NODE_ENV |
| Network | NONE | NONE | — | No external network calls detected |
| Shell | NONE | NONE | — | openclaw-invoker.ts calls openclaw CLI only, not arbitrary shell |
18 findings
Medium External URL 外部 URL
https://keepachangelog.com/zh-CN/1.0.0/ CHANGELOG.md:5 Medium External URL 外部 URL
https://semver.org/lang/zh-CN/ CHANGELOG.md:6 Medium External URL 外部 URL
https://img.shields.io/badge/License-MIT-yellow.svg README.md:3 Medium External URL 外部 URL
https://opensource.org/licenses/MIT README.md:3 Medium External URL 外部 URL
https://img.shields.io/badge/OpenClaw-Skill-blue README.md:4 Medium External URL 外部 URL
https://clawhub.com README.md:4 Medium External URL 外部 URL
https://img.shields.io/badge/TypeScript-5.0-blue README.md:5 Medium External URL 外部 URL
https://www.typescriptlang.org/ README.md:5 Medium External URL 外部 URL
https://openclaw.ai README.md:329 Medium External URL 外部 URL
https://docs.openclaw.ai README.md:336 Medium External URL 外部 URL
https://discord.com/invite/clawd README.md:337 Medium External URL 外部 URL
https://api.deepseek.com src/index.ts:291 Medium External URL 外部 URL
https://api.minimax.chat src/index.ts:312 Medium External URL 外部 URL
https://api.mistral.ai/v1 src/openclaw/provider-discovery.ts:333 Medium External URL 外部 URL
https://api.cohere.ai src/openclaw/provider-discovery.ts:334 Medium External URL 外部 URL
https://api.minimax.chat/v1 src/openclaw/provider-discovery.ts:335 Medium External URL 外部 URL
https://dashscope.aliyuncs.com/compatible-mode/v1 src/openclaw/provider-discovery.ts:336 Medium External URL 外部 URL
https://api.baichuan-ai.com/v1 src/openclaw/provider-discovery.ts:337 File Tree
50 files · 421.2 KB · 15059 lines TypeScript 37f · 13493L
Markdown 3f · 774L
JavaScript 7f · 568L
JSON 3f · 224L
├─
▾
src
│ ├─
▾
core
│ │ └─
types.ts
TypeScript
│ ├─
▾
learning
│ │ └─
basic-learner.ts
TypeScript
│ ├─
▾
openclaw
│ │ ├─
index.ts
TypeScript
│ │ ├─
model-adapter.ts
TypeScript
│ │ ├─
openclaw-invoker.ts
TypeScript
│ │ ├─
provider-discovery.ts
TypeScript
│ │ ├─
status-monitor.ts
TypeScript
│ │ └─
types.ts
TypeScript
│ ├─
▾
routing
│ │ ├─
decision-engine.ts
TypeScript
│ │ ├─
performance-predictor.ts
TypeScript
│ │ ├─
task-analyzer.ts
TypeScript
│ │ └─
types.ts
TypeScript
│ ├─
▾
storage
│ │ └─
basic-storage.ts
TypeScript
│ ├─
▾
utils
│ │ ├─
config.ts
TypeScript
│ │ ├─
index.ts
TypeScript
│ │ └─
logger.ts
TypeScript
│ └─
index.ts
TypeScript
├─
▾
tests
│ ├─
▾
__mocks__
│ │ └─
basic-storage.ts
TypeScript
│ ├─
▾
integration
│ │ ├─
decision-engine-integration.test.ts
TypeScript
│ │ ├─
modules-integration.test.ts
TypeScript
│ │ └─
storage-integration.test.ts
TypeScript
│ ├─
▾
mocks
│ │ ├─
decision-engine-mock.d.ts
TypeScript
│ │ ├─
decision-engine-mock.js
JavaScript
│ │ ├─
decision-engine-mock.ts
TypeScript
│ │ ├─
storage-mock.d.ts
TypeScript
│ │ ├─
storage-mock.js
JavaScript
│ │ └─
storage-mock.ts
TypeScript
│ ├─
import-test.test.ts
TypeScript
│ ├─
minimal.test.ts
TypeScript
│ ├─
real-engine-simple.test.ts
TypeScript
│ ├─
simple-mock.test.ts
TypeScript
│ ├─
simple-test.test.ts
TypeScript
│ ├─
storage-config.test.ts
TypeScript
│ ├─
test-config.d.ts
TypeScript
│ ├─
test-config.js
JavaScript
│ ├─
test-config.ts
TypeScript
│ ├─
test-setup.d.ts
TypeScript
│ ├─
test-setup.js
JavaScript
│ ├─
test-setup.ts
TypeScript
│ ├─
testmode-verification.test.ts
TypeScript
│ └─
utils.test.ts
TypeScript
├─
CHANGELOG.md
Markdown
├─
jest.config.js
JavaScript
├─
package.json
JSON
├─
README.md
Markdown
├─
skill.json
JSON
├─
SKILL.md
Markdown
├─
test-direct.js
JavaScript
├─
test-direct.mjs
JavaScript
└─
tsconfig.json
JSON
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
sqlite3 | ^5.1.6 | npm | No | Version range not pinned |
winston | ^3.11.0 | npm | No | Version range not pinned |
debug | ^4.3.4 | npm | No | Version range not pinned |
Security Positives
✓ No base64-encoded execution or obfuscated code patterns detected
✓ No eval() or Function() dynamic code execution found
✓ No credential harvesting (no iteration through process.env for API keys)
✓ No sensitive file access (~/.ssh, ~/.aws, .env files not accessed)
✓ No curl|bash or wget|sh remote script execution patterns
✓ No C2 communication or external IP network requests
✓ Learning engine stores data locally, not exfiltrating
✓ CLI invocation (openclaw-invoker.ts) only calls openclaw CLI, not arbitrary commands
✓ Good input validation on routing requests
✓ Proper error handling with RouterError class