secrets: fail loudly on a bad 1Password token instead of a LiteLLM prompt
A bad token paste (or a vault/item that did not match the login-name default) used to surface only as mcp-config asking for a LiteLLM key, hiding that every vault key was missing. Now: - the token is verified with `op whoami` and re-prompted on a bad paste - vault and item are validated, auto-picked when the token sees only one, and otherwise prompted with the list it can see - bootstrap skips mcp-config and hermes, with an error naming the cause, when no LITELLM_KEY came from the vault Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+22
-4
@@ -103,10 +103,28 @@ run_module node
|
||||
# be repaired by re-running bootstrap. Losing ~/.zshrc.local (or the hook line
|
||||
# in it) left opencode with no covert-gpt provider and no way to get it back
|
||||
# short of curl-ing this module by hand.
|
||||
run_module mcp-config
|
||||
# Hermes Agent (Nous Research) is distributed as an npm package with a Python
|
||||
# dependency. Runs after node/ ensures npx is available.
|
||||
run_module hermes
|
||||
#
|
||||
# Both it and hermes/ are SKIPPED when the vault did not deliver LITELLM_KEY
|
||||
# (and no box-local copy exists): mcp-config/ would otherwise fall back to a
|
||||
# "paste your LiteLLM key" prompt, which reads like a LiteLLM problem and hides
|
||||
# the real one — a bad 1Password token, vault or item, which also means every
|
||||
# other vault key is missing.
|
||||
if [ -z "${LITELLM_KEY:-}" ] && [ ! -s "$HOME/.config/mcp-sync/key" ]; then
|
||||
echo "" >&2
|
||||
echo "bootstrap: ERROR: no LITELLM_KEY from 1Password — skipping mcp-config and hermes." >&2
|
||||
case " $FAILED " in
|
||||
*" secrets "*) echo "bootstrap: the secrets module failed (see its messages above)." >&2 ;;
|
||||
*) echo "bootstrap: the vault item has no LITELLM_KEY field; add it with: opc LITELLM_KEY" >&2 ;;
|
||||
esac
|
||||
echo "bootstrap: fix it with $SCRIPT_DIR/secrets/install.sh, then re-run bootstrap." >&2
|
||||
echo "" >&2
|
||||
FAILED="$FAILED mcp-config hermes"
|
||||
else
|
||||
run_module mcp-config
|
||||
# Hermes Agent (Nous Research) is distributed as an npm package with a Python
|
||||
# dependency. Runs after node/ ensures npx is available.
|
||||
run_module hermes
|
||||
fi
|
||||
run_module ansible
|
||||
# Runs last: needs rootless Docker already up (started at boot) so it can
|
||||
# delegate cgroups to it. No-ops where that does not apply.
|
||||
|
||||
Reference in New Issue
Block a user