@hybridlabor-api/aos 4.4.2-beta.7 → 4.4.2-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -92,29 +92,58 @@ else
92
92
  echo " -> google-genai installed; daemon will run under $DAEMON_PYTHON"
93
93
  fi
94
94
 
95
- # 3. Resolve API key
96
- GEMINI_KEY="${GEMINI_API_KEY:-}"
97
- if [ -z "$GEMINI_KEY" ]; then
98
- echo ""
99
- echo "GEMINI_API_KEY is not set in your environment."
100
- read -rp "Enter your Gemini API key (or press Enter to skip): " GEMINI_KEY
101
- fi
95
+ # 3. Resolve provider and API key
96
+ OPENWIKI_PROVIDER="${OPENWIKI_PROVIDER:-google}"
97
+
98
+ # Map provider to its API key environment variable name
99
+ case "$OPENWIKI_PROVIDER" in
100
+ google) API_KEY_VAR="GEMINI_API_KEY" ;;
101
+ groq) API_KEY_VAR="GROQ_API_KEY" ;;
102
+ grok|xai) API_KEY_VAR="XAI_API_KEY" ;;
103
+ nvidia) API_KEY_VAR="NVIDIA_API_KEY" ;;
104
+ openrouter) API_KEY_VAR="OPENROUTER_API_KEY" ;;
105
+ openai) API_KEY_VAR="OPENAI_API_KEY" ;;
106
+ custom) API_KEY_VAR="OPENWIKI_API_KEY" ;;
107
+ ollama) API_KEY_VAR="" ;;
108
+ *) OPENWIKI_PROVIDER="google"; API_KEY_VAR="GEMINI_API_KEY" ;;
109
+ esac
110
+
111
+ # For Google provider, use the existing interactive flow with verification
112
+ if [ "$OPENWIKI_PROVIDER" = "google" ]; then
113
+ GEMINI_KEY="${GEMINI_API_KEY:-}"
114
+ if [ -z "$GEMINI_KEY" ]; then
115
+ echo ""
116
+ echo "GEMINI_API_KEY is not set in your environment."
117
+ read -rp "Enter your Gemini API key (or press Enter to skip): " GEMINI_KEY
118
+ fi
102
119
 
103
- if [ -n "$GEMINI_KEY" ]; then
104
- export GEMINI_API_KEY="$GEMINI_KEY"
105
- echo "Verifying API key..."
106
- VERIFY_OUTPUT=$("$DAEMON_PYTHON" "$SCRIPTS_DIR/verify_api_key.py" 2>&1)
107
- VERIFY_CODE=$?
108
- if [ $VERIFY_CODE -eq 0 ] && echo "$VERIFY_OUTPUT" | grep -q "VERIFIED_OK"; then
109
- echo " -> API key verified successfully."
120
+ if [ -n "$GEMINI_KEY" ]; then
121
+ export GEMINI_API_KEY="$GEMINI_KEY"
122
+ echo "Verifying API key..."
123
+ VERIFY_OUTPUT=$("$DAEMON_PYTHON" "$SCRIPTS_DIR/verify_api_key.py" 2>&1)
124
+ VERIFY_CODE=$?
125
+ if [ $VERIFY_CODE -eq 0 ] && echo "$VERIFY_OUTPUT" | grep -q "VERIFIED_OK"; then
126
+ echo " -> API key verified successfully."
127
+ else
128
+ echo " -> WARNING: API key verification failed (with retry + TLS fallback)."
129
+ echo "$VERIFY_OUTPUT" | sed 's/^/ /'
130
+ echo " The daemon will run in collect-only mode until a valid key is set."
131
+ GEMINI_KEY=""
132
+ fi
110
133
  else
111
- echo " -> WARNING: API key verification failed (with retry + TLS fallback)."
112
- echo "$VERIFY_OUTPUT" | sed 's/^/ /'
113
- echo " The daemon will run in collect-only mode until a valid key is set."
114
- GEMINI_KEY=""
134
+ echo "No API key provided. Daemon will run in collect-only mode."
115
135
  fi
136
+ API_KEY="$GEMINI_KEY"
116
137
  else
117
- echo "No API key provided. Daemon will run in collect-only mode."
138
+ # For non-Google providers, skip verification and use the configured key
139
+ if [ -n "$API_KEY_VAR" ]; then
140
+ API_KEY="${!API_KEY_VAR:-}"
141
+ else
142
+ API_KEY=""
143
+ fi
144
+ if [ -z "$API_KEY" ]; then
145
+ echo "No API key provided for provider '$OPENWIKI_PROVIDER'. Daemon will run in collect-only mode."
146
+ fi
118
147
  fi
119
148
 
120
149
  # --- Helpers -------------------------------------------------------------
@@ -179,12 +208,29 @@ write_launcher() {
179
208
  {
180
209
  printf '#!/bin/sh\n'
181
210
  printf '# Generated by install_daemon.sh - do not edit, re-run the installer.\n'
182
- printf '# Holds the OpenWiki API key so it stays out of the LaunchAgent plist\n'
183
- printf '# and the systemd unit. Mode 700 on purpose.\n'
211
+ printf '# Holds the OpenWiki provider config and API keys so they stay out of\n'
212
+ printf '# the LaunchAgent plist and the systemd unit. Mode 700 on purpose.\n'
184
213
  printf 'HOME=%s; export HOME\n' "$(sq "$HOME")"
185
214
  printf 'PATH=%s; export PATH\n' "$(sq "$path_value")"
186
- if [ -n "$GEMINI_KEY" ]; then
187
- printf 'GEMINI_API_KEY=%s; export GEMINI_API_KEY\n' "$(sq "$GEMINI_KEY")"
215
+ if [ -n "$OPENWIKI_PROVIDER" ]; then
216
+ printf 'OPENWIKI_PROVIDER=%s; export OPENWIKI_PROVIDER\n' "$(sq "$OPENWIKI_PROVIDER")"
217
+ fi
218
+ if [ -n "$OPENWIKI_MODEL" ]; then
219
+ printf 'OPENWIKI_MODEL=%s; export OPENWIKI_MODEL\n' "$(sq "$OPENWIKI_MODEL")"
220
+ fi
221
+ if [ -n "$OPENWIKI_BASE_URL" ]; then
222
+ printf 'OPENWIKI_BASE_URL=%s; export OPENWIKI_BASE_URL\n' "$(sq "$OPENWIKI_BASE_URL")"
223
+ fi
224
+ if [ -n "$API_KEY" ]; then
225
+ case "$OPENWIKI_PROVIDER" in
226
+ google) printf 'GEMINI_API_KEY=%s; export GEMINI_API_KEY\n' "$(sq "$API_KEY")" ;;
227
+ groq) printf 'GROQ_API_KEY=%s; export GROQ_API_KEY\n' "$(sq "$API_KEY")" ;;
228
+ grok|xai) printf 'XAI_API_KEY=%s; export XAI_API_KEY\n' "$(sq "$API_KEY")" ;;
229
+ nvidia) printf 'NVIDIA_API_KEY=%s; export NVIDIA_API_KEY\n' "$(sq "$API_KEY")" ;;
230
+ openrouter) printf 'OPENROUTER_API_KEY=%s; export OPENROUTER_API_KEY\n' "$(sq "$API_KEY")" ;;
231
+ openai) printf 'OPENAI_API_KEY=%s; export OPENAI_API_KEY\n' "$(sq "$API_KEY")" ;;
232
+ custom) printf 'OPENWIKI_API_KEY=%s; export OPENWIKI_API_KEY\n' "$(sq "$API_KEY")" ;;
233
+ esac
188
234
  fi
189
235
  printf 'exec %s %s --one-shot\n' "$(sq "$python_bin")" "$(sq "$SCRIPT_PATH")"
190
236
  } > "$LAUNCHER_PATH"
@@ -214,7 +260,7 @@ if [ "$OS" = "macos" ]; then
214
260
 
215
261
  MACOS_PATH="/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
216
262
  write_launcher "$DAEMON_PYTHON" "$MACOS_PATH"
217
- echo " -> Launcher written to $LAUNCHER_PATH (mode 700; holds the API key, if any)."
263
+ echo " -> Launcher written to $LAUNCHER_PATH (mode 700; holds the provider config and API key)."
218
264
 
219
265
  cat <<EOF > "$PLIST_PATH"
220
266
  <?xml version="1.0" encoding="UTF-8"?>
@@ -272,7 +318,7 @@ elif [ "$OS" = "linux" ]; then
272
318
 
273
319
  LINUX_PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
274
320
  write_launcher "$DAEMON_PYTHON" "$LINUX_PATH"
275
- echo " -> Launcher written to $LAUNCHER_PATH (mode 700; holds the API key, if any)."
321
+ echo " -> Launcher written to $LAUNCHER_PATH (mode 700; holds the provider config and API key)."
276
322
 
277
323
  cat > "$SYSTEMD_SERVICE" <<EOF
278
324
  [Unit]