Add single-process live engine runner#10
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR closes the first operational gap from the current development state: Augur now has a single-process runner that can drive the existing in-process extraction engine from checked-in configuration. It also aligns the detector config with the strict Pydantic schema and updates repo-facing documentation so the project is framed as a structured prediction-market signal pipeline rather than generic anomaly detection.
Changes
Engine runner
scripts/run_engine.pyas the local monolith entrypoint.AUGUR_CONFIG_DIRor defaults toconfig/.config/markets.tomlwith a strict local schema.KalshiPoller, which requiresKALSHI_API_KEYwhen active Kalshi markets exist.SignalContextJSON to stdout viaaugur_format.deterministic.json_feed.Config contract
config/detectors.tomlto matchDetectorsConfigfield names.hazard,fire_probability_threshold,top_levels, andcross_market_divergenceinto the strict runtime schema fields.Documentation and product framing
README.mdand root package metadata to describe Augur as structured intelligence signals from prediction markets.docs/operations/manual-testing.mdwith:Local state hygiene
/.cocoindex_code/to.gitignoreso local CocoIndex state remains local and cannot be accidentally committed.Tests
tests/signals/test_run_engine.pycovering:tests/signals/test_config.pyto validate the checked-in detector config.Validation
Ran the full local gate:
Results:
ruff check: passedruff format --check: passedmypy --strict src/: passedpytest:368 passed, total coverage about 86 percentRunner smoke:
--helpworks.--oncefails fast as expected becauseconfig/markets.tomlcurrently has no active markets.Follow-up
The next branch should replace the inactive placeholder in
config/markets.tomlwith a small Polymarket-only active watchlist, runuv run python scripts/run_engine.py --once, and verify snapshots land indata/augur.duckdbbefore implementingscripts/backtest.py.