tidaldb/applications/forage/engine/src/sources.rs
jordan f4cfd6c81f feat: complete M8 replication primitives + forage enhancements + docs
Milestone 8 (phases 1-4):
- Shard-aware WAL segment naming, BatchHeader v2, ShardRouter
- Transport trait, InProcessTransport, WalShipper, FollowerDb
- HLC, PNCounter, LWWRegister, CrdtSignalState, ReconciliationEngine
- Session replication bridge with SeqNo/HWM, idempotency store

Forage application:
- Multi-source discovery engine with MAB exploration
- Embedding-based label system, server handlers, UI refresh

Other:
- QUICKSTART.md, README.md, milestone-8 planning docs
- Hard negative union semantics, RLHF export enhancements
- Recovery benchmark and visibility test expansions
- Split 8 oversized source files per CODING_GUIDELINES §9

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:17:19 -07:00

62 lines
1.5 KiB
Rust

/// Per-category seed URLs for the autonomous discovery agent.
/// Each entry is (category_name, &[source_urls]).
/// Source URLs are front pages or list pages where article links are prominent.
pub const SOURCES: &[(&str, &[&str])] = &[
(
"technology",
&["https://news.ycombinator.com", "https://lobste.rs"],
),
(
"science",
&["https://phys.org", "https://news.ycombinator.com?q=science"],
),
(
"jazz",
&[
"https://pitchfork.com/reviews/albums",
"https://www.allaboutjazz.com/news",
],
),
(
"travel",
&[
"https://www.theguardian.com/travel",
"https://www.cntraveler.com/latest-news",
],
),
(
"cooking",
&[
"https://www.seriouseats.com",
"https://www.bonappetit.com/recipes",
],
),
(
"design",
&["https://www.dezeen.com/news", "https://designobserver.com"],
),
(
"history",
&[
"https://www.historytoday.com",
"https://www.smithsonianmag.com/history",
],
),
(
"health",
&[
"https://www.health.harvard.edu/blog",
"https://www.theatlantic.com/health",
],
),
];
/// Return the source URLs for a given category, or an empty slice if unknown.
pub fn sources_for(category: &str) -> &'static [&'static str] {
SOURCES
.iter()
.find(|(cat, _)| *cat == category)
.map(|(_, srcs)| *srcs)
.unwrap_or(&[])
}