Skip to main content

Documentation 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.

This quickstart walks you through a local developer smoke test: clone the repository, generate a minimal config with randomized tokens, start the FastAPI service, and verify that the health, status, preflight, and dispatch dry-run endpoints respond. By the end you will have a running dashboard and a baseline for docs/API exploration before moving to a real two-machine deployment.
This quickstart does not require a separate worker machine. It points the worker wake gate URL back at the local API so preflight and dry-run checks can execute on one machine. It does not prove that live dispatch is production-ready; live dispatch is disabled by default and requires worker setup.

Prerequisites

  • Python 3.11 or newer
  • uv
  • git
  • a checkout of enoch-agentic-research-system

1. Install dependencies and run tests

git clone https://github.com/alias8818/enoch-agentic-research-system.git
cd enoch-agentic-research-system
uv venv --python /usr/bin/python3 .venv
uv pip install --python .venv/bin/python -e .
uv run pytest -q

2. Create a local config

mkdir -p .local/state .local/projects .local/config
cp config.example.json .local/config/config.json
python3 - <<'PY'
import json, pathlib, secrets
p = pathlib.Path('.local/config/config.json')
data = json.loads(p.read_text())
data['state_dir'] = str(pathlib.Path('.local/state').resolve())
data['project_root'] = str(pathlib.Path('.local/projects').resolve())
data['dispatch_script_path'] = str(pathlib.Path('deploy/enoch_omx_dispatch.sh').resolve())
data['omx_inbound_bearer_token'] = secrets.token_urlsafe(48)
data['completion_callback_token'] = secrets.token_urlsafe(48)
data['completion_callback_url'] = 'http://127.0.0.1:8787/omx/event'
data['worker_wake_gate_url'] = 'http://127.0.0.1:8787'
data['worker_wake_gate_bearer_token'] = data['omx_inbound_bearer_token']
p.write_text(json.dumps(data, indent=2) + '\n')
print(data['omx_inbound_bearer_token'])
PY
Copy the printed token. The dashboard and control API expect it as a bearer token.

3. Start the API

export OMX_WAKE_GATE_CONFIG=$PWD/.local/config/config.json
uv run uvicorn omx_wake_gate.app:app --host 127.0.0.1 --port 8787
Open http://127.0.0.1:8787/dashboard. Sanitized Enoch dashboard status view showing dispatch safety, queue counts, source freshness, and active lane state This screenshot is a sanitized internal capture. It hides the bearer token and replaces private identifiers with demo values.

4. Run smoke tests

In a second shell:
export OMX_WAKE_GATE_CONFIG=$PWD/.local/config/config.json
scripts/smoke-test-local.sh
Expected result: health, status, preflight, and dispatch dry-run endpoints respond with JSON. A dry run may return noop, paused, or dry_run_dispatch depending on local queue state; the important smoke-test result is that the API paths are reachable and return structured responses. The script calls GET /healthz, GET /control/api/status, POST /control/api/preflight, and POST /control/dispatch-next with dry_run: true.

5. Move carefully to real worker testing

After the local smoke test passes, read deployment. A live two-machine setup needs distinct control and worker tokens, reachable worker API URLs, and a dispatch script path that is correct for the worker environment.