-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
101 lines (97 loc) · 6.65 KB
/
Copy path.env.example
File metadata and controls
101 lines (97 loc) · 6.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# ---- LLM (pick one provider — ADR-0002) ----
# APS_MODEL_PROVIDER may be left unset: it auto-detects from whichever key is present
# (NVIDIA_API_KEY -> nim, GEMINI key -> gemini). Set it explicitly to force a provider.
# NOTE: an EMPTY key value is treated as UNSET (it will not shadow .env or pick a provider).
APS_MODEL_PROVIDER=nim # "gemini" | "nim" | unset (auto-detect)
GEMINI_API_KEY= # also accepted as GOOGLE_API_KEY
# NVIDIA NIM (OpenAI-compatible). Recommended for DEV/debug of the tool-loop:
# APS_MODEL_PROVIDER=nim + a free NVIDIA key.
NVIDIA_API_KEY=
# Model menu (free NIM endpoints):
# dev/debug (default, cheap, agentic): nvidia/nvidia-nemotron-nano-9b-v2
# verification (stronger selection): qwen3.5-122b-a10b | mistral-medium-3.5 | glm-5.1
# override here, or per run: python scripts/demo_run.py "<idea>" --model qwen3.5-122b-a10b
# APS_NIM_MODEL=nvidia/nvidia-nemotron-nano-9b-v2
# ---- multi-provider failover (multipleAPIplan) — opt-in, recommended ----
# Set APS_PROVIDER_CHAIN to a comma-separated priority list to never depend on one API:
# the run uses them in order, fails over on 429/5xx/timeout/auth, and the research fan-out
# spreads sub-researchers across them (combine free quotas, ~Nx throughput). Just set the
# keys for the providers you want; unknown/keyless ones are skipped. Overrides APS_MODEL_PROVIDER.
# APS_PROVIDER_CHAIN=groq,cerebras,gemini,nim,openrouter
GROQ_API_KEY= # https://console.groq.com/keys (30 RPM, 1000/day, fast)
CEREBRAS_API_KEY= # https://cloud.cerebras.ai (1M tokens/day, fastest)
SAMBANOVA_API_KEY= # https://cloud.sambanova.ai ($5 credit, no card)
MISTRAL_API_KEY= # https://console.mistral.ai (1B tokens/mo, 2 RPM)
OPENROUTER_API_KEY= # https://openrouter.ai/keys (rotating free models)
GITHUB_MODELS_TOKEN= # https://github.com/marketplace/models
DEEPSEEK_API_KEY= # https://platform.deepseek.com
TOGETHER_API_KEY= # https://api.together.ai
XAI_API_KEY= # https://x.ai/api
OPENAI_API_KEY= # https://platform.openai.com (paid; gpt-4o-mini cheap)
ANTHROPIC_API_KEY= # https://console.anthropic.com (paid)
# Self-hosted / local (free, no key, OpenAI-compatible): start the server, opt in with
# APS_ENABLE_<NAME>=true, and (optionally) override its URL/model. Great for testing offline.
# Ollama :11434 → APS_ENABLE_OLLAMA=true (ollama serve)
# LM Studio :1234 → APS_ENABLE_LMSTUDIO=true (LM Studio local server)
# vLLM :8000 → APS_ENABLE_VLLM=true (vllm serve Qwen/Qwen3-32B)
# LocalAI :8080 → APS_ENABLE_LOCALAI=true
# llama.cpp :8080 → APS_ENABLE_LLAMACPP=true (llama-server -m model.gguf)
# APS_ENABLE_OLLAMA=
# APS_ENABLE_LMSTUDIO=
# APS_ENABLE_VLLM=
# APS_VLLM_BASE_URL=http://localhost:8000/v1 # override port/host per machine
# APS_VLLM_MODEL=Qwen/Qwen3-32B # whatever model your server has loaded
# Then put a local provider in the chain, e.g.: APS_PROVIDER_CHAIN=vllm,gemini,groq
# Per-provider overrides: APS_<PROVIDER>_MODEL=... APS_<PROVIDER>_RPM=... (e.g. APS_GROQ_RPM=25)
# Key rotation to multiply free quota: GROQ_API_KEY_2, GROQ_API_KEY_3, ...
# ---- retrieval source keys (free tiers — TRD §5) ----
# APS_GITHUB_PAT: unlocks live GitHub research AND the Launch action (creating a real repo).
# For repo CREATION use a CLASSIC token with the 'repo' scope (github.com/settings/tokens/new),
# OR a fine-grained token with Repository permissions → Administration: Read and write.
# (Contents+Issues alone is enough for research, but NOT to create a repository.)
APS_GITHUB_PAT=
# APS_GITHUB_ALLOW_SHARED_PAT: multi-tenant guard for the Launch action. Default FALSE.
# In a deployed/multi-user build each user pastes THEIR OWN PAT in the Launch panel and the
# repo is created in their account; a request without a token returns a safe preview.
# Set TRUE only for a single-operator / local demo to fall back to APS_GITHUB_PAT above
# (so you can create repos in your own account without pasting the token each time).
APS_GITHUB_ALLOW_SHARED_PAT=false
# APS_LAUNCH_SCAFFOLD: when on (default), the Launch action commits a FULL repo scaffold built
# from the run's TRD/PRD/Execution — README with architecture+ER diagrams, models & API route
# stubs, Docker/CI/docs — in one initial commit (no LLM, no extra API). Set false for the
# legacy README-only behavior.
APS_LAUNCH_SCAFFOLD=true
TAVILY_API_KEY=
REDDIT_CLIENT_ID=
REDDIT_CLIENT_SECRET=
STACKEXCHANGE_KEY=
# HN(Algolia), arXiv, Wikipedia, PyPI, npm, pytrends need no key.
# ---- app ----
APS_API_KEY=dev-key
APS_ALLOW_FIXTURE_FALLBACK=true
# Research query planning (D48): turn the idea into targeted, idea-anchored search phrases +
# sharp fan-out sub-questions so retrieval asks on-topic questions (fixes keyword-scraping at the
# source). Default on; false = byte-identical prior behavior. QUERY_PLAN_COUNT = phrases emitted.
APS_ENABLE_QUERY_PLANNING=true
APS_QUERY_PLAN_COUNT=6
# Research relevance gate (D47): score each evidence item against the idea and keep only on-topic
# evidence seeding pain points (stops "YouTube AdBlock" surfacing as a pain for a privacy tracker).
# Default on; set false for byte-identical prior behavior. RELEVANCE_MIN is the keep threshold (0–1).
# ENABLE_RELEVANCE_LLM (D49) adds a second language-level relevance JUDGE that discards lexical
# false-positives (e.g. a particle-physics "tracker" paper) and rescues borderline true-positives
# (needs a key; off by default + always off under pytest so the suite stays hermetic).
APS_ENABLE_RELEVANCE_GATE=true
APS_RELEVANCE_MIN=0.15
APS_ENABLE_RELEVANCE_LLM=false
# Firebase auth (optional): set this to the SAME project id as the frontend's
# VITE_FIREBASE_PROJECT_ID so the backend accepts Firebase ID tokens (Google/GitHub/email login)
# in addition to the built-in demo JWT. Leave blank to disable Firebase verification entirely.
APS_FIREBASE_PROJECT_ID=
# ---- Dodo Payments (billing) — TEST/SANDBOX mode only; server-side, never sent to the browser ----
# Billing endpoints (/api/billing/*) stay inert until DODO_API_KEY is set.
DODO_API_KEY= # Dodo dashboard → Developer → API Keys (test-mode key)
DODO_WEBHOOK_SECRET= # Dodo dashboard → Developer → Webhooks (signing secret)
DODO_OPERATOR_PRODUCT_ID= # subscription product id for the $29/mo Operator plan
DODO_COMMAND_PRODUCT_ID= # subscription product id for the $99/mo Command plan
DODO_ENVIRONMENT=sandbox # sandbox|test → Dodo test_mode (only mode this integration uses)
# APS_PUBLIC_BASE_URL= # optional: checkout return URL base (defaults to the request Origin)