-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
163 lines (154 loc) · 6.18 KB
/
Copy path.env.example
File metadata and controls
163 lines (154 loc) · 6.18 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# NodeRoom runs fully with NO keys (deterministic in-memory engine + scripted agents).
# Keys only light up the LIVE paths (real Convex room + real LLM agents).
# Client (inlined into the browser bundle)
VITE_CONVEX_URL=
VITE_CONVEX_SITE_URL=
VITE_NODEROOM_AUTH_REQUIRED=0
VITE_NODEROOM_AUTH_PROVIDER=both
VITE_NODEROOM_FREE_ONLY=0
VITE_VOICE_STT_PROVIDER_ORDER=provider,browser
VITE_VOICE_TTS_PROVIDER_ORDER=browser,provider
VITE_VOICE_TTS_ALLOW_HOSTED_IN_FREE_ONLY=0
# Native notebook editor. Set to `prosemirror` to render the Convex ProseMirror
# Sync collaborative editor (requires VITE_CONVEX_URL). Unset keeps the legacy
# Tiptap HTML-on-blur editor.
VITE_NOTEBOOK_SYNC=
# Production safety switches. Leave disabled for local deterministic/demo rooms.
# Set NODEROOM_REQUIRE_CONVEX_IDENTITY=1 in production if anonymous room tokens are not acceptable.
NODEROOM_REQUIRE_CONVEX_IDENTITY=0
# Convex Auth production OAuth values live on the Convex deployment, never in
# Vite or Vercel client variables. Convex Auth also requires JWT_PRIVATE_KEY,
# JWKS, and SITE_URL; initialize them with the official Convex Auth setup.
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=
# Required for password accounts. Store these on the Convex deployment, never in Vite.
AUTH_RESEND_KEY=
AUTH_EMAIL_FROM=NodeRoom <accounts@auth.noderoom.live>
PROVIDER_EGRESS_REQUIRE_ALLOWLIST=0
NODEAGENT_ALLOWED_PROVIDERS=openai,anthropic,gemini,openrouter,nebius,local
# Optional emergency brakes. Examples:
# NODEAGENT_QUARANTINED_MODELS=qwen/qwen3-coder:free=rate_limited,google/*
# NODEAGENT_QUARANTINED_PROVIDERS=openrouter=incident
NODEAGENT_QUARANTINED_MODELS=
NODEAGENT_QUARANTINED_PROVIDERS=
# Server-side (never exposed) — light up live agents
CONVEX_DEPLOYMENT=
ANTHROPIC_API_KEY=
OPENAI_API_KEY=
GOOGLE_GENERATIVE_AI_API_KEY=
OPENROUTER_API_KEY=
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
NVIDIA_API_KEY=
NEBIUS_API_KEY=
NEBIUS_BASE_URL=https://api.tokenfactory.nebius.com/v1
NEBIUS_CONTROL_BASE_URL=
NEBIUS_ENDPOINTS_URL=
NEBIUS_ALLOW_ENDPOINT_CREATE=0
OPENROUTER_FREE_AUTO_LIMIT=8
AGENT_QUALITY_CANDIDATE_TIMEOUT_MS=45000
OPENROUTER_FREE_MODEL_CACHE_MS=600000
OPENROUTER_REQUIRE_NO_TRAINING=1
OPENROUTER_FREE_ALLOW_FILE_EGRESS=0
# Provider-neutral NodeAgent uses OpenRouter's governed free ladder first, then
# this direct Gemini route when free routes are unavailable. Receipts retain the
# catalog price because an account's free-tier entitlement cannot be asserted.
NODEAGENT_FREE_AUTO_GOOGLE_MODEL=gemini-3.5-flash
AGENT_MODEL=gpt-5.4-nano
# Optional voice provider overrides. Browser TTS is the free client default;
# Convex `/voice/*` endpoints are authenticated hosted fallbacks.
NODEROOM_FREE_ONLY=0
VOICE_ALLOW_PAID_FALLBACK=0
VOICE_STT_PROVIDER_ORDER=nvidia,openai
VOICE_STT_PROVIDER=
VOICE_NVIDIA_STT_MODEL=nvidia/nemotron-3-nano-omni-30b-a3b-reasoning
VOICE_TTS_PROVIDER_ORDER=gemini,cloudflare,google,openai
VOICE_TTS_PROVIDER=
VOICE_ALLOW_METERED_FREE_TIER=0
CLOUDFLARE_ACCOUNT_ID=
CLOUDFLARE_API_TOKEN=
VOICE_CLOUDFLARE_FREE_TIER_CONFIRMED=0
VOICE_CLOUDFLARE_TTS_MODEL=@cf/myshell-ai/melotts
VOICE_CLOUDFLARE_TTS_LANG=en
GEMINI_API_KEY=
VOICE_GEMINI_TTS_FREE_TIER_CONFIRMED=0
VOICE_GEMINI_TTS_MODEL=gemini-3.1-flash-tts-preview
VOICE_GEMINI_TTS_VOICE=Kore
VOICE_GEMINI_TTS_INSTRUCTIONS=Read clearly and concisely for a collaborative work room.
GOOGLE_CLOUD_TTS_API_KEY=
GOOGLE_TTS_API_KEY=
GOOGLE_CLOUD_ACCESS_TOKEN=
GOOGLE_TTS_ACCESS_TOKEN=
VOICE_GOOGLE_TTS_FREE_TIER_CONFIRMED=0
VOICE_GOOGLE_TTS_VOICE=en-US-Standard-H
VOICE_GOOGLE_TTS_LANGUAGE=en-US
VOICE_GOOGLE_TTS_AUDIO_ENCODING=MP3
VOICE_GOOGLE_TTS_MAX_CHARS_PER_REQUEST=900
VOICE_OPENAI_STT_MODEL=gpt-4o-mini-transcribe
VOICE_OPENAI_TTS_MODEL=gpt-4o-mini-tts
VOICE_OPENAI_TTS_VOICE=coral
VOICE_OPENAI_TTS_INSTRUCTIONS=Speak clearly and concisely for a collaborative work room.
# Paid escape hatch for uploaded-file jobs. Keep this off when a route is advertised as free.
FREE_AUTO_ALLOW_FILE_EGRESS_PROMOTION=0
# Used only when FREE_AUTO_ALLOW_FILE_EGRESS_PROMOTION=1 or non-free routes need a file-egress model.
AGENT_FILE_EGRESS_MODEL=z-ai/glm-4.7-flash
AGENT_ACTION_BUDGET_MS=600000
AGENT_ACTION_RESERVE_MS=30000
AGENT_CONTEXT_MAX_CHARS=24000
AGENT_CONTEXT_KEEP_RECENT=10
# SEO QA and model-routing utilities.
SEO_BASE_URL=https://noderoom.live
SEO_QA_ALLOW_GOOGLE_ORIGIN=0
SEO_QA_GOOGLE_TARGET_PHRASE=NodeRoom collaborative AI room
GOOGLE_SEARCH_CONSOLE_SITE_URL=https://noderoom.live/
GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN=
GOOGLE_SEARCH_CONSOLE_SERVICE_ACCOUNT_JSON=
GEMINI_SEO_VIDEO_JUDGE_MODEL=gemini-3.5-flash
NEBIUS_SEO_JUDGE_MODEL=nebius/MiniMaxAI/MiniMax-M2.5
NEBIUS_SMOKE_MODEL=nebius/MiniMaxAI/MiniMax-M2.5
NEBIUS_ENABLE_VISION_JUDGE=0
OPSERA_API_URL=
OPSERA_API_KEY=
OPSERA_WORKFLOW_URL=
# ProofLoop native agent host launchers. These are optional; missing binaries or
# credentials must keep native verification fail-closed.
PROOFLOOP_CURSOR_BINARY=
PROOFLOOP_CURSOR_COMMAND=
PROOFLOOP_WINDSURF_COMMAND=
PROOFLOOP_CASCADE_COMMAND=
PROOFLOOP_DEVIN_CLI_COMMAND=
DEVIN_CLI_COMMAND=
PROOFLOOP_DEVIN_API_KEY=
DEVIN_API_KEY=
PROOFLOOP_DEVIN_ORG_ID=
DEVIN_ORG_ID=
PROOFLOOP_DEVIN_API_BASE_URL=https://api.devin.ai
PROOFLOOP_DEVIN_REPOS=
PROOFLOOP_DEVIN_SECRET_IDS=
PROOFLOOP_DEVIN_KNOWLEDGE_IDS=
PROOFLOOP_DEVIN_MAX_ACU=
PROOFLOOP_DEVIN_MODE=
PROOFLOOP_DEVIN_PLATFORM=
PROOFLOOP_DEVIN_PLAYBOOK_ID=
PROOFLOOP_DEVIN_API_DRY_RUN=0
# Async free-auto job path (`/free`): sliced, checkpointed, and resumable.
FREE_AUTO_JOB_MODEL=openrouter/free-auto
FREE_AUTO_JOB_SLICE_BUDGET_MS=540000
FREE_AUTO_JOB_RESERVE_MS=30000
FREE_AUTO_JOB_MAX_STEPS_PER_SLICE=3
FREE_AUTO_JOB_CONTEXT_MAX_CHARS=24000
FREE_AUTO_JOB_CONTEXT_KEEP_RECENT=10
# Optional live `/free` smoke (`npm run free-job:smoke`).
# These are room/member proof values from a real Convex room.
FREE_JOB_ROOM_ID=
FREE_JOB_ARTIFACT_ID=
FREE_JOB_ACTOR_ID=
FREE_JOB_ACTOR_NAME=
FREE_JOB_ACTOR_TOKEN=
FREE_JOB_GOAL=
FREE_JOB_TIMEOUT_MS=900000
# Optional server-side parser model overrides.
PROVIDER_PARSER_GEMINI_MODEL=gemini-3.5-flash
PROVIDER_PARSER_OPENAI_MODEL=gpt-5.4-mini
PROVIDER_PARSER_ANTHROPIC_MODEL=claude-haiku-4-5
PROVIDER_PARSER_OPENROUTER_MODEL=z-ai/glm-5.2,moonshotai/kimi-k2.7-code,cohere/north-mini-code:free,nvidia/nemotron-3-ultra-550b-a55b,nex-agi/nex-n2-pro
PROVIDER_PARSER_ALLOW_FILE_EGRESS=0