-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy path.env.advanced.example
More file actions
246 lines (190 loc) Β· 8.99 KB
/
Copy path.env.advanced.example
File metadata and controls
246 lines (190 loc) Β· 8.99 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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
# Copy this file to `.env` if you want the fuller local/hosted configuration
# surface. For the smallest public sandbox setup, use `.env.example`.
# =============================================================================
# REQUIRED β Minimum to run the sandbox
# =============================================================================
# Your Unify API key (https://unify.ai)
UNIFY_KEY=
# At least one LLM provider key is required. OpenAI chat models are reached
# through OpenRouter, so OPENROUTER_API_KEY covers them.
ANTHROPIC_API_KEY=
OPENROUTER_API_KEY=
# Speech-to-text and realtime voice only; not an LLM provider key.
OPENAI_API_KEY=
# Together AI key for OpenRouter BYOK (Together-pinned open-weight models).
TOGETHER_API_KEY=
# =============================================================================
# Orchestra
# =============================================================================
# API endpoint (default: hosted Unify platform)
ORCHESTRA_URL="https://api.unify.ai/v0"
# Auto-shutdown timeout for local orchestra (seconds). 0 = never.
ORCHESTRA_INACTIVITY_TIMEOUT_SECONDS=600
# =============================================================================
# OPTIONAL β App integrations (Composio + Pipedream)
# =============================================================================
# Used by the self-host stack and local Orchestra for third-party app actions.
# Composio covers the primary catalog; Pipedream fills Composio-only gaps.
# PIPEDREAM_ENVIRONMENT=development is required locally (production Connect
# execution needs a paid Pipedream plan).
COMPOSIO_API_KEY=
PIPEDREAM_CLIENT_ID=
PIPEDREAM_CLIENT_SECRET=
PIPEDREAM_PROJECT_ID=
PIPEDREAM_ENVIRONMENT=development
# =============================================================================
# OPTIONAL β Provider-event triggers (source stack / stack.sh)
# =============================================================================
# Third-party task triggers (Composio or Pipedream github.issue_created). Disabled
# by default. Requires a public HTTPS callback base and wrapping master key.
# Composio and/or Pipedream credentials are optional per backend. Values here or
# in ~/.unity/.env (overlay) are read by unity-deploy/selfhost/stack.sh.
# Unify does not provide a managed callback tunnel for provider triggers.
SELF_HOST_PROVIDER_TRIGGERS_ENABLED=false
ORCHESTRA_TRIGGER_CALLBACK_BASE_URL=
TRIGGER_EVENT_WRAPPING_MASTER_KEY=
COMPOSIO_WEBHOOK_SECRET=
# =============================================================================
# OPTIONAL β Local comms mode
# =============================================================================
# Unity can own the local comms ingress directly. This is the default
# self-hosted path for SMS, email, and voice integrations.
UNITY_CONVERSATION_LOCAL_COMMS_ENABLED=true
UNITY_CONVERSATION_LOCAL_COMMS_MODE=local
UNITY_CONVERSATION_LOCAL_COMMS_HOST=127.0.0.1
UNITY_CONVERSATION_LOCAL_COMMS_PORT=8787
UNITY_CONVERSATION_LOCAL_COMMS_PUBLIC_URL=
# =============================================================================
# OPTIONAL β Unity gateway local setup wizard
# =============================================================================
# These keys are managed by `python -m unity.gateway setup --interactive`.
UNITY_GATEWAY_PUBLIC_URL=
UNITY_GATEWAY_LOCAL_INGRESS_URL=
UNITY_GATEWAY_STORAGE_DIR=
UNITY_ADAPTERS_URL=
# --- Twilio phone/SMS/social verification ---
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
ASSISTANT_NUMBER=
USER_NUMBER=
# --- Twilio WhatsApp ---
TWILIO_WA_ACCOUNT_SID=
TWILIO_WA_AUTH_TOKEN=
TWILIO_WA_FROM=
# --- Slack ---
SLACK_SIGNING_SECRET=
# --- Google/Gmail ---
GOOGLE_OAUTH_CLIENT_ID=
GOOGLE_OAUTH_CLIENT_SECRET=
GCP_SA_KEY=
# --- Microsoft/Outlook/Teams/SharePoint ---
MS365_BYOD_CLIENT_ID=
MS365_BYOD_CLIENT_SECRET=
OUTLOOK_WEBHOOK_SECRET=
TEAMS_WEBHOOK_SECRET=
MS365_ADMIN_TENANT_ID=
MS365_ADMIN_CLIENT_ID=
MS365_ADMIN_CLIENT_SECRET=
# =============================================================================
# OPTIONAL β Hosted comms service
# =============================================================================
# Only needed if you want to route comms through the hosted communication
# service instead of Unity's local ingress.
# Admin key for Orchestra admin API (outbound comms, VM management).
ORCHESTRA_ADMIN_KEY=
# Communication service URL (outbound calls, SMS, emails, LiveKit dispatch).
UNITY_COMMS_URL=
# GCP project ID for hosted Pub/Sub topics or echo-responder workflows.
GCP_PROJECT_ID=
# =============================================================================
# LLM & Caching
# =============================================================================
# Validate that LLM provider API keys are set on startup.
UNITY_VALIDATE_LLM_PROVIDERS=true
# Cache LLM responses locally. First run hits the LLM; subsequent runs replay.
UNILLM_CACHE=true
# =============================================================================
# Unify Client (UNIFY_*)
# =============================================================================
# Shared API key for cross-assistant operations (AssistantJobs project).
SHARED_UNIFY_KEY=
# Terminal (console) logging for the unify client (file logging via UNISDK_LOG_DIR).
UNISDK_TERMINAL_LOG=true
# --- Test project management (consumed by tests/conftest.py) ---
# Use a random project name per test session (avoids shared-state collisions).
UNIFY_TESTS_RAND_PROJ=false
# Delete the shared project before/after the test run.
UNIFY_TESTS_DELETE_PROJ_ON_START=true
UNIFY_TESTS_DELETE_PROJ_ON_EXIT=false
# Delete each test's Unify context on exit. Useful for cleanup but slower.
UNIFY_DELETE_CONTEXT_ON_EXIT=false
# Overwrite the project if it already exists on activation.
UNIFY_OVERWRITE_PROJECT=false
# Pre-create test contexts during collection (before tests run).
UNIFY_PRETEST_CONTEXT_CREATE=false
# =============================================================================
# UniLLM (UNILLM_*)
# =============================================================================
# Terminal (console) logging for unillm (file logging via UNILLM_LOG_DIR).
UNILLM_TERMINAL_LOG=true
# =============================================================================
# Unity (UNITY_*)
# =============================================================================
# Master logging switch for Unity.
UNITY_LOG=true
# --- FileManager (Plot API) ---
UNITY_FILE_PLOT_API_ENDPOINT="/logs/plot"
UNITY_FILE_PLOT_API_TIMEOUT=30.0
UNITY_FILE_PLOT_API_MAX_RETRIES=3
UNITY_FILE_PLOT_API_RETRY_BACKOFF=1.0
# =============================================================================
# Test Infrastructure
# =============================================================================
# Git branch for local orchestra checkout (used by parallel_run.sh).
LOCAL_ORCHESTRA_BRANCH="staging"
# Write pytest output to per-test log files (in logs/pytest/).
PYTEST_LOG_TO_FILE=1
# Terminal (console) logging β set to 0 to suppress terminal output.
UNITY_TERMINAL_LOG=1
# Enable Python asyncio debug mode (performance overhead).
UNITY_ASYNCIO_DEBUG=0
# =============================================================================
# OPTIONAL β EventBus (Orchestra Events/* + Live Actions)
# =============================================================================
# Master switch: publish events to in-memory bus / Orchestra / Pub/Sub paths.
# EVENTBUS_PUBLISHING_ENABLED=false
# Orchestra persistence when publishing is on:
# all β write every event to Events/* (default, legacy behavior)
# allowlist β write only ManagerMethod/ToolLoop for listed action/tool names
# EVENTBUS_ORCHESTRA_PERSIST_MODE=all
# EVENTBUS_ORCHESTRA_PERSIST_TOOLS=act,execute_code,execute_function
# Stream ManagerMethod/ToolLoop to Pub/Sub for Console Live Actions (independent
# of the Orchestra allowlist; stream_filters apply here only).
# EVENTBUS_PUBSUB_STREAMING=false
# =============================================================================
# OPTIONAL β Third-Party APIs
# =============================================================================
# --- LiveKit (Voice Calls) ---
# Use LiveKit Cloud credentials so browser Meet, SIP calls, and Unity workers
# share one backend.
LIVEKIT_SIP_URI=
LIVEKIT_URL=
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
# --- Speech & Voice ---
DEEPGRAM_API_KEY=
CARTESIA_API_KEY=
ELEVEN_API_KEY=
# --- Web Search (Unity CM reads UNITY_WEB_TAVILY_API_KEY; set UNITY_WEB_ENABLED=true) ---
UNITY_WEB_TAVILY_API_KEY=
UNITY_WEB_ENABLED=false
# =============================================================================
# OPTIONAL β Magnitude Agent (UNITY_MAGNITUDE_CACHE_*)
# =============================================================================
# Visual semantic cache for the magnitude browser agent (agent-service).
# Master toggle for visual semantic caching.
UNITY_MAGNITUDE_CACHE_ENABLED=false
# Unify context name used to store cached trajectories.
UNITY_MAGNITUDE_CACHE_CONTEXT=VisualSemanticCache
# Use image embeddings (primary) vs perceptual hashing (fallback) for similarity.
UNITY_MAGNITUDE_CACHE_USE_IMAGE_EMBEDDING=false