This report was generated in Chinese. Some content may be in Chinese.
Low Risk — Risk Score 20/100
Last scan:3 hr ago Rescan
20 /100
dynamic-model-router
动态模型路由技能 - 智能路由任务到最佳AI模型
这是一个合法的AI模型智能路由工具,代码实现与文档描述一致,无恶意行为,仅存在轻微的文档-实现不一致(未声明文件系统写入)
Skill Namedynamic-model-router
Duration58.4s
Enginepi
ClawHub Dynamic Model Router v0.1.0 by skynet-jawol
📥 185
ClawHub Verdict Suspicious env_credential_accessllm_suspiciouspotential_exfiltrationvt_suspicious
Safe to install
技能可安全使用,建议完善文档以明确声明文件系统WRITE权限用于配置存储

Findings 2 items

Severity Finding Location
Low
文档未声明文件系统写入权限 Doc Mismatch
SKILL.md声称'本地处理,不泄露用户数据',但未明确说明会写入本地配置文件。代码中ConfigManager和BasicStorage会创建和写入配置文件到~/.openclaw/目录。
文档未提及任何文件系统操作
→ 建议在文档的'安全与隐私'部分明确说明:'本地存储路由决策历史和配置数据'
SKILL.md:1
Low
依赖版本锁定不严格 Supply Chain
package.json中依赖使用^符号(如^5.1.6, ^3.11.0),允许次版本更新,可能引入不兼容更改
"sqlite3": "^5.1.6"
→ 建议使用精确版本或锁定主版本:"sqlite3": "5.1.6"
package.json:48
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✓ Aligned src/utils/config.ts:41-50 使用fs模块读写~/.openclaw/dynamic-router/下的配置文件
Network NONE NONE 代码中无任何网络请求
Shell NONE NONE 代码中无任何shell执行
Environment NONE READ ✓ Aligned src/utils/config.ts:271 读取LOG_LEVEL、NODE_ENV等环境变量用于配置
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 179L · 3.4 KB
│ ├─ 📁 learning
│ │ └─ 📜 basic-learner.ts TypeScript 824L · 24.1 KB
│ ├─ 📁 openclaw
│ │ ├─ 📜 index.ts TypeScript 8L · 231 B
│ │ ├─ 📜 model-adapter.ts TypeScript 486L · 12.6 KB
│ │ ├─ 📜 openclaw-invoker.ts TypeScript 686L · 19.1 KB
│ │ ├─ 📜 provider-discovery.ts TypeScript 610L · 16.7 KB
│ │ ├─ 📜 status-monitor.ts TypeScript 733L · 19.9 KB
│ │ └─ 📜 types.ts TypeScript 162L · 2.9 KB
│ ├─ 📁 routing
│ │ ├─ 📜 decision-engine.ts TypeScript 1517L · 45.1 KB
│ │ ├─ 📜 performance-predictor.ts TypeScript 583L · 18.0 KB
│ │ ├─ 📜 task-analyzer.ts TypeScript 1380L · 41.1 KB
│ │ └─ 📜 types.ts TypeScript 443L · 8.8 KB
│ ├─ 📁 storage
│ │ └─ 📜 basic-storage.ts TypeScript 1228L · 35.4 KB
│ ├─ 📁 utils
│ │ ├─ 📜 config.ts TypeScript 413L · 11.1 KB
│ │ ├─ 📜 index.ts TypeScript 379L · 10.2 KB
│ │ └─ 📜 logger.ts TypeScript 265L · 6.4 KB
│ └─ 📜 index.ts TypeScript 668L · 17.8 KB
├─ 📁 tests
│ ├─ 📁 __mocks__
│ │ └─ 📜 basic-storage.ts TypeScript 73L · 2.2 KB
│ ├─ 📁 integration
│ │ ├─ 📜 decision-engine-integration.test.ts TypeScript 440L · 15.2 KB
│ │ ├─ 📜 modules-integration.test.ts TypeScript 656L · 19.5 KB
│ │ └─ 📜 storage-integration.test.ts TypeScript 442L · 13.9 KB
│ ├─ 📁 mocks
│ │ ├─ 📜 decision-engine-mock.d.ts TypeScript 83L · 2.4 KB
│ │ ├─ 📜 decision-engine-mock.js JavaScript 161L · 4.7 KB
│ │ ├─ 📜 decision-engine-mock.ts TypeScript 187L · 4.2 KB
│ │ ├─ 📜 storage-mock.d.ts TypeScript 18L · 717 B
│ │ ├─ 📜 storage-mock.js JavaScript 85L · 2.5 KB
│ │ └─ 📜 storage-mock.ts TypeScript 93L · 2.4 KB
│ ├─ 📜 import-test.test.ts TypeScript 29L · 945 B
│ ├─ 📜 minimal.test.ts TypeScript 34L · 1.0 KB
│ ├─ 📜 real-engine-simple.test.ts TypeScript 69L · 2.2 KB
│ ├─ 📜 simple-mock.test.ts TypeScript 76L · 2.1 KB
│ ├─ 📜 simple-test.test.ts TypeScript 57L · 1.7 KB
│ ├─ 📜 storage-config.test.ts TypeScript 54L · 1.7 KB
│ ├─ 📜 test-config.d.ts TypeScript 45L · 1.2 KB
│ ├─ 📜 test-config.js JavaScript 69L · 2.2 KB
│ ├─ 📜 test-config.ts TypeScript 78L · 2.1 KB
│ ├─ 📜 test-setup.d.ts TypeScript 13L · 264 B
│ ├─ 📜 test-setup.js JavaScript 50L · 1.3 KB
│ ├─ 📜 test-setup.ts TypeScript 70L · 1.4 KB
│ ├─ 📜 testmode-verification.test.ts TypeScript 57L · 1.8 KB
│ └─ 📜 utils.test.ts TypeScript 355L · 10.0 KB
├─ 📝 CHANGELOG.md Markdown 98L · 3.3 KB
├─ 📜 jest.config.js JavaScript 66L · 1.4 KB
├─ 📋 package.json JSON 64L · 1.6 KB
├─ 📝 README.md Markdown 340L · 8.4 KB
├─ 📋 skill.json JSON 128L · 3.4 KB
├─ 📝 SKILL.md Markdown 336L · 8.1 KB
├─ 📜 test-direct.js JavaScript 69L · 1.9 KB
├─ 📜 test-direct.mjs JavaScript 68L · 1.9 KB
└─ 📋 tsconfig.json JSON 32L · 741 B

Dependencies 3 items

PackageVersionSourceKnown VulnsNotes
sqlite3 ^5.1.6 npm No 数据库依赖,用于本地数据持久化
winston ^3.11.0 npm No 日志库,用于结构化日志记录
debug ^4.3.4 npm No 开发依赖

Security Positives

✓ 无网络请求,无数据外泄风险
✓ 无凭证收割或敏感信息访问
✓ 无代码混淆或Base64编码执行
✓ 无shell命令执行或RCE风险
✓ 代码结构清晰,使用TypeScript类型安全
✓ 实现了完整的错误处理和日志记录
✓ 存储模块支持测试模式,方便单元测试
✓ 所有敏感操作(文件IO)都有日志记录