feat(polymarket): add Polymarket prediction markets as 6th research source

Search Polymarket's free Gamma API for relevant prediction markets on any
topic. Uses smart multi-query expansion to cast a wider net (e.g., "Arizona
Basketball" also searches "Arizona"), merges and dedupes by event ID, and
shows price movement context ("up 22.5% this week"). No API key required.

Also hides sources with zero results from the stats output (all sources).

54 new tests, all passing. Full pipeline integration with scoring, dedupe,
cross-source linking, and rendering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matt Van Horn
2026-02-25 22:27:19 -08:00
parent 52503f8e68
commit 994a4ab2ca
17 changed files with 1699 additions and 43 deletions
+5 -2
View File
@@ -1,6 +1,6 @@
# One-Shot Research Mode
Research ANY topic across Reddit, X, YouTube, and the web. Surface what people are actually discussing, recommending, and debating right now.
Research ANY topic across Reddit, X, YouTube, Polymarket, and the web. Surface what people are actually discussing, recommending, betting on, and debating right now.
## Parse User Intent
@@ -19,7 +19,7 @@ Before doing anything, parse the user's input for:
**Display your parsing** before calling tools:
```
I'll research {TOPIC} across Reddit, X, YouTube, and the web.
I'll research {TOPIC} across Reddit, X, YouTube, Polymarket, and the web.
Parsed intent:
- TOPIC = {TOPIC}
@@ -128,11 +128,14 @@ All agents reported back!
|- Reddit: {N} threads | {N} upvotes | {N} comments
|- X: {N} posts | {N} likes | {N} reposts
|- YouTube: {N} videos | {N} views | {N} with transcripts
|- Polymarket: {N} markets | top odds: {outcome} {pct}%
|- Web: {N} pages (supplementary)
|- Top voices: @{handle1}, @{handle2} | r/{sub1}, r/{sub2}
---
```
Omit any source line that returned 0 results.
**3. Invitation** with 2-3 specific follow-up suggestions based on research.
---