from metalworks.contract import ResearchBrief, TargetSubreddit
from metalworks.research import ResearchDeps, run_research
from metalworks.research.arctic.reader import ArcticReader
from metalworks.stores import MemoryStores
from metalworks.llm.adapters.google import GoogleChatModel
from metalworks.embeddings.adapters.google import GoogleEmbedding
brief = ResearchBrief(
brief_id="demo-1",
question="Is there demand for a focus supplement aimed at developers?",
decision_context="Deciding whether to build a nootropic brand.",
success_criteria=["Find the top unmet needs", "Gauge willingness to pay"],
must_address=["What do people dislike about current options?"],
target_subreddits=[TargetSubreddit(name="Nootropics", rationale="core community")],
web_research_directions=[],
relevance_rubric="Posts discussing focus, energy, or nootropic supplements.",
)
deps = ResearchDeps(
chat=GoogleChatModel("gemini-2.5-pro"),
embeddings=GoogleEmbedding("gemini-embedding-001"),
corpus=MemoryStores(),
reader=ArcticReader(), # HF Parquet submissions + live Arctic Shift comments
)
report = run_research(deps, brief=brief)
for cluster in report.ranked_clusters:
print(cluster.signal, cluster.distinct_author_count, cluster.claim)
for quote in cluster.quotes:
print(" ", quote.permalink, "->", quote.text[:80])