strom-research 1.22.0-beta.6 → 1.22.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.cs.md +22 -6
- package/CHANGELOG.de.md +27 -8
- package/CHANGELOG.md +25 -7
- package/assets/lang/cs.json +44 -1
- package/assets/lang/de.json +44 -1
- package/dist/brief/brief.js +10 -2
- package/dist/brief/history.js +65 -9
- package/dist/cli/main.js +25 -3
- package/dist/cli/menu-settings.js +40 -14
- package/dist/cli/menu.js +80 -20
- package/dist/cli/registry.js +1 -0
- package/dist/cli/timing.js +8 -0
- package/dist/cli/ui.js +37 -1
- package/dist/cli/wizard.js +20 -2
- package/dist/commands/browse.js +18 -8
- package/dist/commands/fixchecks.js +125 -15
- package/dist/commands/fixes.js +3 -3
- package/dist/commands/history.js +173 -25
- package/dist/commands/session.js +15 -5
- package/dist/commands/setup.js +81 -20
- package/dist/commands/story.js +11 -2
- package/dist/core/actions.js +1 -0
- package/dist/core/clouddrive.js +138 -0
- package/dist/core/config.js +8 -0
- package/dist/core/git.js +2 -0
- package/dist/core/live.js +279 -24
- package/dist/core/orients.js +72 -0
- package/dist/core/pastevents.js +1026 -100
- package/dist/core/phrases.js +7 -0
- package/dist/core/queue.js +3 -2
- package/dist/core/stamp.js +40 -0
- package/dist/core/tidy.js +18 -4
- package/dist/core/timing.js +159 -0
- package/dist/core/tree.js +1 -1
- package/dist/core/views.js +10 -1
- package/package.json +1 -1
package/CHANGELOG.cs.md
CHANGED
|
@@ -7,7 +7,7 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
|
|
|
7
7
|
|
|
8
8
|
## 1.22.0
|
|
9
9
|
|
|
10
|
-
*Připravuje se: bety do 1.22.0-beta.
|
|
10
|
+
*Připravuje se: bety do 1.22.0-beta.7. Oddíl bude úplný s vydáním.*
|
|
11
11
|
|
|
12
12
|
- **Jméno jednou v tom, co čeká.** Úkol k materiálu poslanému z aplikace Strom jmenoval ve widgetu a na stránce
|
|
13
13
|
telefonu každého člověka dvakrát (podruhé v hranatých závorkách) a jeho text bez jmen nechal prázdné závorky; menu,
|
|
@@ -16,9 +16,12 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
|
|
|
16
16
|
otevřít jiný z nich; teď otevře strom svého výzkumu.
|
|
17
17
|
- **Mnohem menší logy sezení.** Logy sezení a čtenářů už neuchovávají obrázky, na které se agent díval (jen jejich
|
|
18
18
|
velikost a cestu k náhledu), takže jsou o 95–99 % menší.
|
|
19
|
-
- **Úklid, který sta
|
|
20
|
-
co strom umí vyrobit znovu, se uklízejí i bez souhlasu; logy se pak jen zmenší, nikdy
|
|
21
|
-
otázka ještě jednou, když `.strom` výrazně přeroste samotný výzkum.
|
|
19
|
+
- **Úklid, který stačí, a start, který nečeká.** `strom tidy` zvládne logy jakékoli velikosti. Náhledy skenů,
|
|
20
|
+
přerušená stahování a další, co strom umí vyrobit znovu, se uklízejí i bez souhlasu; logy se pak jen zmenší, nikdy
|
|
21
|
+
nesmažou. Po odmítnutí přijde otázka ještě jednou, když `.strom` výrazně přeroste samotný výzkum.
|
|
22
|
+
Pomalý start na OneDrive nebo síťovém disku: menu a `strom doctor` už neotevírají každý sken, návrat do menu je
|
|
23
|
+
okamžitý, doctor ukazuje průběh a řekne, když výzkum leží v cloudu nebo na síťovém disku; `strom doctor --timing`
|
|
24
|
+
ukáže, co trvalo dlouho.
|
|
22
25
|
- **Archiv, který neodpovídá, zastaví smyčku agenta.** `strom fetch` řekne, kdy to zkusit znovu a co dělat mezitím;
|
|
23
26
|
stejný dotaz ve stejném sezení skončí hned (exit 8) a nic neodešle. Úkol, jehož archiv má pauzu, počká mimo frontu
|
|
24
27
|
(plán ho ukáže odložený do té doby) a `strom run --loop` do té doby počká, místo aby pouštěl sezení bez práce.
|
|
@@ -28,12 +31,25 @@ Změny každé verze ve zkratce. Úplné poznámky a instalační řádky jsou n
|
|
|
28
31
|
(při 15: 17), místo jednoho sezení po každém čekání.
|
|
29
32
|
- **Co předek zažil.** Události v místech stromu – dějiny kraje ze stránek, které strom sám stáhl a ověřil, místní
|
|
30
33
|
události z přečtených záznamů – ukáže aplikace Strom; úvodní nastavení ho nabízí zapnuté, instalace nastavená dřív
|
|
31
|
-
|
|
34
|
+
se zeptá jednou, v prvním menu po aktualizaci (Enter: teď ne), a samo se nic nezapne. Zapnout ho může jen člověk –
|
|
35
|
+
tehdy, nebo později v menu Nastavení → Samostatná práce agenta → Dějiny míst, z aplikace Strom, nebo
|
|
36
|
+
`strom config set experiments.history on`; dokud je vypnuté, nic se nehledá. Po zapnutí se místa zmapují hned v dalším sezení a regiony se
|
|
32
37
|
prohledávají průběžně mezi sezeními rodinného výzkumu: zhruba každé 5. sezení (výchozí), každé 10., nebo jen když
|
|
33
|
-
není co jiného (`strom config set experiments.historyPace`, úvodní nastavení, Nastavení); kdy, řekne `strom plan
|
|
38
|
+
není co jiného (`strom config set experiments.historyPace`, úvodní nastavení, Nastavení); kdy, řekne `strom plan`,
|
|
39
|
+
a na slovo člověka mohou jít všechny napřed (`strom run --history`, v menu „Hledat dějiny teď“).
|
|
34
40
|
Nejdřív regiony s nejvíc osobami, země před státem nad ní.
|
|
35
41
|
Když jsou události regionu sebrané, roky, kdy v něm lidé stromu žili víc než 15 let po sobě bez jediné události,
|
|
36
42
|
se prohledají ještě jednou; prohledané roky se v žádném výzkumu znovu neotevřou, dokud se o region nepožádá znovu.
|
|
43
|
+
Region se prohledává jen v letech, kdy v jeho místech žili lidé stromu (jejich údaje tam a pět let kolem nich; až
|
|
44
|
+
do dneška, jen když údaje sahají do posledních 30 let) – pár let ve válce v cizině jsou jen ty roky. Když později
|
|
45
|
+
nalezený předek žil v regionu dřív nebo později, nebo region sdílí jiný výzkum, prohledají se jednou jen nové roky.
|
|
46
|
+
`strom history status` a `strom plan` ukážou roky každého regionu a co čeká.
|
|
47
|
+
Co se ukazuje, spravuje člověk v aplikaci Strom nebo přes `strom history`: událost skrytá, nebo smazaná – ze všech
|
|
48
|
+
výzkumů na tomto počítači, znovu se nezapíše – a obnovená; region nebo místo vynechané; regiony místa přiřazené ručně.
|
|
49
|
+
Vyprávění ji berou jako pozadí doby: události z let, kdy člověk žil v místech svých údajů, každou s jejím zdrojem,
|
|
50
|
+
nikdy jako to, co dělal (u páru jen z let, kdy žili oba); nic skrytého ani smazaného. Schválené vyprávění zůstane, jak je – dějiny přijdou až s jeho
|
|
51
|
+
další verzí, která čeká na schválení. Vypnout se dá v nastavení nebo v aplikaci Strom
|
|
52
|
+
(`strom config set stories.history no`).
|
|
37
53
|
|
|
38
54
|
## 1.21.0
|
|
39
55
|
|
package/CHANGELOG.de.md
CHANGED
|
@@ -7,7 +7,7 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
|
|
|
7
7
|
|
|
8
8
|
## 1.22.0
|
|
9
9
|
|
|
10
|
-
*In Vorbereitung: die Betas bis 1.22.0-beta.
|
|
10
|
+
*In Vorbereitung: die Betas bis 1.22.0-beta.7. Der Abschnitt ist mit dem Release vollständig.*
|
|
11
11
|
|
|
12
12
|
- **Jeder Name einmal in dem, was wartet.** Eine Aufgabe zu Material, das aus der Strom-App gesendet wurde, nannte im
|
|
13
13
|
Widget und auf der Seite des Telefons jede Person zweimal (das zweite Mal in eckigen Klammern), und ihr Text ohne
|
|
@@ -17,10 +17,13 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
|
|
|
17
17
|
Widget auf dem Mac-Schreibtisch einen der anderen öffnen; jetzt öffnet es den Stammbaum seiner eigenen Forschung.
|
|
18
18
|
- **Viel kleinere Sitzungsprotokolle.** Die Protokolle der Sitzungen und Leser behalten die Bilder, die der Agent
|
|
19
19
|
angesehen hat, nicht mehr (nur ihre Größe und den Pfad der Ansicht) und sind dadurch 95–99 % kleiner.
|
|
20
|
-
- **Aufräumen, das mithält.** `strom tidy` bewältigt Protokolle jeder Größe.
|
|
21
|
-
Downloads und anderes, was strom neu erstellen kann, werden auch ohne Zustimmung
|
|
22
|
-
nur verkleinert, nie gelöscht. Nach einem Nein kommt die Frage noch einmal, wenn
|
|
23
|
-
hinauswächst.
|
|
20
|
+
- **Aufräumen, das mithält, und ein Start, der nicht wartet.** `strom tidy` bewältigt Protokolle jeder Größe.
|
|
21
|
+
Ansichten von Scans, abgebrochene Downloads und anderes, was strom neu erstellen kann, werden auch ohne Zustimmung
|
|
22
|
+
aufgeräumt; Protokolle werden dann nur verkleinert, nie gelöscht. Nach einem Nein kommt die Frage noch einmal, wenn
|
|
23
|
+
`.strom` weit über die Forschung hinauswächst.
|
|
24
|
+
Langsamer Start auf OneDrive oder einem Netzlaufwerk: Menü und `strom doctor` öffnen nicht mehr jeden Scan, die
|
|
25
|
+
Rückkehr ins Menü ist sofort da, doctor zeigt den Fortschritt und meldet, wenn die Forschung in einem Cloud-Ordner
|
|
26
|
+
oder auf einem Netzlaufwerk liegt; `strom doctor --timing` zeigt, was lange dauerte.
|
|
24
27
|
- **Ein Archiv, das nicht antwortet, beendet die Schleife des Agenten.** `strom fetch` sagt, wann es wieder zu
|
|
25
28
|
versuchen ist und was bis dahin zu tun ist; dieselbe Anfrage in derselben Sitzung endet sofort (Exit 8) und sendet
|
|
26
29
|
nichts. Eine Aufgabe, deren Archiv pausiert, wartet bis dahin außerhalb der Warteschlange (der Plan zeigt sie bis zu
|
|
@@ -32,14 +35,30 @@ Die Änderungen jeder Version in Kürze. Die vollständigen Hinweise und die Ins
|
|
|
32
35
|
erst mit zwei Punkten mehr wieder los (bei 15: 17), statt einer Sitzung nach jedem Warten.
|
|
33
36
|
- **Was die Vorfahren erlebten.** Die Ereignisse an den Orten des Stammbaums – die Geschichte einer Region aus Seiten,
|
|
34
37
|
die strom selbst geladen und geprüft hat, örtliche Ereignisse aus gelesenen Einträgen – zeigt die Strom-App. Die
|
|
35
|
-
Ersteinrichtung schlägt es eingeschaltet vor; eine früher eingerichtete Installation
|
|
36
|
-
schaltet sich von selbst ein. Einschalten kann es nur ein Mensch
|
|
38
|
+
Ersteinrichtung schlägt es eingeschaltet vor; eine früher eingerichtete Installation fragt einmal, im ersten Menü
|
|
39
|
+
nach dem Update (Enter: jetzt nicht), und nichts schaltet sich von selbst ein. Einschalten kann es nur ein Mensch –
|
|
40
|
+
dann oder später im Menü Einstellungen → Der Agent allein → Geschichte der Orte, aus der Strom-App oder mit
|
|
41
|
+
`strom config set experiments.history on`; solange es aus ist, wird nichts gesucht. Eingeschaltet, werden die Orte in der nächsten Sitzung zugeordnet und die Regionen ab und zu zwischen den
|
|
37
42
|
Sitzungen der Familienforschung durchsucht: etwa jede 5. Sitzung (Standard), jede 10. oder nur, wenn nichts anderes
|
|
38
|
-
ansteht (`strom config set experiments.historyPace`, die Ersteinrichtung, die Einstellungen); wann, sagt `strom plan
|
|
43
|
+
ansteht (`strom config set experiments.historyPace`, die Ersteinrichtung, die Einstellungen); wann, sagt `strom plan`,
|
|
44
|
+
und auf das Wort eines Menschen können alle zuerst laufen (`strom run --history`, im Menü „Geschichte jetzt suchen“).
|
|
39
45
|
Zuerst die Regionen mit den meisten Personen, ein Land vor dem Staat darüber.
|
|
40
46
|
Sind die Ereignisse einer Region gesammelt, werden die Jahre, in denen die Personen des Stammbaums dort mehr als
|
|
41
47
|
15 Jahre in Folge ohne ein Ereignis lebten, noch einmal durchsucht; durchsuchte Jahre werden in keiner Forschung
|
|
42
48
|
erneut aufgegriffen, bis die Region wieder angefragt wird.
|
|
49
|
+
Eine Region wird nur in den Jahren durchsucht, in denen Personen des Stammbaums an ihren Orten lebten (ihre Angaben
|
|
50
|
+
dort und fünf Jahre darum; bis heute nur, wenn die Angaben in die letzten 30 Jahre reichen) – ein paar Jahre im
|
|
51
|
+
Krieg im Ausland sind nur diese Jahre. Lebte ein später gefundener Vorfahre früher oder später dort, oder teilt eine
|
|
52
|
+
andere Forschung die Region, werden einmal nur die neuen Jahre durchsucht. `strom history status` und `strom plan`
|
|
53
|
+
zeigen die Jahre jeder Region und was wartet.
|
|
54
|
+
Was gezeigt wird, verwaltet der Mensch in der Strom-App oder mit `strom history`: ein Ereignis ausgeblendet, oder
|
|
55
|
+
gelöscht – aus jeder Forschung auf diesem Computer, nie wieder eingetragen – und wiederhergestellt; eine Region oder
|
|
56
|
+
ein Ort übersprungen; die Regionen eines Orts von Hand zugeordnet.
|
|
57
|
+
Die Erzählungen nehmen sie als Hintergrund ihrer Zeit: die Ereignisse der Jahre, in denen ein Mensch an den Orten
|
|
58
|
+
seiner Angaben lebte, jedes mit seiner Quelle, nie als das, was er tat (bei einem Paar nur die Jahre, in denen
|
|
59
|
+
beide lebten); nichts Ausgeblendetes oder Gelöschtes. Eine
|
|
60
|
+
freigegebene Erzählung bleibt, wie sie ist – die Geschichte kommt erst mit ihrer nächsten Fassung, die auf Freigabe
|
|
61
|
+
wartet. Abschaltbar in den Einstellungen oder in der Strom-App (`strom config set stories.history no`).
|
|
43
62
|
|
|
44
63
|
## 1.21.0
|
|
45
64
|
|
package/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,7 @@ The changes of each version in short. The full notes and the install lines are o
|
|
|
7
7
|
|
|
8
8
|
## 1.22.0
|
|
9
9
|
|
|
10
|
-
*In preparation: the betas up to 1.22.0-beta.
|
|
10
|
+
*In preparation: the betas up to 1.22.0-beta.7. The section is complete with the release.*
|
|
11
11
|
|
|
12
12
|
- **Each name once in what waits.** A task for material sent from the Strom app named each person twice in the
|
|
13
13
|
widget and on the phone's page (the second time in brackets), and its text without names kept empty brackets; the
|
|
@@ -16,9 +16,12 @@ The changes of each version in short. The full notes and the install lines are o
|
|
|
16
16
|
desktop could open one of the others; it now opens the tree of its own research.
|
|
17
17
|
- **Much smaller session logs.** The logs of sessions and readers no longer keep the images the agent looked at
|
|
18
18
|
(only their size and the view's path), so they are 95–99 % smaller.
|
|
19
|
-
- **Tidying that keeps up.** `strom tidy` handles logs of any size. Views of scans,
|
|
20
|
-
things strom makes again are kept in order even without a yes; logs are only made
|
|
21
|
-
a no, the question comes once more when `.strom` grows far beyond the research.
|
|
19
|
+
- **Tidying that keeps up, a start that does not wait.** `strom tidy` handles logs of any size. Views of scans,
|
|
20
|
+
downloads cut short and other things strom makes again are kept in order even without a yes; logs are only made
|
|
21
|
+
smaller then, never removed. After a no, the question comes once more when `.strom` grows far beyond the research.
|
|
22
|
+
Slow start on OneDrive or a network drive found and fixed: the menu and `strom doctor` no longer open every scan,
|
|
23
|
+
return to the menu at once, doctor shows its progress and says when the research lies in a cloud folder or on a
|
|
24
|
+
network drive; `strom doctor --timing` tells what took long.
|
|
22
25
|
- **An archive that stops answering stops the agent's loop.** `strom fetch` says when to try again and what to do
|
|
23
26
|
meanwhile; asked again in the same session it ends at once (exit 8) and sends nothing. A task whose archive is left
|
|
24
27
|
alone waits out of the queue until then (the plan shows it put off until that time), and `strom run --loop` waits
|
|
@@ -30,15 +33,30 @@ The changes of each version in short. The full notes and the install lines are o
|
|
|
30
33
|
with two more (at 15: 17), instead of one session after every wait.
|
|
31
34
|
- **What the ancestors lived through.** The events at the places of the tree — the history of a region from pages
|
|
32
35
|
strom downloaded and checked itself, local events from the records read — shown by the Strom app. The first setup
|
|
33
|
-
suggests it on; an installation set up before
|
|
34
|
-
on
|
|
36
|
+
suggests it on; an installation set up before is asked once, at the first menu after the update (Enter: not now),
|
|
37
|
+
and nothing turns on by itself. Only a person turns it on — then or later in the menu's Settings → The agent working
|
|
38
|
+
alone → History of the places, from the Strom app, or with `strom config set experiments.history on`; while it is
|
|
39
|
+
off, nothing is looked for. Once on, the
|
|
35
40
|
places are mapped in the next session, and the regions are searched now and then between the family research's
|
|
36
41
|
sessions: about every 5th (the default), every 10th, or only when nothing else is left
|
|
37
|
-
(`strom config set experiments.historyPace`, the setup, the settings); `strom plan` says when
|
|
42
|
+
(`strom config set experiments.historyPace`, the setup, the settings); `strom plan` says when, and all of them
|
|
43
|
+
can go first at a person's word (`strom run --history`, the menu's "Look for history now"). The regions
|
|
38
44
|
of the most people come first, a land before the state above it.
|
|
39
45
|
Once a region's events are gathered, the years the tree's people lived there for more than 15 in a row with no
|
|
40
46
|
event are looked through once more; years looked through are not raised again, in any research, until the region
|
|
41
47
|
is asked for again.
|
|
48
|
+
A region is searched only in the years the tree's people lived at its places (their facts there and five years
|
|
49
|
+
around them; up to today only when the facts reach the last 30 years) — a few years at a war abroad are those years
|
|
50
|
+
alone. When an ancestor found later lived there earlier or later, or another research shares the region, only the
|
|
51
|
+
new years are searched, once. `strom history status` and `strom plan` show each region's years and what waits.
|
|
52
|
+
What is shown is the person's to manage, in the Strom app or with `strom history`: an event hidden, or deleted —
|
|
53
|
+
from every research on this computer, never written again — and restored; a region or a place skipped; a place's
|
|
54
|
+
regions assigned by hand.
|
|
55
|
+
The stories take it as the background of their time: the events of the years each person lived at their places,
|
|
56
|
+
each with its source, never as what the person did (a couple's, only the years both lived); nothing hidden or
|
|
57
|
+
deleted. An approved story stays as it is —
|
|
58
|
+
the history comes only with its next version, waiting for approval. Off in the settings or in the Strom app
|
|
59
|
+
(`strom config set stories.history no`).
|
|
42
60
|
|
|
43
61
|
## 1.21.0
|
|
44
62
|
|
package/assets/lang/cs.json
CHANGED
|
@@ -576,6 +576,14 @@
|
|
|
576
576
|
"ui.doc.trees": "rodokmeny",
|
|
577
577
|
"ui.doc.disk": "místo vedle výzkumů",
|
|
578
578
|
"ui.doc.disk.ok": "vedle výzkumů {size}, v mezích",
|
|
579
|
+
"ui.timing": "Jak dlouho trvaly jednotlivé kroky (řádek k odeslání, když je strom pomalý):",
|
|
580
|
+
"ui.doc.place": "kde výzkum leží",
|
|
581
|
+
"ui.doc.place.cloud": "{where}: v {what} – každý soubor, do kterého strom nahlédne, může jít nejdřív po síti",
|
|
582
|
+
"ui.doc.place.online": "z {looked} prohlédnutých souborů je {online} jen online (každý se při otevření stáhne celý)",
|
|
583
|
+
"ui.doc.place.network": "{where}: na síťovém disku ({what}) – každý soubor, do kterého strom nahlédne, se čte po síti, u tisíců skenů pomalu",
|
|
584
|
+
"ui.doc.place.cloud.fix": "složku nechat vždy v tomto zařízení (OneDrive: v nabídce složky „Vždy zachovat na tomto zařízení“), nebo výzkum přesunout na disk tohoto počítače (strom setup v terminálu ho přesune); strom sám nic nestahuje",
|
|
585
|
+
"ui.doc.place.network.fix": "výzkum přesunout na disk tohoto počítače (strom setup v terminálu ho přesune)",
|
|
586
|
+
"ui.doc.progress": "kontroluje se: {what}…",
|
|
579
587
|
"ui.doc.disk.tree": "{name}: jde uvolnit {size} (v něm: strom tidy)",
|
|
580
588
|
"ui.doc.disk.fix": "strom tidy v rodokmenu (v menu Nastavení → Údržba → Místo na disku) – nejdřív se zeptá",
|
|
581
589
|
"ui.compact.done": "Historie rodokmenu zabalená: .git {before} → {after}. Ve výzkumu se nic nezměnilo.",
|
|
@@ -589,6 +597,7 @@
|
|
|
589
597
|
"ui.doc.media.ok": "{size} {n, plural, one {v # souboru} other {v # souborech}}, každý obsah jednou",
|
|
590
598
|
"ui.doc.media.twice": " · {n} týž obsah znovu s jinou příponou ({size})",
|
|
591
599
|
"ui.doc.media.unnamed": " · {n, plural, one {# soubor ({size}) nejmenuje žádný zdejší výzkum (zůstává)} few {# soubory ({size}) nejmenuje žádný zdejší výzkum (zůstávají)} other {# souborů ({size}) nejmenuje žádný zdejší výzkum (zůstávají)}}",
|
|
600
|
+
"ui.doc.media.partial": " · počítání zastaveno po {s} s (pomalý disk): nejméně tolik",
|
|
592
601
|
"ui.doc.agent": "AI agenti",
|
|
593
602
|
"ui.doc.knows": "agenti znají strom",
|
|
594
603
|
"ui.doc.level": "agent smí",
|
|
@@ -735,9 +744,16 @@
|
|
|
735
744
|
"history.gaps.why": "osoby stromu tam v těch letech žily a u jejich životů se z tehdejších dějin nic neukazuje",
|
|
736
745
|
"history.gaps.done": "zhruba jedna událost na 10–15 let každé mezery, každá ze stránky, kterou strom sám přečetl – nebo nic, když žádná událost hodná zápisu doložená není",
|
|
737
746
|
"history.gaps.filled": "v událostech regionu {region} už žádná mezera není",
|
|
747
|
+
"history.gaps.redo": "události regionu {region} se hledají znovu celé, tyto roky s nimi",
|
|
738
748
|
"history.gaps.looked.none": "roky {years} v událostech regionu {region} už prohledal jiný výzkum: doložená událost v nich žádná",
|
|
739
749
|
"history.gaps.looked.some": "roky {years} v událostech regionu {region} už prohledal jiný výzkum: zapsaných událostí v nich: {n}",
|
|
740
750
|
"history.gaps.gone": "roky {years} už pro tento strom nejsou mezerou v událostech regionu {region}: údaje jeho osob v tom regionu se změnily",
|
|
751
|
+
"history.extend.what": "Události dějin v regionu {region} pro roky osob stromu, které se ještě neprohledaly: {years}",
|
|
752
|
+
"history.extend.why": "osoby stromu tam žily v letech, pro která se katalog nikdy neprohledával (předek nalezený dřív nebo později)",
|
|
753
|
+
"history.extend.done": "zhruba jedna událost na 10–15 let z těchto roků, každá ze stránky, kterou strom sám přečetl – nebo nic, když žádná událost hodná zápisu doložená není",
|
|
754
|
+
"history.extend.gone": "roky {years} už nejsou roky osob tohoto stromu v regionu {region}: údaje jeho osob v tom regionu se změnily",
|
|
755
|
+
"history.years.what": "Události dějin v regionu {region} pro roky, které se ještě neprohledaly: {added}; a pro roky, kdy katalog žádné nemá: {gaps}",
|
|
756
|
+
"history.years.why": "osoby stromu tam v těch letech žily: část roků se nikdy neprohledala, u zbytku se z tehdejších dějin nic neukazuje",
|
|
741
757
|
"review.reread.what": "Přečíst znovu modelem {model}, o co se opírají údaje osoby {name}: {list}{more}",
|
|
742
758
|
"review.reread.why": "tyto zápisy četl jen jiný model; {model} je ten, kterým uživatel čte teď ({research})",
|
|
743
759
|
"review.reread.done": "zápis každého údaje přečtený naslepo modelem {model} (strom read M… --blind): shoda → poznámka u údaje; rozdíl → rozpor s oběma čteními",
|
|
@@ -797,6 +813,9 @@
|
|
|
797
813
|
"ui.setup.stories": "Má agent k předkům psát i vyprávění – pár odstavců o každém životě ze zápisů, které najde, do rodinné knihy v aplikaci Strom?",
|
|
798
814
|
"ui.setup.stories.yes": "Ano (doporučeno)",
|
|
799
815
|
"ui.setup.stories.no": "Ne – jen rodokmen a prameny",
|
|
816
|
+
"ui.setup.stories.history": "Brát do vyprávění i dějiny míst – události doby v místech předků, každou s jejím zdrojem, jako pozadí života? Schválené vyprávění zůstane, jak je; dějiny přijdou až s jeho další verzí.",
|
|
817
|
+
"ui.setup.stories.history.yes": "Ano (doporučeno)",
|
|
818
|
+
"ui.setup.stories.history.no": "Ne – vyprávění jen ze zápisů",
|
|
800
819
|
"ui.uninstall.agent": "co o stromu ví {agent}",
|
|
801
820
|
"ui.uninstall.shortcut": "zástupce",
|
|
802
821
|
"ui.uninstall.links": "odkazy z aplikace Strom",
|
|
@@ -1177,6 +1196,21 @@
|
|
|
1177
1196
|
"ui.history.past.same": "Beze změny: {event} – {where}",
|
|
1178
1197
|
"ui.history.past.first": "Dějiny regionu {region} přijdou na řadu první z regionů, při nejbližším sezení dějin.",
|
|
1179
1198
|
"ui.history.past.redo": "Události regionu {region} se budou hledat znovu (nalezené zůstávají).",
|
|
1199
|
+
"ui.history.past.where.tree": "v celém stromu",
|
|
1200
|
+
"ui.history.past.region.hidden": "Skryto: vše z regionu {region}",
|
|
1201
|
+
"ui.history.past.region.shown": "Znovu zobrazeno: vše z regionu {region}",
|
|
1202
|
+
"ui.history.past.same.region": "Beze změny: {region}",
|
|
1203
|
+
"ui.history.past.skip.region": "Dějiny regionu {region} se v tomto výzkumu nehledají (nalezené zůstává).",
|
|
1204
|
+
"ui.history.past.unskip.region": "Dějiny regionu {region} se znovu hledají.",
|
|
1205
|
+
"ui.history.past.skip.place": "U místa {place} se dějiny nehledají.",
|
|
1206
|
+
"ui.history.past.unskip.place": "U místa {place} se dějiny znovu hledají.",
|
|
1207
|
+
"ui.history.past.skip.same": "Beze změny.",
|
|
1208
|
+
"ui.history.past.assign": "{place}: {regions} (přiřazeno ručně).",
|
|
1209
|
+
"ui.history.past.assign.redo": "Místo {place} se určí znovu.",
|
|
1210
|
+
"ui.history.past.assign.auto": "{place}: zpět k tomu, co určil výzkum.",
|
|
1211
|
+
"ui.history.past.deleted.region": "Smazáno: {event} – ze všech stromů na tomto počítači; výzkum tu událost už znovu nezapíše.",
|
|
1212
|
+
"ui.history.past.deleted.local": "Smazáno: {event} – jen v tomto stromu (pramen zůstává).",
|
|
1213
|
+
"ui.history.past.restored": "Obnoveno: {event} – událost je zpět v dějinách.",
|
|
1180
1214
|
"ui.browse.plan": "Co agent udělá dál",
|
|
1181
1215
|
"ui.review.new": "{name} — {n, plural, one {# nový úkol} few {# nové úkoly} other {# nových úkolů}}:",
|
|
1182
1216
|
"ui.review.nothing": "{name} — nic nového k revizi",
|
|
@@ -2690,6 +2724,10 @@
|
|
|
2690
2724
|
"ui.history.pace.off": "vypnuto – dějiny se nehledají",
|
|
2691
2725
|
"ui.setup.history": "Hledat i události dějin v místech předků – války, epidemie, sčítání, změny státu (agent je hledá mezi sezeními rodinného výzkumu)? Jak často:",
|
|
2692
2726
|
"ui.alone.history": "Dějiny míst: {state}",
|
|
2727
|
+
"ui.history.offer": "Novinka této verze: události dějin v místech předků – války, epidemie, sčítání, změny státu, každá se zdrojem; aplikace Strom je ukáže v průběhu života. Zatím se nehledají a samo se nic nezapne.",
|
|
2728
|
+
"ui.history.offer.no": "teď ne – nic se nezapne",
|
|
2729
|
+
"ui.history.offer.later": "Dějiny se nehledají. Později: Nastavení → Samostatná práce agenta → Dějiny míst, nebo z aplikace Strom.",
|
|
2730
|
+
"ui.history.offer.on": "Dějiny se hledají: {pace}. Jak často, jde změnit: Nastavení → Samostatná práce agenta → Dějiny míst, nebo z aplikace Strom.",
|
|
2693
2731
|
"ui.consent.history.pace": "Hledat události dějin častěji – {pace}? Stojí to víc času agenta i čerpání předplatného.",
|
|
2694
2732
|
"ui.plan.history": "Dějiny míst: {what} – {when}.",
|
|
2695
2733
|
"ui.plan.history.now": "v příštím sezení",
|
|
@@ -2698,9 +2736,14 @@
|
|
|
2698
2736
|
"ui.plan.history.idle": "až rodinný výzkum nebude mít co dělat",
|
|
2699
2737
|
"ui.plan.history.asked": "; přednost: {region}, na přání",
|
|
2700
2738
|
"ui.plan.history.order": "Regiony na řadě, po jednom: {list}",
|
|
2701
|
-
"ui.plan.history.weight": "{region} (osob: {n})",
|
|
2739
|
+
"ui.plan.history.weight": "{region} {period} (osob: {n})",
|
|
2740
|
+
"ui.plan.history.extend": "{region}, roky k prohledání {years} (osob: {n})",
|
|
2702
2741
|
"ui.plan.history.gaps": "{region}, roky bez událostí {years} (osob: {n})",
|
|
2703
2742
|
"ui.plan.history.prefer": "; přednost: místo {place} z nedávného sezení",
|
|
2743
|
+
"ui.run.stop.history": "žádné úkoly dějin nezbývají",
|
|
2744
|
+
"ui.plan.history.left": "Úkolů dějin zbývá: {n} (všechny napřed: strom run --history)",
|
|
2745
|
+
"ui.run.history": "Hledat dějiny teď ({n, plural, one {# úkol} few {# úkoly} other {# úkolů}} dějin)",
|
|
2746
|
+
"ui.run.history.how": "Kolik úkolů dějin? (0 zpět)",
|
|
2704
2747
|
"ui.link.experiment.all": "Zapíná se v nastavení tohoto počítače: platí pro všechny výzkumy na něm (každý jde vypnout zvlášť).",
|
|
2705
2748
|
"ui.link.experiment.on.done": "Hledání událostí dějin je pro tento výzkum zapnuté.",
|
|
2706
2749
|
"ui.link.experiment.on.already": "Hledání událostí dějin je pro tento výzkum zapnuté už. Nic se nestalo.",
|
package/assets/lang/de.json
CHANGED
|
@@ -576,6 +576,14 @@
|
|
|
576
576
|
"ui.doc.trees": "Stammbäume",
|
|
577
577
|
"ui.doc.disk": "Platz neben den Forschungen",
|
|
578
578
|
"ui.doc.disk.ok": "{size} neben den Forschungen, in den Grenzen",
|
|
579
|
+
"ui.timing": "Wie lange die einzelnen Schritte dauerten (die Zeile zum Senden, wenn strom langsam ist):",
|
|
580
|
+
"ui.doc.place": "wo die Forschung liegt",
|
|
581
|
+
"ui.doc.place.cloud": "{where}: in {what} – jede Datei, in die strom schaut, kann zuerst über das Netz kommen",
|
|
582
|
+
"ui.doc.place.online": "von {looked} angesehenen Dateien sind {online} nur online (jede wird beim Öffnen ganz heruntergeladen)",
|
|
583
|
+
"ui.doc.place.network": "{where}: auf einem Netzlaufwerk ({what}) – jede Datei, in die strom schaut, wird über das Netz gelesen, bei Tausenden Scans langsam",
|
|
584
|
+
"ui.doc.place.cloud.fix": "den Ordner immer auf diesem Gerät behalten (OneDrive: im Menü des Ordners „Immer auf diesem Gerät beibehalten“), oder die Forschung auf eine Platte dieses Computers verschieben (strom setup im Terminal verschiebt sie mit); strom selbst lädt nichts herunter",
|
|
585
|
+
"ui.doc.place.network.fix": "die Forschung auf eine Platte dieses Computers verschieben (strom setup im Terminal verschiebt sie mit)",
|
|
586
|
+
"ui.doc.progress": "wird geprüft: {what}…",
|
|
579
587
|
"ui.doc.disk.tree": "{name}: {size} lassen sich freigeben (darin: strom tidy)",
|
|
580
588
|
"ui.doc.disk.fix": "strom tidy im Stammbaum (im Menü Einstellungen → Wartung → Speicherplatz) – fragt zuerst",
|
|
581
589
|
"ui.compact.done": "Die Geschichte des Stammbaums gepackt: .git {before} → {after}. An der Forschung hat sich nichts geändert.",
|
|
@@ -589,6 +597,7 @@
|
|
|
589
597
|
"ui.doc.media.ok": "{size} in {n, plural, one {# Datei} other {# Dateien}}, jeder Inhalt einmal",
|
|
590
598
|
"ui.doc.media.twice": " · {n}-mal derselbe Inhalt mit anderer Endung ({size})",
|
|
591
599
|
"ui.doc.media.unnamed": " · {n, plural, one {# Datei ({size}) nennt keine Forschung hier (bleibt)} other {# Dateien ({size}) nennt keine Forschung hier (bleiben)}}",
|
|
600
|
+
"ui.doc.media.partial": " · Zählen nach {s} s beendet (ein langsames Laufwerk): mindestens so viel",
|
|
592
601
|
"ui.doc.agent": "KI-Agenten",
|
|
593
602
|
"ui.doc.knows": "Agenten kennen strom",
|
|
594
603
|
"ui.doc.level": "der Agent darf",
|
|
@@ -735,9 +744,16 @@
|
|
|
735
744
|
"history.gaps.why": "Personen des Stammbaums lebten in diesen Jahren dort, und bei ihren Lebensläufen erscheint nichts von der damaligen Geschichte",
|
|
736
745
|
"history.gaps.done": "etwa ein Ereignis alle 10–15 Jahre jeder Lücke, jedes von einer Seite, die strom selbst gelesen hat – oder keines, wenn kein Ereignis, das einen Eintrag wert ist, belegt ist",
|
|
737
746
|
"history.gaps.filled": "in den Ereignissen von {region} ist keine Lücke mehr",
|
|
747
|
+
"history.gaps.redo": "die Ereignisse von {region} werden wieder ganz gesucht, diese Jahre mit ihnen",
|
|
738
748
|
"history.gaps.looked.none": "die Jahre {years} in den Ereignissen von {region} hat schon eine andere Forschung durchsucht: kein Ereignis darin belegt",
|
|
739
749
|
"history.gaps.looked.some": "die Jahre {years} in den Ereignissen von {region} hat schon eine andere Forschung durchsucht: darin geschriebene Ereignisse: {n}",
|
|
740
750
|
"history.gaps.gone": "die Jahre {years} sind für diesen Stammbaum keine Lücke in den Ereignissen von {region} mehr: die Angaben seiner Personen dort haben sich geändert",
|
|
751
|
+
"history.extend.what": "Ereignisse der Geschichte in {region} für die noch nicht durchsuchten Jahre der Personen des Stammbaums dort: {years}",
|
|
752
|
+
"history.extend.why": "Personen des Stammbaums lebten dort in Jahren, für die der Katalog nie durchsucht wurde (ein früher oder später gefundener Vorfahre)",
|
|
753
|
+
"history.extend.done": "etwa ein Ereignis alle 10–15 Jahre dieser Jahre, jedes von einer Seite, die strom selbst gelesen hat – oder keines, wenn kein Ereignis, das einen Eintrag wert ist, belegt ist",
|
|
754
|
+
"history.extend.gone": "die Jahre {years} sind keine Jahre der Personen dieses Stammbaums in {region} mehr: die Angaben seiner Personen dort haben sich geändert",
|
|
755
|
+
"history.years.what": "Ereignisse der Geschichte in {region} für die noch nicht durchsuchten Jahre: {added}; und für die Jahre, in denen der Katalog keines hat: {gaps}",
|
|
756
|
+
"history.years.why": "Personen des Stammbaums lebten dort in diesen Jahren: ein Teil wurde nie durchsucht, beim Rest erscheint nichts von der damaligen Geschichte",
|
|
741
757
|
"review.reread.what": "Mit {model} neu lesen, worauf die Angaben von {name} beruhen: {list}{more}",
|
|
742
758
|
"review.reread.why": "diese Einträge hat nur ein anderes Modell gelesen; mit {model} liest der Nutzer jetzt ({research})",
|
|
743
759
|
"review.reread.done": "der Eintrag jeder Angabe blind mit {model} gelesen (strom read M… --blind): übereinstimmend → Notiz an der Angabe; abweichend → ein Widerspruch mit beiden Lesungen",
|
|
@@ -797,6 +813,9 @@
|
|
|
797
813
|
"ui.setup.stories": "Soll der Agent auch Geschichten der Vorfahren schreiben – ein paar Absätze über jedes Leben, aus den gefundenen Einträgen, für das Familienbuch in der Strom-App?",
|
|
798
814
|
"ui.setup.stories.yes": "Ja (empfohlen)",
|
|
799
815
|
"ui.setup.stories.no": "Nein – nur der Stammbaum und seine Quellen",
|
|
816
|
+
"ui.setup.stories.history": "In den Geschichten auch die Geschichte der Orte – die Ereignisse der Zeit an den Orten der Vorfahren, jedes mit seiner Quelle, als Hintergrund des Lebens? Eine genehmigte Geschichte bleibt, wie sie ist; die Geschichte der Orte kommt erst mit ihrer nächsten Fassung.",
|
|
817
|
+
"ui.setup.stories.history.yes": "Ja (empfohlen)",
|
|
818
|
+
"ui.setup.stories.history.no": "Nein – die Geschichten nur aus den Einträgen",
|
|
800
819
|
"ui.uninstall.agent": "was {agent} über strom weiß",
|
|
801
820
|
"ui.uninstall.shortcut": "die Verknüpfung",
|
|
802
821
|
"ui.uninstall.links": "die Links aus der Strom-App",
|
|
@@ -1177,6 +1196,21 @@
|
|
|
1177
1196
|
"ui.history.past.same": "Unverändert: {event} – {where}",
|
|
1178
1197
|
"ui.history.past.first": "Die Geschichte von {region} kommt als erste der Regionen an die Reihe, bei der nächsten Sitzung der Geschichte.",
|
|
1179
1198
|
"ui.history.past.redo": "Die Ereignisse von {region} werden erneut gesucht (die gefundenen bleiben).",
|
|
1199
|
+
"ui.history.past.where.tree": "im ganzen Stammbaum",
|
|
1200
|
+
"ui.history.past.region.hidden": "Ausgeblendet: alles aus {region}",
|
|
1201
|
+
"ui.history.past.region.shown": "Wieder angezeigt: alles aus {region}",
|
|
1202
|
+
"ui.history.past.same.region": "Unverändert: {region}",
|
|
1203
|
+
"ui.history.past.skip.region": "Die Geschichte von {region} wird in dieser Forschung nicht gesucht (das Gefundene bleibt).",
|
|
1204
|
+
"ui.history.past.unskip.region": "Die Geschichte von {region} wird wieder gesucht.",
|
|
1205
|
+
"ui.history.past.skip.place": "Für {place} wird keine Geschichte gesucht.",
|
|
1206
|
+
"ui.history.past.unskip.place": "Für {place} wird die Geschichte wieder gesucht.",
|
|
1207
|
+
"ui.history.past.skip.same": "Unverändert.",
|
|
1208
|
+
"ui.history.past.assign": "{place}: {regions} (von Hand zugeordnet).",
|
|
1209
|
+
"ui.history.past.assign.redo": "{place} wird neu bestimmt.",
|
|
1210
|
+
"ui.history.past.assign.auto": "{place}: zurück zu dem, was die Forschung bestimmt hat.",
|
|
1211
|
+
"ui.history.past.deleted.region": "Gelöscht: {event} – aus allen Stammbäumen auf diesem Computer; die Forschung trägt das Ereignis nicht wieder ein.",
|
|
1212
|
+
"ui.history.past.deleted.local": "Gelöscht: {event} – nur in diesem Stammbaum (die Quelle bleibt).",
|
|
1213
|
+
"ui.history.past.restored": "Wiederhergestellt: {event} – das Ereignis ist zurück in der Geschichte.",
|
|
1180
1214
|
"ui.browse.plan": "Was der Agent als Nächstes tut",
|
|
1181
1215
|
"ui.review.new": "{name} — {n, plural, one {# neue Aufgabe} other {# neue Aufgaben}}:",
|
|
1182
1216
|
"ui.review.nothing": "{name} — nichts Neues zu prüfen",
|
|
@@ -2690,6 +2724,10 @@
|
|
|
2690
2724
|
"ui.history.pace.off": "aus – keine Geschichte gesucht",
|
|
2691
2725
|
"ui.setup.history": "Auch die Ereignisse der Geschichte an den Orten der Vorfahren suchen – Kriege, Epidemien, Volkszählungen, Änderungen des Staates (der Agent sucht sie zwischen den Sitzungen der Familienforschung)? Wie oft:",
|
|
2692
2726
|
"ui.alone.history": "Geschichte der Orte: {state}",
|
|
2727
|
+
"ui.history.offer": "Neu in dieser Version: die Ereignisse der Geschichte an den Orten der Vorfahren – Kriege, Epidemien, Volkszählungen, Änderungen des Staates, jedes mit seiner Quelle; die Strom-App zeigt sie im Lebenslauf. Noch nicht gesucht, nichts schaltet sich von selbst ein.",
|
|
2728
|
+
"ui.history.offer.no": "jetzt nicht – nichts wird eingeschaltet",
|
|
2729
|
+
"ui.history.offer.later": "Nicht gesucht. Später: Einstellungen → Der Agent allein → Geschichte der Orte, oder aus der Strom-App.",
|
|
2730
|
+
"ui.history.offer.on": "Geschichte wird gesucht: {pace}. Wie oft, lässt sich ändern: Einstellungen → Der Agent allein → Geschichte der Orte, oder aus der Strom-App.",
|
|
2693
2731
|
"ui.consent.history.pace": "Öfter nach den Ereignissen der Geschichte suchen – {pace}? Das kostet mehr Zeit des Agenten und mehr von der Nutzung des Abos.",
|
|
2694
2732
|
"ui.plan.history": "Geschichte der Orte: {what} – {when}.",
|
|
2695
2733
|
"ui.plan.history.now": "in der nächsten Sitzung",
|
|
@@ -2698,9 +2736,14 @@
|
|
|
2698
2736
|
"ui.plan.history.idle": "wenn die Familienforschung nichts zu tun hat",
|
|
2699
2737
|
"ui.plan.history.asked": "; zuerst: {region}, auf Bitte",
|
|
2700
2738
|
"ui.plan.history.order": "Regionen der Reihe nach, eine nach der anderen: {list}",
|
|
2701
|
-
"ui.plan.history.weight": "{region} (Personen: {n})",
|
|
2739
|
+
"ui.plan.history.weight": "{region} {period} (Personen: {n})",
|
|
2740
|
+
"ui.plan.history.extend": "{region}, die zu durchsuchenden Jahre {years} (Personen: {n})",
|
|
2702
2741
|
"ui.plan.history.gaps": "{region}, die Jahre ohne Ereignisse {years} (Personen: {n})",
|
|
2703
2742
|
"ui.plan.history.prefer": "; zuerst: der Ort {place} aus einer kürzlichen Sitzung",
|
|
2743
|
+
"ui.run.stop.history": "keine Aufgaben der Geschichte übrig",
|
|
2744
|
+
"ui.plan.history.left": "Aufgaben der Geschichte offen: {n} (alle zuerst: strom run --history)",
|
|
2745
|
+
"ui.run.history": "Geschichte jetzt suchen ({n, plural, one {# Aufgabe} other {# Aufgaben}} der Geschichte)",
|
|
2746
|
+
"ui.run.history.how": "Wie viele Aufgaben der Geschichte? (0 zurück)",
|
|
2704
2747
|
"ui.link.experiment.all": "Es wird in den Einstellungen dieses Computers eingeschaltet: für alle Forschungen darauf (jede lässt sich einzeln ausschalten).",
|
|
2705
2748
|
"ui.link.experiment.on.done": "Die Suche nach den Ereignissen der Geschichte ist für diese Forschung eingeschaltet.",
|
|
2706
2749
|
"ui.link.experiment.on.already": "Die Suche nach den Ereignissen der Geschichte ist für diese Forschung schon eingeschaltet. Es ist nichts geschehen.",
|
package/dist/brief/brief.js
CHANGED
|
@@ -32,13 +32,13 @@ import { imagesIndex, weakScans } from "../core/mediaindex.js";
|
|
|
32
32
|
import { SHARPER_SCAN } from "../core/views.js";
|
|
33
33
|
import { HYPOTHESIS_LINKS_ORIGIN, recordedLinks, recordedText } from "../core/hypolinks.js";
|
|
34
34
|
import { forHistory, historyOn } from "../core/pastevents.js";
|
|
35
|
-
import { HISTORY_WEB_RULE, historySections, localEventsSection } from "./history.js";
|
|
35
|
+
import { HISTORY_WEB_RULE, historySections, localEventsSection, storyHistorySection } from "./history.js";
|
|
36
36
|
export { DEFAULT_BUDGET } from "../core/config.js";
|
|
37
37
|
import { DEFAULT_BUDGET, Settings } from "../core/config.js";
|
|
38
38
|
import { bookTuned, hostTuned, readingOf, treeTuning, tuningOn } from "../core/tune.js";
|
|
39
39
|
import { researchKey, viewModel, viewSizes } from "../core/viewsizes.js";
|
|
40
40
|
import { inWords, PROFILES } from "../agents/profiles.js";
|
|
41
|
-
import { ENRICH_PAGES, STORY_SOURCES_ORIGIN } from "../core/stories.js";
|
|
41
|
+
import { ENRICH_PAGES, forStory, STORY_SOURCES_ORIGIN } from "../core/stories.js";
|
|
42
42
|
import { sandboxOf, WITHOUT_READERS } from "../core/sandbox.js";
|
|
43
43
|
import { WEB_SOFT } from "../core/metrics.js";
|
|
44
44
|
import { indexBriefLines } from "../core/indexfirst.js";
|
|
@@ -1257,6 +1257,11 @@ export function buildBrief(tree, opts) {
|
|
|
1257
1257
|
if (local)
|
|
1258
1258
|
sections.push(local);
|
|
1259
1259
|
}
|
|
1260
|
+
// 8''. the history of the places in the stories (stories.history): the time the people of a story lived in
|
|
1261
|
+
const storyHistoryOn = !!task && forStory(task) && new Settings(tree.env, {}).storyHistory(tree.config);
|
|
1262
|
+
const ofTime = storyHistoryOn && task.level === "narrate" ? storyHistorySection(tree, task, opts.shared) : undefined;
|
|
1263
|
+
if (ofTime)
|
|
1264
|
+
sections.push(ofTime);
|
|
1260
1265
|
// 8 bis. the search beyond the registers: its budget of pages, printed pages for the user's model for print where the
|
|
1261
1266
|
// agent hands work to another model, and what the research has written of the person's places already
|
|
1262
1267
|
if (task?.origin === STORY_SOURCES_ORIGIN) {
|
|
@@ -1272,6 +1277,9 @@ export function buildBrief(tree, opts) {
|
|
|
1272
1277
|
`- over ${Math.min(WEB_SOFT, new Settings(tree.env, {}).webPerHost(tree.config))} pages of one site: through its connector, built right away when the task needs that site (strom connector new <site> --url https://<host>/, then strom fetch)`,
|
|
1273
1278
|
print ? `- print: a subagent on ${print} (model.text), never handwriting` : "",
|
|
1274
1279
|
written.length ? `- of the places, written already (reuse): ${written.join(" · ")}` : "",
|
|
1280
|
+
storyHistoryOn && storyHistorySection(tree, task, opts.shared)
|
|
1281
|
+
? "- the history of the places (wars, epidemics, changes of the state of the region) is in the research already, the story takes it from there: no pages for it — what is of the person"
|
|
1282
|
+
: "",
|
|
1275
1283
|
].filter(Boolean).join("\n"),
|
|
1276
1284
|
});
|
|
1277
1285
|
}
|
package/dist/brief/history.js
CHANGED
|
@@ -6,7 +6,7 @@ import { langName } from "../core/lang.js";
|
|
|
6
6
|
import { foldText } from "../core/text.js";
|
|
7
7
|
import { match } from "../cli/registry.js";
|
|
8
8
|
import { synopsis } from "./sheet.js";
|
|
9
|
-
import { catalogIds, EVENT_KINDS, forGaps, GAP_DENSITY, gapsOfTask, gapText, HISTORY_PLACES_ORIGIN, HOLD_DAYS, readCatalog, readHidden, readPlaces, coveredBy, regionName, regionOfTask, regionPeriod, REGION_LANGS, unmappedPlaces, } from "../core/pastevents.js";
|
|
9
|
+
import { catalogIds, EVENT_KINDS, forGaps, GAP_DENSITY, gapsOfTask, gapText, HISTORY_PLACES_ORIGIN, HOLD_DAYS, placeNotes, readCatalog, readHidden, readPlaces, coveredBy, regionName, regionOfTask, regionPeriod, REGION_LANGS, LIVED_MARGIN, PRESENT_YEARS, searchedSpans, storyHistory, unmappedPlaces, } from "../core/pastevents.js";
|
|
10
10
|
import { factPlaces } from "../gedcom/export.js";
|
|
11
11
|
/** About so many events a region at most: rather fewer. */
|
|
12
12
|
export const REGION_DENSITY = 60;
|
|
@@ -71,13 +71,18 @@ function regionSections(tree, region, shared, alone, gaps) {
|
|
|
71
71
|
const c = shared ? readCatalog(shared, region) : undefined;
|
|
72
72
|
const name = regionName(c, lang, region);
|
|
73
73
|
const period = regionPeriod(tree, region);
|
|
74
|
+
// a task of years (K2.6, K2.7): those never looked through for (the period grew) apart from the gaps of the catalog
|
|
75
|
+
const searched = gaps ? searchedSpans(tree, c) : [];
|
|
76
|
+
const fresh = gaps?.filter((g) => !searched.some((s) => s.from <= g.from && g.to <= s.to)) ?? [];
|
|
77
|
+
const empty = gaps?.filter((g) => !fresh.includes(g)) ?? [];
|
|
74
78
|
const events = c?.events ?? [];
|
|
75
79
|
const live = events.filter((e) => !e.retracted);
|
|
76
80
|
// what the person hid in this tree: by event, and by kind (fewer of those kinds)
|
|
77
81
|
const hides = readHidden(tree);
|
|
78
82
|
const hiddenOf = new Map();
|
|
79
83
|
for (const h of hides)
|
|
80
|
-
|
|
84
|
+
if (h.event !== undefined)
|
|
85
|
+
hiddenOf.set(h.event, (hiddenOf.get(h.event) ?? 0) + 1);
|
|
81
86
|
const byKind = new Map();
|
|
82
87
|
for (const e of events)
|
|
83
88
|
if (hiddenOf.has(e.id))
|
|
@@ -91,16 +96,30 @@ function regionSections(tree, region, shared, alone, gaps) {
|
|
|
91
96
|
required: true,
|
|
92
97
|
pointer: "strom history status",
|
|
93
98
|
text: [
|
|
94
|
-
gaps
|
|
99
|
+
gaps
|
|
100
|
+
? fresh.length
|
|
101
|
+
? `## The years not looked through yet in the history of ${name} (${region}) — for the Strom app`
|
|
102
|
+
: `## The gaps in the history of ${name} (${region}) — for the Strom app`
|
|
103
|
+
: `## The history of ${name} (${region}) — for the Strom app`,
|
|
95
104
|
"What the ancestors lived through: the events of this region's history, shown in the Strom app with the lives of the people of its places. " + NOTHING_ELSE,
|
|
96
105
|
gaps
|
|
97
|
-
?
|
|
98
|
-
|
|
106
|
+
? [
|
|
107
|
+
fresh.length
|
|
108
|
+
? `- the region's catalog is finished for the years looked through before; these years of this tree's people there were never looked through: ${fresh.map((g) => `${gapText(g)} (${span(g)} years)`).join(", ")}`
|
|
109
|
+
: "",
|
|
110
|
+
empty.length ? `- the region's catalog is finished, yet these years of this tree's people there have no event: ${empty.map((g) => `${gapText(g)} (${span(g)} years)`).join(", ")}` : "",
|
|
111
|
+
"- look for events of these years alone (strom history add refuses others in this session); what the catalog has (below) is never looked for again",
|
|
112
|
+
]
|
|
113
|
+
.filter(Boolean)
|
|
114
|
+
.join("\n")
|
|
115
|
+
: period.undated
|
|
116
|
+
? `- period: ${period.from}–${period.to} — no fact at this tree's places in the region has a year: the years its places belonged to it (never before 1600), to this year`
|
|
117
|
+
: `- period: ${period.spans.map(gapText).join(", ")} — the years this tree's people lived at its places: their facts there, ${LIVED_MARGIN} years before and after, to this year only when the facts reach the last ${PRESENT_YEARS} years; look for events of these years alone; another tree sharing the region adds its own years later`,
|
|
99
118
|
period.places.length
|
|
100
119
|
? `- this tree's places in it: ${period.places.map((p) => `${p.place}${p.from !== undefined || p.to !== undefined ? ` (${p.from ?? "…"}–${p.to ?? "…"})` : ""}${p.years.length ? ` facts ${years(Math.min(...p.years), Math.max(...p.years))}` : ""}`).join(" · ")}`
|
|
101
120
|
: "",
|
|
102
121
|
gaps
|
|
103
|
-
? `- how many: about one event every 10–15 years of each gap (about ${wanted} in all) — ${SHAPED}; none documented worth writing: nothing — a year is never filled for its own sake`
|
|
122
|
+
? `- how many: about one event every 10–15 years of each ${fresh.length ? "span of these years" : "gap"} (about ${wanted} in all) — ${SHAPED}; none documented worth writing: nothing — a year is never filled for its own sake`
|
|
104
123
|
: `- how many: at most about ${REGION_DENSITY} events for the region, rather fewer (${live.length} written${room ? `, room for about ${room} more` : ": enough — only what is missing badly"}) — ${SHAPED}`,
|
|
105
124
|
gaps ? "" : "- spread over the period: the people of every part of it lived through something — rather an event each 10–15 years of it than many of a few decades",
|
|
106
125
|
`- kinds: ${EVENT_KINDS.join(", ")}`,
|
|
@@ -119,7 +138,7 @@ function regionSections(tree, region, shared, alone, gaps) {
|
|
|
119
138
|
`## Events of ${region} written already (${live.length}${events.length > live.length ? `, ${events.length - live.length} taken back` : ""}) — never one again; another source of one: --same-as`,
|
|
120
139
|
...(events.length
|
|
121
140
|
? events.slice(0, EVENTS_SHOWN).map((e) => {
|
|
122
|
-
const marks = [e.retracted ? `taken back: ${short(e.retracted.why || "–", 60)}${e.retracted.replacedBy ? ` → ${e.retracted.replacedBy}` : ""}` : "", hiddenOf.has(e.id) ? `hidden here ${hiddenOf.get(e.id)}×` : "", e.sensitive ? "sensitive" : ""].filter(Boolean);
|
|
141
|
+
const marks = [e.retracted?.by === "person" && !e.retracted.replacedBy ? "deleted by the person: never again, not even with --distinct from the same address" : e.retracted ? `taken back: ${short(e.retracted.why || "–", 60)}${e.retracted.replacedBy ? ` → ${e.retracted.replacedBy}` : ""}` : "", hiddenOf.has(e.id) ? `hidden here ${hiddenOf.get(e.id)}×` : "", e.sensitive ? "sensitive" : ""].filter(Boolean);
|
|
123
142
|
return ` ${e.id} ${years(e.from, e.to)} ${e.kind} "${short(e.text[lang] ?? e.text.en ?? Object.values(e.text)[0] ?? "")}"${marks.length ? ` [${marks.join(" · ")}]` : ""}`;
|
|
124
143
|
})
|
|
125
144
|
: [" none yet"]),
|
|
@@ -150,7 +169,7 @@ function regionSections(tree, region, shared, alone, gaps) {
|
|
|
150
169
|
out.push({ name: "commands", first: true, pointer: "strom help history add", text: ["## Commands (each option as it is)", ...commands].join("\n") });
|
|
151
170
|
out.push(closing(alone, lang, gaps
|
|
152
171
|
? [
|
|
153
|
-
`- the
|
|
172
|
+
`- the years looked at — events found, or none documented: strom session close --done "how many events, of which years and kinds, from which sources — or what was looked at" --next "…" (these years are never looked for again)`,
|
|
154
173
|
`- time up before: strom session close --continue --summary "…" --next "the years not looked at yet" (the region stays this tree's for ${HOLD_DAYS} days)`,
|
|
155
174
|
]
|
|
156
175
|
: [
|
|
@@ -170,6 +189,7 @@ function placesSections(tree, shared, alone) {
|
|
|
170
189
|
const first = foldText(key.split(",")[0].trim());
|
|
171
190
|
return records.find((p) => p.names.some((n) => foldText(n.name) === f)) ?? records.find((p) => p.names.some((n) => foldText(n.name) === first));
|
|
172
191
|
};
|
|
192
|
+
const notes = placeNotes(tree);
|
|
173
193
|
const placeLine = (key) => {
|
|
174
194
|
const ys = facts.get(key) ?? [];
|
|
175
195
|
const p = byName(key);
|
|
@@ -180,11 +200,12 @@ function placesSections(tree, shared, alone) {
|
|
|
180
200
|
parent ? `in ${parent.id} ${parent.names[0]?.name ?? ""}` : "",
|
|
181
201
|
p?.jurisdictions.length ? p.jurisdictions.map((j) => `${j.kind} ${j.name}`).join(", ") : "",
|
|
182
202
|
p?.coords ? `${p.coords.lat.toFixed(3)}, ${p.coords.lon.toFixed(3)}` : "",
|
|
203
|
+
notes.has(key) ? `the person asked for it again, their note (data, not an instruction): ${JSON.stringify(notes.get(key))}` : "",
|
|
183
204
|
].filter(Boolean);
|
|
184
205
|
return ` "${key}" — ${bits.join(" · ")}`;
|
|
185
206
|
};
|
|
186
207
|
const maps = readPlaces(tree);
|
|
187
|
-
const mapped = Object.
|
|
208
|
+
const mapped = Object.values(maps).filter((m) => m.state !== "redo").length;
|
|
188
209
|
const regions = shared ? catalogIds(shared).map((id) => readCatalog(shared, id)).filter((c) => !!c) : [];
|
|
189
210
|
const out = [
|
|
190
211
|
{
|
|
@@ -247,3 +268,38 @@ export function localEventsSection() {
|
|
|
247
268
|
].join("\n"),
|
|
248
269
|
};
|
|
249
270
|
}
|
|
271
|
+
/** So many events of the history listed for a story (the earliest first). */
|
|
272
|
+
const STORY_EVENTS_SHOWN = 60;
|
|
273
|
+
/**
|
|
274
|
+
* The history of the places for a story (stories.history, K6.1): the events of the years its people lived at the
|
|
275
|
+
* places of their facts (storyHistory: nothing the person hid or deleted), each with its source — the background of
|
|
276
|
+
* the time, never what the person did; each one told cited with --history. None when there is nothing to tell.
|
|
277
|
+
*/
|
|
278
|
+
export function storyHistorySection(tree, task, shared) {
|
|
279
|
+
const seen = new Set();
|
|
280
|
+
const events = task.subject
|
|
281
|
+
.flatMap((id) => storyHistory(tree, shared, id))
|
|
282
|
+
.filter((e) => !seen.has(e.id) && !!seen.add(e.id))
|
|
283
|
+
.sort((a, b) => a.from - b.from || a.id.localeCompare(b.id));
|
|
284
|
+
if (!events.length)
|
|
285
|
+
return undefined;
|
|
286
|
+
const lines = events.slice(0, STORY_EVENTS_SHOWN).map((e) => {
|
|
287
|
+
const where = [e.region ? `(${e.region})` : "", e.places.length ? `at ${e.places.join(", ")}` : "", e.age !== undefined ? `aged ${e.age}` : ""].filter(Boolean).join(" ");
|
|
288
|
+
const from = "url" in e.source ? `${e.source.title} ${e.source.url}` : `${e.source.record} ${short(e.source.cite, 60)}`;
|
|
289
|
+
return ` ${e.id} ${e.date ?? years(e.from, e.to)} ${e.kind}${where ? ` ${where}` : ""}: "${short(e.text)}"${e.sensitive ? " [sensitive]" : ""} — ${from}`;
|
|
290
|
+
});
|
|
291
|
+
const more = events.length - lines.length;
|
|
292
|
+
return {
|
|
293
|
+
name: "history in the story",
|
|
294
|
+
pointer: "strom story set <who> --history <event>",
|
|
295
|
+
text: [
|
|
296
|
+
`## The history of the places: the time they lived in (${events.length} event${events.length > 1 ? "s" : ""} of the years at their places; the user may turn it off: stories.history)`,
|
|
297
|
+
'- told as the background of the life ("in 1866, when he was sixteen, cholera came to the region"), never as what the person did, suffered or thought unless a record of the research says so — no "he fought in…", "she fled from…"',
|
|
298
|
+
"- a few that matter to this life, not all of them; a sensitive one plainly and with care",
|
|
299
|
+
"- each event told goes into strom story set … --history <event> (repeatable): its source is the research's; nothing of the history but these (another time or place, or one the user hid or deleted, is not told)",
|
|
300
|
+
"- an approved story stays as the user approved it: the history comes only with a new version, which waits for the user",
|
|
301
|
+
...lines,
|
|
302
|
+
...(more > 0 ? [` ${more} more of later years`] : []),
|
|
303
|
+
].join("\n"),
|
|
304
|
+
};
|
|
305
|
+
}
|