feat(learn): the assistant answers in the field

The field asks an assistant the instance offers as well as searching the
web (ADR 0021): who answers is picked at its start, the one asked last
first (askWith, a device setting), an assistant not agreed to yet asking
for agreement first. Asking an assistant, every part of the topic may go
along, and one chip leads them with how far it may look (D49), only what
is chosen until the person widens it to the studyset, its tree or the
library, private studysets only where switched on (D50, D8). The
conversation shows in a sheet over the screen (D47), half the height and
dragged up to the full: each question with what went along, the lookups,
the answer as Markdown once whole, follow-ups, Stop, and Try again for a
question that got no answer; a device that can't seal says it keeps
nothing (D52). The field lists the conversations kept (D48), those about
where the person is first, to open again or delete.

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 20:30:17 +01:00
commit 806ffae202
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -10719,6 +10719,240 @@ abstract class AppLocalizations {
/// **'The search couldn\'t be opened.'**
String get assistantSearchFailed;
/// No description provided for @assistantChoose.
///
/// In en, this message translates to:
/// **'Who answers'**
String get assistantChoose;
/// No description provided for @assistantWebSearch.
///
/// In en, this message translates to:
/// **'Web search'**
String get assistantWebSearch;
/// Under an assistant in the field's menu that the person hasn't agreed to yet.
///
/// In en, this message translates to:
/// **'Read and agree first'**
String get assistantChooseAgree;
/// No description provided for @assistantChooseOwn.
///
/// In en, this message translates to:
/// **'With your key'**
String get assistantChooseOwn;
/// No description provided for @assistantHintAsk.
///
/// In en, this message translates to:
/// **'Ask {name}…'**
String assistantHintAsk(String name);
/// No description provided for @assistantSendAsk.
///
/// In en, this message translates to:
/// **'Ask'**
String get assistantSendAsk;
/// Tooltip of the scope chip: how far an assistant may look beyond the parts chosen.
///
/// In en, this message translates to:
/// **'What it may look up'**
String get assistantScope;
/// No description provided for @assistantScopeTicked.
///
/// In en, this message translates to:
/// **'Only what I choose'**
String get assistantScopeTicked;
/// No description provided for @assistantScopeStudyset.
///
/// In en, this message translates to:
/// **'This studyset'**
String get assistantScopeStudyset;
/// No description provided for @assistantScopeTree.
///
/// In en, this message translates to:
/// **'Its tree'**
String get assistantScopeTree;
/// No description provided for @assistantScopeLibrary.
///
/// In en, this message translates to:
/// **'Library'**
String get assistantScopeLibrary;
/// No description provided for @assistantScopeTickedLong.
///
/// In en, this message translates to:
/// **'Only what I choose above'**
String get assistantScopeTickedLong;
/// No description provided for @assistantScopeStudysetLong.
///
/// In en, this message translates to:
/// **'This studyset with its topics'**
String get assistantScopeStudysetLong;
/// No description provided for @assistantScopeTreeLong.
///
/// In en, this message translates to:
/// **'Its whole tree, from the top'**
String get assistantScopeTreeLong;
/// No description provided for @assistantScopeLibraryLong.
///
/// In en, this message translates to:
/// **'My whole library'**
String get assistantScopeLibraryLong;
/// No description provided for @assistantScopePrivate.
///
/// In en, this message translates to:
/// **'Include private studysets'**
String get assistantScopePrivate;
/// No description provided for @assistantScopeWithPrivate.
///
/// In en, this message translates to:
/// **'{scope}, private ones too'**
String assistantScopeWithPrivate(String scope);
/// No description provided for @assistantHistory.
///
/// In en, this message translates to:
/// **'Conversations'**
String get assistantHistory;
/// No description provided for @assistantHistoryEmpty.
///
/// In en, this message translates to:
/// **'No conversations yet'**
String get assistantHistoryEmpty;
/// No description provided for @assistantHistoryEmptyHint.
///
/// In en, this message translates to:
/// **'Ask an assistant in the field below.'**
String get assistantHistoryEmptyHint;
/// No description provided for @assistantHistoryDelete.
///
/// In en, this message translates to:
/// **'Delete conversation'**
String get assistantHistoryDelete;
/// No description provided for @assistantHistoryDeleteMessage.
///
/// In en, this message translates to:
/// **'“{title}” goes from all your devices.'**
String assistantHistoryDeleteMessage(String title);
/// No description provided for @assistantHistoryDeleteConfirm.
///
/// In en, this message translates to:
/// **'Delete'**
String get assistantHistoryDeleteConfirm;
/// No description provided for @assistantGone.
///
/// In en, this message translates to:
/// **'An assistant no longer offered'**
String get assistantGone;
/// No description provided for @assistantGoneNote.
///
/// In en, this message translates to:
/// **'This assistant is no longer offered to you here, so the conversation can\'t go on.'**
String get assistantGoneNote;
/// No description provided for @assistantNotKept.
///
/// In en, this message translates to:
/// **'Not kept: this device can\'t encrypt conversations, so this one is gone once you close it.'**
String get assistantNotKept;
/// No description provided for @assistantFollowUp.
///
/// In en, this message translates to:
/// **'Ask more…'**
String get assistantFollowUp;
/// No description provided for @assistantStop.
///
/// In en, this message translates to:
/// **'Stop'**
String get assistantStop;
/// No description provided for @assistantAnswering.
///
/// In en, this message translates to:
/// **'Answering…'**
String get assistantAnswering;
/// No description provided for @assistantStopped.
///
/// In en, this message translates to:
/// **'Stopped before it answered.'**
String get assistantStopped;
/// No description provided for @assistantStoppedEarly.
///
/// In en, this message translates to:
/// **'It looked things up too often and stopped without an answer.'**
String get assistantStoppedEarly;
/// No description provided for @assistantNoAnswer.
///
/// In en, this message translates to:
/// **'No answer.'**
String get assistantNoAnswer;
/// No description provided for @assistantCopyAnswer.
///
/// In en, this message translates to:
/// **'Copy the answer'**
String get assistantCopyAnswer;
/// No description provided for @assistantCopied.
///
/// In en, this message translates to:
/// **'Answer copied'**
String get assistantCopied;
/// No description provided for @assistantLookedUpStudysets.
///
/// In en, this message translates to:
/// **'Listed {count, plural, =0{no studysets} =1{1 studyset} other{{count} studysets}}'**
String assistantLookedUpStudysets(int count);
/// No description provided for @assistantLookedUpCards.
///
/// In en, this message translates to:
/// **'Looked for “{query}” in cards: {count, plural, =0{none found} =1{1 found} other{{count} found}}'**
String assistantLookedUpCards(String query, int count);
/// No description provided for @assistantLookedUpNotes.
///
/// In en, this message translates to:
/// **'Looked for “{query}” in notes: {count, plural, =0{none found} =1{1 found} other{{count} found}}'**
String assistantLookedUpNotes(String query, int count);
/// No description provided for @assistantLookedUpNote.
///
/// In en, this message translates to:
/// **'Read a note'**
String get assistantLookedUpNote;
/// No description provided for @assistantLookedUpNoNote.
///
/// In en, this message translates to:
/// **'Looked for a note, found none'**
String get assistantLookedUpNoNote;
/// No description provided for @settingsSearchEngine.
///
/// In en, this message translates to: