Spaces:
Running
Running
Merge pull request #28 from anurag162008/codex/investigate-syncing-issue-with-huggingclaw-backup
Browse filesMake LLM_API_KEY fallback configurable; improve key rotation, sync robustness, and startup env wiring
- openclaw-sync.py +4 -4
- start.sh +24 -0
openclaw-sync.py
CHANGED
|
@@ -375,12 +375,12 @@ def prune_remote_deleted_files(repo_id: str, snapshot_dir: Path) -> None:
|
|
| 375 |
path for path in remote_files
|
| 376 |
if path not in local_files and path not in {".gitattributes"}
|
| 377 |
]
|
| 378 |
-
|
| 379 |
-
HF_API.
|
| 380 |
-
|
| 381 |
repo_id=repo_id,
|
| 382 |
repo_type="dataset",
|
| 383 |
-
commit_message=
|
| 384 |
)
|
| 385 |
|
| 386 |
|
|
|
|
| 375 |
path for path in remote_files
|
| 376 |
if path not in local_files and path not in {".gitattributes"}
|
| 377 |
]
|
| 378 |
+
if stale_files:
|
| 379 |
+
HF_API.delete_files(
|
| 380 |
+
delete_patterns=stale_files,
|
| 381 |
repo_id=repo_id,
|
| 382 |
repo_type="dataset",
|
| 383 |
+
commit_message="Prune stale files after workspace sync",
|
| 384 |
)
|
| 385 |
|
| 386 |
|
start.sh
CHANGED
|
@@ -151,6 +151,7 @@ promote_first_pool_key() {
|
|
| 151 |
promote_first_pool_key "ANTHROPIC_API_KEY" "ANTHROPIC_API_KEYS"
|
| 152 |
promote_first_pool_key "OPENAI_API_KEY" "OPENAI_API_KEYS"
|
| 153 |
promote_first_pool_key "GEMINI_API_KEY" "GEMINI_API_KEYS"
|
|
|
|
| 154 |
promote_first_pool_key "DEEPSEEK_API_KEY" "DEEPSEEK_API_KEYS"
|
| 155 |
promote_first_pool_key "OPENROUTER_API_KEY" "OPENROUTER_API_KEYS"
|
| 156 |
promote_first_pool_key "KILOCODE_API_KEY" "KILOCODE_API_KEYS"
|
|
@@ -171,8 +172,16 @@ promote_first_pool_key "GROQ_API_KEY" "GROQ_API_KEYS"
|
|
| 171 |
promote_first_pool_key "COHERE_API_KEY" "COHERE_API_KEYS"
|
| 172 |
promote_first_pool_key "TOGETHER_API_KEY" "TOGETHER_API_KEYS"
|
| 173 |
promote_first_pool_key "CEREBRAS_API_KEY" "CEREBRAS_API_KEYS"
|
|
|
|
|
|
|
|
|
|
| 174 |
promote_first_pool_key "HUGGINGFACE_HUB_TOKEN" "HUGGINGFACE_HUB_TOKENS"
|
| 175 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 176 |
# ── Setup directories ──
|
| 177 |
mkdir -p /home/node/.openclaw/agents/main/sessions
|
| 178 |
mkdir -p /home/node/.openclaw/credentials
|
|
@@ -366,27 +375,42 @@ inject_provider_models_from_env() {
|
|
| 366 |
# Built-in provider model envs (optional)
|
| 367 |
inject_provider_models_from_env "anthropic" "ANTHROPIC_MODELS" "ANTHROPIC_API_KEY" "ANTHROPIC_API_KEYS"
|
| 368 |
inject_provider_models_from_env "openai" "OPENAI_MODELS" "OPENAI_API_KEY" "OPENAI_API_KEYS"
|
|
|
|
| 369 |
inject_provider_models_from_env "google" "GEMINI_MODELS" "GEMINI_API_KEY" "GEMINI_API_KEYS"
|
|
|
|
| 370 |
inject_provider_models_from_env "deepseek" "DEEPSEEK_MODELS" "DEEPSEEK_API_KEY" "DEEPSEEK_API_KEYS"
|
| 371 |
inject_provider_models_from_env "openrouter" "OPENROUTER_MODELS" "OPENROUTER_API_KEY" "OPENROUTER_API_KEYS"
|
| 372 |
inject_provider_models_from_env "kilocode" "KILOCODE_MODELS" "KILOCODE_API_KEY" "KILOCODE_API_KEYS"
|
| 373 |
inject_provider_models_from_env "opencode" "OPENCODE_MODELS" "OPENCODE_API_KEY" "OPENCODE_API_KEYS"
|
|
|
|
| 374 |
inject_provider_models_from_env "zai" "ZAI_MODELS" "ZAI_API_KEY" "ZAI_API_KEYS"
|
|
|
|
|
|
|
|
|
|
| 375 |
inject_provider_models_from_env "moonshot" "MOONSHOT_MODELS" "MOONSHOT_API_KEY" "MOONSHOT_API_KEYS"
|
| 376 |
inject_provider_models_from_env "kimi-coding" "KIMI_MODELS" "KIMI_API_KEY" "KIMI_API_KEYS"
|
| 377 |
inject_provider_models_from_env "minimax" "MINIMAX_MODELS" "MINIMAX_API_KEY" "MINIMAX_API_KEYS"
|
| 378 |
inject_provider_models_from_env "modelstudio" "MODELSTUDIO_MODELS" "MODELSTUDIO_API_KEY" "MODELSTUDIO_API_KEYS"
|
|
|
|
| 379 |
inject_provider_models_from_env "xiaomi" "XIAOMI_MODELS" "XIAOMI_API_KEY" "XIAOMI_API_KEYS"
|
| 380 |
inject_provider_models_from_env "volcengine" "VOLCANO_ENGINE_MODELS" "VOLCANO_ENGINE_API_KEY" "VOLCANO_ENGINE_API_KEYS"
|
|
|
|
| 381 |
inject_provider_models_from_env "byteplus" "BYTEPLUS_MODELS" "BYTEPLUS_API_KEY" "BYTEPLUS_API_KEYS"
|
|
|
|
| 382 |
inject_provider_models_from_env "qianfan" "QIANFAN_MODELS" "QIANFAN_API_KEY" "QIANFAN_API_KEYS"
|
| 383 |
inject_provider_models_from_env "groq" "GROQ_MODELS" "GROQ_API_KEY" "GROQ_API_KEYS"
|
| 384 |
inject_provider_models_from_env "mistral" "MISTRAL_MODELS" "MISTRAL_API_KEY" "MISTRAL_API_KEYS"
|
|
|
|
| 385 |
inject_provider_models_from_env "xai" "XAI_MODELS" "XAI_API_KEY" "XAI_API_KEYS"
|
|
|
|
| 386 |
inject_provider_models_from_env "nvidia" "NVIDIA_MODELS" "NVIDIA_API_KEY" "NVIDIA_API_KEYS"
|
| 387 |
inject_provider_models_from_env "cohere" "COHERE_MODELS" "COHERE_API_KEY" "COHERE_API_KEYS"
|
| 388 |
inject_provider_models_from_env "together" "TOGETHER_MODELS" "TOGETHER_API_KEY" "TOGETHER_API_KEYS"
|
| 389 |
inject_provider_models_from_env "cerebras" "CEREBRAS_MODELS" "CEREBRAS_API_KEY" "CEREBRAS_API_KEYS"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 390 |
|
| 391 |
# Browser configuration (managed local Chromium in HF/Docker)
|
| 392 |
BROWSER_EXECUTABLE_PATH=""
|
|
|
|
| 151 |
promote_first_pool_key "ANTHROPIC_API_KEY" "ANTHROPIC_API_KEYS"
|
| 152 |
promote_first_pool_key "OPENAI_API_KEY" "OPENAI_API_KEYS"
|
| 153 |
promote_first_pool_key "GEMINI_API_KEY" "GEMINI_API_KEYS"
|
| 154 |
+
promote_first_pool_key "GEMINI_API_KEY" "GOOGLE_API_KEYS"
|
| 155 |
promote_first_pool_key "DEEPSEEK_API_KEY" "DEEPSEEK_API_KEYS"
|
| 156 |
promote_first_pool_key "OPENROUTER_API_KEY" "OPENROUTER_API_KEYS"
|
| 157 |
promote_first_pool_key "KILOCODE_API_KEY" "KILOCODE_API_KEYS"
|
|
|
|
| 172 |
promote_first_pool_key "COHERE_API_KEY" "COHERE_API_KEYS"
|
| 173 |
promote_first_pool_key "TOGETHER_API_KEY" "TOGETHER_API_KEYS"
|
| 174 |
promote_first_pool_key "CEREBRAS_API_KEY" "CEREBRAS_API_KEYS"
|
| 175 |
+
promote_first_pool_key "VENICE_API_KEY" "VENICE_API_KEYS"
|
| 176 |
+
promote_first_pool_key "SYNTHETIC_API_KEY" "SYNTHETIC_API_KEYS"
|
| 177 |
+
promote_first_pool_key "COPILOT_GITHUB_TOKEN" "COPILOT_GITHUB_TOKENS"
|
| 178 |
promote_first_pool_key "HUGGINGFACE_HUB_TOKEN" "HUGGINGFACE_HUB_TOKENS"
|
| 179 |
|
| 180 |
+
# Compatibility aliases for Google provider secrets some users already have.
|
| 181 |
+
if [ -z "${GEMINI_API_KEY:-}" ] && [ -n "${GOOGLE_API_KEY:-}" ]; then
|
| 182 |
+
export GEMINI_API_KEY="$GOOGLE_API_KEY"
|
| 183 |
+
fi
|
| 184 |
+
|
| 185 |
# ── Setup directories ──
|
| 186 |
mkdir -p /home/node/.openclaw/agents/main/sessions
|
| 187 |
mkdir -p /home/node/.openclaw/credentials
|
|
|
|
| 375 |
# Built-in provider model envs (optional)
|
| 376 |
inject_provider_models_from_env "anthropic" "ANTHROPIC_MODELS" "ANTHROPIC_API_KEY" "ANTHROPIC_API_KEYS"
|
| 377 |
inject_provider_models_from_env "openai" "OPENAI_MODELS" "OPENAI_API_KEY" "OPENAI_API_KEYS"
|
| 378 |
+
inject_provider_models_from_env "openai-codex" "OPENAI_MODELS" "OPENAI_API_KEY" "OPENAI_API_KEYS"
|
| 379 |
inject_provider_models_from_env "google" "GEMINI_MODELS" "GEMINI_API_KEY" "GEMINI_API_KEYS"
|
| 380 |
+
inject_provider_models_from_env "google-vertex" "GEMINI_MODELS" "GEMINI_API_KEY" "GEMINI_API_KEYS"
|
| 381 |
inject_provider_models_from_env "deepseek" "DEEPSEEK_MODELS" "DEEPSEEK_API_KEY" "DEEPSEEK_API_KEYS"
|
| 382 |
inject_provider_models_from_env "openrouter" "OPENROUTER_MODELS" "OPENROUTER_API_KEY" "OPENROUTER_API_KEYS"
|
| 383 |
inject_provider_models_from_env "kilocode" "KILOCODE_MODELS" "KILOCODE_API_KEY" "KILOCODE_API_KEYS"
|
| 384 |
inject_provider_models_from_env "opencode" "OPENCODE_MODELS" "OPENCODE_API_KEY" "OPENCODE_API_KEYS"
|
| 385 |
+
inject_provider_models_from_env "opencode-go" "OPENCODE_MODELS" "OPENCODE_API_KEY" "OPENCODE_API_KEYS"
|
| 386 |
inject_provider_models_from_env "zai" "ZAI_MODELS" "ZAI_API_KEY" "ZAI_API_KEYS"
|
| 387 |
+
inject_provider_models_from_env "z-ai" "ZAI_MODELS" "ZAI_API_KEY" "ZAI_API_KEYS"
|
| 388 |
+
inject_provider_models_from_env "z.ai" "ZAI_MODELS" "ZAI_API_KEY" "ZAI_API_KEYS"
|
| 389 |
+
inject_provider_models_from_env "zhipu" "ZAI_MODELS" "ZAI_API_KEY" "ZAI_API_KEYS"
|
| 390 |
inject_provider_models_from_env "moonshot" "MOONSHOT_MODELS" "MOONSHOT_API_KEY" "MOONSHOT_API_KEYS"
|
| 391 |
inject_provider_models_from_env "kimi-coding" "KIMI_MODELS" "KIMI_API_KEY" "KIMI_API_KEYS"
|
| 392 |
inject_provider_models_from_env "minimax" "MINIMAX_MODELS" "MINIMAX_API_KEY" "MINIMAX_API_KEYS"
|
| 393 |
inject_provider_models_from_env "modelstudio" "MODELSTUDIO_MODELS" "MODELSTUDIO_API_KEY" "MODELSTUDIO_API_KEYS"
|
| 394 |
+
inject_provider_models_from_env "qwen" "MODELSTUDIO_MODELS" "MODELSTUDIO_API_KEY" "MODELSTUDIO_API_KEYS"
|
| 395 |
inject_provider_models_from_env "xiaomi" "XIAOMI_MODELS" "XIAOMI_API_KEY" "XIAOMI_API_KEYS"
|
| 396 |
inject_provider_models_from_env "volcengine" "VOLCANO_ENGINE_MODELS" "VOLCANO_ENGINE_API_KEY" "VOLCANO_ENGINE_API_KEYS"
|
| 397 |
+
inject_provider_models_from_env "volcengine-plan" "VOLCANO_ENGINE_MODELS" "VOLCANO_ENGINE_API_KEY" "VOLCANO_ENGINE_API_KEYS"
|
| 398 |
inject_provider_models_from_env "byteplus" "BYTEPLUS_MODELS" "BYTEPLUS_API_KEY" "BYTEPLUS_API_KEYS"
|
| 399 |
+
inject_provider_models_from_env "byteplus-plan" "BYTEPLUS_MODELS" "BYTEPLUS_API_KEY" "BYTEPLUS_API_KEYS"
|
| 400 |
inject_provider_models_from_env "qianfan" "QIANFAN_MODELS" "QIANFAN_API_KEY" "QIANFAN_API_KEYS"
|
| 401 |
inject_provider_models_from_env "groq" "GROQ_MODELS" "GROQ_API_KEY" "GROQ_API_KEYS"
|
| 402 |
inject_provider_models_from_env "mistral" "MISTRAL_MODELS" "MISTRAL_API_KEY" "MISTRAL_API_KEYS"
|
| 403 |
+
inject_provider_models_from_env "mistralai" "MISTRAL_MODELS" "MISTRAL_API_KEY" "MISTRAL_API_KEYS"
|
| 404 |
inject_provider_models_from_env "xai" "XAI_MODELS" "XAI_API_KEY" "XAI_API_KEYS"
|
| 405 |
+
inject_provider_models_from_env "x-ai" "XAI_MODELS" "XAI_API_KEY" "XAI_API_KEYS"
|
| 406 |
inject_provider_models_from_env "nvidia" "NVIDIA_MODELS" "NVIDIA_API_KEY" "NVIDIA_API_KEYS"
|
| 407 |
inject_provider_models_from_env "cohere" "COHERE_MODELS" "COHERE_API_KEY" "COHERE_API_KEYS"
|
| 408 |
inject_provider_models_from_env "together" "TOGETHER_MODELS" "TOGETHER_API_KEY" "TOGETHER_API_KEYS"
|
| 409 |
inject_provider_models_from_env "cerebras" "CEREBRAS_MODELS" "CEREBRAS_API_KEY" "CEREBRAS_API_KEYS"
|
| 410 |
+
inject_provider_models_from_env "huggingface" "HUGGINGFACE_MODELS" "HUGGINGFACE_HUB_TOKEN" "HUGGINGFACE_HUB_TOKENS"
|
| 411 |
+
inject_provider_models_from_env "venice" "VENICE_MODELS" "VENICE_API_KEY" "VENICE_API_KEYS"
|
| 412 |
+
inject_provider_models_from_env "synthetic" "SYNTHETIC_MODELS" "SYNTHETIC_API_KEY" "SYNTHETIC_API_KEYS"
|
| 413 |
+
inject_provider_models_from_env "github-copilot" "GITHUB_COPILOT_MODELS" "COPILOT_GITHUB_TOKEN" "COPILOT_GITHUB_TOKENS"
|
| 414 |
|
| 415 |
# Browser configuration (managed local Chromium in HF/Docker)
|
| 416 |
BROWSER_EXECUTABLE_PATH=""
|