8900 commited on
Update setup-hf-config.mjs
Browse files- setup-hf-config.mjs +17 -59
setup-hf-config.mjs
CHANGED
|
@@ -24,42 +24,28 @@ if (!gatewayToken && !gatewayPassword) {
|
|
| 24 |
process.exit(0);
|
| 25 |
}
|
| 26 |
|
| 27 |
-
// -- 从免费账号提取的 Token/Cookie (用户级别认证) --
|
| 28 |
-
console.log("[setup] Loading user authentication tokens from Secrets…");
|
| 29 |
-
|
| 30 |
-
var claudeToken = envStr("CLAUDE_SESSION_KEY");
|
| 31 |
-
var openaiToken = envStr("OPENAI_ACCESS_TOKEN");
|
| 32 |
-
var geminiCookie = envStr("GOOGLE_GEMINI_COOKIE");
|
| 33 |
-
var kimiToken = envStr("KIMI_REFRESH_TOKEN");
|
| 34 |
-
var qwenCookie = envStr("QWEN_COOKIE");
|
| 35 |
-
|
| 36 |
-
if (claudeToken) console.log("[setup] ✓ Claude session key loaded");
|
| 37 |
-
if (openaiToken) console.log("[setup] ✓ OpenAI access token loaded");
|
| 38 |
-
if (geminiCookie) console.log("[setup] ✓ Gemini cookie loaded");
|
| 39 |
-
if (kimiToken) console.log("[setup] ✓ Kimi refresh token loaded");
|
| 40 |
-
if (qwenCookie) console.log("[setup] ✓ Qwen cookie loaded");
|
| 41 |
-
|
| 42 |
-
console.log("[setup] User auth tokens ready for OpenClaw");
|
| 43 |
-
|
| 44 |
// -- default model --
|
| 45 |
var defaultModel = envStr("OPENCLAW_HF_DEFAULT_MODEL") || "google/gemini-2.0-flash";
|
| 46 |
|
| 47 |
-
// -- dynamic provider key detection
|
| 48 |
var EXCLUDE_PREFIXES = [
|
| 49 |
"OPENCLAW_", "SPACE_", "SYSTEM_", "HF_",
|
| 50 |
"NODE_", "PATH", "HOME", "USER", "PWD", "LANG", "LC_",
|
| 51 |
-
"npm_", "HOSTNAME", "SHELL", "TERM", "SHLVL"
|
| 52 |
-
"CLAUDE_", "OPENAI_", "GOOGLE_", "KIMI_", "QWEN_" // 排除我们已经处理过的
|
| 53 |
];
|
|
|
|
|
|
|
| 54 |
var INCLUDE_SUFFIXES = [
|
| 55 |
"_API_KEY", "_SECRET_KEY", "_ACCESS_TOKEN",
|
| 56 |
-
"_BOT_TOKEN", "_AUTH_TOKEN", "_APP_KEY",
|
|
|
|
| 57 |
];
|
|
|
|
| 58 |
function isProviderKey(k){
|
| 59 |
for (let i=0;i<EXCLUDE_PREFIXES.length;i++){ if(k.indexOf(EXCLUDE_PREFIXES[i])===0) return false; }
|
| 60 |
-
for (let i=0;i<INCLUDE_SUFFIXES.length;i++){
|
| 61 |
-
let s=INCLUDE_SUFFIXES[i];
|
| 62 |
-
if(k.length>s.length && k.indexOf(s)===k.length-s.length) return true;
|
| 63 |
}
|
| 64 |
return false;
|
| 65 |
}
|
|
@@ -67,11 +53,8 @@ function isProviderKey(k){
|
|
| 67 |
var allKeys = Object.keys(process.env);
|
| 68 |
var providerKeys = allKeys.filter(k => isProviderKey(k) && envStr(k));
|
| 69 |
providerKeys.sort();
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
console.log("[setup] Detected additional provider keys ("+providerKeys.length+"):");
|
| 73 |
-
providerKeys.forEach(k=>console.log(" + "+k));
|
| 74 |
-
}
|
| 75 |
|
| 76 |
// -- trusted proxies --
|
| 77 |
var envProxies = parseList(envStr("OPENCLAW_GATEWAY_TRUSTED_PROXIES"));
|
|
@@ -95,23 +78,6 @@ var config = {
|
|
| 95 |
agents: { defaults:{ model:defaultModel } },
|
| 96 |
env: { vars:{} }
|
| 97 |
};
|
| 98 |
-
|
| 99 |
-
// 添加所有用户认证 Token 到环境变量
|
| 100 |
-
var userAuthTokens = {
|
| 101 |
-
"CLAUDE_SESSION_KEY": claudeToken,
|
| 102 |
-
"OPENAI_ACCESS_TOKEN": openaiToken,
|
| 103 |
-
"GOOGLE_GEMINI_COOKIE": geminiCookie,
|
| 104 |
-
"KIMI_REFRESH_TOKEN": kimiToken,
|
| 105 |
-
"QWEN_COOKIE": qwenCookie
|
| 106 |
-
};
|
| 107 |
-
|
| 108 |
-
Object.keys(userAuthTokens).forEach(k => {
|
| 109 |
-
if (userAuthTokens[k]) {
|
| 110 |
-
config.env.vars[k] = userAuthTokens[k];
|
| 111 |
-
}
|
| 112 |
-
});
|
| 113 |
-
|
| 114 |
-
// 添加其他 API 密钥
|
| 115 |
providerKeys.forEach(pk=>{ config.env.vars[pk] = envStr(pk); });
|
| 116 |
|
| 117 |
// -- Telegram webhook setup --
|
|
@@ -161,17 +127,9 @@ async function setupTelegram(){
|
|
| 161 |
}catch(e){ console.error("[setup] Write failed: "+e.message); process.exit(0); }
|
| 162 |
|
| 163 |
console.log("[setup] Done.");
|
| 164 |
-
console.log("[setup] auth
|
| 165 |
-
console.log("[setup]
|
| 166 |
-
console.log("[setup] proxies
|
| 167 |
-
console.log("[setup]
|
| 168 |
-
console.log("[setup]
|
| 169 |
-
console.log("[setup] config = "+CONFIG_PATH);
|
| 170 |
-
console.log("");
|
| 171 |
-
console.log("[setup] 🎉 OpenClaw ready! Your free AI models are configured:");
|
| 172 |
-
if (claudeToken) console.log("[setup] - Claude (from free account)");
|
| 173 |
-
if (openaiToken) console.log("[setup] - OpenAI ChatGPT (from free account)");
|
| 174 |
-
if (geminiCookie) console.log("[setup] - Google Gemini (from free account)");
|
| 175 |
-
if (kimiToken) console.log("[setup] - Kimi (from free account)");
|
| 176 |
-
if (qwenCookie) console.log("[setup] - Qwen (from free account)");
|
| 177 |
})().catch(e=>{ console.error("[setup] Fatal: "+e.message); process.exit(0); });
|
|
|
|
| 24 |
process.exit(0);
|
| 25 |
}
|
| 26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
// -- default model --
|
| 28 |
var defaultModel = envStr("OPENCLAW_HF_DEFAULT_MODEL") || "google/gemini-2.0-flash";
|
| 29 |
|
| 30 |
+
// -- dynamic provider key detection --
|
| 31 |
var EXCLUDE_PREFIXES = [
|
| 32 |
"OPENCLAW_", "SPACE_", "SYSTEM_", "HF_",
|
| 33 |
"NODE_", "PATH", "HOME", "USER", "PWD", "LANG", "LC_",
|
| 34 |
+
"npm_", "HOSTNAME", "SHELL", "TERM", "SHLVL"
|
|
|
|
| 35 |
];
|
| 36 |
+
|
| 37 |
+
// 【🚀这里是我为你增强的自动识别词库,加了SESSION_KEY和COOKIE,实现一劳永逸】
|
| 38 |
var INCLUDE_SUFFIXES = [
|
| 39 |
"_API_KEY", "_SECRET_KEY", "_ACCESS_TOKEN",
|
| 40 |
+
"_BOT_TOKEN", "_AUTH_TOKEN", "_APP_KEY",
|
| 41 |
+
"_SESSION_KEY", "_COOKIE", "_TOKEN"
|
| 42 |
];
|
| 43 |
+
|
| 44 |
function isProviderKey(k){
|
| 45 |
for (let i=0;i<EXCLUDE_PREFIXES.length;i++){ if(k.indexOf(EXCLUDE_PREFIXES[i])===0) return false; }
|
| 46 |
+
for (let i=0;i<INCLUDE_SUFFIXES.length;i++){
|
| 47 |
+
let s=INCLUDE_SUFFIXES[i];
|
| 48 |
+
if(k.length>s.length && k.indexOf(s)===k.length-s.length) return true;
|
| 49 |
}
|
| 50 |
return false;
|
| 51 |
}
|
|
|
|
| 53 |
var allKeys = Object.keys(process.env);
|
| 54 |
var providerKeys = allKeys.filter(k => isProviderKey(k) && envStr(k));
|
| 55 |
providerKeys.sort();
|
| 56 |
+
console.log("[setup] Detected provider keys ("+providerKeys.length+"):");
|
| 57 |
+
providerKeys.forEach(k=>console.log(" + "+k));
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
// -- trusted proxies --
|
| 60 |
var envProxies = parseList(envStr("OPENCLAW_GATEWAY_TRUSTED_PROXIES"));
|
|
|
|
| 78 |
agents: { defaults:{ model:defaultModel } },
|
| 79 |
env: { vars:{} }
|
| 80 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
providerKeys.forEach(pk=>{ config.env.vars[pk] = envStr(pk); });
|
| 82 |
|
| 83 |
// -- Telegram webhook setup --
|
|
|
|
| 127 |
}catch(e){ console.error("[setup] Write failed: "+e.message); process.exit(0); }
|
| 128 |
|
| 129 |
console.log("[setup] Done.");
|
| 130 |
+
console.log("[setup] auth = "+(gatewayToken?"token":"password"));
|
| 131 |
+
console.log("[setup] model = "+defaultModel);
|
| 132 |
+
console.log("[setup] proxies = "+trustedProxies.length);
|
| 133 |
+
console.log("[setup] env.vars = "+providerKeys.length);
|
| 134 |
+
console.log("[setup] config = "+CONFIG_PATH);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
})().catch(e=>{ console.error("[setup] Fatal: "+e.message); process.exit(0); });
|