风险评分

100/100 (Very Low)

OpenClaw: benign
VirusTotal: benign
StaticScan: clean

Ai Provider Bridge

作者: Shadow Rose
Slug:ai-provider-bridge
版本:1.0.3
更新时间:2026-03-10 02:31:52
风险信息

OpenClaw: benign

查看 OpenClaw 分析摘要(前 200 字预览)
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

README 未提供

文件列表

无文件信息

下载
下载官方 ZIP
原始 JSON 数据
{
    "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
    }
}