OpenClaw: benign
VirusTotal: benign
StaticScan: clean
OpenClaw: benign
The skill's code and instructions are consistent with a multi-provider AI API bridge: it calls the explicit cloud APIs and a local Ollama endpoint and only requires provider API keys for the providers... [内容已截断]
VirusTotal: benign VT 报告
静态扫描: clean
No suspicious patterns detected.
README 未提供
无文件信息
{
"latestVersion": {
"_creationTime": 1773078583208,
"_id": "k9749sqv9c8g9yss32j05m0z8s82j3bv",
"changelog": "v1.0.3\n\nFixed API usage examples — config object uses camelCase property names (anthropicApiKey, openaiApiKey, googleApiKey, xaiApiKey, mistralApiKey), not flat apiKey or env var names. Model prefix determines provider (anthropic\/model-name). Clarified sendMessage() as the correct method name.\n\nv1.0.2\n\nRemoved require('.\/token-compressor') reference entirely. TokenCompressor is now an inlined no-op pass-through class — no missing dependency, no external file needed. To enable compression, install the companion token-compressor skill and swap the class as noted in the code comments.\nRemoved automatic \"Do not store or train on this data.\" appended to system prompts in OpenAI-compatible requests. This is the caller's responsibility — pass it via setSystemPrompt() if needed.\n\nv1.0.1\n\nTokenCompressor dependency made optional — no-op fallback added when .\/token-compressor is not present. Bridge works without it; messages pass through uncompressed.\nRemoved buildSystemPrompt() and workspaceContext option. These allowed embedding workspace files into system prompts sent to external APIs — data exposure risk. Use setSystemPrompt() directly.\nAdded env: section to frontmatter declaring required API keys per provider. All optional — only keys for providers you use are needed.",
"changelogSource": "user",
"createdAt": 1773078583208,
"parsed": {
"clawdis": {
"author": "@TheShadowRose"
}
},
"version": "1.0.3"
},
"owner": {
"_creationTime": 0,
"_id": "publishers:missing",
"displayName": "Shadow Rose",
"handle": "theshadowrose",
"image": "https:\/\/avatars.githubusercontent.com\/u\/262919821?v=4",
"kind": "user",
"linkedUserId": "kn7ew8x35vt9qd7j7w31k1z4k981kkkt"
},
"ownerHandle": "theshadowrose",
"skill": {
"_creationTime": 1773046901648,
"_id": "kd74aessfhhd68wj5sdabw1fts82k8z7",
"badges": [],
"createdAt": 1773046901648,
"displayName": "Ai Provider Bridge",
"latestVersionId": "k9749sqv9c8g9yss32j05m0z8s82j3bv",
"ownerUserId": "kn7ew8x35vt9qd7j7w31k1z4k981kkkt",
"slug": "ai-provider-bridge",
"stats": {
"comments": 0,
"downloads": 194,
"installsAllTime": 0,
"installsCurrent": 0,
"stars": 0,
"versions": 4
},
"summary": "One interface to call 6 AI providers. Swap models with a config change, not a code rewrite. Zero external dependencies.",
"tags": {
"api": "k9749sqv9c8g9yss32j05m0z8s82j3bv",
"integration": "k9749sqv9c8g9yss32j05m0z8s82j3bv",
"latest": "k9749sqv9c8g9yss32j05m0z8s82j3bv",
"multi-model": "k9749sqv9c8g9yss32j05m0z8s82j3bv",
"providers": "k9749sqv9c8g9yss32j05m0z8s82j3bv",
"routing": "k9749sqv9c8g9yss32j05m0z8s82j3bv"
},
"updatedAt": 1773081112519
}
}