mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
c2234312b8
Replace the OPENAI_API_KEY-hardcoded credential guard with a provider-aware _check_key that inspects LANGROID_MODEL's prefix and probes the correct env var for that provider: - openai/ → WARN (not a langroid-native prefix; use bare model names) - anthropic/ → WARN (not routable; suggest litellm/anthropic/<model>) - litellm/anthropic/ → ANTHROPIC_API_KEY - gemini/ → GEMINI_API_KEY - openrouter/, groq/, cerebras/, glhf/, minimax/, portkey/, deepseek/ → dedicated keys - ollama/, local/, vllm/, llamacpp/ → NO_KEY_REQUIRED (local inference) - langdb/, litellm-proxy/, litellm/<non-anthropic>/ → NO_KEY_REQUIRED_* (credentials resolved via config, not env) Under REQUIRE_LANGROID_API_KEY=1 a missing credential FATALs the boot; the default is warn-and-continue so dev containers boot cleanly. Process lifecycle hardening: - Use process substitution `> >(sed ...)` instead of pipelines so $! captures the real python/next PID (not sed's) — prior pipeline pattern would mask uvicorn crashes behind sed's exit code - Trap cleanup with `set +e` at entry (trap may fire from FATAL `exit 1` path where set -e would otherwise abort the cleanup loop) - 5s SIGTERM→SIGKILL grace window on the surviving child - Extended exit-code case statement (0, 1, 2, 126, 127, 130, 137, 139, 143, 255) - Survivor-kill diagnostics distinguish EPERM from ESRCH - wait -n with explicit positional PIDs so unrelated subshell reaps can't satisfy the wait .env.example updates document the multi-provider options so operators discover them from the file itself, not entrypoint.sh. .gitattributes enforces LF on *.sh so Windows contributors regenerating the starter don't silently ship CRLF entrypoints.
34 lines
1.7 KiB
Plaintext
34 lines
1.7 KiB
Plaintext
*.gif filter=lfs diff=lfs merge=lfs -text
|
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
|
*.png filter=lfs diff=lfs merge=lfs -text
|
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
|
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
*.webm filter=lfs diff=lfs merge=lfs -text
|
|
|
|
# Shell scripts must retain LF line endings. Windows contributors regenerating
|
|
# showcase starters on a Windows checkout (or with autocrlf=true) would
|
|
# otherwise silently ship CRLF ``entrypoint.sh`` files that bash in the
|
|
# Docker runtime rejects (``bad interpreter: No such file or directory``).
|
|
*.sh text eol=lf
|
|
|
|
# Generated showcase starters — do not edit manually
|
|
# Regenerate with: cd showcase/scripts && npx tsx generate-starters.ts
|
|
showcase/starters/ag2/** linguist-generated=true
|
|
showcase/starters/agno/** linguist-generated=true
|
|
showcase/starters/claude-sdk-python/** linguist-generated=true
|
|
showcase/starters/claude-sdk-typescript/** linguist-generated=true
|
|
showcase/starters/crewai-crews/** linguist-generated=true
|
|
showcase/starters/google-adk/** linguist-generated=true
|
|
showcase/starters/langgraph-fastapi/** linguist-generated=true
|
|
showcase/starters/langgraph-python/** linguist-generated=true
|
|
showcase/starters/langgraph-typescript/** linguist-generated=true
|
|
showcase/starters/langroid/** linguist-generated=true
|
|
showcase/starters/llamaindex/** linguist-generated=true
|
|
showcase/starters/mastra/** linguist-generated=true
|
|
showcase/starters/ms-agent-dotnet/** linguist-generated=true
|
|
showcase/starters/ms-agent-python/** linguist-generated=true
|
|
showcase/starters/pydantic-ai/** linguist-generated=true
|
|
showcase/starters/spring-ai/** linguist-generated=true
|
|
showcase/starters/strands/** linguist-generated=true
|