-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
107 lines (93 loc) · 4.95 KB
/
Copy path.env.example
File metadata and controls
107 lines (93 loc) · 4.95 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
102
103
104
105
106
107
# ResearchOS local environment example.
# Copy to .env in the repo root. The backend loads this file automatically.
# NEVER put provider API keys here - they are entered through the frontend
# modal and stored encrypted on the backend (see backend/app/storage/secret_store.py).
# 32+ byte random string used to derive the symmetric encryption key for the
# server-side secret store. Required.
APP_MASTER_KEY=change-me-to-a-long-random-string-at-least-32-chars
# Bind address + port for the backend.
RESEARCHOS_HOST=127.0.0.1
RESEARCHOS_PORT=8000
# SQLite database path (relative to repo root). Use an absolute path in prod.
RESEARCHOS_DB_URL=sqlite:///var/data/researchos.db
# Filesystem roots for artifacts / workspaces / packages.
RESEARCHOS_ARTIFACTS_DIR=var/artifacts
RESEARCHOS_WORKSPACES_DIR=var/workspaces
RESEARCHOS_PACKAGES_DIR=var/packages
RESEARCHOS_SECRETS_DIR=var/secrets
# Max concurrent experiment subprocesses.
RESEARCHOS_MAX_CONCURRENCY=2
# Default provider routing - can be overridden per task from the UI.
RESEARCHOS_DEFAULT_PROVIDER=mock # mock | openai | anthropic
# Hard subprocess timeout for experiment runs (seconds).
RESEARCHOS_RUN_TIMEOUT=600
# -----------------------------------------------------------------------
# Model policy run mode. See docs/model-policy.md.
# production - OpenAI-only. Every phase routes to RESEARCHOS_OPENAI_PRO_MODEL
# (default gpt-5.4-pro) at xhigh reasoning, except code_generation
# which is pinned to low — the deep pass happens in code_review.
# smoke - cheap real-provider validation (gpt-4.1-mini, claude-haiku-4-5);
# reasoning/thinking dropped, max_tokens clamped.
# mock - deterministic mock adapter for every phase (no network).
# Setting RESEARCHOS_SMOKE_MODE=true forces smoke even if RUN_MODE is unset.
# -----------------------------------------------------------------------
RESEARCHOS_RUN_MODE=production
# Optional model overrides. Uppercased phase name in the env var.
# RESEARCHOS_OPENAI_PRO_MODEL=gpt-5.5-pro
# RESEARCHOS_PRO_REQUEST_TIMEOUT=7200
# RESEARCHOS_BUILDER_REQUEST_TIMEOUT=3600
# RESEARCHOS_PRO_DRAFT_MAX_OUTPUT_TOKENS=64000
# RESEARCHOS_PRO_POLISH_MAX_OUTPUT_TOKENS=32000
# RESEARCHOS_DRAFT_SECTIONAL_FIRST=true
# RESEARCHOS_MODEL_IDEA_GENERATION=gpt-5.4-pro
# RESEARCHOS_MODEL_IDEA_RANKING=gpt-5.4-pro
# RESEARCHOS_MODEL_CODE_GENERATION=gpt-5.4-pro
# RESEARCHOS_MODEL_CODE_REVIEW=gpt-5.4-pro
# RESEARCHOS_REASONING_IDEA_RANKING=xhigh
# RESEARCHOS_REASONING_CODE_REVIEW=xhigh
# RESEARCHOS_TEMP_IDEA_GENERATION=0.9
# -----------------------------------------------------------------------
# Smoke mode (cheap real-provider validation). See docs/smoke-mode.md.
# -----------------------------------------------------------------------
RESEARCHOS_SMOKE_MODE=false
RESEARCHOS_MAX_IDEAS_PER_RUN=2
RESEARCHOS_CONCURRENCY_PER_BATCH=2
RESEARCHOS_SMOKE_MAX_TOKENS=800
RESEARCHOS_SMOKE_PROMPT_BUDGET_CHARS=6000
RESEARCHOS_SMOKE_REQUEST_TIMEOUT=30
RESEARCHOS_OPENAI_SMOKE_MODEL=gpt-4.1-mini
RESEARCHOS_ANTHROPIC_SMOKE_MODEL=claude-haiku-4-5-20251001
# -----------------------------------------------------------------------
# Credential-test models (used by /api/providers/test). Kept separate from
# the policy + smoke models so validating a key stays meaningful even when
# a future-dated production model id is not yet live.
# -----------------------------------------------------------------------
RESEARCHOS_OPENAI_CREDENTIAL_TEST_MODEL=gpt-4.1-mini
RESEARCHOS_ANTHROPIC_CREDENTIAL_TEST_MODEL=claude-sonnet-4-6
# Override API_KEYS.txt lookup path. Leave unset to search repo root + parent dir.
# RESEARCHOS_API_KEYS_FILE=/absolute/path/to/API_KEYS.txt
# -----------------------------------------------------------------------
# SMTP for HITL approval emails. If you leave these unset, the EmailService
# writes to var/outbox/*.eml so the workflow remains testable without a relay.
# -----------------------------------------------------------------------
# RESEARCHOS_SMTP_HOST=smtp.example.com
# RESEARCHOS_SMTP_PORT=587
# RESEARCHOS_SMTP_USER=
# RESEARCHOS_SMTP_PASSWORD=
# RESEARCHOS_SMTP_USE_TLS=true
# RESEARCHOS_SMTP_SENDER=researchos-local@localhost
# RESEARCHOS_OUTBOX_DIR=var/outbox
# RESEARCHOS_CONSOLE_BASE_URL=http://localhost:5173
# -----------------------------------------------------------------------
# Context bundle (ZIP at project intake) limits.
# -----------------------------------------------------------------------
RESEARCHOS_CONTEXT_BUNDLE_MAX_BYTES=536870912
RESEARCHOS_CONTEXT_BUNDLE_MAX_EXTRACTED_FILES=50000
RESEARCHOS_CONTEXT_BUNDLE_SNIPPET_CHAR_LIMIT=3000
# -----------------------------------------------------------------------
# Provider credentials (OPTIONAL - preferred path is the Settings modal).
# These are read by the startup bootstrap if present; env vars take precedence
# over API_KEYS.txt. Leave commented and keep your keys out of this file.
# -----------------------------------------------------------------------
# OPENAI_API_KEY=
# ANTHROPIC_API_KEY=