8900 commited on
Commit
b2fae5f
Β·
verified Β·
1 Parent(s): 6993972

Update setup-hf-config.mjs

Browse files
Files changed (1) hide show
  1. setup-hf-config.mjs +53 -53
setup-hf-config.mjs CHANGED
@@ -1,57 +1,57 @@
1
- import fs from β€œnode:fs”;
2
- import path from β€œnode:path”;
3
- import https from β€œnode:https”;
4
 
5
- var HOME = process.env.OPENCLAW_HOME || process.env.HOME || β€œ/home/user”;
6
- var STATE_DIR = path.join(HOME, β€œ.openclaw”);
7
- var CONFIG_PATH = path.join(STATE_DIR, β€œopenclaw.json”);
8
 
9
- console.log(”[setup] Starting… HOME=” + HOME);
10
 
11
  function parseList(val) {
12
  if (!val || !val.trim()) return [];
13
- return val.split(”,”).map(function(s) { return s.trim(); }).filter(Boolean);
14
  }
15
 
16
- var gatewayToken = (process.env.OPENCLAW_GATEWAY_TOKEN || β€œβ€).trim();
17
- var gatewayPassword = (process.env.OPENCLAW_GATEWAY_PASSWORD || β€œβ€).trim();
18
 
19
  if (!gatewayToken && !gatewayPassword) {
20
- console.error(”[setup] ERROR: No OPENCLAW_GATEWAY_TOKEN or OPENCLAW_GATEWAY_PASSWORD”);
21
  process.exit(0);
22
  }
23
 
24
  // FIX 1: default model uses correct google/ prefix
25
- var defaultModel = (process.env.OPENCLAW_HF_DEFAULT_MODEL || β€œβ€).trim() ||
26
- β€œgoogle/gemini-2.0-flash”;
27
 
28
  // FIX 2: read GOOGLE_API_KEY first, GEMINI_API_KEY as alias
29
- var geminiKey = (process.env.GOOGLE_API_KEY || process.env.GEMINI_API_KEY || β€œβ€).trim();
30
- var groqKey = (process.env.GROQ_API_KEY || β€œβ€).trim();
31
- var anthropicKey = (process.env.ANTHROPIC_API_KEY || β€œβ€).trim();
32
- var openaiKey = (process.env.OPENAI_API_KEY || β€œβ€).trim();
33
- var openrouterKey = (process.env.OPENROUTER_API_KEY || β€œβ€).trim();
34
- var telegramToken = (process.env.TELEGRAM_BOT_TOKEN || β€œβ€).trim();
35
 
36
  var envProxies = parseList(process.env.OPENCLAW_GATEWAY_TRUSTED_PROXIES);
37
  var trustedProxies = envProxies.length > 0 ? envProxies : [
38
- β€œ10.16.4.123”, β€œ10.16.7.92”, β€œ10.16.18.232”,
39
- β€œ10.16.34.155”,β€œ10.16.43.133”,β€œ10.16.1.206”,
40
- β€œ10.20.1.9”, β€œ10.20.1.222”,
41
- β€œ10.20.26.157”,β€œ10.20.31.87”,
42
- β€œ10.20.0.1”, β€œ172.17.0.1”
43
  ];
44
 
45
  var config = {
46
  gateway: {
47
  auth: gatewayToken
48
- ? { mode: β€œtoken”, token: gatewayToken }
49
- : { mode: β€œpassword”, password: gatewayPassword },
50
  controlUi: {
51
  dangerouslyDisableDeviceAuth: true,
52
  allowInsecureAuth: true,
53
  dangerouslyAllowHostHeaderOriginFallback: true,
54
- allowedOrigins: [”*”]
55
  },
56
  trustedProxies: trustedProxies
57
  },
@@ -79,36 +79,36 @@ for (var i = 0; i < nodes.length; i++) {
79
  var node = nodes[i];
80
  try {
81
  await new Promise(function(resolve, reject) {
82
- var req = https.get(node + β€œ/bot” + telegramToken + β€œ/getMe”, function(res) {
83
  if (res.statusCode === 200) resolve(true);
84
- else reject(new Error(β€œStatus β€œ + res.statusCode));
85
  });
86
- req.on(β€œerror”, reject);
87
- req.setTimeout(4000, function() { req.destroy(); reject(new Error(β€œTimeout”)); });
88
  });
89
- console.log(”[setup] Telegram node OK: β€œ + node);
90
- // FIX 3: correct regex, was //$/ (broken) now //$/ (correct)
91
- return node.replace(//$/, β€œβ€);
92
  } catch (e) {
93
- console.log(”[setup] Telegram node failed: β€œ + node + β€œ (” + e.message + β€œ)”);
94
  }
95
  }
96
  return null;
97
  }
98
 
99
  var telegramNodes = [
100
- β€œhttps://api.telegram.org”,
101
- β€œhttps://tg-api.vercel.app”,
102
- β€œhttps://telegram-bot-api.vercel.app”
103
  ];
104
 
105
  async function setupTelegram() {
106
  if (!telegramToken) {
107
- console.log(”[setup] Telegram disabled (no token)”);
108
  return;
109
  }
110
  var apiRoot = await detectTelegramNode(telegramNodes);
111
- var finalRoot = apiRoot || β€œhttps://api.telegram.org”;
112
  config.channels = {
113
  telegram: {
114
  enabled: true,
@@ -117,7 +117,7 @@ main: { botToken: telegramToken, apiRoot: finalRoot }
117
  }
118
  }
119
  };
120
- console.log(”[setup] Telegram enabled, apiRoot=” + finalRoot);
121
  }
122
 
123
  (async function main() {
@@ -126,23 +126,23 @@ await setupTelegram();
126
  try {
127
  fs.mkdirSync(STATE_DIR, { recursive: true });
128
  if (fs.existsSync(CONFIG_PATH)) {
129
- fs.copyFileSync(CONFIG_PATH, CONFIG_PATH + β€œ.bak”);
130
  }
131
- fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), β€œutf-8”);
132
- console.log(”[setup] Config written -> β€œ + CONFIG_PATH);
133
  } catch (e) {
134
- console.error(”[setup] Write failed: β€œ + e.message);
135
  process.exit(0);
136
  }
137
 
138
- console.log(”[setup] auth=” + (gatewayToken ? β€œtoken” : β€œpassword”));
139
- console.log(”[setup] model=” + defaultModel);
140
- console.log(”[setup] gemini=” + !!geminiKey);
141
- console.log(”[setup] groq=” + !!groqKey);
142
- console.log(”[setup] anthropic=” + !!anthropicKey);
143
- console.log(”[setup] openai=” + !!openaiKey);
144
- console.log(”[setup] telegram=” + !!telegramToken);
145
  })().catch(function(err) {
146
- console.error(”[setup] Fatal: β€œ + err.message);
147
  process.exit(0);
148
  });
 
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import https from "node:https";
4
 
5
+ var HOME = process.env.OPENCLAW_HOME || process.env.HOME || "/home/user";
6
+ var STATE_DIR = path.join(HOME, ".openclaw");
7
+ var CONFIG_PATH = path.join(STATE_DIR, "openclaw.json");
8
 
9
+ console.log("[setup] Starting… HOME=" + HOME);
10
 
11
  function parseList(val) {
12
  if (!val || !val.trim()) return [];
13
+ return val.split(",").map(function(s) { return s.trim(); }).filter(Boolean);
14
  }
15
 
16
+ var gatewayToken = (process.env.OPENCLAW_GATEWAY_TOKEN || "").trim();
17
+ var gatewayPassword = (process.env.OPENCLAW_GATEWAY_PASSWORD || "").trim();
18
 
19
  if (!gatewayToken && !gatewayPassword) {
20
+ console.error("[setup] ERROR: No OPENCLAW_GATEWAY_TOKEN or OPENCLAW_GATEWAY_PASSWORD");
21
  process.exit(0);
22
  }
23
 
24
  // FIX 1: default model uses correct google/ prefix
25
+ var defaultModel = (process.env.OPENCLAW_HF_DEFAULT_MODEL || "").trim() ||
26
+ "google/gemini-2.0-flash";
27
 
28
  // FIX 2: read GOOGLE_API_KEY first, GEMINI_API_KEY as alias
29
+ var geminiKey = (process.env.GOOGLE_API_KEY || process.env.GEMINI_API_KEY || "").trim();
30
+ var groqKey = (process.env.GROQ_API_KEY || "").trim();
31
+ var anthropicKey = (process.env.ANTHROPIC_API_KEY || "").trim();
32
+ var openaiKey = (process.env.OPENAI_API_KEY || "").trim();
33
+ var openrouterKey = (process.env.OPENROUTER_API_KEY || "").trim();
34
+ var telegramToken = (process.env.TELEGRAM_BOT_TOKEN || "").trim();
35
 
36
  var envProxies = parseList(process.env.OPENCLAW_GATEWAY_TRUSTED_PROXIES);
37
  var trustedProxies = envProxies.length > 0 ? envProxies : [
38
+ "10.16.4.123", "10.16.7.92", "10.16.18.232",
39
+ "10.16.34.155","10.16.43.133","10.16.1.206",
40
+ "10.20.1.9", "10.20.1.222",
41
+ "10.20.26.157","10.20.31.87",
42
+ "10.20.0.1", "172.17.0.1"
43
  ];
44
 
45
  var config = {
46
  gateway: {
47
  auth: gatewayToken
48
+ ? { mode: "token", token: gatewayToken }
49
+ : { mode: "password", password: gatewayPassword },
50
  controlUi: {
51
  dangerouslyDisableDeviceAuth: true,
52
  allowInsecureAuth: true,
53
  dangerouslyAllowHostHeaderOriginFallback: true,
54
+ allowedOrigins: ["*"]
55
  },
56
  trustedProxies: trustedProxies
57
  },
 
79
  var node = nodes[i];
80
  try {
81
  await new Promise(function(resolve, reject) {
82
+ var req = https.get(node + "/bot" + telegramToken + "/getMe", function(res) {
83
  if (res.statusCode === 200) resolve(true);
84
+ else reject(new Error("Status " + res.statusCode));
85
  });
86
+ req.on("error", reject);
87
+ req.setTimeout(4000, function() { req.destroy(); reject(new Error("Timeout")); });
88
  });
89
+ console.log("[setup] Telegram node OK: " + node);
90
+ // FIX 3: correct regex, was //$/ (broken) now /\/$/ (correct)
91
+ return node.replace(/\/$/, "");
92
  } catch (e) {
93
+ console.log("[setup] Telegram node failed: " + node + " (" + e.message + ")");
94
  }
95
  }
96
  return null;
97
  }
98
 
99
  var telegramNodes = [
100
+ "https://api.telegram.org",
101
+ "https://tg-api.vercel.app",
102
+ "https://telegram-bot-api.vercel.app"
103
  ];
104
 
105
  async function setupTelegram() {
106
  if (!telegramToken) {
107
+ console.log("[setup] Telegram disabled (no token)");
108
  return;
109
  }
110
  var apiRoot = await detectTelegramNode(telegramNodes);
111
+ var finalRoot = apiRoot || "https://api.telegram.org";
112
  config.channels = {
113
  telegram: {
114
  enabled: true,
 
117
  }
118
  }
119
  };
120
+ console.log("[setup] Telegram enabled, apiRoot=" + finalRoot);
121
  }
122
 
123
  (async function main() {
 
126
  try {
127
  fs.mkdirSync(STATE_DIR, { recursive: true });
128
  if (fs.existsSync(CONFIG_PATH)) {
129
+ fs.copyFileSync(CONFIG_PATH, CONFIG_PATH + ".bak");
130
  }
131
+ fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), "utf-8");
132
+ console.log("[setup] Config written -> " + CONFIG_PATH);
133
  } catch (e) {
134
+ console.error("[setup] Write failed: " + e.message);
135
  process.exit(0);
136
  }
137
 
138
+ console.log("[setup] auth=" + (gatewayToken ? "token" : "password"));
139
+ console.log("[setup] model=" + defaultModel);
140
+ console.log("[setup] gemini=" + !!geminiKey);
141
+ console.log("[setup] groq=" + !!groqKey);
142
+ console.log("[setup] anthropic=" + !!anthropicKey);
143
+ console.log("[setup] openai=" + !!openaiKey);
144
+ console.log("[setup] telegram=" + !!telegramToken);
145
  })().catch(function(err) {
146
+ console.error("[setup] Fatal: " + err.message);
147
  process.exit(0);
148
  });