Enoch reads its configuration from a single JSON file whose path you set in theDocumentation Index
Fetch the complete documentation index at: https://solo-09d10f60.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
OMX_WAKE_GATE_CONFIG environment variable. Every field is validated at startup using Pydantic; the service refuses to start if a required field is missing or a value is out of range. This page documents the core configuration fields, shows you how to generate the secure tokens the service needs, and walks through the annotated config.example.json used as the repository baseline. Worker, evidence-sync, and paper-writer fields are covered on their respective sub-pages.
Enoch reads JSON configuration from the path in OMX_WAKE_GATE_CONFIG. The app validates required fields at startup with Pydantic.
Start from config.example.json, then replace every placeholder before running a live deployment.
Required fields
omx_inbound_bearer_token— bearer token for dashboard/control API calls and incoming OMX event posts.completion_callback_url— URL called when a wake-gated run completes.completion_callback_token— bearer token sent to the completion callback endpoint.
state_dir, project_root, and dispatch_script_path.
Core runtime fields
listen_host,listen_portdispatch_timeout_seclog_eventslive_dispatch_enabledworker_wake_gate_urlworker_wake_gate_bearer_token
Wake-gate thresholds
Configure sampling, sustain windows, CPU/GPU thresholds, VRAM delta limits, workload profiles, and maximum wait after idle through thesample_interval_sec, idle_sustain_sec, cpu_idle_threshold_pct, gpu_idle_*, vram_delta_threshold_mib, workload_profiles, and max_wait_after_idle_sec fields.
Supported workload classes are inference_eval, training, control_plane, and agent_harness.
Optional integrations
- Pushover queue alerts:
pushover_alerts_enabled,pushover_app_token,pushover_user_key,pushover_api_url,queue_alert_*. - Paper writer:
paper_writer_provider,paper_writer_base_url,paper_writer_model,paper_writer_api_key,paper_writer_*tuning, and fallback. - Evidence sync:
paper_evidence_sync_enabled,paper_evidence_sync_ssh_host,paper_evidence_sync_remote_root,paper_evidence_sync_timeout_sec.
Deprecated aliases
Older private prototypes usedn8n_callback_url, n8n_bearer_token, and n8n_callback_timeout_sec. New configs should use completion_callback_* fields.
Secret handling
How often (in seconds) the gate samples CPU and GPU telemetry. Minimum value is
1.How long (in seconds) all idle thresholds must remain satisfied before the gate considers the workload complete. Minimum value is
30.CPU utilisation percentage below which the gate counts a sample as idle. Range
0.0–100.0.Average GPU utilisation percentage below which a sample is considered idle. Range
0.0–100.0.Peak GPU utilisation percentage below which a sample is considered idle. Range
0.0–100.0.Maximum VRAM change in MiB between consecutive samples that is still counted as idle. Set to
0 to require no VRAM movement.Hard ceiling (in seconds) on how long the gate will wait for a workload to become idle before timing out. Minimum value is
60.Workload class applied when a dispatch request does not specify one. Valid values are
inference_eval, training, control_plane, and agent_harness. Each class maps to a threshold profile; inference_eval applies stricter idle requirements (longer sustain, lower CPU threshold) than training.Annotated example config
The following JSON mirrors the repositoryconfig.example.json baseline at the time this docs page was audited. It includes optional/default-off sections such as live dispatch, Pushover alerts, evidence sync, and provider-backed paper writing. Copy it, remove fields you do not need, and replace every placeholder value before use.
Configuration sections
The full configuration covers two additional areas, each documented on its own page:- Worker and evidence sync — connecting the control plane to a worker machine, enabling evidence sync, and configuring the stale-process reaper.
- Paper writer and AI model settings — choosing between the
deterministictemplate provider and thesynthetic.newproduction provider, and tuning generation parameters.