{# FI-3: top-aligned-papers fragment — lazy-loaded into #insights-top-papers. Context: learning — the _learning_state() dict. Relevant keys: available — bool; False on first run / a bad interest vector. top_papers — list of {doi, title, cosine} dicts (may be empty). Three states: 1. available + papers → a small table (title → /corpus/{doi}, cosine). 2. available + empty → "no aligned papers" notice (vector needs embeddings). 3. not available → "engine hasn't learned" notice. DOI embedded literally in the /corpus/{doi:path} link (verbatim, no urlencode — matches the corpus detail route). All content via Jinja autoescape only — never |safe. Em-dash placeholders use the block form only. #}
Library papers most aligned with your interest vector (cosine similarity).
| Paper | Cosine |
|---|---|
| {% if p.doi %} {% if p.title %}{{ p.title }}{% else %}{{ p.doi }}{% endif %} {% elif p.title %}{{ p.title }} {% else %}—{% endif %} | {{ "%.2f" | format(p.cosine | float) }} |
No aligned papers yet — the interest vector needs library embeddings. Run
lit-monitor brain-build to embed the corpus.
The engine hasn't learned anything yet — give feedback on discoveries to build an interest vector.
{% endif %}