feat(learn): choosing how much an assistant thinks, and the assistants by provider in the field

Halkyon Learn's ADR 0021, D60 and D63:

- A chip after the scope's offers the efforts the operator allows for the
  assistant asked, its own marked; the one picked is kept per assistant on
  the device (DeviceSettings.askEfforts) and asked at, also by a
  conversation continued from the history. One the operator no longer
  allows counts as none.
- Every question asks for its effort's ceiling on output, as the thinking
  counts towards it (8,192 to 65,536 tokens; 16,384 at the model's own),
  where it asked for 4,096; the flashcards proposed, Explain and Why? ask
  at the assistant's own effort, a person's own key at none and 4,096.
- The field's picker lists the assistants under their providers' names,
  each in its colour.

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-26 16:05:49 +01:00
commit 8b5bdfed8c
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
5 changed files with 474 additions and 50 deletions

View file

@ -1829,6 +1829,8 @@
"assistantHintAsk": "{name} fragen…",
"assistantSendAsk": "Fragen",
"assistantScope": "Was er nachschlagen darf",
"assistantEffortTooltip": "Denkaufwand: wie viel er nachdenkt, bevor er antwortet",
"assistantEffortDefault": "{effort} (Standard)",
"assistantScopeTicked": "Nur was ich auswähle",
"assistantScopeStudyset": "Dieses Lernset",
"assistantScopeTree": "Ganzer Baum",

View file

@ -2149,6 +2149,10 @@
"assistantSendAsk": "Ask",
"assistantScope": "What it may look up",
"@assistantScope": {"description": "Tooltip of the scope chip: how far an assistant may look beyond the parts chosen."},
"assistantEffortTooltip": "Effort: how much it thinks before it answers",
"@assistantEffortTooltip": {"description": "Tooltip of the effort chip in the field (ADR 0021, D63): more effort thinks longer and uses more of the budget."},
"assistantEffortDefault": "{effort} (default)",
"@assistantEffortDefault": {"description": "The effort the operator set up for an assistant, among those to choose, by its name.", "placeholders": {"effort": {"type": "String"}}},
"assistantScopeTicked": "Only what I choose",
"assistantScopeStudyset": "This studyset",
"assistantScopeTree": "Its tree",

View file

@ -10791,6 +10791,18 @@ abstract class AppLocalizations {
/// **'What it may look up'**
String get assistantScope;
/// Tooltip of the effort chip in the field (ADR 0021, D63): more effort thinks longer and uses more of the budget.
///
/// In en, this message translates to:
/// **'Effort: how much it thinks before it answers'**
String get assistantEffortTooltip;
/// The effort the operator set up for an assistant, among those to choose, by its name.
///
/// In en, this message translates to:
/// **'{effort} (default)'**
String assistantEffortDefault(String effort);
/// No description provided for @assistantScopeTicked.
///
/// In en, this message translates to:

View file

@ -6758,6 +6758,15 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get assistantScope => 'Was er nachschlagen darf';
@override
String get assistantEffortTooltip =>
'Denkaufwand: wie viel er nachdenkt, bevor er antwortet';
@override
String assistantEffortDefault(String effort) {
return '$effort (Standard)';
}
@override
String get assistantScopeTicked => 'Nur was ich auswähle';

View file

@ -6694,6 +6694,15 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get assistantScope => 'What it may look up';
@override
String get assistantEffortTooltip =>
'Effort: how much it thinks before it answers';
@override
String assistantEffortDefault(String effort) {
return '$effort (default)';
}
@override
String get assistantScopeTicked => 'Only what I choose';