feat(learn): an assistant proposes flashcards from a text, a note or a PDF page

The cards come as drafts (ADR 0021, D10, D55): one question with one
tool, propose_cards, the cards in a sheet, every one chosen at first,
each changed in a small sheet of its own or left out, and only those
chosen added, marked as an assistant's (origin "assistant"). They are
proposed from a text pasted in Add material, from a note's title and
text, and from a PDF's page or the text selected on it, tied to that page
(D56). A note or a page of a private studyset goes only once agreed to
(D9), the text pasted counting as the person's own; nothing is offered
without an assistant. PDFs give their pages' text (PdfDocumentView.pageText).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-25 21:30:59 +01:00
commit cca10e855e
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -2211,6 +2211,29 @@
"@assistantWhyTyped": {"description": "The question an assistant is asked about a reading typed wrong.", "placeholders": {"typed": {"type": "String"}}},
"assistantCheck": "Check for mistakes",
"@assistantCheck": {"description": "Has an assistant check what was written in the field (D54)."},
"proposalsTitle": "Flashcards by {name}",
"@proposalsTitle": {"description": "The sheet of cards an assistant proposes (ADR 0021, D55).", "placeholders": {"name": {"type": "String"}}},
"proposalsWriting": "{name} is writing flashcards…",
"@proposalsWriting": {"placeholders": {"name": {"type": "String"}}},
"proposalsNone": "{name} proposed no flashcards.",
"@proposalsNone": {"placeholders": {"name": {"type": "String"}}},
"proposalsCheck": "Check each card before adding it: an assistant can be wrong.",
"proposalsEdit": "Edit flashcard",
"@proposalsEdit": {"description": "Changes a card proposed before it is added."},
"proposalsAdd": "{count, plural, =0{Add flashcards} =1{Add 1 flashcard} other{Add {count} flashcards}}",
"@proposalsAdd": {"placeholders": {"count": {"type": "int"}}},
"proposalsAdded": "{count, plural, =1{1 flashcard added} other{{count} flashcards added}}",
"@proposalsAdded": {"placeholders": {"count": {"type": "int"}}},
"proposalsFromNote": "Flashcards from this note",
"@proposalsFromNote": {"description": "Has an assistant propose cards from a note (D56)."},
"proposalsFromPage": "From this page",
"@proposalsFromPage": {"description": "In a PDF's flashcards: has an assistant propose cards from the page shown (D56)."},
"proposalsFromSelection": "From the selection",
"@proposalsFromSelection": {"description": "In a PDF's flashcards: has an assistant propose cards from the text selected (D56)."},
"proposalsFromText": "Flashcards from a text",
"@proposalsFromText": {"description": "Add material: has an assistant propose cards from text pasted (D56)."},
"proposalsTextHint": "Paste the text to make flashcards from",
"proposalsPropose": "Propose flashcards",
"settingsSearchEngine": "Search engine",
"searchEngineDevice": "The device's search",
"searchEngineCustom": "Your own address",