@rslsp1/fa-app-tools 9.0.0 → 9.4.4
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/dist/{chunk-2ADFDRFX.mjs → chunk-KF5ZVSKJ.mjs} +9452 -6461
- package/dist/index.d.mts +73 -2
- package/dist/index.d.ts +73 -2
- package/dist/index.js +6878 -3867
- package/dist/index.mjs +137 -5
- package/dist/{storeContract-5vApx6VA.d.mts → storeContract-CJi0fpCA.d.mts} +543 -7
- package/dist/{storeContract-DNggXiZl.d.ts → storeContract-gc2dxews.d.ts} +543 -7
- package/dist/szenen-contract.d.mts +1 -1
- package/dist/szenen-contract.d.ts +1 -1
- package/dist/szenen.d.mts +764 -275
- package/dist/szenen.d.ts +764 -275
- package/dist/szenen.js +4741 -1582
- package/dist/szenen.mjs +205 -4
- package/package.json +3 -2
|
@@ -978,7 +978,220 @@ declare function checkChainTargets(meta: DraftChainMeta, targets: readonly Chain
|
|
|
978
978
|
/** Der Link eines Feldes, oder `null`. */
|
|
979
979
|
declare function linkFor(meta: DraftChainMeta | null | undefined, field: ChainLinkField): DraftChainLink | null;
|
|
980
980
|
|
|
981
|
+
/** Wie viele Eintraege eine Seite traegt, wenn niemand etwas anderes sagt. */
|
|
982
|
+
declare const LOAD_MORE_PAGE_SIZE = 10;
|
|
983
|
+
interface PageRequest {
|
|
984
|
+
/** Hoechstzahl der Eintraege dieser Seite. Muss groesser als 0 sein. */
|
|
985
|
+
limit: number;
|
|
986
|
+
/**
|
|
987
|
+
* Kennung des **letzten bereits geladenen** Eintrags, oder `null`/weggelassen
|
|
988
|
+
* fuer die erste Seite. Geliefert wird, was danach kommt.
|
|
989
|
+
*/
|
|
990
|
+
after?: string | null;
|
|
991
|
+
}
|
|
992
|
+
interface Page<T> {
|
|
993
|
+
/** Die Eintraege dieser Seite, in der Reihenfolge der Eingabe. */
|
|
994
|
+
items: readonly T[];
|
|
995
|
+
/** Ob nach dieser Seite noch etwas kommt. */
|
|
996
|
+
hasMore: boolean;
|
|
997
|
+
/** Was als `after` der naechsten Seite mitzugeben ist. `null` am Ende. */
|
|
998
|
+
nextCursor: string | null;
|
|
999
|
+
/** Gesamtzahl der Eintraege **nach** Filter, **vor** dem Seitenschnitt. */
|
|
1000
|
+
total: number;
|
|
1001
|
+
}
|
|
1002
|
+
/**
|
|
1003
|
+
* Schneidet eine Seite aus einer bereits geordneten und gefilterten Liste.
|
|
1004
|
+
*
|
|
1005
|
+
* @param alle Alle Eintraege in Anzeigereihenfolge.
|
|
1006
|
+
* @param idOf Stabile Kennung eines Eintrags — sie ist der Cursor.
|
|
1007
|
+
* @param request Seitenwunsch. Ohne Angabe wird **nicht** geschnitten; die
|
|
1008
|
+
* Antwort traegt dann alles und `hasMore: false`. Das ist der bestehende
|
|
1009
|
+
* Vertrag jeder Operation, die diesen Schnitt nur optional anbietet.
|
|
1010
|
+
* @throws Wenn `after` in `alle` nicht vorkommt.
|
|
1011
|
+
*/
|
|
1012
|
+
declare function pageOf<T>(alle: readonly T[], idOf: (eintrag: T) => string, request?: PageRequest | null): Page<T>;
|
|
1013
|
+
/**
|
|
1014
|
+
* Liest einen Seitenwunsch aus Abfrageparametern — die eine Stelle, an der aus
|
|
1015
|
+
* `limit`/`after` ein `PageRequest` wird.
|
|
1016
|
+
*
|
|
1017
|
+
* Ohne `limit` gibt es **keinen** Seitenschnitt (`null`): Eine Voreinstellung
|
|
1018
|
+
* wuerde bestehende Aufrufer stillschweigend beschneiden. Ein unbrauchbares
|
|
1019
|
+
* `limit` ist ein Fehler, keine Vorgabe.
|
|
1020
|
+
*/
|
|
1021
|
+
declare function pageRequestFrom(roh: {
|
|
1022
|
+
limit?: unknown;
|
|
1023
|
+
after?: unknown;
|
|
1024
|
+
} | null | undefined): PageRequest | null;
|
|
1025
|
+
|
|
1026
|
+
/**
|
|
1027
|
+
* Ein Tag in der Form, in der die Library ihn fuehrt.
|
|
1028
|
+
*
|
|
1029
|
+
* `l` ist das Label und die Identitaet — dieselbe, gegen die
|
|
1030
|
+
* `resolveTagLabels` prueft. `v` und `cat` sind die aufgeloeste Vokabel und
|
|
1031
|
+
* werden mitgefuehrt, nicht neu erfunden.
|
|
1032
|
+
*/
|
|
1033
|
+
interface LibraryTagRef {
|
|
1034
|
+
l: string;
|
|
1035
|
+
v?: string | null;
|
|
1036
|
+
cat?: string | null;
|
|
1037
|
+
}
|
|
1038
|
+
/** Nutzlast von `szenen.prompt_run_tags_set` — der vollstaendige Tagsatz eines Laufs. */
|
|
1039
|
+
interface PromptRunTagsSetPayload {
|
|
1040
|
+
run_id: string;
|
|
1041
|
+
/** Der **ganze** Satz, nicht ein Delta: Entfernen ist ein kuerzerer Satz. */
|
|
1042
|
+
tags: readonly LibraryTagRef[];
|
|
1043
|
+
set_at: string;
|
|
1044
|
+
}
|
|
1045
|
+
/** Woher ein angezeigter Tag kommt. */
|
|
1046
|
+
type TagHerkunft = 'prompt' | 'library';
|
|
1047
|
+
/** Ein Tag, wie die Promptanzeige ihn zeigt — mit seiner Herkunft. */
|
|
1048
|
+
interface AngezeigterTag {
|
|
1049
|
+
label: string;
|
|
1050
|
+
value: string | null;
|
|
1051
|
+
category: string | null;
|
|
1052
|
+
/**
|
|
1053
|
+
* Alle Herkuenfte dieses Labels, in der Reihenfolge `prompt` vor `library`.
|
|
1054
|
+
*
|
|
1055
|
+
* Ein Tag kann **beides** sein. Genau dieser Fall entscheidet die
|
|
1056
|
+
* Bearbeitung: Nur `prompt` darf am Lauf entfernt werden, `library` nicht —
|
|
1057
|
+
* und ein Tag, der beides ist, verliert beim Entfernen nur seine
|
|
1058
|
+
* Prompt-Zuordnung, nicht seine Library-Herkunft.
|
|
1059
|
+
*/
|
|
1060
|
+
herkunft: readonly TagHerkunft[];
|
|
1061
|
+
}
|
|
1062
|
+
/**
|
|
1063
|
+
* Liest eine Tagliste, wie sie in `user_library.tags` oder in einem
|
|
1064
|
+
* Tag-Ereignis steht.
|
|
1065
|
+
*
|
|
1066
|
+
* Fail loud (Regel 4): Ein Eintrag ohne brauchbares Label ist ein Datenfehler
|
|
1067
|
+
* und wird benannt, nicht uebersprungen. Ein uebersprungener Tag saehe aus wie
|
|
1068
|
+
* „dieses Item hat den Tag nicht" und waere von der Wahrheit nicht zu
|
|
1069
|
+
* unterscheiden.
|
|
1070
|
+
*
|
|
1071
|
+
* @param quelle Woher die Liste stammt — steht in der Fehlermeldung.
|
|
1072
|
+
*/
|
|
1073
|
+
declare function tagRefsAus(roh: unknown, quelle: string): readonly LibraryTagRef[];
|
|
1074
|
+
/**
|
|
1075
|
+
* Die direkten Tags **jedes** Laufs aus dem Ereignislog.
|
|
1076
|
+
*
|
|
1077
|
+
* Der letzte Satz je `run_id` gilt. Anders als bei `collectPromptRuns` gewinnt
|
|
1078
|
+
* hier nicht der erste: Ein Lauf ist unveraenderlich, seine Beschlagwortung ist
|
|
1079
|
+
* es ausdruecklich nicht — sie ist eine Auswahl, die revidiert werden darf.
|
|
1080
|
+
*/
|
|
1081
|
+
declare function collectPromptRunTags(events: readonly ElementEvent[]): ReadonlyMap<string, readonly LibraryTagRef[]>;
|
|
1082
|
+
/** Die direkten Tags genau eines Laufs. */
|
|
1083
|
+
declare function promptRunTagsOf(events: readonly ElementEvent[], runId: string): readonly LibraryTagRef[];
|
|
1084
|
+
/**
|
|
1085
|
+
* Die gemeinsame sichtbare Tag-Menge eines Prompts.
|
|
1086
|
+
*
|
|
1087
|
+
* Reihenfolge: erst die Prompt-Tags in ihrer gespeicherten Reihenfolge, dann
|
|
1088
|
+
* die Library-Tags, die noch nicht dabei waren. Dubletten werden ueber das
|
|
1089
|
+
* **Label** zusammengefuehrt — es ist die Identitaet eines Tags in der
|
|
1090
|
+
* Vokabel-Tabelle (`resolveTagLabels` sucht ueber `label`).
|
|
1091
|
+
*
|
|
1092
|
+
* Zusammengefuehrt wird nur die Anzeige. Welcher Tag am Prompt haengt, bleibt
|
|
1093
|
+
* an `herkunft` ablesbar; die Bearbeitung liest genau dieses Feld.
|
|
1094
|
+
*/
|
|
1095
|
+
declare function mergeRunTags(promptTags: readonly LibraryTagRef[], libraryTags: readonly LibraryTagRef[]): readonly AngezeigterTag[];
|
|
1096
|
+
/** Nur die Labels — die Form, in der der Schreibweg Tags entgegennimmt. */
|
|
1097
|
+
declare function labelsOf(tags: readonly LibraryTagRef[]): readonly string[];
|
|
1098
|
+
|
|
1099
|
+
/** Das Vorschaubild einer Promptkarte — ein Locator, keine Bilddaten. */
|
|
1100
|
+
interface PromptRunPreviewImage {
|
|
1101
|
+
/** Derselbe Locator wie im Batch (D-118) — aufgeloest ueber den Bildbestand. */
|
|
1102
|
+
media_ref: string;
|
|
1103
|
+
/** Soweit der Nachweis ihn fuehrt; aeltere Batches tragen ihn nicht. */
|
|
1104
|
+
mime_type: string | null;
|
|
1105
|
+
}
|
|
1106
|
+
/**
|
|
1107
|
+
* Was die Karte ueber die Ergebnisse eines Laufs weiss.
|
|
1108
|
+
*
|
|
1109
|
+
* `imageCount: 0` heisst **belegt keine Bilder** — nicht „unbekannt". Die
|
|
1110
|
+
* Unterscheidung traegt das Feld nicht, sondern die Anwesenheit der Annotation
|
|
1111
|
+
* selbst: Ein Host, der den Bestand nicht lesen kann, liefert sie nicht
|
|
1112
|
+
* (D-75).
|
|
1113
|
+
*/
|
|
1114
|
+
interface PromptRunAnnotation {
|
|
1115
|
+
/** Wie viele Bilder dem Lauf ueber seine Batches zugeordnet sind. */
|
|
1116
|
+
imageCount: number;
|
|
1117
|
+
/** Ein Bild als Vorschau, oder `null` — bei `imageCount === 0` immer `null`. */
|
|
1118
|
+
previewImage: PromptRunPreviewImage | null;
|
|
1119
|
+
/**
|
|
1120
|
+
* Die Library-Items dieses Laufs. Sie stehen hier, weil die Tag-Herkunft
|
|
1121
|
+
* daran haengt und der Host sonst nicht wuesste, welche Items er nachschlagen
|
|
1122
|
+
* soll.
|
|
1123
|
+
*/
|
|
1124
|
+
itemIds: readonly string[];
|
|
1125
|
+
/**
|
|
1126
|
+
* Die Tags dieser Items — **abgeleitet**, nie am Lauf gespeichert.
|
|
1127
|
+
*
|
|
1128
|
+
* Leer, wenn die Items keine Tags haben **oder** der Host sie nicht lesen
|
|
1129
|
+
* konnte. Diese beiden Faelle zu trennen waere hier eine Erfindung: Der
|
|
1130
|
+
* Aufrufer weiss, ob er die Vokabel gefragt hat.
|
|
1131
|
+
*/
|
|
1132
|
+
libraryTags: readonly LibraryTagRef[];
|
|
1133
|
+
}
|
|
1134
|
+
interface AnnotateRunsOptions {
|
|
1135
|
+
/**
|
|
1136
|
+
* Tags je `item_id`, soweit der Host sie lesen kann.
|
|
1137
|
+
*
|
|
1138
|
+
* Fehlt die Angabe, tragen alle Annotationen `libraryTags: []`. Die Bilder
|
|
1139
|
+
* stimmen trotzdem — sie kommen aus dem Log.
|
|
1140
|
+
*/
|
|
1141
|
+
libraryTagsByItem?: ReadonlyMap<string, readonly LibraryTagRef[]>;
|
|
1142
|
+
}
|
|
1143
|
+
/**
|
|
1144
|
+
* Die Annotationen **aller** Laeufe, die im Log ein Batch haben.
|
|
1145
|
+
*
|
|
1146
|
+
* Ein einziger Durchlauf ueber `collectImageBatches()`. Ein Lauf ohne Batch
|
|
1147
|
+
* kommt nicht vor — der Aufrufer liest das als „null Bilder", und die Karte
|
|
1148
|
+
* zeigt dann keine leere Bildflaeche, sondern nur die Zahl.
|
|
1149
|
+
*
|
|
1150
|
+
* Die Vorschau ist das Bild mit der kleinsten `position` im **ersten** Batch
|
|
1151
|
+
* des Laufs. Stabil gewaehlt und nicht geraten: Dieselbe Karte zeigt morgen
|
|
1152
|
+
* dasselbe Bild, auch wenn spaeter Batches dazukommen (D-113 — ein Lauf bleibt
|
|
1153
|
+
* ein Item, weitere Batches werden angehaengt).
|
|
1154
|
+
*/
|
|
1155
|
+
declare function annotateRunsFromEvents(events: readonly ElementEvent[], options?: AnnotateRunsOptions): ReadonlyMap<string, PromptRunAnnotation>;
|
|
1156
|
+
/** Die Annotation eines Laufs, oder die leere Aussage „keine Bilder". */
|
|
1157
|
+
declare const KEINE_BILDER: PromptRunAnnotation;
|
|
1158
|
+
/** Was eine Elementkarte ueber die Ergebnisse ihres Elements weiss. */
|
|
1159
|
+
interface ElementAnnotation {
|
|
1160
|
+
/** Bilder ueber **alle** Laeufe dieses Elements. */
|
|
1161
|
+
imageCount: number;
|
|
1162
|
+
/** Das Deckbild, oder `null`. */
|
|
1163
|
+
previewImage: PromptRunPreviewImage | null;
|
|
1164
|
+
/** Die Library-Items aller Laeufe — der Nachschlagepunkt fuer die Tags. */
|
|
1165
|
+
itemIds: readonly string[];
|
|
1166
|
+
/** Die direkten Tags der Laeufe, zusammengefuehrt ueber das Label. */
|
|
1167
|
+
promptTags: readonly LibraryTagRef[];
|
|
1168
|
+
/** Die Tags der zugeordneten Library-Items, ebenso zusammengefuehrt. */
|
|
1169
|
+
libraryTags: readonly LibraryTagRef[];
|
|
1170
|
+
}
|
|
1171
|
+
/**
|
|
1172
|
+
* Die Annotationen **aller** Elemente, die mindestens einen Lauf haben.
|
|
1173
|
+
*
|
|
1174
|
+
* Ein Durchgang ueber die Laeufe in Logreihenfolge. Welches Element zu einem
|
|
1175
|
+
* Lauf gehoert, entscheidet `namingElementOf()` — dieselbe Funktion, aus der
|
|
1176
|
+
* die Laufliste ihren Titel holt. Zwei Zuordnungsregeln waeren zwei
|
|
1177
|
+
* Wahrheiten darueber, wessen Lauf das ist.
|
|
1178
|
+
*
|
|
1179
|
+
* Das Deckbild ist die Vorschau des **juengsten** Laufs mit Bildern. Anders
|
|
1180
|
+
* als bei der Promptkarte, die ihr erstes Bild behaelt: Eine Szene wird
|
|
1181
|
+
* weiterbearbeitet, und ihr Deckbild soll den aktuellen Stand zeigen, nicht
|
|
1182
|
+
* den ersten Versuch. Deterministisch bleibt es trotzdem — dieselben
|
|
1183
|
+
* Ereignisse ergeben dasselbe Bild.
|
|
1184
|
+
*/
|
|
1185
|
+
declare function annotateElementsFromEvents(events: readonly ElementEvent[], options?: AnnotateRunsOptions): ReadonlyMap<string, ElementAnnotation>;
|
|
1186
|
+
|
|
981
1187
|
/** Element-Stammsatz (`elements`, §2.1). Nach Anlage unveränderlich: `id`, `type`. */
|
|
1188
|
+
/** Der Filter beider Elementlisten — ein Typ, damit sie nicht auseinanderlaufen. */
|
|
1189
|
+
interface ElementListFilter {
|
|
1190
|
+
contextId?: string | null;
|
|
1191
|
+
type?: SzenenElementType;
|
|
1192
|
+
types?: readonly SzenenElementType[];
|
|
1193
|
+
includeRetired?: boolean;
|
|
1194
|
+
}
|
|
982
1195
|
interface ElementRecord {
|
|
983
1196
|
element_id: string;
|
|
984
1197
|
/** Lesbarer Stammtitel fuer Listen und Auswahlen; kein Versionsinhalt (D-35). */
|
|
@@ -1088,12 +1301,23 @@ type SzenenCommandResult<T, C = T> = CommandResult<T> | WriteConflict<C> | Publi
|
|
|
1088
1301
|
/** Lesezugriffe auf den Elementspeicher. */
|
|
1089
1302
|
interface SzenenQueries {
|
|
1090
1303
|
/** Alle Elemente eines Kontexts, optional nach einem Typ oder einer Typmenge gefiltert. */
|
|
1091
|
-
listElements(filter?:
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1304
|
+
listElements(filter?: ElementListFilter): Promise<QueryResult<readonly ElementRecord[]>>;
|
|
1305
|
+
/**
|
|
1306
|
+
* **Eine Seite** Elemente, neueste zuerst — Kette `szenen-listen-pagination`.
|
|
1307
|
+
*
|
|
1308
|
+
* Derselbe Speicher, derselbe Filter, dieselbe Sichtbarkeitsregel wie
|
|
1309
|
+
* `listElements`; nur wird nicht alles uebertragen. „Neueste zuerst" ist die
|
|
1310
|
+
* umgekehrte Reihenfolge des Ereignislogs — ein Element traegt keinen
|
|
1311
|
+
* Zeitstempel, und einen zu erfinden waere eine Aussage ohne Beleg (D-75).
|
|
1312
|
+
*
|
|
1313
|
+
* `listElements` bleibt unveraendert: Die Zielmodellauflösung, die
|
|
1314
|
+
* Kontextsichtbarkeit und die Policy-Suche brauchen **alle** Kandidaten und
|
|
1315
|
+
* duerfen keine Seite bekommen.
|
|
1316
|
+
*
|
|
1317
|
+
* Optional, damit kein bestehender Implementierer der oeffentlichen
|
|
1318
|
+
* Schnittstelle bricht. Fehlt sie, laedt die Ansicht vollstaendig weiter.
|
|
1319
|
+
*/
|
|
1320
|
+
listElementsPage?(filter?: ElementListFilter, page?: PageRequest | null): Promise<QueryResult<ElementPage>>;
|
|
1097
1321
|
/** Vollständiger Stand eines Elements, oder `null`, wenn unbekannt. */
|
|
1098
1322
|
getElement(elementId: string): Promise<QueryResult<ElementSnapshot | null>>;
|
|
1099
1323
|
/**
|
|
@@ -1149,6 +1373,32 @@ interface ContextChainPort {
|
|
|
1149
1373
|
*/
|
|
1150
1374
|
chainFor(contextId: string | null): Promise<QueryResult<readonly (string | null)[]>>;
|
|
1151
1375
|
}
|
|
1376
|
+
/**
|
|
1377
|
+
* `listElementsPage` aus einem vorhandenen `listElements` — die eine
|
|
1378
|
+
* Implementierung fuer alle Speicher.
|
|
1379
|
+
*
|
|
1380
|
+
* Warum als Adapter und nicht in jedem Speicher neu: Der Filter, die
|
|
1381
|
+
* Sichtbarkeitsregel (D-04) und die Reihenfolge stehen damit weiterhin genau
|
|
1382
|
+
* einmal — im jeweiligen `listElements`. Dieser Adapter dreht und schneidet,
|
|
1383
|
+
* er entscheidet nichts.
|
|
1384
|
+
*
|
|
1385
|
+
* **Neueste zuerst** ist die umgekehrte Reihenfolge des Ereignislogs. Ein
|
|
1386
|
+
* Element traegt keinen Zeitstempel (`ElementRecord`); die Anlagereihenfolge
|
|
1387
|
+
* ist das, was belegbar ist. Einen Zeitstempel zu erfinden oder nach Titel zu
|
|
1388
|
+
* sortieren waere eine andere Aussage als „neueste zuerst".
|
|
1389
|
+
*/
|
|
1390
|
+
/**
|
|
1391
|
+
* Eine Seite Elemente, dazu was ihre Laeufe hergeben — Kette
|
|
1392
|
+
* `szenen-prompt-anzeige-bilder-tags`.
|
|
1393
|
+
*
|
|
1394
|
+
* `annotations` fehlt, wo der Host den Laufbestand nicht lesen kann. Das ist
|
|
1395
|
+
* eine andere Aussage als „keine Bilder" und wird deshalb nicht mit Nullen
|
|
1396
|
+
* gefuellt (D-75).
|
|
1397
|
+
*/
|
|
1398
|
+
interface ElementPage extends Page<ElementRecord> {
|
|
1399
|
+
annotations?: Readonly<Record<string, ElementAnnotation>>;
|
|
1400
|
+
}
|
|
1401
|
+
declare function listElementsPageOver(liste: (filter?: ElementListFilter) => Promise<QueryResult<readonly ElementRecord[]>>, filter?: ElementListFilter, page?: PageRequest | null): Promise<QueryResult<Page<ElementRecord>>>;
|
|
1152
1402
|
/**
|
|
1153
1403
|
* Macht aus einem Lese-Port den `ReferenceResolver` der Publish-Prüfungen.
|
|
1154
1404
|
*
|
|
@@ -1324,6 +1574,292 @@ declare const isOk: <T, C>(result: SzenenCommandResult<T, C>) => result is {
|
|
|
1324
1574
|
value: T;
|
|
1325
1575
|
};
|
|
1326
1576
|
|
|
1577
|
+
/** Präfix aller Events dieser Domain im gemeinsamen HF-Event-Kanal. */
|
|
1578
|
+
declare const SZENEN_EVENT_PREFIX = "szenen.";
|
|
1579
|
+
declare const SZENEN_EVENT_TYPES: {
|
|
1580
|
+
readonly elementCreated: "szenen.element_created";
|
|
1581
|
+
readonly elementRetired: "szenen.element_retired";
|
|
1582
|
+
readonly metadataRevised: "szenen.element_metadata_revised";
|
|
1583
|
+
readonly draftWritten: "szenen.element_draft_written";
|
|
1584
|
+
readonly versionPublished: "szenen.element_version_published";
|
|
1585
|
+
readonly preferredHeadSelected: "szenen.element_preferred_head_selected";
|
|
1586
|
+
/**
|
|
1587
|
+
* Ein Prompt-Ableitungslauf — Stufe 3, S6 (E-3b).
|
|
1588
|
+
*
|
|
1589
|
+
* Ein Lauf ist **kein Element**: keine Version, kein DAG, nicht
|
|
1590
|
+
* referenzierbar. Er liegt trotzdem im selben autoritativen Log, weil er
|
|
1591
|
+
* append-only und unveränderlich ist — genau die Form, die ein Ereignislog
|
|
1592
|
+
* nativ trägt — und weil MySQL sonst zu einem zweiten fachlichen Speicher
|
|
1593
|
+
* würde, den D-62 abgeschafft hat.
|
|
1594
|
+
*
|
|
1595
|
+
* Der Elementreducer ignoriert diesen Typ (`default:`-Zweig); die Läufe
|
|
1596
|
+
* werden mit `collectPromptRuns` gelesen.
|
|
1597
|
+
*/
|
|
1598
|
+
readonly promptRunRecorded: "szenen.prompt_run_recorded";
|
|
1599
|
+
/**
|
|
1600
|
+
* Ein Szenen-Rekonstruktionslauf — Stufe 6.5 (D-71).
|
|
1601
|
+
*
|
|
1602
|
+
* Derselbe Bauplan und dieselbe Begründung wie beim Prompt-Lauf: append-only,
|
|
1603
|
+
* unveränderlich, **kein Element** — keine Version, kein DAG, nicht
|
|
1604
|
+
* referenzierbar. Er liegt im autoritativen Log, weil er genau die Form hat,
|
|
1605
|
+
* die ein Ereignislog nativ trägt.
|
|
1606
|
+
*
|
|
1607
|
+
* Bewusst ein zweiter Lauftyp und **kein** gemeinsamer: Ein Prompt-Lauf geht
|
|
1608
|
+
* von einer veröffentlichten Shot-Version aus, ein Rekonstruktionslauf von
|
|
1609
|
+
* einer Referenz, die noch zu gar keinem Element gehört. Sie in einen Typ zu
|
|
1610
|
+
* zwingen hieße, beiden ihre Herkunftsfelder zu nehmen.
|
|
1611
|
+
*
|
|
1612
|
+
* Der Elementreducer ignoriert auch diesen Typ (`default:`-Zweig).
|
|
1613
|
+
*/
|
|
1614
|
+
readonly sceneDerivationRecorded: "szenen.scene_derivation_recorded";
|
|
1615
|
+
/**
|
|
1616
|
+
* Ein ausdrücklich ausgelöster Lauf gegen den **echten** Provider.
|
|
1617
|
+
*
|
|
1618
|
+
* Er kostet Geld und wird deshalb nie beiläufig gefahren. Das Ereignis hält
|
|
1619
|
+
* fest, was tatsächlich bezahlt wurde: wie viele Modellaufrufe, mit welchem
|
|
1620
|
+
* Ausgang, in welcher Umgebung und von wem ausgelöst.
|
|
1621
|
+
*
|
|
1622
|
+
* Es ersetzt **nicht** die einzelnen Läufe — die werden regulär als
|
|
1623
|
+
* `prompt_run_recorded` bzw. `scene_derivation_recorded` protokolliert. Es
|
|
1624
|
+
* ist die Klammer darüber und der Grund, warum jemand später nachlesen kann,
|
|
1625
|
+
* ob der Durchstich stattgefunden hat, ohne ihn erneut zu bezahlen.
|
|
1626
|
+
*/
|
|
1627
|
+
readonly providerCheckRecorded: "szenen.provider_check_recorded";
|
|
1628
|
+
/**
|
|
1629
|
+
* Eine geprüfte Arbeitsfassung eines fehlgeschlagenen Rekonstruktionslaufs —
|
|
1630
|
+
* Stufe 6.6 (D-99).
|
|
1631
|
+
*
|
|
1632
|
+
* Sie ist **kein Lauf**: kein Provideraufruf, keine Kosten, kein Zielmodell.
|
|
1633
|
+
* Sie ist die lokal geprüfte Korrektur eines bereits bezahlten Ergebnisses
|
|
1634
|
+
* und zeigt über `run_id` auf ihren Ursprung. Der `raw_output` jenes Laufs
|
|
1635
|
+
* bleibt unangetastet — deshalb ein eigenes Ereignis statt einer Änderung am
|
|
1636
|
+
* bestehenden, das es ohnehin nicht geben dürfte (D-71).
|
|
1637
|
+
*
|
|
1638
|
+
* Mehrere Rettungen zum selben Lauf sind zulässig und erwartet: Jede
|
|
1639
|
+
* Korrekturrunde ist nachvollziehbare Arbeit, kein Update der vorigen.
|
|
1640
|
+
*
|
|
1641
|
+
* Der Elementreducer ignoriert auch diesen Typ (`default:`-Zweig).
|
|
1642
|
+
*/
|
|
1643
|
+
readonly sceneDerivationRecoveryRecorded: "szenen.scene_derivation_recovery_recorded";
|
|
1644
|
+
/**
|
|
1645
|
+
* Ein bezahlter Bildgenerierungsauftrag beginnt — Stufe 6.7 (D-119).
|
|
1646
|
+
*
|
|
1647
|
+
* Append-only wie jedes andere Ereignis dieser Domain, geschrieben **vor**
|
|
1648
|
+
* dem Provideraufruf. Es traegt **keine Bilddaten** — nur die Kennung, mit
|
|
1649
|
+
* der die spaetere kanonische Batch-Persistenz (`saveGeneratedAssetBatch`,
|
|
1650
|
+
* Teil C) wiedergefunden wird. Ein Crash zwischen diesem Ereignis und
|
|
1651
|
+
* `imageGenerationFinished` loescht den Auftrag nicht: Er bleibt lesbar,
|
|
1652
|
+
* ohne dass irgendein automatischer Retry darauf reagiert.
|
|
1653
|
+
*
|
|
1654
|
+
* Gilt nur fuer `generated_in_app` — ein externer Import (D-108/D-117)
|
|
1655
|
+
* ruft keinen Provider und braucht deshalb kein `started`; sein Nachweis
|
|
1656
|
+
* ist das gespeicherte Library-Item selbst.
|
|
1657
|
+
*
|
|
1658
|
+
* Der Elementreducer ignoriert auch diesen Typ (`default:`-Zweig); gelesen
|
|
1659
|
+
* wird mit `collectImageGenerationOrders`.
|
|
1660
|
+
*/
|
|
1661
|
+
readonly imageGenerationStarted: "szenen.image_generation_started";
|
|
1662
|
+
/**
|
|
1663
|
+
* Derselbe Bildgenerierungsauftrag endet — Stufe 6.7 (D-119).
|
|
1664
|
+
*
|
|
1665
|
+
* Erscheint erst **nach** der kanonischen Batch-Persistenz: Ein technischer
|
|
1666
|
+
* Fehler zwischen Provideraufruf und Speichern darf nie als `succeeded`
|
|
1667
|
+
* protokolliert werden, nur weil der Provider geantwortet hat. Traegt
|
|
1668
|
+
* ebenfalls keine Bilddaten — nur Status, Zaehlung und die Item-Kennung,
|
|
1669
|
+
* falls eine entstand.
|
|
1670
|
+
*/
|
|
1671
|
+
readonly imageGenerationFinished: "szenen.image_generation_finished";
|
|
1672
|
+
/**
|
|
1673
|
+
* Ein Bild-Batch ist kanonisch gespeichert — Stufe 6.9.2, Gate D
|
|
1674
|
+
* (D-6.9.2-6).
|
|
1675
|
+
*
|
|
1676
|
+
* Erscheint erst, **nachdem** jedes Bild des Batches im Bildbestand liegt
|
|
1677
|
+
* (`hfUploadImage` + `image_added`, dieselbe Reihenfolge wie
|
|
1678
|
+
* `hfImageLibrary.putImage`) — kein Bild gilt als vorhanden, bevor sein
|
|
1679
|
+
* Upload bestätigt ist (R3). Trägt bewusst **keine Bilddaten**, nur den
|
|
1680
|
+
* vollständigen Metadatennachweis, den `listBatchesForPromptRun()` /
|
|
1681
|
+
* `getBatch()` ohne MySQL rekonstruieren können müssen: `item_id`,
|
|
1682
|
+
* `prompt_run_id`, `generation_batch_id`, `source_kind`, je Bild
|
|
1683
|
+
* `position`, `media_ref`, `asset_id`, `model`, `seed`, `width`/`height`.
|
|
1684
|
+
*
|
|
1685
|
+
* Additiv wie jedes Ereignis dieser Domain: ein zweiter Batch desselben
|
|
1686
|
+
* Laufs ist ein **weiteres** Ereignis mit derselben `item_id`, nicht eine
|
|
1687
|
+
* Änderung am ersten (D-113/D-121 — ein Lauf bleibt ein Item). Gilt für
|
|
1688
|
+
* `generated_in_app` **und** `external_import` — nur `source_kind`
|
|
1689
|
+
* unterscheidet die beiden Schreiber (D-116/D-117/D-120).
|
|
1690
|
+
*
|
|
1691
|
+
* Der Elementreducer ignoriert auch diesen Typ (`default:`-Zweig); gelesen
|
|
1692
|
+
* wird mit `collectImageBatches` (`imageBatchStore.ts`).
|
|
1693
|
+
*/
|
|
1694
|
+
readonly imageBatchPersisted: "szenen.image_batch_persisted";
|
|
1695
|
+
/**
|
|
1696
|
+
* Ein vorbereiteter Promptvorgang — der Durchstich „Szene → ChatGPT → Lauf".
|
|
1697
|
+
*
|
|
1698
|
+
* Der bestehende Promptpfad ruft das Modell selbst
|
|
1699
|
+
* (`runPromptDerivation()`); ein aufrufendes Chatmodell formuliert dagegen
|
|
1700
|
+
* **zwischen** zwei Werkzeugaufrufen. Damit zerfaellt der eine Vorgang in
|
|
1701
|
+
* zwei, und der zweite braucht genau den Stand, den der erste eingefroren
|
|
1702
|
+
* hat — sonst loeste der Abschluss die inzwischen geaenderte Szene neu auf
|
|
1703
|
+
* und der Lauf behauptete eine Herkunft, die er nicht hat (D-22).
|
|
1704
|
+
*
|
|
1705
|
+
* Deshalb ein eigenes Ereignis und **kein** fluechtiger Prozesszustand: Der
|
|
1706
|
+
* Snapshot ueberlebt Neustart, Hostwechsel und Sitzungsende, weil er im
|
|
1707
|
+
* selben autoritativen Log liegt wie der Lauf, der daraus entsteht.
|
|
1708
|
+
*
|
|
1709
|
+
* Der Elementreducer ignoriert diesen Typ (`default:`-Zweig); gelesen wird
|
|
1710
|
+
* mit `collectPromptOperations` (`scenePromptOperation.ts`).
|
|
1711
|
+
*/
|
|
1712
|
+
readonly promptOperationPrepared: "szenen.prompt_operation_prepared";
|
|
1713
|
+
/**
|
|
1714
|
+
* Ein Bildauftrag wartet auf einen ausfuehrenden Flow-Host.
|
|
1715
|
+
*
|
|
1716
|
+
* Die vorhandene Auftragshistorie (`imageGenerationStarted`) beginnt
|
|
1717
|
+
* **unmittelbar vor** dem Provideraufruf und kennt deshalb keinen wartenden
|
|
1718
|
+
* Auftrag. Genau der entsteht hier: Ein Chatmodell beauftragt ueber MCP ein
|
|
1719
|
+
* Bild, der Auftrag wird dauerhaft abgelegt, und der Werkzeugaufruf endet
|
|
1720
|
+
* sofort mit seiner Kennung — er haelt keine Antwort minutenlang offen.
|
|
1721
|
+
*
|
|
1722
|
+
* Traegt **keinen** Prompt: Der steht im referenzierten Lauf, und ihn hier
|
|
1723
|
+
* zu kopieren waere eine zweite Wahrheit ueber denselben eingefrorenen Text
|
|
1724
|
+
* (D-103).
|
|
1725
|
+
*/
|
|
1726
|
+
readonly imageJobRequested: "szenen.image_job_requested";
|
|
1727
|
+
/**
|
|
1728
|
+
* Ein Flow-Host beansprucht einen wartenden Bildauftrag.
|
|
1729
|
+
*
|
|
1730
|
+
* Ein append-only Log kennt kein Lock: Zwei Tabs koennen beide anhaengen.
|
|
1731
|
+
* Deshalb ist die Uebernahme **nicht** der Append, sondern das Ergebnis
|
|
1732
|
+
* einer deterministischen Schiedsregel darueber (`winningClaimOf`) — der
|
|
1733
|
+
* erste Anspruch in Logreihenfolge gewinnt, und jeder Host liest nach
|
|
1734
|
+
* seinem Append erneut, bevor er einen bezahlten Provideraufruf startet.
|
|
1735
|
+
* Ein unterlegener Anspruch bleibt sichtbar stehen; er wird nicht geloescht,
|
|
1736
|
+
* weil das Log das nicht kann und weil der Versuch ein Beleg ist.
|
|
1737
|
+
*/
|
|
1738
|
+
readonly imageJobClaimed: "szenen.image_job_claimed";
|
|
1739
|
+
/**
|
|
1740
|
+
* Der Bildauftrag ist erledigt — mit dem Ausgang, den der Host gesehen hat.
|
|
1741
|
+
*
|
|
1742
|
+
* Getrennt von `imageGenerationFinished`: Jenes gehoert zum bezahlten
|
|
1743
|
+
* Provideraufruf, dieses zur Zustellung. Ein Auftrag kann fehlschlagen,
|
|
1744
|
+
* **bevor** ein Provider gerufen wurde (abgelehntes Profil), und dann gibt
|
|
1745
|
+
* es kein `imageGenerationFinished`, das den Wartenden erloesen wuerde.
|
|
1746
|
+
*/
|
|
1747
|
+
readonly imageJobSettled: "szenen.image_job_settled";
|
|
1748
|
+
/**
|
|
1749
|
+
* Die direkten Tags eines Prompt-Laufs — Kette
|
|
1750
|
+
* `szenen-prompt-anzeige-bilder-tags`.
|
|
1751
|
+
*
|
|
1752
|
+
* Ein eigener Typ, **kein** Feld am Lauf: Ein Lauf ist unveraenderlich
|
|
1753
|
+
* (E-3b), seine Beschlagwortung ist es ausdruecklich nicht. Die Nutzlast
|
|
1754
|
+
* traegt jedes Mal den **vollstaendigen** Satz; Entfernen ist ein kuerzerer
|
|
1755
|
+
* Satz, kein Loeschereignis, weil ein append-only Log nichts zuruecknehmen
|
|
1756
|
+
* kann und ein Delta-Paar (`added`/`removed`) beim ersten verlorenen
|
|
1757
|
+
* Ereignis auseinanderliefe.
|
|
1758
|
+
*
|
|
1759
|
+
* Die Tags sind Library-Vokabeln in der Library-Form `{ l, v, cat }` und
|
|
1760
|
+
* werden auf dem Schreibweg gegen `tags` aufgeloest — es gibt kein zweites
|
|
1761
|
+
* Tag-Vokabular fuer Prompts. Tags **zugeordneter Library-Items** stehen
|
|
1762
|
+
* nie hier: Sie sind ueber die Relation Lauf → Item ableitbar, und eine
|
|
1763
|
+
* Kopie waere ab dem naechsten Library-Edit falsch.
|
|
1764
|
+
*
|
|
1765
|
+
* Der Elementreducer ignoriert diesen Typ (`default:`-Zweig); gelesen wird
|
|
1766
|
+
* mit `collectPromptRunTags` (`promptRunTags.ts`).
|
|
1767
|
+
*/
|
|
1768
|
+
readonly promptRunTagsSet: "szenen.prompt_run_tags_set";
|
|
1769
|
+
};
|
|
1770
|
+
/** Ein einzelnes Bild innerhalb von `ImageBatchPersistedPayload` (D-6.9.2-6). */
|
|
1771
|
+
interface ImageBatchPersistedImage {
|
|
1772
|
+
position: number;
|
|
1773
|
+
/** Im aktuellen Host auflösbarer Locator — hier die HF-Bildkennung (D-93). */
|
|
1774
|
+
media_ref: string;
|
|
1775
|
+
/** Fachlich stabile Identität, soweit bekannt — hier identisch mit `media_ref` (D-118). */
|
|
1776
|
+
asset_id?: string;
|
|
1777
|
+
/**
|
|
1778
|
+
* Der **bestätigte** MIME-Typ der abgelegten Datei — Review 2026-08-18 §5 P2.
|
|
1779
|
+
*
|
|
1780
|
+
* Additiv nachgetragen, weil der Batch ihn beim Schreiben kennt, ihn aber
|
|
1781
|
+
* nicht führte: Der Lesepfad musste die Dateiendung deshalb über zwei
|
|
1782
|
+
* Varianten erraten. Geraten wird nichts mehr — der Typ stammt aus den
|
|
1783
|
+
* tatsächlichen Bildbytes (`typAusBytes`), nicht aus einer Annahme, und
|
|
1784
|
+
* bestimmt den Pfad `images/<id>.<ext>`, unter dem die Datei liegt.
|
|
1785
|
+
*
|
|
1786
|
+
* Optional, weil ältere Ereignisse ihn nicht tragen; für die fällt der
|
|
1787
|
+
* Lesepfad auf den Bestandseintrag zurück.
|
|
1788
|
+
*/
|
|
1789
|
+
mime_type?: string | null;
|
|
1790
|
+
model?: string | null;
|
|
1791
|
+
/** Nur gesetzt, wenn der Provider ihn tatsächlich zurückliefert (D-107). */
|
|
1792
|
+
seed?: number | null;
|
|
1793
|
+
width?: number | null;
|
|
1794
|
+
height?: number | null;
|
|
1795
|
+
}
|
|
1796
|
+
/** Nutzlast von `imageBatchPersisted` — geschrieben nach bestätigtem Bild-Upload. */
|
|
1797
|
+
interface ImageBatchPersistedPayload {
|
|
1798
|
+
item_id: string;
|
|
1799
|
+
prompt_run_id: string;
|
|
1800
|
+
generation_batch_id: string;
|
|
1801
|
+
source_kind: 'generated_in_app' | 'external_import';
|
|
1802
|
+
title: string;
|
|
1803
|
+
images: readonly ImageBatchPersistedImage[];
|
|
1804
|
+
created_at: string;
|
|
1805
|
+
}
|
|
1806
|
+
/**
|
|
1807
|
+
* Ein Event, wie der Reducer es sieht.
|
|
1808
|
+
*
|
|
1809
|
+
* Nur `type`, `payload` und `clientId` sind fachlich. `ts` dient allein der
|
|
1810
|
+
* **Lesereihenfolge** des Logs und darf nie eine fachliche Vorrangfrage
|
|
1811
|
+
* entscheiden — sonst wäre es `MAX(ts)` durch die Hintertür (§2.5, R-3).
|
|
1812
|
+
*/
|
|
1813
|
+
interface ElementEvent<P = unknown> {
|
|
1814
|
+
type: string;
|
|
1815
|
+
payload: P;
|
|
1816
|
+
clientId: string;
|
|
1817
|
+
ts: number;
|
|
1818
|
+
}
|
|
1819
|
+
/** Ein Befund beim Falten: etwas ist widersprüchlich, aber der Zustand bleibt lesbar. */
|
|
1820
|
+
interface ReducerFinding {
|
|
1821
|
+
code: 'unbekanntes_element' | 'version_doppelt' | 'version_veraendert' | 'draft_fork' | 'metadata_fork' | 'preferred_head_fork' | 'element_doppelt';
|
|
1822
|
+
element_id: string;
|
|
1823
|
+
message: string;
|
|
1824
|
+
}
|
|
1825
|
+
/** Abgeleiteter Zustand über alle Elemente. */
|
|
1826
|
+
interface ElementStoreState {
|
|
1827
|
+
elements: ReadonlyMap<string, ElementSnapshot>;
|
|
1828
|
+
findings: readonly ReducerFinding[];
|
|
1829
|
+
}
|
|
1830
|
+
/**
|
|
1831
|
+
* Faltet den Event-Log zum Elementzustand.
|
|
1832
|
+
*
|
|
1833
|
+
* Der Reducer ist rein: gleiche Events, gleicher Zustand — unabhängig von der
|
|
1834
|
+
* Eingabereihenfolge.
|
|
1835
|
+
*
|
|
1836
|
+
* @param events Alle bekannten Szenen-Events; fremde Typen werden übergangen.
|
|
1837
|
+
*/
|
|
1838
|
+
declare function reduceElementEvents(events: readonly ElementEvent[]): ElementStoreState;
|
|
1839
|
+
/** Aktuelle Revision des Entwurfs. `0`, wenn keiner existiert. */
|
|
1840
|
+
declare function draftRevisionOf(snapshot: ElementSnapshot | null | undefined): number;
|
|
1841
|
+
/**
|
|
1842
|
+
* Quellrevision eines gelesenen Event-Logs (D-62 §2.4, D-63 §1.1.2).
|
|
1843
|
+
*
|
|
1844
|
+
* Die Projektion darf sich nur dann `current` nennen, wenn sie belegen kann,
|
|
1845
|
+
* **bis wohin** sie reicht. Dieser Beleg ist die Quellrevision, und sie muss
|
|
1846
|
+
* zwei Eigenschaften haben: aus dem Log allein berechenbar (sonst wäre sie eine
|
|
1847
|
+
* zweite Buchführung) und für zwei verschiedene Logstände verschieden.
|
|
1848
|
+
*
|
|
1849
|
+
* Beides leistet `Anzahl@größter-Zeitstempel`. Der Log ist append-only — es
|
|
1850
|
+
* verschwindet nie ein Event —, also wächst die Anzahl bei jedem Schreibvorgang.
|
|
1851
|
+
* Der Zeitstempel kommt dazu, weil er den Stand für einen Menschen lesbar macht;
|
|
1852
|
+
* entscheidend ist die Anzahl.
|
|
1853
|
+
*
|
|
1854
|
+
* Bewusst **kein** Hash über die Payloads: der wäre teurer und würde
|
|
1855
|
+
* Gleichheit über die Zeit versprechen, die der Log ohnehin schon garantiert.
|
|
1856
|
+
* Und bewusst hier, nicht im Server: der Projektor rechnet damit, und wer den
|
|
1857
|
+
* Stand prüfen will, soll dieselbe Rechnung fahren (R-2).
|
|
1858
|
+
*/
|
|
1859
|
+
declare function logRevisionOf(events: readonly ElementEvent[]): string;
|
|
1860
|
+
/** Aktuelle Revision der Preferred-Head-Auswahl eines Kontexts. `0`, wenn keine existiert. */
|
|
1861
|
+
declare function preferredHeadRevisionOf(events: readonly ElementEvent[], elementId: string, contextId: string): number;
|
|
1862
|
+
|
|
1327
1863
|
/** Optionale Kommandos, ohne die einzelne Prüfungen entfallen. */
|
|
1328
1864
|
type OptionalCommand = 'setPreferredHead' | 'reviseMetadata' | 'retireElement';
|
|
1329
1865
|
/** Eine einzelne Vertragsprüfung. */
|
|
@@ -1392,4 +1928,4 @@ interface ContractRunResult {
|
|
|
1392
1928
|
*/
|
|
1393
1929
|
declare function runElementStoreContract(harness: ElementStoreContractHarness): Promise<ContractRunResult>;
|
|
1394
1930
|
|
|
1395
|
-
export { type
|
|
1931
|
+
export { type Page as $, ALL_PUBLISH_RULES as A, type DerivationProposal as B, CHAIN_EDGES as C, DERIVABLE_TYPES as D, type DraftChainLink as E, type DraftChainMeta as F, type DraftFork as G, type DraftRecord as H, type ElementAnnotation as I, type ElementEvent as J, type ElementListFilter as K, type ElementMetadata as L, type ElementRecord as M, type ElementSnapshot as N, type ElementStoreContractHarness as O, type ElementStoreState as P, type ElementVersionValidation as Q, type FindingSeverity as R, type ImageBatchPersistedImage as S, type ImageBatchPersistedPayload as T, type ImageProvenance as U, KEINE_BILDER as V, LOAD_MORE_PAGE_SIZE as W, type LibraryTagRef as X, type NotDerivable as Y, type OptionalCommand as Z, PROBE_VERSION_ID as _, type AngezeigterTag as a, collectPromptRunTags as a$, type PageRequest as a0, type ParentRelation as a1, type PreferredHeadOutcome as a2, type PreferredHeadResolution as a3, type PreferredHeadSelection as a4, type PreferredHeadSource as a5, type ProjectionState as a6, type ProjectionStatus as a7, type PromptRunAnnotation as a8, type PromptRunPreviewImage as a9, type SzenenCommands as aA, type SzenenElementStore as aB, type SzenenElementType as aC, type SzenenProjection as aD, type SzenenQueries as aE, type TagHerkunft as aF, type TargetModelCandidate as aG, type TargetModelQueries as aH, type TargetModelQuery as aI, type TargetModelResolution as aJ, UnsupportedSchemaError as aK, type UnusableProposal as aL, type VersionDag as aM, VersionDagError as aN, type VersionNode as aO, type VersionParentLink as aP, type WriteConflict as aQ, type WriteDraftInput as aR, annotateElementsFromEvents as aS, annotateRunsFromEvents as aT, assessDerivationResponse as aU, buildSystemInstruction as aV, buildUserPrompt as aW, buildVersionDag as aX, checkChainTargets as aY, checkDerivationResponse as aZ, checkDraftChainMeta as a_, type PromptRunTagsSetPayload as aa, type PublishCheckInput as ab, type PublishCheckResult as ac, type PublishFinding as ad, type PublishRejected as ae, type PublishVersionInput as af, type PublishedVersion as ag, REFERENCE_FIELD as ah, type ReducerFinding as ai, type ReferenceResolver as aj, type ResolvePreferredHeadOptions as ak, type ResolvedVersion as al, type ReviseMetadataInput as am, STYLE_PAYLOAD as an, STYLE_PAYLOAD_V2 as ao, SZENEN_ELEMENT_TYPES as ap, SZENEN_EVENT_PREFIX as aq, SZENEN_EVENT_TYPES as ar, type SceneDerivationInput as as, type SceneDerivationOutcome as at, type SceneDerivationOutput as au, type SchemaError as av, type SchemaValidationResult as aw, type SetPreferredHeadInput as ax, type StoreAuthority as ay, type SzenenCommandResult as az, type AnnotateRunsOptions as b, collectVersionRefs as b0, compileSchemas as b1, createSimulationSceneDerivationPort as b2, describeTargetModelFailure as b3, draftRevisionOf as b4, elementStoreContractChecks as b5, formatSchemaErrors as b6, getSzenenSchemas as b7, isOk as b8, isProjectionCurrent as b9, labelsOf as ba, linkFor as bb, listElementsPageOver as bc, logRevisionOf as bd, mergeRunTags as be, pageOf as bf, pageRequestFrom as bg, parseDerivationResponse as bh, preferredHeadRevisionOf as bi, preferredVersionId as bj, promptRunTagsOf as bk, reduceElementEvents as bl, resolvePreferredHead as bm, resolveTargetModelOver as bn, resolverFromQueries as bo, runElementStoreContract as bp, runPublishChecks as bq, runSceneDerivation as br, showChain as bs, tagRefsAus as bt, validateAgainst as bu, validateDerivationInput as bv, validateElementVersion as bw, validatePayload as bx, withReference as by, type AuthoritativeSzenenStore as c, CHAIN_LINK_FIELDS as d, type CatalogueEntry as e, type ChainLinkField as f, type ChainTarget as g, type ChainVerdict as h, type CompiledSchemas as i, type ContextChainPort as j, type ContractCheck as k, type ContractCheckResult as l, type ContractRunResult as m, ContractViolation as n, type CreateElementInput as o, type DerivableType as p, type DerivationAssessment as q, type DerivationConflict as r, type DerivationDiagnostic as s, type DerivationEnvelope as t, type DerivationFailure as u, type DerivationFailureClass as v, type DerivationFollowUp as w, type DerivationImage as x, type DerivationInputMode as y, type DerivationPolicyPayload as z };
|