@rslsp1/fa-app-tools 7.2.0 → 8.0.0

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/szenen.d.mts CHANGED
@@ -124,6 +124,59 @@ declare const SZENEN_EVENT_TYPES: {
124
124
  * wird mit `collectImageBatches` (`imageBatchStore.ts`).
125
125
  */
126
126
  readonly imageBatchPersisted: "szenen.image_batch_persisted";
127
+ /**
128
+ * Ein vorbereiteter Promptvorgang — der Durchstich „Szene → ChatGPT → Lauf".
129
+ *
130
+ * Der bestehende Promptpfad ruft das Modell selbst
131
+ * (`runPromptDerivation()`); ein aufrufendes Chatmodell formuliert dagegen
132
+ * **zwischen** zwei Werkzeugaufrufen. Damit zerfaellt der eine Vorgang in
133
+ * zwei, und der zweite braucht genau den Stand, den der erste eingefroren
134
+ * hat — sonst loeste der Abschluss die inzwischen geaenderte Szene neu auf
135
+ * und der Lauf behauptete eine Herkunft, die er nicht hat (D-22).
136
+ *
137
+ * Deshalb ein eigenes Ereignis und **kein** fluechtiger Prozesszustand: Der
138
+ * Snapshot ueberlebt Neustart, Hostwechsel und Sitzungsende, weil er im
139
+ * selben autoritativen Log liegt wie der Lauf, der daraus entsteht.
140
+ *
141
+ * Der Elementreducer ignoriert diesen Typ (`default:`-Zweig); gelesen wird
142
+ * mit `collectPromptOperations` (`scenePromptOperation.ts`).
143
+ */
144
+ readonly promptOperationPrepared: "szenen.prompt_operation_prepared";
145
+ /**
146
+ * Ein Bildauftrag wartet auf einen ausfuehrenden Flow-Host.
147
+ *
148
+ * Die vorhandene Auftragshistorie (`imageGenerationStarted`) beginnt
149
+ * **unmittelbar vor** dem Provideraufruf und kennt deshalb keinen wartenden
150
+ * Auftrag. Genau der entsteht hier: Ein Chatmodell beauftragt ueber MCP ein
151
+ * Bild, der Auftrag wird dauerhaft abgelegt, und der Werkzeugaufruf endet
152
+ * sofort mit seiner Kennung — er haelt keine Antwort minutenlang offen.
153
+ *
154
+ * Traegt **keinen** Prompt: Der steht im referenzierten Lauf, und ihn hier
155
+ * zu kopieren waere eine zweite Wahrheit ueber denselben eingefrorenen Text
156
+ * (D-103).
157
+ */
158
+ readonly imageJobRequested: "szenen.image_job_requested";
159
+ /**
160
+ * Ein Flow-Host beansprucht einen wartenden Bildauftrag.
161
+ *
162
+ * Ein append-only Log kennt kein Lock: Zwei Tabs koennen beide anhaengen.
163
+ * Deshalb ist die Uebernahme **nicht** der Append, sondern das Ergebnis
164
+ * einer deterministischen Schiedsregel darueber (`winningClaimOf`) — der
165
+ * erste Anspruch in Logreihenfolge gewinnt, und jeder Host liest nach
166
+ * seinem Append erneut, bevor er einen bezahlten Provideraufruf startet.
167
+ * Ein unterlegener Anspruch bleibt sichtbar stehen; er wird nicht geloescht,
168
+ * weil das Log das nicht kann und weil der Versuch ein Beleg ist.
169
+ */
170
+ readonly imageJobClaimed: "szenen.image_job_claimed";
171
+ /**
172
+ * Der Bildauftrag ist erledigt — mit dem Ausgang, den der Host gesehen hat.
173
+ *
174
+ * Getrennt von `imageGenerationFinished`: Jenes gehoert zum bezahlten
175
+ * Provideraufruf, dieses zur Zustellung. Ein Auftrag kann fehlschlagen,
176
+ * **bevor** ein Provider gerufen wurde (abgelehntes Profil), und dann gibt
177
+ * es kein `imageGenerationFinished`, das den Wartenden erloesen wuerde.
178
+ */
179
+ readonly imageJobSettled: "szenen.image_job_settled";
127
180
  };
128
181
  /** Ein einzelnes Bild innerhalb von `ImageBatchPersistedPayload` (D-6.9.2-6). */
129
182
  interface ImageBatchPersistedImage {
@@ -1131,6 +1184,15 @@ interface PromptRunRecord {
1131
1184
  source?: PromptRunSource;
1132
1185
  created_at: string;
1133
1186
  }
1187
+ /**
1188
+ * Die Herkunft eines Laufs, auch bei einem Satz von vor 6.6.
1189
+ *
1190
+ * Ein alter Lauf trug seine Herkunft flach in `shot_version_id` und
1191
+ * `scene_setup_version_id`; genau daraus entsteht hier die `published`-Form.
1192
+ * Damit muss kein Konsument zwei Datenformen kennen — und trotzdem wurde kein
1193
+ * einziges Ereignis angefasst.
1194
+ */
1195
+ declare function sourceOf(run: PromptRunRecord): PromptRunSource;
1134
1196
  /** Nutzlast des Ereignisses. Identisch mit dem Datensatz — ein Lauf ändert sich nie. */
1135
1197
  type PromptRunRecordedPayload = PromptRunRecord;
1136
1198
  /**
@@ -1144,6 +1206,129 @@ type PromptRunRecordedPayload = PromptRunRecord;
1144
1206
  declare function collectPromptRuns(events: readonly ElementEvent[]): readonly PromptRunRecord[];
1145
1207
  /** Ein einzelner Lauf aus dem Log, oder `null`. */
1146
1208
  declare function findPromptRun(events: readonly ElementEvent[], runId: string): PromptRunRecord | null;
1209
+ /**
1210
+ * Der fachliche Bezug, unter dem ein Lauf seine Geschwister findet.
1211
+ *
1212
+ * `unresolved` ist der bewusst sichtbare vierte Fall: Ein Lauf, dessen
1213
+ * Herkunft keine brauchbare Kennung trägt — etwa ein Altsatz, den `sourceOf()`
1214
+ * auf `published` normalisiert, der aber gar keine `shot_version_id` hat. Er
1215
+ * bekommt seine **eigene** Gruppe und wird nie mit fremden Läufen vermischt.
1216
+ * Das ist kein stiller Ersatz (Regel 4): Der Grund steht im Datensatz und wird
1217
+ * angezeigt, statt eine Zugehörigkeit zu behaupten, die niemand belegt.
1218
+ */
1219
+ type PromptRunGroup = {
1220
+ kind: 'published';
1221
+ key: string;
1222
+ shot_version_id: string;
1223
+ } | {
1224
+ kind: 'draft_chain';
1225
+ key: string;
1226
+ chain_id: string;
1227
+ } | {
1228
+ kind: 'scene_direct';
1229
+ key: string;
1230
+ scene_element_id: string;
1231
+ } | {
1232
+ kind: 'unresolved';
1233
+ key: string;
1234
+ reason: string;
1235
+ };
1236
+ /**
1237
+ * Die Bezugsgruppe eines Laufs.
1238
+ *
1239
+ * Abgelesen an `sourceOf()` — der einzigen Stelle, die Alt- und Neuform
1240
+ * zusammenführt. Es entsteht **kein** neues Herkunftsfeld am Lauf; die Gruppe
1241
+ * wird bei jedem Lesen aus dem berechnet, was ohnehin dasteht.
1242
+ */
1243
+ declare function groupOf(run: PromptRunRecord): PromptRunGroup;
1244
+ /** Nur der Schlüssel der Bezugsgruppe — für Vergleiche und Filter. */
1245
+ declare function groupKeyOf(run: PromptRunRecord): string;
1246
+ /**
1247
+ * Die Geschwister eines Laufs: alle Läufe **seiner** Bezugsgruppe.
1248
+ *
1249
+ * Reihenfolge unverändert aus der Eingabe — sie ist die autoritative
1250
+ * Anhängereihenfolge und trägt die Rundennummer (`roundOfRun`). Hier wird
1251
+ * nicht nachsortiert; eine zweite Sortierregel neben der fachlichen wäre eine
1252
+ * zweite Wahrheit.
1253
+ */
1254
+ declare function siblingsOf(run: PromptRunRecord, alle: readonly PromptRunRecord[]): readonly PromptRunRecord[];
1255
+ /**
1256
+ * Das Element, das einen Lauf **benennt** — oder `null`.
1257
+ *
1258
+ * Ein Lauf hat keinen eigenen Titel; benannt wird er über das Element, aus dem
1259
+ * er entstand. Vorrang hat die **Szene**: Sie sagt einem Menschen, worum es
1260
+ * geht, während der Shot nur den Ausschnitt benennt. Genau diese Reihenfolge
1261
+ * benutzt der Sync serverseitig schon, um einen Lauf zu beschriften
1262
+ * (`sceneSync.js`, `titelOf`) — hier steht sie ein zweites Mal in Code, aber
1263
+ * nicht ein zweites Mal als Regel.
1264
+ *
1265
+ * Bei `published` ist die Szene nur über die Setup-**Version** erreichbar, also
1266
+ * über eine Auflösung, die eine Liste nicht je Zeile fahren soll. Dort steht
1267
+ * das Shot-Element ein; das ist ehrlich und ohne Zusatzabfrage zu haben.
1268
+ *
1269
+ * `null` heisst: Es gibt kein benennbares Element. Dann bleibt es bei „Runde
1270
+ * n" — ein erfundener Titel wäre schlimmer als keiner (D-75).
1271
+ */
1272
+ declare function namingElementOf(run: PromptRunRecord): string | null;
1273
+ /**
1274
+ * Der Arbeitskontext, in dem ein Lauf entstanden ist.
1275
+ *
1276
+ * Ein Lauf trägt den Kontext **nicht** als eigenes Feld; er steht als erstes
1277
+ * Glied der eingefrorenen `context_chain` (`resolve.ts`), wo `null` „global"
1278
+ * bedeutet. `undefined` heißt hier etwas anderes als `null`: Der Lauf nennt
1279
+ * **gar keine** Kette — das ist bei einem alten oder fremd erzeugten Satz
1280
+ * möglich, und es wird nicht geraten (Regel 4).
1281
+ */
1282
+ declare function contextOfRun(run: PromptRunRecord): string | null | undefined;
1283
+ /**
1284
+ * Welcher Ausgang in der gemeinsamen Sicht erscheint.
1285
+ *
1286
+ * Vorgabe des Umsetzungsauftrags §4: Die Benutzeransicht zeigt standardmäßig
1287
+ * nur `succeeded`. Ein Fehllauf bleibt im Log und über `'failed'`/`'all'`
1288
+ * erreichbar — er ist ein Nachweis (D-23 §6), nur eben kein benutzbarer Prompt.
1289
+ */
1290
+ type PromptRunStatusFilter = 'succeeded' | 'failed' | 'all';
1291
+ interface PromptRunFilter {
1292
+ /**
1293
+ * Bezugsrahmen. **Weglassen** heißt „alle Kontexte"; ein ausdrückliches
1294
+ * `null` ist der globale Kontext und damit ein Wert, kein fehlendes Feld.
1295
+ */
1296
+ contextId?: string | null;
1297
+ /** Vorgabe `succeeded`. */
1298
+ status?: PromptRunStatusFilter;
1299
+ }
1300
+ /**
1301
+ * Das Ergebnis der gemeinsamen Sicht.
1302
+ *
1303
+ * Bewusst mehr als ein Array: Was ein Filter **weggelassen** hat, gehört zur
1304
+ * Auskunft. Sonst sähe eine kontextgefilterte Liste für den Nutzer aus wie der
1305
+ * vollständige Bestand, und ein Lauf ohne Kontextangabe wäre spurlos
1306
+ * verschwunden — genau der stille Verlust, den dieser Auftrag beheben soll.
1307
+ */
1308
+ interface PromptRunListing {
1309
+ runs: readonly PromptRunRecord[];
1310
+ /** Läufe, die der Statusfilter ausgeblendet hat. */
1311
+ hiddenByStatus: number;
1312
+ /**
1313
+ * Läufe, die einen anderen Kontext nennen als den gefragten.
1314
+ * `0`, wenn nicht nach Kontext gefiltert wurde.
1315
+ */
1316
+ hiddenByContext: number;
1317
+ /**
1318
+ * Läufe **ohne** eingefrorene Kontextkette. Sie werden bei einem
1319
+ * Kontextfilter nicht mitgezählt und nicht geraten — ihre Zahl steht hier,
1320
+ * damit die Ansicht sie benennen kann statt sie zu verschweigen.
1321
+ */
1322
+ withoutContext: number;
1323
+ }
1324
+ /**
1325
+ * Wendet den Bezugsrahmen auf eine bereits gelesene Laufmenge an.
1326
+ *
1327
+ * Reine Funktion, kein Speicherzugriff — dieselbe Regel läuft im Client und im
1328
+ * Server über dieselbe Faltung (`collectPromptRuns`). Die Reihenfolge der
1329
+ * Eingabe bleibt erhalten.
1330
+ */
1331
+ declare function selectPromptRuns(alle: readonly PromptRunRecord[], filter?: PromptRunFilter): PromptRunListing;
1147
1332
 
1148
1333
  /**
1149
1334
  * Ein Vorschlag, so wie er im Ereignis steht.
@@ -1915,6 +2100,35 @@ declare const UNCHECKED_PUBLISH_RULES: readonly string[];
1915
2100
  */
1916
2101
  declare function createHfElementStore(options: CreateHfElementStoreOptions): AuthoritativeSzenenStore & ChainQueries;
1917
2102
 
2103
+ /**
2104
+ * Der HF-Kanal kann mehr als der hostneutrale `ElementEventChannel`: Er kann
2105
+ * seinen Kopf-Commit nennen und gegen ihn schreiben.
2106
+ *
2107
+ * Das ist **keine** Erweiterung des allgemeinen Vertrags. Ein Kanal ohne
2108
+ * Versionsbegriff — der Dateilog, der Speicherkanal — kann das nicht, und
2109
+ * fordern darf es deshalb nur, wer es wirklich braucht: die exklusive
2110
+ * Auftragsuebernahme (Kette `szenen-mcp-chatgpt-flow`).
2111
+ */
2112
+ interface RevisionAwareEventChannel extends ElementEventChannel {
2113
+ /** Der aktuelle Kopf-Commit des Bestands. */
2114
+ readHead(): Promise<string>;
2115
+ /**
2116
+ * Die Ereignisse **bei genau dieser Revision**.
2117
+ *
2118
+ * Der Unterschied zu `readEvents()` ist die Dateiliste: Sie wird an die
2119
+ * Revision gebunden, statt „irgendwann waehrend der Anfrage" zu gelten. Nur
2120
+ * damit passt der gelesene Stand zu dem `parentCommit`, gegen den danach
2121
+ * geschrieben wird — sonst koennte die Liste ein Ereignis uebersehen, das
2122
+ * beim Kopf schon da war, und der Schreibvorgang ginge trotzdem durch.
2123
+ */
2124
+ readEventsAt(revision: string): Promise<readonly ElementEvent[]>;
2125
+ /**
2126
+ * Anhaengen, aber nur wenn der Bestand noch auf `parentCommit` steht.
2127
+ *
2128
+ * Wirft `HfPreconditionFailedError`, wenn nicht — und schreibt dann nichts.
2129
+ */
2130
+ appendEventAt(type: string, payload: unknown, parentCommit: string): Promise<void>;
2131
+ }
1918
2132
  interface CreateHfEventChannelOptions {
1919
2133
  /** HF-Namespace mit abschließendem Schrägstrich, wie in `hfStateService`. */
1920
2134
  namespace: string;
@@ -1945,7 +2159,7 @@ interface CreateHfEventChannelOptions {
1945
2159
  * Erfordert nur einen HF-Token — kein Server, keine Datenbank. Das ist die
1946
2160
  * Zusage von R-2 für Flow-FA Pure.
1947
2161
  */
1948
- declare function createHfEventChannel(options: CreateHfEventChannelOptions): ElementEventChannel;
2162
+ declare function createHfEventChannel(options: CreateHfEventChannelOptions): RevisionAwareEventChannel;
1949
2163
 
1950
2164
  interface InMemoryEventChannel extends ElementEventChannel {
1951
2165
  /** Der rohe Log, für Prüfungen. */
@@ -2372,6 +2586,190 @@ interface CreateImageGenerationPortOptions {
2372
2586
  /** Der gemeinsame Bildgenerierungs-Port. */
2373
2587
  declare function createImageGenerationPort(options: CreateImageGenerationPortOptions): SzenenImageGenerationPort;
2374
2588
 
2589
+ /** Nutzlast von `imageJobRequested` — geschrieben beim MCP-Auftrag. */
2590
+ interface ImageJobRequestedPayload {
2591
+ job_id: string;
2592
+ prompt_run_id: string;
2593
+ /** Das Zielmodell, mit dem ausgefuehrt werden soll — ausdruecklich (D-131). */
2594
+ execution_target_model_key: string;
2595
+ /** Dessen Ausfuehrungsprofil; die Faehigkeiten kommen von dort, nicht vom MCP. */
2596
+ execution_profile_id: string;
2597
+ image_count: number;
2598
+ aspect_ratio?: string;
2599
+ /** Wer beauftragt hat — der kanonische Nutzerschluessel des Aufrufers. */
2600
+ requested_by: string;
2601
+ /**
2602
+ * Die Kennung des Bestands, in dem dieser Auftrag gilt — `hf:<namespace>`
2603
+ * bzw. `file:<verzeichnis>`, dieselbe Form, an der die Projektionsschranke
2604
+ * misst.
2605
+ *
2606
+ * Ein Auftrag ist an Nutzer **und** Bestand gebunden. Ein Host auf einem
2607
+ * anderen Bestand sieht ihn gar nicht erst; einer, der ihn doch faende,
2608
+ * schriebe sein Ergebnis dorthin, wo der Auftraggeber nicht sucht.
2609
+ */
2610
+ store_id: string;
2611
+ created_at: string;
2612
+ }
2613
+ /** Nutzlast von `imageJobClaimed` — der Anspruch eines Flow-Hosts. */
2614
+ interface ImageJobClaimedPayload {
2615
+ job_id: string;
2616
+ claim_id: string;
2617
+ /** Der Client, der beansprucht — zwei Tabs sind zwei Clients. */
2618
+ client_id: string;
2619
+ claimed_at: string;
2620
+ }
2621
+ /** Nutzlast von `imageJobSettled` — der Ausgang der Zustellung. */
2622
+ interface ImageJobSettledPayload {
2623
+ job_id: string;
2624
+ claim_id: string;
2625
+ status: 'succeeded' | 'partial' | 'failed' | 'rejected';
2626
+ /** Der Batch des bezahlten Aufrufs, sofern einer entstand. */
2627
+ generation_batch_id?: string;
2628
+ /** Das Library-Item des Batches, sofern eines entstand. */
2629
+ item_id?: string;
2630
+ produced_count?: number;
2631
+ diagnostic?: string;
2632
+ settled_at: string;
2633
+ }
2634
+ /**
2635
+ * Der Auftrag, wie ein Leser ihn sieht.
2636
+ *
2637
+ * `claimed` heisst „ein Host fuehrt aus **oder** ist dabei abgebrochen" — aus
2638
+ * dem Log allein ist das nicht unterscheidbar, genau wie bei `started` in
2639
+ * `ImageGenerationOrder`. Das ist Absicht und kein Mangel: Ein Zustand, der
2640
+ * beides trennte, muesste eine Lebendigkeit behaupten, die niemand belegt.
2641
+ */
2642
+ interface ImageJob {
2643
+ job_id: string;
2644
+ prompt_run_id: string;
2645
+ execution_target_model_key: string;
2646
+ execution_profile_id: string;
2647
+ image_count: number;
2648
+ aspect_ratio?: string;
2649
+ requested_by: string;
2650
+ store_id: string;
2651
+ created_at: string;
2652
+ status: 'pending' | 'claimed' | 'succeeded' | 'partial' | 'failed' | 'rejected';
2653
+ /** Der massgebliche Anspruch — der erste in Logreihenfolge. */
2654
+ claim?: ImageJobClaimedPayload;
2655
+ /** Alle Anspruechenden, auch die unterlegenen. Ein Versuch ist ein Beleg. */
2656
+ claim_attempts: readonly ImageJobClaimedPayload[];
2657
+ generation_batch_id?: string;
2658
+ item_id?: string;
2659
+ produced_count?: number;
2660
+ diagnostic?: string;
2661
+ settled_at?: string;
2662
+ }
2663
+ /**
2664
+ * Liest alle Bildauftraege aus dem Ereignislog.
2665
+ *
2666
+ * Drei Durchgaenge in fester Reihenfolge — Auftrag, Anspruch, Abschluss —,
2667
+ * damit ein Ereignis nie einen Auftrag erfindet, den es nicht gibt: Ein
2668
+ * Anspruch oder Abschluss ohne `requested` wird ignoriert, genauso wie
2669
+ * `collectImageGenerationOrders` ein `finished` ohne `started` ignoriert.
2670
+ */
2671
+ declare function collectImageJobs(events: readonly ElementEvent[]): readonly ImageJob[];
2672
+ /** Alle Auftraege eines Prompt-Laufs, in Erfassungsreihenfolge. */
2673
+ declare function jobsForPromptRun(events: readonly ElementEvent[], runId: string): readonly ImageJob[];
2674
+ /** Ein einzelner Auftrag, oder `null`. */
2675
+ declare function findImageJob(events: readonly ElementEvent[], jobId: string): ImageJob | null;
2676
+ /**
2677
+ * Ob dieser Anspruch der massgebliche ist.
2678
+ *
2679
+ * Die eine Frage, die ein Flow-Host nach seinem Append stellen muss, bevor er
2680
+ * einen bezahlten Aufruf startet.
2681
+ */
2682
+ declare function claimWon(job: ImageJob | null, claimId: string): boolean;
2683
+ /**
2684
+ * Die Kennung des Bild-Batches eines Auftrags.
2685
+ *
2686
+ * **Aus der Auftragskennung abgeleitet und nicht gewuerfelt.** Damit ist ein
2687
+ * zweiter Ausfuehrungsversuch desselben Auftrags auch dann noch harmlos, wenn
2688
+ * er die Schiedsregel umginge: `collectImageGenerationOrders` haelt das erste
2689
+ * `started` je `generation_batch_id` fest und ignoriert jedes weitere. Zwei
2690
+ * unabhaengige Sicherungen fuer denselben teuren Fehler sind hier
2691
+ * angemessen — der Schaden ist bezahlte Rechenzeit, nicht ein Logeintrag.
2692
+ */
2693
+ declare function generationBatchIdOf(jobId: string): string;
2694
+
2695
+ /**
2696
+ * Was der Auftragskanal braucht.
2697
+ *
2698
+ * `readHead`, `readEventsAt` und `appendEventAt` sind **Pflicht**, nicht
2699
+ * optional: Ohne sie gibt es keine verbindliche Uebernahme, und ein Host, der
2700
+ * sie nicht hat, darf einen bezahlten Auftrag nicht uebernehmen. Ein
2701
+ * optionaler Rueckfall auf blosses `appendEvent` waere genau die Fassung, die
2702
+ * zwei Clients beide gewinnen liess.
2703
+ */
2704
+ interface ImageJobChannel {
2705
+ readEvents(): Promise<readonly ElementEvent[]>;
2706
+ /**
2707
+ * Der schlichte Anhang — fuer den **Abschluss**.
2708
+ *
2709
+ * Er braucht kein CAS: Nur der Gewinner schreibt ihn, und die Faltung
2710
+ * akzeptiert ohnehin nur den Abschluss des massgeblichen Anspruchs.
2711
+ */
2712
+ appendEvent(type: string, payload: unknown): Promise<void>;
2713
+ /** Der aktuelle Kopf-Commit des Bestands. */
2714
+ readHead(): Promise<string>;
2715
+ /** Die Ereignisse bei genau dieser Revision — die Liste ist daran gebunden. */
2716
+ readEventsAt(revision: string): Promise<readonly ElementEvent[]>;
2717
+ /** Anhaengen, aber nur wenn der Bestand noch auf `parentCommit` steht. */
2718
+ appendEventAt(type: string, payload: unknown, parentCommit: string): Promise<void>;
2719
+ }
2720
+ /** Die Ausgaenge einer Uebernahme. */
2721
+ type ClaimAndRunResult =
2722
+ /** Uebernommen und ausgefuehrt — der Ausgang steht im Auftrag. */
2723
+ {
2724
+ kind: 'ok';
2725
+ job: ImageJob;
2726
+ }
2727
+ /**
2728
+ * Ein anderer Client hat den Auftrag. **Kein Fehler**: Genau dafuer gibt es
2729
+ * die Schiedsregel, und dieser Client hat nichts bezahlt.
2730
+ */
2731
+ | {
2732
+ kind: 'lost';
2733
+ job: ImageJob;
2734
+ message: string;
2735
+ }
2736
+ /** Fachlich abgelehnt — falscher Zustand, falscher Bestand, kein Auftrag. */
2737
+ | {
2738
+ kind: 'rejected';
2739
+ message: string;
2740
+ }
2741
+ /** Technisch gescheitert; der Bestand ist in Ordnung, der Zugriff nicht. */
2742
+ | {
2743
+ kind: 'error';
2744
+ message: string;
2745
+ retryable: boolean;
2746
+ };
2747
+ interface SzenenImageJobPort {
2748
+ /** Die Auftraege eines Prompt-Laufs, aus dem autoritativen Log. */
2749
+ listJobs(runId: string): Promise<QueryResult<readonly ImageJob[]>>;
2750
+ /** Beansprucht einen wartenden Auftrag und fuehrt ihn als Gewinner aus. */
2751
+ claimAndRun(jobId: string): Promise<ClaimAndRunResult>;
2752
+ }
2753
+ interface CreateImageJobPortOptions {
2754
+ channel: ImageJobChannel;
2755
+ /** Der bestehende Bildgenerierungs-Port dieses Hosts (D-116/D-119). */
2756
+ imageGeneration: SzenenImageGenerationPort;
2757
+ /**
2758
+ * Die Bestandskennung dieses Hosts — `hf:<namespace>`.
2759
+ *
2760
+ * Sie wird gegen die des Auftrags geprueft. Nutzer, Umgebung und Bestand
2761
+ * muessen zusammenpassen; ein Host, der einen fremden Auftrag ausfuehrte,
2762
+ * schriebe sein Ergebnis in einen Bestand, in dem es niemand sucht.
2763
+ */
2764
+ storeId: string;
2765
+ /** Diese Sitzung. Zwei Tabs sind zwei Clients — sonst sind sie ununterscheidbar. */
2766
+ clientId: string;
2767
+ newClaimId?: () => string;
2768
+ now?: () => Date;
2769
+ }
2770
+ /** Der Uebernahmeweg als Port. */
2771
+ declare function createImageJobPort(options: CreateImageJobPortOptions): SzenenImageJobPort;
2772
+
2375
2773
  /** Eine benannte Seedliste, wie der Nutzer sie im Dropdown sieht. */
2376
2774
  interface SeedVorlage {
2377
2775
  /** Fehlt bei der eingebauten Vorlage — sie liegt in keinem Speicher. */
@@ -2506,6 +2904,26 @@ interface SzenenRunPort {
2506
2904
  * bestehenden Abfragen unauffindbar.
2507
2905
  */
2508
2906
  listRunsForScene(sceneElementId: string): Promise<QueryResult<readonly PromptRunRecord[]>>;
2907
+ /**
2908
+ * Die **gemeinsame** Prompt-Sicht — P1-A, herkunftsübergreifend.
2909
+ *
2910
+ * Die drei Abfragen darüber sind Einstiege über einen Anker: eine
2911
+ * veröffentlichte Version, eine Draft-Kette, ein Szenen-Element. Wer keinen
2912
+ * dieser Anker kennt — oder wessen Anker seinen Zustand gewechselt hat —
2913
+ * findet den Lauf über keine von ihnen (Gegenprüfung 02, G1). Diese
2914
+ * Operation zählt ohne Vorwissen auf.
2915
+ *
2916
+ * Sie **ergänzt**; keine der drei bestehenden Abfragen ändert ihr Verhalten
2917
+ * und keine Herkunftsprüfung wird aufgeweicht.
2918
+ *
2919
+ * Ohne Angabe gilt `status: 'succeeded'` und kein Kontextfilter. Der
2920
+ * Rückgabewert nennt ausdrücklich, was weggefiltert wurde — sonst sähe eine
2921
+ * gefilterte Liste aus wie der vollständige Bestand.
2922
+ *
2923
+ * Optional: Ein Host ohne diese Operation meldet über `capabilitiesOf()`
2924
+ * `promptOverview: false`, und die Ansicht nennt den Grund (§8).
2925
+ */
2926
+ listAllRuns?(filter?: PromptRunFilter): Promise<QueryResult<PromptRunListing>>;
2509
2927
  }
2510
2928
  interface StartRunFromSceneInput {
2511
2929
  /** Das Szenen-**Element**. Ob Entwurf oder Version gilt, entscheidet der Bestand. */
@@ -3178,6 +3596,16 @@ interface SzenenViewPort {
3178
3596
  * Bildlauf starten und das Ergebnis danach verlieren.
3179
3597
  */
3180
3598
  imageGeneration?: SzenenImageGenerationPort;
3599
+ /**
3600
+ * Bildauftraege aus dem Chat uebernehmen — fehlt, wo es nichts auszufuehren
3601
+ * gibt.
3602
+ *
3603
+ * Haengt an denselben zwei Voraussetzungen wie `imageGeneration`: ohne
3604
+ * Provider und ohne kanonischen Schreibweg darf ein Host keinen bezahlten
3605
+ * Auftrag uebernehmen (D-122). Zusaetzlich braucht er den autoritativen
3606
+ * Kanal, denn die Uebernahme ist ein Append mit Gegenlesen.
3607
+ */
3608
+ imageJobs?: SzenenImageJobPort;
3181
3609
  }
3182
3610
  /**
3183
3611
  * Die Fähigkeiten eines Ports, wie die View sie abfragt.
@@ -3198,6 +3626,10 @@ interface SzenenViewCapabilities {
3198
3626
  imageOrderHistory: boolean;
3199
3627
  imageBatchWrite: boolean;
3200
3628
  imageGeneration: boolean;
3629
+ /** Bildauftraege aus dem Chat uebernehmen (Kette szenen-mcp-chatgpt-flow). */
3630
+ imageJobs: boolean;
3631
+ /** Die herkunftsuebergreifende Prompt-Sicht (P1-A) — Bereich `Prompts`. */
3632
+ promptOverview: boolean;
3201
3633
  }
3202
3634
  declare function capabilitiesOf(port: SzenenViewPort): SzenenViewCapabilities;
3203
3635
  /**
@@ -3332,6 +3764,42 @@ interface GruppierbaresBild extends LibraryImage {
3332
3764
  * Locator-Position aufsteigend; die ist stabil, der Zeitstempel wäre es nicht.
3333
3765
  */
3334
3766
  declare function gruppiereZuItems(bilder: readonly GruppierbaresBild[]): readonly LibraryImageItem[];
3767
+ /** Ein Galerieeintrag, wie ihn `metadata.gallery` einer Library-Zeile fuehrt. */
3768
+ interface BestandsGalerieEintrag {
3769
+ file?: string | null;
3770
+ }
3771
+ /** Eine Library-Zeile, wie sie `/api/storage/:user/library` ausliefert. */
3772
+ interface BestandsItem {
3773
+ id: string;
3774
+ title?: string | null;
3775
+ timestamp?: number | null;
3776
+ gallery?: readonly BestandsGalerieEintrag[] | null;
3777
+ }
3778
+ /**
3779
+ * Der Locator eines Bildes — dieselbe Bildung wie `locatorVon()` auf dem
3780
+ * Server und beim Hochladen nach HF: bei einem Bild die blosse Kennung, bei
3781
+ * mehreren `${id}-${position}`. `locatorTeile` oben zerlegt genau das wieder.
3782
+ */
3783
+ declare function locatorAus(itemId: string, position: number, anzahl: number): string;
3784
+ /** Der MIME-Typ aus der Dateiendung — dieselben drei Faelle wie serverseitig. */
3785
+ declare function mimeTypAus(dateiname: string): string;
3786
+ /**
3787
+ * Library-Zeilen → Werke fuer den Bildwaehler.
3788
+ *
3789
+ * @param items Der Bestand, wie ihn der Library-Lesepfad liefert.
3790
+ * @param options `search` filtert am Titel, `limit` zaehlt **Werke** (nicht
3791
+ * Bilder), `thumbUrl` bildet die Vorschauquelle aus dem
3792
+ * Dateinamen — der Host reicht sie herein, damit diese Funktion
3793
+ * keine Adresse kennt.
3794
+ *
3795
+ * Ein Item ohne lesbaren Galerieeintrag ist kein leeres Werk, sondern gar
3796
+ * keins: eine Karte ohne Bild waere nur eine Sackgasse.
3797
+ */
3798
+ declare function itemsAusBestand(items: readonly BestandsItem[], options?: {
3799
+ search?: string;
3800
+ limit?: number;
3801
+ thumbUrl?: (dateiname: string) => string;
3802
+ }): readonly LibraryImageItem[];
3335
3803
 
3336
3804
  interface VorschauLauf {
3337
3805
  /** Wird `true`, sobald der Aufrufer das Ergebnis nicht mehr braucht. */
@@ -3400,8 +3868,8 @@ interface CreateMemoryViewPortOptions {
3400
3868
  /**
3401
3869
  * Ob der Port die Rekonstruktion anbietet (Stufe 6.5).
3402
3870
  *
3403
- * `false` bildet einen Host ohne Textgenerierungs-Port ab. Der Bereich
3404
- * „0 · Rekonstruktion" fehlt dann ganz, statt leer zu erscheinen (R11).
3871
+ * `false` bildet einen Host ohne Textgenerierungs-Port ab. Die Aktion
3872
+ * „Neu aus Bild/Text" fehlt dann ganz, statt leer zu erscheinen (R11).
3405
3873
  */
3406
3874
  derivation?: boolean;
3407
3875
  /** Vorbelegte Regeln, aus denen die Auswahl liest. */
@@ -3554,6 +4022,17 @@ interface CreateFlowSzenenViewPortOptions {
3554
4022
  imageContextId?: () => string | null;
3555
4023
  /** Kennung je abgelegtem Batch-Bild. Ersetzbar, damit ein Test nicht würfelt. */
3556
4024
  newBatchImageId?: (generationBatchId: string, position: number) => string;
4025
+ /**
4026
+ * Diese Sitzung — die Kennung, mit der dieser Host einen Bildauftrag
4027
+ * beansprucht (Kette `szenen-mcp-chatgpt-flow`).
4028
+ *
4029
+ * **Zwei Tabs müssen zwei Clients sein**, sonst kann die Schiedsregel den
4030
+ * Doppelklick nicht vom zweiten Tab unterscheiden. Vorgabe ist deshalb eine
4031
+ * frisch gezogene Kennung je Portinstanz, kein stabiler Gerätewert.
4032
+ */
4033
+ imageJobClientId?: string;
4034
+ /** Anspruchskennung je Übernahme. Ersetzbar, damit ein Test nicht würfelt. */
4035
+ newImageJobClaimId?: () => string;
3557
4036
  }
3558
4037
  /**
3559
4038
  * Complete Flow adapter for the shared SzenenView: authoritative HF elements
@@ -3615,6 +4094,20 @@ interface PromptRunPersistencePort {
3615
4094
  * (derselbe Befund wie D-102/A1 bei der Kette).
3616
4095
  */
3617
4096
  listForScene(sceneElementId: string): Promise<QueryResult<readonly PromptRunRecord[]>>;
4097
+ /**
4098
+ * **Alle** Läufe des Bestands, herkunftsübergreifend — P1-A.
4099
+ *
4100
+ * Die drei Abfragen darüber setzen jeweils eine Kennung voraus, die der
4101
+ * Aufrufer erst kennen muss: eine veröffentlichte Version, eine noch
4102
+ * existierende Draft-Kette, ein Szenen-Element. Genau daran scheitert die
4103
+ * Auffindbarkeit, sobald ein Anker seinen Zustand wechselt (Gegenprüfung 02,
4104
+ * G1). Diese Operation zählt ohne Vorwissen auf.
4105
+ *
4106
+ * Optional, damit ein Host ohne sie weiterläuft: `capabilitiesOf()` meldet
4107
+ * dann `promptOverview: false`, und die Ansicht nennt den Grund, statt einen
4108
+ * leeren Bereich zu zeigen (§8).
4109
+ */
4110
+ listAll?(): Promise<QueryResult<readonly PromptRunRecord[]>>;
3618
4111
  }
3619
4112
  /** Was der Eventlog-Adapter vom Kanal braucht — lesen und anhängen. */
3620
4113
  interface RunEventChannel {
@@ -3895,6 +4388,164 @@ interface TargetModelChoices {
3895
4388
  */
3896
4389
  declare function selectableTargetModels(queries: VisibilityQueries, contextChain: readonly (string | null)[]): Promise<QueryResult<TargetModelChoices>>;
3897
4390
 
4391
+ /**
4392
+ * Der Anbieter, der in einem so entstandenen Lauf steht.
4393
+ *
4394
+ * `mcp_client` und nicht `openai`/`chatgpt`: Was der Server sicher weiss, ist
4395
+ * dass **sein MCP-Aufrufer** formuliert hat. Welcher Anbieter dahinter steht,
4396
+ * sagt ihm niemand — und ein geratener Anbietername waere im Lauf spaeter
4397
+ * nicht mehr von einem belegten zu unterscheiden (D-107).
4398
+ */
4399
+ declare const MCP_CLIENT_PROVIDER = "mcp_client";
4400
+ /**
4401
+ * Die Modellkennung, wenn der Host keine belegte liefert — und das tut er nie.
4402
+ *
4403
+ * Bewusst ein sprechender Platzhalter statt einer Modellversion: `model_id`
4404
+ * ist das Feld, an dem ein Leser ablesen soll, **womit** formuliert wurde.
4405
+ * Eine dort eingetragene Selbstauskunft saehe aus wie eine belegte Kennung.
4406
+ * Die Selbstauskunft steht deshalb in `execution_origin.declared_model_id` und
4407
+ * traegt dort sichtbar, dass sie unbelegt ist.
4408
+ */
4409
+ declare const UNVERIFIED_MODEL_ID = "mcp-client-unspecified";
4410
+ /**
4411
+ * Die Herkunft der Ausfuehrung, so ehrlich wie sie belegbar ist.
4412
+ *
4413
+ * Additiv am Lauf und nicht in `model_id`/`provider` versteckt: Der
4414
+ * Unterschied zwischen „das war Modell X" und „der Aufrufer sagt, es war
4415
+ * Modell X" ist genau der, um den es geht.
4416
+ */
4417
+ interface PromptExecutionOrigin {
4418
+ /** Wer den Lauf eingereicht hat — hier immer der MCP-Werkzeugweg. */
4419
+ host: 'mcp';
4420
+ /** Was der Aufrufer ueber sich selbst gesagt hat, unveraendert und unbelegt. */
4421
+ declared_model_id?: string;
4422
+ /**
4423
+ * Ob die unten mitgegebene Renderer-Anweisung die tatsaechliche
4424
+ * Systemnachricht des formulierenden Chats war.
4425
+ *
4426
+ * Sie war es nie: Der MCP reicht sie als Werkzeugergebnis heraus; was im
4427
+ * Chat als Systemprompt stand, kennt der Server nicht. Das Feld steht
4428
+ * trotzdem im Lauf, weil `system_prompt` sonst genau so gelesen wuerde.
4429
+ */
4430
+ renderer_instruction_was_system_prompt: false;
4431
+ }
4432
+ /** Der Antwortvertrag, den der Aufrufer erfuellen muss — maschinenlesbar. */
4433
+ interface PromptResponseContract {
4434
+ format: 'json';
4435
+ /** Pflichtfelder der Antwort, wie `checkRunResponse()` sie prueft. */
4436
+ required_fields: readonly string[];
4437
+ /** Ob ein Negativ-Prompt zugesagt ist (sonst muss `negative` null bleiben). */
4438
+ negative_prompt_allowed: boolean;
4439
+ /** Jeder dieser Knoten muss in `visibility.nodes` erscheinen (D-21). */
4440
+ node_ids: readonly string[];
4441
+ /** Die Sprache, in der `positive` formuliert wird. */
4442
+ prompt_language: string;
4443
+ }
4444
+ /** Ein vorbereiteter Promptvorgang — dauerhaft unter `operation_id`. */
4445
+ interface PreparedPromptOperation {
4446
+ operation_id: string;
4447
+ /** Die eingefrorene Szene: genau ein Entwurfs- oder Versionsstand (D-135). */
4448
+ scene: FrozenSceneState;
4449
+ context_id: string | null;
4450
+ /** Die Arbeitsanweisung des Nutzers, soweit eine gegeben wurde. */
4451
+ user_instruction: string | null;
4452
+ /** Der eingefrorene `RendererInput` — woertlich der des bestehenden Pfads. */
4453
+ renderer_input: RendererInput;
4454
+ /**
4455
+ * Die Renderer-Anweisung (`buildSystemInstruction`).
4456
+ *
4457
+ * Sie ist **Material fuer den Aufrufer**, nicht sein Systemprompt. Beim
4458
+ * Abschluss landet sie unveraendert in `system_prompt` des Laufs, weil das
4459
+ * Feld seit Stufe 3 genau diese Anweisung fuehrt.
4460
+ */
4461
+ renderer_instruction: string;
4462
+ /** Die Nutzernachricht: die Renderer-Eingabe als JSON (D-47). */
4463
+ renderer_payload: string;
4464
+ response_contract: PromptResponseContract;
4465
+ prepared_by: string;
4466
+ created_at: string;
4467
+ }
4468
+ /** Nutzlast von `promptOperationPrepared`. */
4469
+ type PromptOperationPreparedPayload = PreparedPromptOperation;
4470
+ /** Liest alle vorbereiteten Vorgaenge aus dem Ereignislog. */
4471
+ declare function collectPromptOperations(events: readonly ElementEvent[]): readonly PreparedPromptOperation[];
4472
+ /** Ein einzelner vorbereiteter Vorgang, oder `null`. */
4473
+ declare function findPromptOperation(events: readonly ElementEvent[], operationId: string): PreparedPromptOperation | null;
4474
+ interface PreparePromptOperationInput {
4475
+ sceneElementId: string;
4476
+ operationId: string;
4477
+ store: ChainQueries;
4478
+ resolver: ReferenceResolver;
4479
+ contextChain: readonly (string | null)[];
4480
+ contextId: string | null;
4481
+ userInstruction?: string | null;
4482
+ preparedBy: string;
4483
+ now?: () => Date;
4484
+ }
4485
+ type PreparePromptOperationResult = {
4486
+ kind: 'ok';
4487
+ operation: PreparedPromptOperation;
4488
+ } | FreezeFailure;
4489
+ /**
4490
+ * Friert den Arbeitsstand einer Szene ein und baut daraus den Vorgang.
4491
+ *
4492
+ * Ruft **kein** Modell — hier entstehen keine Kosten. Das Einfrieren ist
4493
+ * woertlich `freezeSceneWorkingState()`, also derselbe Zwei-Durchgang-Vergleich
4494
+ * mit denselben drei Ausgaengen wie im bestehenden Pfad (D-97/D-135). Ein
4495
+ * Konflikt bleibt ein Konflikt, kein „nochmal versuchen".
4496
+ */
4497
+ declare function preparePromptOperation(input: PreparePromptOperationInput): Promise<PreparePromptOperationResult>;
4498
+ /**
4499
+ * Der Antwortvertrag, abgelesen an derselben Eingabe wie die Anweisung.
4500
+ *
4501
+ * Bewusst abgelesen und nicht danebengeschrieben: Was `checkRunResponse()
4502
+ * prueft, entscheidet allein `promptRun.ts`. Ein hier gepflegter zweiter
4503
+ * Katalog liefe irgendwann auseinander, und der Aufrufer bekaeme einen
4504
+ * Vertrag, den die Pruefung nicht kennt.
4505
+ */
4506
+ declare function responseContractOf(input: RendererInput): PromptResponseContract;
4507
+ interface CompletePromptOperationInput {
4508
+ operation: PreparedPromptOperation;
4509
+ /** Die Antwort des aufrufenden Modells, woertlich. */
4510
+ response: string;
4511
+ runId: string;
4512
+ /** Was der Aufrufer ueber sein eigenes Modell sagt — unbelegt (D-107). */
4513
+ declaredModelId?: string | null;
4514
+ now?: () => Date;
4515
+ }
4516
+ type CompletePromptOperationResult = {
4517
+ kind: 'ok';
4518
+ record: PromptRunRecord;
4519
+ } | {
4520
+ kind: 'rejected';
4521
+ message: string;
4522
+ };
4523
+ /**
4524
+ * Macht aus der Antwort des Aufrufers einen normalen Promptlauf.
4525
+ *
4526
+ * **Eine ungueltige Antwort wird nicht als gescheiterter Lauf abgelegt.** Das
4527
+ * ist der eine bewusste Unterschied zum Providerpfad, und er hat einen Grund:
4528
+ * Dort belegt ein `failed` einen **bezahlten** Aufruf, der sich nicht
4529
+ * wiederholen laesst, ohne noch einmal zu kosten (D-23 §6). Hier hat niemand
4530
+ * bezahlt — der Aufrufer hat nur falsch formuliert und kann es unter derselben
4531
+ * `operation_id` sofort richtig tun. Ein Fehlerlauf waere hier kein Nachweis,
4532
+ * sondern Muell im autoritativen Bestand, und er wuerde die Wiederholung
4533
+ * ausserdem als Konflikt blockieren.
4534
+ */
4535
+ declare function completePromptOperation(input: CompletePromptOperationInput): CompletePromptOperationResult;
4536
+ /**
4537
+ * Der Lauf, der aus diesem Vorgang schon entstanden ist — oder `null`.
4538
+ *
4539
+ * Grundlage der Idempotenz: Derselbe Vorgang mit derselben Antwort liefert
4540
+ * denselben Lauf; eine **andere** Antwort unter derselben Kennung ist ein
4541
+ * Konflikt und kein zweiter Lauf. Verglichen wird die woertliche Antwort aus
4542
+ * `raw_output` — es braucht keinen Fingerabdruck neben etwas, das der Lauf
4543
+ * ohnehin vollstaendig traegt.
4544
+ */
4545
+ declare function runOfOperation(runs: readonly PromptRunRecord[], operationId: string): PromptRunRecord | null;
4546
+ /** Ob eine eingereichte Antwort woertlich die des bereits gespeicherten Laufs ist. */
4547
+ declare function sameResponseAs(run: PromptRunRecord, response: string): boolean;
4548
+
3898
4549
  interface CreateHfImageBatchPersistenceOptions {
3899
4550
  namespace: string;
3900
4551
  token: string;
@@ -4001,7 +4652,7 @@ declare function istZipDatei(datei: {
4001
4652
  */
4002
4653
  declare function leseBilderAusZip(datei: File | Blob): Promise<readonly ZipBild[]>;
4003
4654
 
4004
- type SzenenAreaId = 'derive' | 'elements' | 'scene' | 'setup' | 'shot' | 'media';
4655
+ type SzenenAreaId = 'scene' | 'prompts' | 'elements' | 'advanced' | 'media';
4005
4656
  interface SzenenArea {
4006
4657
  id: SzenenAreaId;
4007
4658
  title: string;
@@ -4011,10 +4662,11 @@ interface SzenenArea {
4011
4662
  /**
4012
4663
  * Die Bereiche, die dieser Host trägt.
4013
4664
  *
4014
- * `media` und `derive` fallen weg, wenn der Port die zugehörige Fähigkeit nicht
4015
- * hat — die einzigen Stellen, an denen ein Bereich verschwinden kann, und beide
4016
- * lesen eine Fähigkeit, keinen Hostnamen. Alle anderen Bereiche gibt es immer:
4017
- * ein Host ohne Elementspeicher wäre kein Szenen-Host.
4665
+ * `media` fällt weg, wenn der Port die Fähigkeit nicht hat — die einzige Stelle,
4666
+ * an der ein Bereich verschwinden kann, und sie liest eine Fähigkeit, keinen
4667
+ * Hostnamen. Die Rekonstruktion ist seit D-135 kein eigener Bereich mehr; ihre
4668
+ * Fähigkeit entscheidet nur noch über die Aktion „Neu aus Bild/Text" innerhalb
4669
+ * von „Szenen".
4018
4670
  *
4019
4671
  * Ein leerer Bereich wäre die schlechtere Antwort: Er verspräche eine Aktion,
4020
4672
  * die dieser Host nicht ausführen kann, und der Nutzer suchte den Fehler bei
@@ -4055,4 +4707,4 @@ interface SzenenViewProps {
4055
4707
  }
4056
4708
  declare const SzenenView: React__default.FC<SzenenViewProps>;
4057
4709
 
4058
- export { type AttachLibraryItemInput, type AttachLibraryItemResult, AuthoritativeSzenenStore, CATALOGUE_TYPES, CapabilityAnchorError, type CapabilityFlag, type CapabilityFlagName, type CapabilityReason, type CapabilityReport, type CapabilityReportInput, type CapabilityScope, type CapabilityState, type ChainQueries, type ClientDerivationChannel, type ClientDerivationStore, ContextChainPort, type CreateBrowserTextGenerationPortOptions, type CreateClientDerivationPortOptions, type CreateClientRunPortOptions, type CreateFlowSzenenViewPortOptions, type CreateHfElementStoreOptions, type CreateHfEventChannelOptions, type CreateHfImageBatchHistoryOptions, type CreateHfImageBatchPersistenceOptions, type CreateImageGenerationPortOptions, type CreateMemoryViewPortOptions, DEFAULT_SEED_VORLAGE, DerivableType, DerivationAssessment, DerivationConflict, DerivationDiagnostic, DerivationFailure, DerivationImage, DerivationInputMode, type DeriveItemInput, type DerivedItem, type DerivedLineage, type DerivedRelationship, type DerivedSzenenReference, type DifferentialResult, type DifferentialStep, type Divergence, DraftChainMeta, ELEMENT_VERSION_SCHEMA_FILE, type ElementEvent, type ElementEventChannel, ElementSnapshot, type ElementStoreState, type ExecutableImageModel, type ExecutionTargetModel, type ExistingSzenenItem, FLOW_EXECUTION_PATH, type FlowGenerateImage, type FlowGenerateImageParams, FlowGenerateText, type FreezeDraftChainInput, type FreezeFailure, type FreezeResult, type FreezeSceneResult, type FreezeSceneSuccess, type FreezeSceneWorkingStateInput, type FreezeSuccess, type FrozenChainNode, type FrozenSceneState, type GeneratedImage, type GruppierbaresBild, type HfImageStore, type HfImageStoreOptions, type IdFactory, type ImageBatchPersistedImage, type ImageBatchPersistedPayload, type ImageExecutionProfile, type ImageExecutionRoute, type ImageExecutionTargetModelReader, type ImageGenerationBatchPersistence, type ImageGenerationEventChannel, type ImageGenerationFinishedPayload, type ImageGenerationOrder, type ImageGenerationProviderPort, type ImageGenerationResult, type ImageGenerationRunReader, type ImageGenerationStartedPayload, type ImageHostCapability, type ImageModelChoice, type ImageModelParameters, ImageProvenance, type ImageProviderInput, type ImportBatchImageInput, type ImportBatchInput, type InMemoryEventChannel, type InputError, type IntegrityVerdict, type ItemDerivationFailure, type ItemDerivationFailureClass, type ItemDerivationResult, type ItemMedium, type LibraryImage, type LibraryImageItem, type NodeContribution, NotDerivable, type Notice, type NoticeTone, PROMPT_RULE_EFFECT, type PromptBatchImageRef, type PromptBatchOrigin, type PromptDiagnostic, type PromptEffect, type PromptImageBatch, type PromptRunOutcome, type PromptRunOutput, type PromptRunPersistencePort, type PromptRunRecord, type PromptRunRecordedPayload, type ProviderCheckRecord, type ProviderCheckRecordedPayload, type ProviderCheckResult, PublishCheckResult, PublishFinding, RULES_WITHOUT_CAPABILITY_EFFECT, RULE_SCOPES, type RawSchema, type RecordedDerivationInput, type RecordedProposal, type RecoveryStatus, type ReducerFinding, ReferenceResolver, type RendererInput, type ResolveFailure, type ResolveResult, type ResolveScenePayloadInput, type ResolveShotInput, type ResolveShotPayloadInput, ResolveTechnicalError, type ResolvedCamera, type ResolvedNode, type ResolvedPlacement, type RunEventChannel, type RunFailure, type RunFailureClass, type RunItemReference, SZENEN_EVENT_PREFIX, SZENEN_EVENT_TYPES, SZENEN_ITEM_PREFIX, SZENEN_SCHEMAS, SZENEN_SNAPSHOT_FILE, SZENEN_SNAPSHOT_PREFIX, SZENEN_SNAPSHOT_SCHEMA_VERSION, type SaveRunAsItemInput, type SceneDerivationPersistencePort, type SceneDerivationRecord, type SceneDerivationRecordedPayload, type SceneDerivationRecoveryRecord, type SceneDerivationRecoveryRecordedPayload, SchemaError, type SeedVorlage, type SeedZuordnung, type SeedZuordnungEintrag, type SelectableTargetModel, type StartImageGenerationInput, type StartRunFromSceneInput, type StartRunInput, type StepState, type SzenenArea, type SzenenAreaId, type SzenenBatchOrigin, type SzenenBatchOriginFailure, type SzenenBatchOriginVerdict, type SzenenBatchSourceKind, SzenenCommands, SzenenElementStore, SzenenElementType, type SzenenImageBatchHistoryPort, type SzenenImageBatchWritePort, type SzenenImageGenerationPort as SzenenImageGenerationPortContract, type SzenenImageLibraryPort, type SzenenItemPort, type SzenenLeseErgebnis, type SzenenMediaPort, SzenenQueries, type SzenenRunPort, type SzenenSeedTemplatePort, type SzenenSnapshot, SzenenView, type SzenenViewCapabilities, type SzenenViewPort, type SzenenViewProps, TargetModelResolution, TextGenerationPort, UNCHECKED_PUBLISH_RULES, UPLOAD_MAX_BYTES, type UnselectableTargetModel, UnusableProposal, type VersionMedium, type VisibilityNode, type ZipBild, areasFor, batchesForPromptRun, bildPfad, buildSystemInstruction, buildSzenenSnapshot, buildUserPrompt, callOptional, capabilitiesOf, capabilityGate, capabilityReport, catalogueFor, checkCreateElementInput, checkElementType, checkImageExecutionProfile, checkImageExecutionProfiles, checkImageModelParameters, checkOptionalId, checkParents, checkPayloadPresent, checkPromptRunRecord, checkPublishVersionInput, checkRequiredId, checkReviseMetadataInput, checkRevision, checkRunResponse, checkSceneDerivationRecord, checkSceneDerivationRecoveryRecord, checkSetPreferredHeadInput, checkSzenenBatchOrigin, checkTitle, checkWriteDraftInput, collectImageBatches, collectImageGenerationOrders, collectPromptRuns, collectProviderChecks, collectSceneDerivationRecoveries, collectSceneDerivations, createBrowserTextGenerationPort, createClientDerivationPort, createClientRunPort, createEventLogDerivationPersistence, createEventLogRunPersistence, createFlowImageProvider, createFlowSzenenViewPort, createHfElementStore, createHfEventChannel, createHfImageBatchHistory, createHfImageBatchWrite, createHfImageGenerationBatchPersistence, createHfImageLibrary, createHfImageStore, createImageGenerationPort, createInMemoryEventChannel, createMemoryViewPort, derivationPoliciesOf, deriveItemFromRun, deriveLineage, describableContent, diagnosticOfFinding, diagnosticOfSchemaError, differentialSteps, draftRevisionOf, executableImageModels, findExecutableImageModel, findImageBatch, findImageGenerationOrder, findPromptRun, findProviderCheck, findSceneDerivation, findSceneDerivationRecovery, firstError, formatSeedListe, freezeDraftChain, freezeSceneWorkingState, gesamtHerkunft, gruppiereZuItems, hasPlacementCapability, isKnownElementType, isSzenenItemId, istSzenenSnapshotDatei, istZipDatei, itemIdForRun, ladeVorschauen, leseBilderAusZip, locatorTeile, logRevisionOf, mergeSnapshotAndPending, mergeSzenenBatchOrigin, mitDefaultVorlage, noticeFor, ordersForPromptRun, ordneSeedsZu, parseRunResponse, parseSeedListe, parseSzenenSnapshot, preferredHeadRevisionOf, promptDiagnosticsOf, publishedHeadsOf, recoveriesForRun, recoveryStatusOf, reduceElementEvents, resolveArea, resolveScenePayload, resolveShot, resolveShotPayload, roundOfRun, rulesWithoutPromptEffect, runPromptDerivation, runStoreDifferential, sceneOnlyCapabilities, scopeOfPath, seedFehlerText, selectableTargetModels, szenenSnapshotFilename, totalModelCalls, typAusBytes, unclassifiedPublishRules, unsupportedReason };
4710
+ export { type AttachLibraryItemInput, type AttachLibraryItemResult, AuthoritativeSzenenStore, type BestandsGalerieEintrag, type BestandsItem, CATALOGUE_TYPES, CapabilityAnchorError, type CapabilityFlag, type CapabilityFlagName, type CapabilityReason, type CapabilityReport, type CapabilityReportInput, type CapabilityScope, type CapabilityState, type ChainQueries, type ClaimAndRunResult, type ClientDerivationChannel, type ClientDerivationStore, type CompletePromptOperationInput, type CompletePromptOperationResult, ContextChainPort, type CreateBrowserTextGenerationPortOptions, type CreateClientDerivationPortOptions, type CreateClientRunPortOptions, type CreateFlowSzenenViewPortOptions, type CreateHfElementStoreOptions, type CreateHfEventChannelOptions, type CreateHfImageBatchHistoryOptions, type CreateHfImageBatchPersistenceOptions, type CreateImageGenerationPortOptions, type CreateImageJobPortOptions, type CreateMemoryViewPortOptions, DEFAULT_SEED_VORLAGE, DerivableType, DerivationAssessment, DerivationConflict, DerivationDiagnostic, DerivationFailure, DerivationImage, DerivationInputMode, type DeriveItemInput, type DerivedItem, type DerivedLineage, type DerivedRelationship, type DerivedSzenenReference, type DifferentialResult, type DifferentialStep, type Divergence, DraftChainMeta, ELEMENT_VERSION_SCHEMA_FILE, type ElementEvent, type ElementEventChannel, ElementSnapshot, type ElementStoreState, type ExecutableImageModel, type ExecutionTargetModel, type ExistingSzenenItem, FLOW_EXECUTION_PATH, type FlowGenerateImage, type FlowGenerateImageParams, FlowGenerateText, type FreezeDraftChainInput, type FreezeFailure, type FreezeResult, type FreezeSceneResult, type FreezeSceneSuccess, type FreezeSceneWorkingStateInput, type FreezeSuccess, type FrozenChainNode, type FrozenSceneState, type GeneratedImage, type GruppierbaresBild, type HfImageStore, type HfImageStoreOptions, type IdFactory, type ImageBatchPersistedImage, type ImageBatchPersistedPayload, type ImageExecutionProfile, type ImageExecutionRoute, type ImageExecutionTargetModelReader, type ImageGenerationBatchPersistence, type ImageGenerationEventChannel, type ImageGenerationFinishedPayload, type ImageGenerationOrder, type ImageGenerationProviderPort, type ImageGenerationResult, type ImageGenerationRunReader, type ImageGenerationStartedPayload, type ImageHostCapability, type ImageJob, type ImageJobChannel, type ImageJobClaimedPayload, type ImageJobRequestedPayload, type ImageJobSettledPayload, type ImageModelChoice, type ImageModelParameters, ImageProvenance, type ImageProviderInput, type ImportBatchImageInput, type ImportBatchInput, type InMemoryEventChannel, type InputError, type IntegrityVerdict, type ItemDerivationFailure, type ItemDerivationFailureClass, type ItemDerivationResult, type ItemMedium, type LibraryImage, type LibraryImageItem, MCP_CLIENT_PROVIDER, type NodeContribution, NotDerivable, type Notice, type NoticeTone, PROMPT_RULE_EFFECT, type PreparePromptOperationInput, type PreparePromptOperationResult, type PreparedPromptOperation, type PromptBatchImageRef, type PromptBatchOrigin, type PromptDiagnostic, type PromptEffect, type PromptExecutionOrigin, type PromptImageBatch, type PromptOperationPreparedPayload, type PromptResponseContract, type PromptRunFilter, type PromptRunGroup, type PromptRunListing, type PromptRunOutcome, type PromptRunOutput, type PromptRunPersistencePort, type PromptRunRecord, type PromptRunRecordedPayload, type PromptRunSource, type PromptRunStatusFilter, type ProviderCheckRecord, type ProviderCheckRecordedPayload, type ProviderCheckResult, PublishCheckResult, PublishFinding, RULES_WITHOUT_CAPABILITY_EFFECT, RULE_SCOPES, type RawSchema, type RecordedDerivationInput, type RecordedProposal, type RecoveryStatus, type ReducerFinding, ReferenceResolver, type RendererInput, type ResolveFailure, type ResolveResult, type ResolveScenePayloadInput, type ResolveShotInput, type ResolveShotPayloadInput, ResolveTechnicalError, type ResolvedCamera, type ResolvedNode, type ResolvedPlacement, type RunEventChannel, type RunFailure, type RunFailureClass, type RunItemReference, SZENEN_EVENT_PREFIX, SZENEN_EVENT_TYPES, SZENEN_ITEM_PREFIX, SZENEN_SCHEMAS, SZENEN_SNAPSHOT_FILE, SZENEN_SNAPSHOT_PREFIX, SZENEN_SNAPSHOT_SCHEMA_VERSION, type SaveRunAsItemInput, type SceneDerivationPersistencePort, type SceneDerivationRecord, type SceneDerivationRecordedPayload, type SceneDerivationRecoveryRecord, type SceneDerivationRecoveryRecordedPayload, SchemaError, type SeedVorlage, type SeedZuordnung, type SeedZuordnungEintrag, type SelectableTargetModel, type StartImageGenerationInput, type StartRunFromSceneInput, type StartRunInput, type StepState, type SzenenArea, type SzenenAreaId, type SzenenBatchOrigin, type SzenenBatchOriginFailure, type SzenenBatchOriginVerdict, type SzenenBatchSourceKind, SzenenCommands, SzenenElementStore, SzenenElementType, type SzenenImageBatchHistoryPort, type SzenenImageBatchWritePort, type SzenenImageGenerationPort as SzenenImageGenerationPortContract, type SzenenImageJobPort, type SzenenImageLibraryPort, type SzenenItemPort, type SzenenLeseErgebnis, type SzenenMediaPort, SzenenQueries, type SzenenRunPort, type SzenenSeedTemplatePort, type SzenenSnapshot, SzenenView, type SzenenViewCapabilities, type SzenenViewPort, type SzenenViewProps, TargetModelResolution, TextGenerationPort, UNCHECKED_PUBLISH_RULES, UNVERIFIED_MODEL_ID, UPLOAD_MAX_BYTES, type UnselectableTargetModel, UnusableProposal, type VersionMedium, type VisibilityNode, type ZipBild, areasFor, batchesForPromptRun, bildPfad, buildSystemInstruction, buildSzenenSnapshot, buildUserPrompt, callOptional, capabilitiesOf, capabilityGate, capabilityReport, catalogueFor, checkCreateElementInput, checkElementType, checkImageExecutionProfile, checkImageExecutionProfiles, checkImageModelParameters, checkOptionalId, checkParents, checkPayloadPresent, checkPromptRunRecord, checkPublishVersionInput, checkRequiredId, checkReviseMetadataInput, checkRevision, checkRunResponse, checkSceneDerivationRecord, checkSceneDerivationRecoveryRecord, checkSetPreferredHeadInput, checkSzenenBatchOrigin, checkTitle, checkWriteDraftInput, claimWon, collectImageBatches, collectImageGenerationOrders, collectImageJobs, collectPromptOperations, collectPromptRuns, collectProviderChecks, collectSceneDerivationRecoveries, collectSceneDerivations, completePromptOperation, contextOfRun, createBrowserTextGenerationPort, createClientDerivationPort, createClientRunPort, createEventLogDerivationPersistence, createEventLogRunPersistence, createFlowImageProvider, createFlowSzenenViewPort, createHfElementStore, createHfEventChannel, createHfImageBatchHistory, createHfImageBatchWrite, createHfImageGenerationBatchPersistence, createHfImageLibrary, createHfImageStore, createImageGenerationPort, createImageJobPort, createInMemoryEventChannel, createMemoryViewPort, derivationPoliciesOf, deriveItemFromRun, deriveLineage, describableContent, diagnosticOfFinding, diagnosticOfSchemaError, differentialSteps, draftRevisionOf, executableImageModels, findExecutableImageModel, findImageBatch, findImageGenerationOrder, findImageJob, findPromptOperation, findPromptRun, findProviderCheck, findSceneDerivation, findSceneDerivationRecovery, firstError, formatSeedListe, freezeDraftChain, freezeSceneWorkingState, generationBatchIdOf, gesamtHerkunft, groupKeyOf, groupOf, gruppiereZuItems, hasPlacementCapability, isKnownElementType, isSzenenItemId, istSzenenSnapshotDatei, istZipDatei, itemIdForRun, itemsAusBestand, jobsForPromptRun, ladeVorschauen, leseBilderAusZip, locatorAus, locatorTeile, logRevisionOf, mergeSnapshotAndPending, mergeSzenenBatchOrigin, mimeTypAus, mitDefaultVorlage, namingElementOf, noticeFor, ordersForPromptRun, ordneSeedsZu, parseRunResponse, parseSeedListe, parseSzenenSnapshot, preferredHeadRevisionOf, preparePromptOperation, promptDiagnosticsOf, publishedHeadsOf, recoveriesForRun, recoveryStatusOf, reduceElementEvents, resolveArea, resolveScenePayload, resolveShot, resolveShotPayload, responseContractOf, roundOfRun, rulesWithoutPromptEffect, runOfOperation, runPromptDerivation, runStoreDifferential, sameResponseAs, sceneOnlyCapabilities, scopeOfPath, seedFehlerText, selectPromptRuns, selectableTargetModels, siblingsOf, sourceOf, szenenSnapshotFilename, totalModelCalls, typAusBytes, unclassifiedPublishRules, unsupportedReason };