@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
package/dist/szenen.d.ts
CHANGED
|
@@ -1,276 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { A as ALL_PUBLISH_RULES, C as CHAIN_EDGES,
|
|
1
|
+
import { J as ElementEvent, ad as PublishFinding, av as SchemaError, ac as PublishCheckResult, aC as SzenenElementType, aj as ReferenceResolver, aJ as TargetModelResolution, a3 as PreferredHeadResolution, a0 as PageRequest, X as LibraryTagRef, a8 as PromptRunAnnotation, $ as Page, y as DerivationInputMode, U as ImageProvenance, u as DerivationFailure, p as DerivableType, Y as NotDerivable, r as DerivationConflict, w as DerivationFollowUp, F as DraftChainMeta, s as DerivationDiagnostic, q as DerivationAssessment, j as ContextChainPort, c as AuthoritativeSzenenStore, aB as SzenenElementStore, x as DerivationImage, aE as SzenenQueries, aA as SzenenCommands, aL as UnusableProposal, I as ElementAnnotation } from './storeContract-gc2dxews.js';
|
|
2
|
+
export { A as ALL_PUBLISH_RULES, a as AngezeigterTag, b as AnnotateRunsOptions, C as CHAIN_EDGES, d as CHAIN_LINK_FIELDS, e as CatalogueEntry, f as ChainLinkField, g as ChainTarget, h as ChainVerdict, i as CompiledSchemas, k as ContractCheck, l as ContractCheckResult, m as ContractRunResult, n as ContractViolation, o as CreateElementInput, D as DERIVABLE_TYPES, t as DerivationEnvelope, v as DerivationFailureClass, z as DerivationPolicyPayload, B as DerivationProposal, E as DraftChainLink, G as DraftFork, H as DraftRecord, K as ElementListFilter, L as ElementMetadata, M as ElementRecord, N as ElementSnapshot, O as ElementStoreContractHarness, P as ElementStoreState, Q as ElementVersionValidation, R as FindingSeverity, S as ImageBatchPersistedImage, T as ImageBatchPersistedPayload, V as KEINE_BILDER, W as LOAD_MORE_PAGE_SIZE, Z as OptionalCommand, _ as PROBE_VERSION_ID, a1 as ParentRelation, a2 as PreferredHeadOutcome, a4 as PreferredHeadSelection, a5 as PreferredHeadSource, a6 as ProjectionState, a7 as ProjectionStatus, a9 as PromptRunPreviewImage, aa as PromptRunTagsSetPayload, ab as PublishCheckInput, ae as PublishRejected, af as PublishVersionInput, ag as PublishedVersion, ah as REFERENCE_FIELD, ai as ReducerFinding, ak as ResolvePreferredHeadOptions, al as ResolvedVersion, am as ReviseMetadataInput, an as STYLE_PAYLOAD, ao as STYLE_PAYLOAD_V2, ap as SZENEN_ELEMENT_TYPES, aq as SZENEN_EVENT_PREFIX, ar as SZENEN_EVENT_TYPES, as as SceneDerivationInput, at as SceneDerivationOutcome, au as SceneDerivationOutput, aw as SchemaValidationResult, ax as SetPreferredHeadInput, ay as StoreAuthority, az as SzenenCommandResult, aD as SzenenProjection, aF as TagHerkunft, aG as TargetModelCandidate, aH as TargetModelQueries, aI as TargetModelQuery, aK as UnsupportedSchemaError, aM as VersionDag, aN as VersionDagError, aO as VersionNode, aP as VersionParentLink, aQ as WriteConflict, aR as WriteDraftInput, aS as annotateElementsFromEvents, aT as annotateRunsFromEvents, aU as assessDerivationResponse, aV as buildDerivationSystemInstruction, aW as buildDerivationUserPrompt, aX as buildVersionDag, aY as checkChainTargets, aZ as checkDerivationResponse, a_ as checkDraftChainMeta, a$ as collectPromptRunTags, b0 as collectVersionRefs, b1 as compileSchemas, b2 as createSimulationSceneDerivationPort, b3 as describeTargetModelFailure, b4 as draftRevisionOf, b5 as elementStoreContractChecks, b6 as formatSchemaErrors, b7 as getSzenenSchemas, b8 as isOk, b9 as isProjectionCurrent, ba as labelsOf, bb as linkFor, bc as listElementsPageOver, bd as logRevisionOf, be as mergeRunTags, bf as pageOf, bg as pageRequestFrom, bh as parseDerivationResponse, bi as preferredHeadRevisionOf, bj as preferredVersionId, bk as promptRunTagsOf, bl as reduceElementEvents, bm as resolvePreferredHead, bn as resolveTargetModelOver, bo as resolverFromQueries, bp as runElementStoreContract, bq as runPublishChecks, br as runSceneDerivation, bs as showChain, bt as tagRefsAus, bu as validateAgainst, bv as validateDerivationInput, bw as validateElementVersion, bx as validatePayload, by as withReference } from './storeContract-gc2dxews.js';
|
|
3
3
|
import { T as TextGenerationPort, Q as QueryResult, C as CommandResult } from './contracts-DdYOMBl9.js';
|
|
4
4
|
export { S as SIMULATION_PROVIDER, c as TextGenerationRequest, d as TextGenerationResult, g as createFakeTextGenerationPort, h as createSimulationTextGenerationPort, s as simulatedAnswerFor } from './contracts-DdYOMBl9.js';
|
|
5
5
|
import { g as HFStateSnapshot, F as FlowGenerateText } from './hfEventTypes-fAdA-0A9.js';
|
|
6
6
|
export { C as CreateFlowTextGenerationPortOptions, r as createFlowTextGenerationPort } from './hfEventTypes-fAdA-0A9.js';
|
|
7
7
|
import React__default from 'react';
|
|
8
8
|
|
|
9
|
-
/** Präfix aller Events dieser Domain im gemeinsamen HF-Event-Kanal. */
|
|
10
|
-
declare const SZENEN_EVENT_PREFIX = "szenen.";
|
|
11
|
-
declare const SZENEN_EVENT_TYPES: {
|
|
12
|
-
readonly elementCreated: "szenen.element_created";
|
|
13
|
-
readonly elementRetired: "szenen.element_retired";
|
|
14
|
-
readonly metadataRevised: "szenen.element_metadata_revised";
|
|
15
|
-
readonly draftWritten: "szenen.element_draft_written";
|
|
16
|
-
readonly versionPublished: "szenen.element_version_published";
|
|
17
|
-
readonly preferredHeadSelected: "szenen.element_preferred_head_selected";
|
|
18
|
-
/**
|
|
19
|
-
* Ein Prompt-Ableitungslauf — Stufe 3, S6 (E-3b).
|
|
20
|
-
*
|
|
21
|
-
* Ein Lauf ist **kein Element**: keine Version, kein DAG, nicht
|
|
22
|
-
* referenzierbar. Er liegt trotzdem im selben autoritativen Log, weil er
|
|
23
|
-
* append-only und unveränderlich ist — genau die Form, die ein Ereignislog
|
|
24
|
-
* nativ trägt — und weil MySQL sonst zu einem zweiten fachlichen Speicher
|
|
25
|
-
* würde, den D-62 abgeschafft hat.
|
|
26
|
-
*
|
|
27
|
-
* Der Elementreducer ignoriert diesen Typ (`default:`-Zweig); die Läufe
|
|
28
|
-
* werden mit `collectPromptRuns` gelesen.
|
|
29
|
-
*/
|
|
30
|
-
readonly promptRunRecorded: "szenen.prompt_run_recorded";
|
|
31
|
-
/**
|
|
32
|
-
* Ein Szenen-Rekonstruktionslauf — Stufe 6.5 (D-71).
|
|
33
|
-
*
|
|
34
|
-
* Derselbe Bauplan und dieselbe Begründung wie beim Prompt-Lauf: append-only,
|
|
35
|
-
* unveränderlich, **kein Element** — keine Version, kein DAG, nicht
|
|
36
|
-
* referenzierbar. Er liegt im autoritativen Log, weil er genau die Form hat,
|
|
37
|
-
* die ein Ereignislog nativ trägt.
|
|
38
|
-
*
|
|
39
|
-
* Bewusst ein zweiter Lauftyp und **kein** gemeinsamer: Ein Prompt-Lauf geht
|
|
40
|
-
* von einer veröffentlichten Shot-Version aus, ein Rekonstruktionslauf von
|
|
41
|
-
* einer Referenz, die noch zu gar keinem Element gehört. Sie in einen Typ zu
|
|
42
|
-
* zwingen hieße, beiden ihre Herkunftsfelder zu nehmen.
|
|
43
|
-
*
|
|
44
|
-
* Der Elementreducer ignoriert auch diesen Typ (`default:`-Zweig).
|
|
45
|
-
*/
|
|
46
|
-
readonly sceneDerivationRecorded: "szenen.scene_derivation_recorded";
|
|
47
|
-
/**
|
|
48
|
-
* Ein ausdrücklich ausgelöster Lauf gegen den **echten** Provider.
|
|
49
|
-
*
|
|
50
|
-
* Er kostet Geld und wird deshalb nie beiläufig gefahren. Das Ereignis hält
|
|
51
|
-
* fest, was tatsächlich bezahlt wurde: wie viele Modellaufrufe, mit welchem
|
|
52
|
-
* Ausgang, in welcher Umgebung und von wem ausgelöst.
|
|
53
|
-
*
|
|
54
|
-
* Es ersetzt **nicht** die einzelnen Läufe — die werden regulär als
|
|
55
|
-
* `prompt_run_recorded` bzw. `scene_derivation_recorded` protokolliert. Es
|
|
56
|
-
* ist die Klammer darüber und der Grund, warum jemand später nachlesen kann,
|
|
57
|
-
* ob der Durchstich stattgefunden hat, ohne ihn erneut zu bezahlen.
|
|
58
|
-
*/
|
|
59
|
-
readonly providerCheckRecorded: "szenen.provider_check_recorded";
|
|
60
|
-
/**
|
|
61
|
-
* Eine geprüfte Arbeitsfassung eines fehlgeschlagenen Rekonstruktionslaufs —
|
|
62
|
-
* Stufe 6.6 (D-99).
|
|
63
|
-
*
|
|
64
|
-
* Sie ist **kein Lauf**: kein Provideraufruf, keine Kosten, kein Zielmodell.
|
|
65
|
-
* Sie ist die lokal geprüfte Korrektur eines bereits bezahlten Ergebnisses
|
|
66
|
-
* und zeigt über `run_id` auf ihren Ursprung. Der `raw_output` jenes Laufs
|
|
67
|
-
* bleibt unangetastet — deshalb ein eigenes Ereignis statt einer Änderung am
|
|
68
|
-
* bestehenden, das es ohnehin nicht geben dürfte (D-71).
|
|
69
|
-
*
|
|
70
|
-
* Mehrere Rettungen zum selben Lauf sind zulässig und erwartet: Jede
|
|
71
|
-
* Korrekturrunde ist nachvollziehbare Arbeit, kein Update der vorigen.
|
|
72
|
-
*
|
|
73
|
-
* Der Elementreducer ignoriert auch diesen Typ (`default:`-Zweig).
|
|
74
|
-
*/
|
|
75
|
-
readonly sceneDerivationRecoveryRecorded: "szenen.scene_derivation_recovery_recorded";
|
|
76
|
-
/**
|
|
77
|
-
* Ein bezahlter Bildgenerierungsauftrag beginnt — Stufe 6.7 (D-119).
|
|
78
|
-
*
|
|
79
|
-
* Append-only wie jedes andere Ereignis dieser Domain, geschrieben **vor**
|
|
80
|
-
* dem Provideraufruf. Es traegt **keine Bilddaten** — nur die Kennung, mit
|
|
81
|
-
* der die spaetere kanonische Batch-Persistenz (`saveGeneratedAssetBatch`,
|
|
82
|
-
* Teil C) wiedergefunden wird. Ein Crash zwischen diesem Ereignis und
|
|
83
|
-
* `imageGenerationFinished` loescht den Auftrag nicht: Er bleibt lesbar,
|
|
84
|
-
* ohne dass irgendein automatischer Retry darauf reagiert.
|
|
85
|
-
*
|
|
86
|
-
* Gilt nur fuer `generated_in_app` — ein externer Import (D-108/D-117)
|
|
87
|
-
* ruft keinen Provider und braucht deshalb kein `started`; sein Nachweis
|
|
88
|
-
* ist das gespeicherte Library-Item selbst.
|
|
89
|
-
*
|
|
90
|
-
* Der Elementreducer ignoriert auch diesen Typ (`default:`-Zweig); gelesen
|
|
91
|
-
* wird mit `collectImageGenerationOrders`.
|
|
92
|
-
*/
|
|
93
|
-
readonly imageGenerationStarted: "szenen.image_generation_started";
|
|
94
|
-
/**
|
|
95
|
-
* Derselbe Bildgenerierungsauftrag endet — Stufe 6.7 (D-119).
|
|
96
|
-
*
|
|
97
|
-
* Erscheint erst **nach** der kanonischen Batch-Persistenz: Ein technischer
|
|
98
|
-
* Fehler zwischen Provideraufruf und Speichern darf nie als `succeeded`
|
|
99
|
-
* protokolliert werden, nur weil der Provider geantwortet hat. Traegt
|
|
100
|
-
* ebenfalls keine Bilddaten — nur Status, Zaehlung und die Item-Kennung,
|
|
101
|
-
* falls eine entstand.
|
|
102
|
-
*/
|
|
103
|
-
readonly imageGenerationFinished: "szenen.image_generation_finished";
|
|
104
|
-
/**
|
|
105
|
-
* Ein Bild-Batch ist kanonisch gespeichert — Stufe 6.9.2, Gate D
|
|
106
|
-
* (D-6.9.2-6).
|
|
107
|
-
*
|
|
108
|
-
* Erscheint erst, **nachdem** jedes Bild des Batches im Bildbestand liegt
|
|
109
|
-
* (`hfUploadImage` + `image_added`, dieselbe Reihenfolge wie
|
|
110
|
-
* `hfImageLibrary.putImage`) — kein Bild gilt als vorhanden, bevor sein
|
|
111
|
-
* Upload bestätigt ist (R3). Trägt bewusst **keine Bilddaten**, nur den
|
|
112
|
-
* vollständigen Metadatennachweis, den `listBatchesForPromptRun()` /
|
|
113
|
-
* `getBatch()` ohne MySQL rekonstruieren können müssen: `item_id`,
|
|
114
|
-
* `prompt_run_id`, `generation_batch_id`, `source_kind`, je Bild
|
|
115
|
-
* `position`, `media_ref`, `asset_id`, `model`, `seed`, `width`/`height`.
|
|
116
|
-
*
|
|
117
|
-
* Additiv wie jedes Ereignis dieser Domain: ein zweiter Batch desselben
|
|
118
|
-
* Laufs ist ein **weiteres** Ereignis mit derselben `item_id`, nicht eine
|
|
119
|
-
* Änderung am ersten (D-113/D-121 — ein Lauf bleibt ein Item). Gilt für
|
|
120
|
-
* `generated_in_app` **und** `external_import` — nur `source_kind`
|
|
121
|
-
* unterscheidet die beiden Schreiber (D-116/D-117/D-120).
|
|
122
|
-
*
|
|
123
|
-
* Der Elementreducer ignoriert auch diesen Typ (`default:`-Zweig); gelesen
|
|
124
|
-
* wird mit `collectImageBatches` (`imageBatchStore.ts`).
|
|
125
|
-
*/
|
|
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";
|
|
180
|
-
};
|
|
181
|
-
/** Ein einzelnes Bild innerhalb von `ImageBatchPersistedPayload` (D-6.9.2-6). */
|
|
182
|
-
interface ImageBatchPersistedImage {
|
|
183
|
-
position: number;
|
|
184
|
-
/** Im aktuellen Host auflösbarer Locator — hier die HF-Bildkennung (D-93). */
|
|
185
|
-
media_ref: string;
|
|
186
|
-
/** Fachlich stabile Identität, soweit bekannt — hier identisch mit `media_ref` (D-118). */
|
|
187
|
-
asset_id?: string;
|
|
188
|
-
/**
|
|
189
|
-
* Der **bestätigte** MIME-Typ der abgelegten Datei — Review 2026-08-18 §5 P2.
|
|
190
|
-
*
|
|
191
|
-
* Additiv nachgetragen, weil der Batch ihn beim Schreiben kennt, ihn aber
|
|
192
|
-
* nicht führte: Der Lesepfad musste die Dateiendung deshalb über zwei
|
|
193
|
-
* Varianten erraten. Geraten wird nichts mehr — der Typ stammt aus den
|
|
194
|
-
* tatsächlichen Bildbytes (`typAusBytes`), nicht aus einer Annahme, und
|
|
195
|
-
* bestimmt den Pfad `images/<id>.<ext>`, unter dem die Datei liegt.
|
|
196
|
-
*
|
|
197
|
-
* Optional, weil ältere Ereignisse ihn nicht tragen; für die fällt der
|
|
198
|
-
* Lesepfad auf den Bestandseintrag zurück.
|
|
199
|
-
*/
|
|
200
|
-
mime_type?: string | null;
|
|
201
|
-
model?: string | null;
|
|
202
|
-
/** Nur gesetzt, wenn der Provider ihn tatsächlich zurückliefert (D-107). */
|
|
203
|
-
seed?: number | null;
|
|
204
|
-
width?: number | null;
|
|
205
|
-
height?: number | null;
|
|
206
|
-
}
|
|
207
|
-
/** Nutzlast von `imageBatchPersisted` — geschrieben nach bestätigtem Bild-Upload. */
|
|
208
|
-
interface ImageBatchPersistedPayload {
|
|
209
|
-
item_id: string;
|
|
210
|
-
prompt_run_id: string;
|
|
211
|
-
generation_batch_id: string;
|
|
212
|
-
source_kind: 'generated_in_app' | 'external_import';
|
|
213
|
-
title: string;
|
|
214
|
-
images: readonly ImageBatchPersistedImage[];
|
|
215
|
-
created_at: string;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Ein Event, wie der Reducer es sieht.
|
|
219
|
-
*
|
|
220
|
-
* Nur `type`, `payload` und `clientId` sind fachlich. `ts` dient allein der
|
|
221
|
-
* **Lesereihenfolge** des Logs und darf nie eine fachliche Vorrangfrage
|
|
222
|
-
* entscheiden — sonst wäre es `MAX(ts)` durch die Hintertür (§2.5, R-3).
|
|
223
|
-
*/
|
|
224
|
-
interface ElementEvent<P = unknown> {
|
|
225
|
-
type: string;
|
|
226
|
-
payload: P;
|
|
227
|
-
clientId: string;
|
|
228
|
-
ts: number;
|
|
229
|
-
}
|
|
230
|
-
/** Ein Befund beim Falten: etwas ist widersprüchlich, aber der Zustand bleibt lesbar. */
|
|
231
|
-
interface ReducerFinding {
|
|
232
|
-
code: 'unbekanntes_element' | 'version_doppelt' | 'version_veraendert' | 'draft_fork' | 'metadata_fork' | 'preferred_head_fork' | 'element_doppelt';
|
|
233
|
-
element_id: string;
|
|
234
|
-
message: string;
|
|
235
|
-
}
|
|
236
|
-
/** Abgeleiteter Zustand über alle Elemente. */
|
|
237
|
-
interface ElementStoreState {
|
|
238
|
-
elements: ReadonlyMap<string, ElementSnapshot>;
|
|
239
|
-
findings: readonly ReducerFinding[];
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Faltet den Event-Log zum Elementzustand.
|
|
243
|
-
*
|
|
244
|
-
* Der Reducer ist rein: gleiche Events, gleicher Zustand — unabhängig von der
|
|
245
|
-
* Eingabereihenfolge.
|
|
246
|
-
*
|
|
247
|
-
* @param events Alle bekannten Szenen-Events; fremde Typen werden übergangen.
|
|
248
|
-
*/
|
|
249
|
-
declare function reduceElementEvents(events: readonly ElementEvent[]): ElementStoreState;
|
|
250
|
-
/** Aktuelle Revision des Entwurfs. `0`, wenn keiner existiert. */
|
|
251
|
-
declare function draftRevisionOf(snapshot: ElementSnapshot | null | undefined): number;
|
|
252
|
-
/**
|
|
253
|
-
* Quellrevision eines gelesenen Event-Logs (D-62 §2.4, D-63 §1.1.2).
|
|
254
|
-
*
|
|
255
|
-
* Die Projektion darf sich nur dann `current` nennen, wenn sie belegen kann,
|
|
256
|
-
* **bis wohin** sie reicht. Dieser Beleg ist die Quellrevision, und sie muss
|
|
257
|
-
* zwei Eigenschaften haben: aus dem Log allein berechenbar (sonst wäre sie eine
|
|
258
|
-
* zweite Buchführung) und für zwei verschiedene Logstände verschieden.
|
|
259
|
-
*
|
|
260
|
-
* Beides leistet `Anzahl@größter-Zeitstempel`. Der Log ist append-only — es
|
|
261
|
-
* verschwindet nie ein Event —, also wächst die Anzahl bei jedem Schreibvorgang.
|
|
262
|
-
* Der Zeitstempel kommt dazu, weil er den Stand für einen Menschen lesbar macht;
|
|
263
|
-
* entscheidend ist die Anzahl.
|
|
264
|
-
*
|
|
265
|
-
* Bewusst **kein** Hash über die Payloads: der wäre teurer und würde
|
|
266
|
-
* Gleichheit über die Zeit versprechen, die der Log ohnehin schon garantiert.
|
|
267
|
-
* Und bewusst hier, nicht im Server: der Projektor rechnet damit, und wer den
|
|
268
|
-
* Stand prüfen will, soll dieselbe Rechnung fahren (R-2).
|
|
269
|
-
*/
|
|
270
|
-
declare function logRevisionOf(events: readonly ElementEvent[]): string;
|
|
271
|
-
/** Aktuelle Revision der Preferred-Head-Auswahl eines Kontexts. `0`, wenn keine existiert. */
|
|
272
|
-
declare function preferredHeadRevisionOf(events: readonly ElementEvent[], elementId: string, contextId: string): number;
|
|
273
|
-
|
|
274
9
|
/** Aktuelle Fassung des Dateiformats. */
|
|
275
10
|
declare const SZENEN_SNAPSHOT_SCHEMA_VERSION = 1;
|
|
276
11
|
/** Namenspräfix des Snapshots im Namensraum bzw. im Dateilog. */
|
|
@@ -656,7 +391,7 @@ declare function sceneOnlyCapabilities(scenePayload: unknown): {
|
|
|
656
391
|
can_place: CapabilityFlag;
|
|
657
392
|
};
|
|
658
393
|
|
|
659
|
-
/** Der
|
|
394
|
+
/** Der Subtyp, der ohne jede weitere Bedingung gilt (Auftrag §1). */
|
|
660
395
|
declare const GENERAL_POLICY_SUBTYPE = "general";
|
|
661
396
|
/**
|
|
662
397
|
* Eine automatisch aufgeloeste Policy — mit vollstaendiger Provenienz (D-22).
|
|
@@ -766,7 +501,14 @@ declare function scenePolicyFingerprint(policies: readonly ResolvedScenePolicy[]
|
|
|
766
501
|
* die Voraussetzung dafuer, dass die Auswahl in dieselbe Konsistenzgrenze
|
|
767
502
|
* faellt wie das Einfrieren der Szene (Gegenpruefung P2).
|
|
768
503
|
*/
|
|
769
|
-
declare function resolveGeneralScenePolicies(snapshot: PolicySnapshot, contextChain: readonly (string | null)[]
|
|
504
|
+
declare function resolveGeneralScenePolicies(snapshot: PolicySnapshot, contextChain: readonly (string | null)[],
|
|
505
|
+
/**
|
|
506
|
+
* Das gewaehlte Zielmodell dieses Laufs, oder `null` fuer einen generischen.
|
|
507
|
+
*
|
|
508
|
+
* Nur seinetwegen kommen `target_model`-Policies ueberhaupt in Betracht;
|
|
509
|
+
* ohne Zielmodell bleibt die Auswahl exakt die von Schritt 03.
|
|
510
|
+
*/
|
|
511
|
+
targetModelElementId?: string | null): ScenePolicyResult;
|
|
770
512
|
|
|
771
513
|
/** Ein Beitrag zur Beschreibung eines Knotens, mit Herkunft (D-50). */
|
|
772
514
|
interface NodeContribution {
|
|
@@ -1079,6 +821,21 @@ interface ResolveShotPayloadInput {
|
|
|
1079
821
|
};
|
|
1080
822
|
};
|
|
1081
823
|
}
|
|
824
|
+
/**
|
|
825
|
+
* Ein vom Aufrufer gewaehltes und bereits aufgeloestes Zielmodell (Kette
|
|
826
|
+
* `szenen-direktlauf-target-model-policy`).
|
|
827
|
+
*
|
|
828
|
+
* Bewusst dieselben Felder, die `targetModelResolution` ohnehin fuehrt: Damit
|
|
829
|
+
* entsteht **kein** zweiter Provenienznachweis neben dem des Shot-Pfads,
|
|
830
|
+
* sondern derselbe, nur aus einer anderen Quelle bestimmt.
|
|
831
|
+
*/
|
|
832
|
+
interface SceneTargetModel {
|
|
833
|
+
element_id: string;
|
|
834
|
+
version_id: string;
|
|
835
|
+
chain_index: number;
|
|
836
|
+
payload: unknown;
|
|
837
|
+
head: PreferredHeadResolution;
|
|
838
|
+
}
|
|
1082
839
|
/**
|
|
1083
840
|
* Löst eine Shot-**Payload** auf, ohne eine veröffentlichte Version zu verlangen.
|
|
1084
841
|
*
|
|
@@ -1107,6 +864,8 @@ interface ResolveScenePayloadInput {
|
|
|
1107
864
|
* gegen die zweite Momentaufnahme bestaetigt (Schritt 03 §3).
|
|
1108
865
|
*/
|
|
1109
866
|
autoPolicies?: readonly ResolvedScenePolicy[];
|
|
867
|
+
/** Das gewaehlte Zielmodell, bereits aufgeloest — oder `null`/fehlend. */
|
|
868
|
+
sceneTargetModel?: SceneTargetModel | null;
|
|
1110
869
|
}
|
|
1111
870
|
/**
|
|
1112
871
|
* Löst eine **Szene allein** zur Renderer-Eingabe auf (D-135).
|
|
@@ -1338,6 +1097,41 @@ interface PromptRunRecord {
|
|
|
1338
1097
|
source?: PromptRunSource;
|
|
1339
1098
|
created_at: string;
|
|
1340
1099
|
}
|
|
1100
|
+
/**
|
|
1101
|
+
* Die Felder, die **nur** das Detail eines Laufs braucht.
|
|
1102
|
+
*
|
|
1103
|
+
* Alle drei sind gross und keines davon steht in einer Liste: `system_prompt`
|
|
1104
|
+
* wird nirgends angezeigt, `raw_output` nur im Diagnosebereich der
|
|
1105
|
+
* aufgeklappten Runde, `input_payload` nur dort, wo aus dem eingefrorenen Lauf
|
|
1106
|
+
* Bilder entstehen. Auf dev machten sie bei zehn Laeufen 74 von 100 kB der
|
|
1107
|
+
* uebertragenen Laufdaten aus.
|
|
1108
|
+
*/
|
|
1109
|
+
declare const PROMPT_RUN_DETAIL_FIELDS: readonly ["system_prompt", "input_payload", "raw_output"];
|
|
1110
|
+
/**
|
|
1111
|
+
* Ein Lauf, wie ihn eine Liste **ueber eine Leitung** bekommt.
|
|
1112
|
+
*
|
|
1113
|
+
* Kein gekuerzter `PromptRunRecord`, sondern ein eigener Typ mit einer
|
|
1114
|
+
* ausdruecklichen Marke: Wer `detail_omitted` sieht, weiss, dass die drei
|
|
1115
|
+
* Felder fehlen, **weil sie nicht mitgeschickt wurden** — und nicht, weil der
|
|
1116
|
+
* Lauf sie nicht hat. Genau diese Unterscheidung ginge verloren, wenn die
|
|
1117
|
+
* Felder am `PromptRunRecord` optional wuerden: Ein leeres `raw_output` saehe
|
|
1118
|
+
* dann aus wie ein Lauf ohne Modellantwort (Regel 4).
|
|
1119
|
+
*
|
|
1120
|
+
* Ein Host, der seinen Bestand **ohne** Transport faltet (der Ereignislog in
|
|
1121
|
+
* Flow), setzt die Marke nicht und liefert weiterhin volle Saetze. Die Ansicht
|
|
1122
|
+
* braucht dafuer keinen zweiten Weg: Sie laedt das Detail nach, wenn die Marke
|
|
1123
|
+
* steht, und sonst nicht.
|
|
1124
|
+
*/
|
|
1125
|
+
interface PromptRunListRecord extends Omit<PromptRunRecord, 'system_prompt' | 'input_payload' | 'raw_output'> {
|
|
1126
|
+
detail_omitted: true;
|
|
1127
|
+
system_prompt?: undefined;
|
|
1128
|
+
input_payload?: undefined;
|
|
1129
|
+
raw_output?: undefined;
|
|
1130
|
+
}
|
|
1131
|
+
/** Ein Lauf in einer Seite — voll, oder als Listenprojektion. */
|
|
1132
|
+
type PromptRunPageRecord = PromptRunRecord | PromptRunListRecord;
|
|
1133
|
+
/** Ob einem Lauf die Detailfelder fehlen, weil die Liste sie nicht uebertraegt. */
|
|
1134
|
+
declare function detailFehlt(run: PromptRunPageRecord): run is PromptRunListRecord;
|
|
1341
1135
|
/**
|
|
1342
1136
|
* Die Herkunft eines Laufs, auch bei einem Satz von vor 6.6.
|
|
1343
1137
|
*
|
|
@@ -1346,7 +1140,7 @@ interface PromptRunRecord {
|
|
|
1346
1140
|
* Damit muss kein Konsument zwei Datenformen kennen — und trotzdem wurde kein
|
|
1347
1141
|
* einziges Ereignis angefasst.
|
|
1348
1142
|
*/
|
|
1349
|
-
declare function sourceOf(run:
|
|
1143
|
+
declare function sourceOf(run: PromptRunPageRecord): PromptRunSource;
|
|
1350
1144
|
/** Nutzlast des Ereignisses. Identisch mit dem Datensatz — ein Lauf ändert sich nie. */
|
|
1351
1145
|
type PromptRunRecordedPayload = PromptRunRecord;
|
|
1352
1146
|
/**
|
|
@@ -1394,9 +1188,9 @@ type PromptRunGroup = {
|
|
|
1394
1188
|
* zusammenführt. Es entsteht **kein** neues Herkunftsfeld am Lauf; die Gruppe
|
|
1395
1189
|
* wird bei jedem Lesen aus dem berechnet, was ohnehin dasteht.
|
|
1396
1190
|
*/
|
|
1397
|
-
declare function groupOf(run:
|
|
1191
|
+
declare function groupOf(run: PromptRunPageRecord): PromptRunGroup;
|
|
1398
1192
|
/** Nur der Schlüssel der Bezugsgruppe — für Vergleiche und Filter. */
|
|
1399
|
-
declare function groupKeyOf(run:
|
|
1193
|
+
declare function groupKeyOf(run: PromptRunPageRecord): string;
|
|
1400
1194
|
/**
|
|
1401
1195
|
* Die Geschwister eines Laufs: alle Läufe **seiner** Bezugsgruppe.
|
|
1402
1196
|
*
|
|
@@ -1423,7 +1217,7 @@ declare function siblingsOf(run: PromptRunRecord, alle: readonly PromptRunRecord
|
|
|
1423
1217
|
* `null` heisst: Es gibt kein benennbares Element. Dann bleibt es bei „Runde
|
|
1424
1218
|
* n" — ein erfundener Titel wäre schlimmer als keiner (D-75).
|
|
1425
1219
|
*/
|
|
1426
|
-
declare function namingElementOf(run:
|
|
1220
|
+
declare function namingElementOf(run: PromptRunPageRecord): string | null;
|
|
1427
1221
|
/**
|
|
1428
1222
|
* Der Arbeitskontext, in dem ein Lauf entstanden ist.
|
|
1429
1223
|
*
|
|
@@ -1483,6 +1277,167 @@ interface PromptRunListing {
|
|
|
1483
1277
|
* Eingabe bleibt erhalten.
|
|
1484
1278
|
*/
|
|
1485
1279
|
declare function selectPromptRuns(alle: readonly PromptRunRecord[], filter?: PromptRunFilter): PromptRunListing;
|
|
1280
|
+
/**
|
|
1281
|
+
* Woher die Laeufe einer Seite kommen.
|
|
1282
|
+
*
|
|
1283
|
+
* Genau die vier Einstiege, die es ohnehin gibt — `listAllRuns` und die drei
|
|
1284
|
+
* verankerten Abfragen. Hier entsteht **keine** fuenfte Herkunft und keine
|
|
1285
|
+
* neue Zuordnungsregel: `'all'` heisst „ohne Anker", die drei anderen
|
|
1286
|
+
* vergleichen denselben `groupKeyOf`, den auch die Geschwister benutzen.
|
|
1287
|
+
*/
|
|
1288
|
+
type PromptRunPageSource = {
|
|
1289
|
+
kind: 'all';
|
|
1290
|
+
} | {
|
|
1291
|
+
kind: 'published';
|
|
1292
|
+
shotVersionId: string;
|
|
1293
|
+
} | {
|
|
1294
|
+
kind: 'draft_chain';
|
|
1295
|
+
chainId: string;
|
|
1296
|
+
} | {
|
|
1297
|
+
kind: 'scene';
|
|
1298
|
+
sceneElementId: string;
|
|
1299
|
+
};
|
|
1300
|
+
/** Der Herkunftsfilter der gemeinsamen Sicht — dieselben Namen wie `PromptRunGroup`. */
|
|
1301
|
+
type PromptRunOriginFilter = PromptRunGroup['kind'];
|
|
1302
|
+
interface PromptRunPageFilter extends PromptRunFilter {
|
|
1303
|
+
/** Nur Laeufe dieser Herkunft. Weglassen heisst „alle Herkuenfte". */
|
|
1304
|
+
origin?: PromptRunOriginFilter;
|
|
1305
|
+
}
|
|
1306
|
+
interface PromptRunPageInput {
|
|
1307
|
+
source?: PromptRunPageSource;
|
|
1308
|
+
filter?: PromptRunPageFilter;
|
|
1309
|
+
/** Ohne Angabe wird nicht geschnitten — dann ist die Seite der ganze Bestand. */
|
|
1310
|
+
page?: PageRequest | null;
|
|
1311
|
+
/**
|
|
1312
|
+
* Die direkten Prompt-Tags des **ganzen** Bestands, wie
|
|
1313
|
+
* `collectPromptRunTags()` sie aus demselben Log faltet.
|
|
1314
|
+
*
|
|
1315
|
+
* Sie gehen hier hinein und nicht in einen zweiten Aufruf, weil die Seite
|
|
1316
|
+
* genau die Tags ihrer zehn Laeufe mitbringen soll — ein Nachschlagen je
|
|
1317
|
+
* Karte waere die N+1-Abfrage, die diese Kette ausdruecklich vermeidet.
|
|
1318
|
+
* Fehlt die Angabe, traegt die Seite einen leeren Tagsatz; das heisst „nicht
|
|
1319
|
+
* mitgeliefert", und die Ansicht zeigt dann nur, was sie hat.
|
|
1320
|
+
*/
|
|
1321
|
+
tags?: ReadonlyMap<string, readonly LibraryTagRef[]>;
|
|
1322
|
+
/**
|
|
1323
|
+
* Bildanzahl, Vorschau und Library-Tags je Lauf — wie
|
|
1324
|
+
* `annotateRunsFromEvents()` sie liefert.
|
|
1325
|
+
*
|
|
1326
|
+
* Auch das geht **hier** hinein und nicht in einen Aufruf je Karte: Die
|
|
1327
|
+
* Bild-Batches liegen in demselben Log wie die Laeufe, und die Seite bringt
|
|
1328
|
+
* die Zahlen ihrer zehn Laeufe mit.
|
|
1329
|
+
*/
|
|
1330
|
+
annotations?: ReadonlyMap<string, PromptRunAnnotation>;
|
|
1331
|
+
/**
|
|
1332
|
+
* Der Titel je **Element**, wie ihn der gefaltete Bestand kennt.
|
|
1333
|
+
*
|
|
1334
|
+
* Aus demselben Grund hier wie Tags und Bildzahlen: Der Name eines Laufs ist
|
|
1335
|
+
* der Titel des Elements, aus dem er entstand (`namingElementOf`), und der
|
|
1336
|
+
* steht in demselben Log. Ihn je Karte einzeln zu lesen hiess bisher, nach
|
|
1337
|
+
* der Seite noch einmal **je Element** eine Abfrage zu stellen — nacheinander,
|
|
1338
|
+
* weil eine Liste sonst zehn gleichzeitig ausloeste.
|
|
1339
|
+
*
|
|
1340
|
+
* Fehlt die Angabe, traegt die Seite keine Titel; die Ansicht loest sie dann
|
|
1341
|
+
* weiterhin selbst auf. Es entsteht keine zweite Namensregel: **welches**
|
|
1342
|
+
* Element benennt, entscheidet nach wie vor `namingElementOf()`.
|
|
1343
|
+
*/
|
|
1344
|
+
titles?: ReadonlyMap<string, string>;
|
|
1345
|
+
}
|
|
1346
|
+
/**
|
|
1347
|
+
* Eine Seite Laeufe, **neueste zuerst**, mit allem, was die Anzeige sonst aus
|
|
1348
|
+
* dem Gesamtbestand hatte.
|
|
1349
|
+
*
|
|
1350
|
+
* Warum die Rundennummern mitkommen: Die Runde ist der Platz eines Laufs unter
|
|
1351
|
+
* seinen Geschwistern (U23) — sie laesst sich aus zehn von achthundert Laeufen
|
|
1352
|
+
* nicht ausrechnen. Statt dafuer wieder alles zu uebertragen, rechnet die Seite
|
|
1353
|
+
* sie dort aus, wo der volle Bestand ohnehin liegt, und schickt genau die
|
|
1354
|
+
* Nummern der gezeigten Laeufe mit. Es entsteht keine zweite Zaehlung: dieselbe
|
|
1355
|
+
* Gruppierung, dieselbe Reihenfolge, derselbe 1-basierte Platz wie
|
|
1356
|
+
* `roundOfRun(lauf, siblingsOf(lauf, alle))`.
|
|
1357
|
+
*/
|
|
1358
|
+
interface PromptRunPage extends Omit<PromptRunListing, 'runs'>, Page<PromptRunPageRecord> {
|
|
1359
|
+
/**
|
|
1360
|
+
* Dieselben Saetze wie `items` — `runs` bleibt der Name der Laufliste.
|
|
1361
|
+
*
|
|
1362
|
+
* Ueber eine Leitung sind es Listenprojektionen (`detail_omitted`), im
|
|
1363
|
+
* lokal faltenden Host volle Saetze. Die Ansicht unterscheidet das mit
|
|
1364
|
+
* `detailFehlt()` und laedt nur im ersten Fall nach.
|
|
1365
|
+
*/
|
|
1366
|
+
runs: readonly PromptRunPageRecord[];
|
|
1367
|
+
/** Rundennummer je `run_id`, nur fuer die Laeufe dieser Seite. */
|
|
1368
|
+
rounds: Readonly<Record<string, number>>;
|
|
1369
|
+
/** Laeufe, die der Herkunftsfilter ausgeblendet hat. */
|
|
1370
|
+
hiddenByOrigin: number;
|
|
1371
|
+
/**
|
|
1372
|
+
* Die **direkten** Tags je `run_id`, nur fuer die Laeufe dieser Seite.
|
|
1373
|
+
*
|
|
1374
|
+
* Ein Lauf ohne Eintrag hat keine Prompt-Tags. Getrennt von `annotations`
|
|
1375
|
+
* gefuehrt, weil diese Tags aus demselben Log stammen wie die Laeufe und
|
|
1376
|
+
* jeder Host sie hat — auch einer ohne Library-Bestand.
|
|
1377
|
+
*/
|
|
1378
|
+
promptTags: Readonly<Record<string, readonly LibraryTagRef[]>>;
|
|
1379
|
+
/**
|
|
1380
|
+
* Der Anzeigename je `run_id`, nur fuer die Laeufe dieser Seite und nur, wo
|
|
1381
|
+
* das benennende Element einen Titel hat.
|
|
1382
|
+
*
|
|
1383
|
+
* Ein Lauf ohne Eintrag bleibt titellos und heisst „Runde n" — ein aus der
|
|
1384
|
+
* `run_id` gebastelter Name saehe aus wie ein echter (D-75).
|
|
1385
|
+
*/
|
|
1386
|
+
titles?: Readonly<Record<string, string>>;
|
|
1387
|
+
/**
|
|
1388
|
+
* Bildanzahl, Vorschau und Library-Tags je `run_id` — nur wenn der Host sie
|
|
1389
|
+
* liefern kann. Fehlt das Feld, weiss die Ansicht es nicht und sagt das.
|
|
1390
|
+
*/
|
|
1391
|
+
annotations?: Readonly<Record<string, PromptRunAnnotation>>;
|
|
1392
|
+
}
|
|
1393
|
+
/**
|
|
1394
|
+
* Die Rundennummer **jedes** Laufs des uebergebenen Bestands.
|
|
1395
|
+
*
|
|
1396
|
+
* Gerechnet auf der chronologischen Reihenfolge, die `collectPromptRuns`
|
|
1397
|
+
* liefert — nicht auf der Anzeigereihenfolge. Die Anzeige dreht sich um; die
|
|
1398
|
+
* Rundenzaehlung tut es nicht, sonst hiesse derselbe Lauf morgen anders.
|
|
1399
|
+
*/
|
|
1400
|
+
declare function roundsOf(alle: readonly PromptRunRecord[]): ReadonlyMap<string, number>;
|
|
1401
|
+
/**
|
|
1402
|
+
* Der eine Seitenschnitt fuer Prompt-Laeufe — Server wie Client.
|
|
1403
|
+
*
|
|
1404
|
+
* Reine Funktion ueber einem bereits gelesenen Bestand, genau wie
|
|
1405
|
+
* `selectPromptRuns`, das sie benutzt. Damit gilt der Bezugsrahmen (Status,
|
|
1406
|
+
* Kontext) an beiden Enden unveraendert; dazu kommen Herkunft, Umkehrung und
|
|
1407
|
+
* Schnitt.
|
|
1408
|
+
*
|
|
1409
|
+
* @param alle Der Bestand in der Reihenfolge von `collectPromptRuns`.
|
|
1410
|
+
* @throws Wenn der Cursor in der gefilterten Liste nicht vorkommt (`pageOf`).
|
|
1411
|
+
*/
|
|
1412
|
+
declare function pagePromptRuns(alle: readonly PromptRunRecord[], input?: PromptRunPageInput): PromptRunPage;
|
|
1413
|
+
/**
|
|
1414
|
+
* Eine Seite, wie sie **ueber eine Leitung** geht — Kette `szenen-promptliste-transport`.
|
|
1415
|
+
*
|
|
1416
|
+
* Zwei Dinge fallen weg, beide gemessen an `GET /api2/szenen/prompt-runs/page`
|
|
1417
|
+
* auf dev mit zehn Laeufen (203 kB):
|
|
1418
|
+
*
|
|
1419
|
+
* 1. **`items`.** Die Seite trug die Laufliste zweimal: einmal als `runs`,
|
|
1420
|
+
* einmal als `items` aus dem `Page<T>`-Vertrag. Im JSON sind das zwei
|
|
1421
|
+
* vollstaendige Kopien — 100 der 203 kB. Der Vertrag bleibt: Der Adapter
|
|
1422
|
+
* auf der anderen Seite setzt `items` aus `runs` wieder zusammen, statt es
|
|
1423
|
+
* zu uebertragen.
|
|
1424
|
+
* 2. **Die Detailfelder** (`PROMPT_RUN_DETAIL_FIELDS`). 74 der uebrigen 100 kB,
|
|
1425
|
+
* und keines davon zeigt die Liste. Was bleibt, ist als
|
|
1426
|
+
* `PromptRunListRecord` **markiert**, damit die Ansicht ein fehlendes Feld
|
|
1427
|
+
* nicht fuer eine Aussage ueber den Lauf haelt.
|
|
1428
|
+
*
|
|
1429
|
+
* Rein und ohne Host: `items` wegzulassen ist eine Transportentscheidung, und
|
|
1430
|
+
* sie gehoert neben den Seitenschnitt, nicht in einen Controller.
|
|
1431
|
+
*/
|
|
1432
|
+
declare function promptRunPageForTransport(seite: PromptRunPage): Omit<PromptRunPage, 'items'>;
|
|
1433
|
+
/**
|
|
1434
|
+
* Die Gegenrichtung: `items` aus `runs` zuruecklegen.
|
|
1435
|
+
*
|
|
1436
|
+
* Der `Page<T>`-Vertrag gilt im Client unveraendert — er wurde nur nicht
|
|
1437
|
+
* uebertragen. Ohne diesen Schritt fehlte `items` still, und jeder kuenftige
|
|
1438
|
+
* Aufrufer von `Page<T>` saehe eine leere Seite statt eines Fehlers.
|
|
1439
|
+
*/
|
|
1440
|
+
declare function promptRunPageFromTransport(roh: Omit<PromptRunPage, 'items'>): PromptRunPage;
|
|
1486
1441
|
|
|
1487
1442
|
/**
|
|
1488
1443
|
* Ein Vorschlag, so wie er im Ereignis steht.
|
|
@@ -1816,6 +1771,13 @@ interface FreezeSceneSuccess {
|
|
|
1816
1771
|
* eingefrorene Lauf traegt weiterhin ausschliesslich `input`.
|
|
1817
1772
|
*/
|
|
1818
1773
|
policies: readonly ResolvedScenePolicy[];
|
|
1774
|
+
/**
|
|
1775
|
+
* Das eingefrorene Zielmodell, oder `null` fuer einen generischen Lauf.
|
|
1776
|
+
*
|
|
1777
|
+
* Wie `policies` redundant zu `input` und trotzdem hier: Der Aufrufer sieht
|
|
1778
|
+
* die Provenienz, ohne sie aus `renderer_input` zurueckrechnen zu muessen.
|
|
1779
|
+
*/
|
|
1780
|
+
targetModel: FrozenSceneTargetModel | null;
|
|
1819
1781
|
}
|
|
1820
1782
|
type FreezeSceneResult = FreezeSceneSuccess | FreezeFailure;
|
|
1821
1783
|
interface FreezeSceneWorkingStateInput {
|
|
@@ -1825,6 +1787,38 @@ interface FreezeSceneWorkingStateInput {
|
|
|
1825
1787
|
resolver: ReferenceResolver;
|
|
1826
1788
|
contextChain: readonly (string | null)[];
|
|
1827
1789
|
userInstruction?: string | null;
|
|
1790
|
+
/**
|
|
1791
|
+
* Das gewaehlte Zielmodell (Kette `szenen-direktlauf-target-model-policy`).
|
|
1792
|
+
*
|
|
1793
|
+
* Optional: Ohne Angabe bleibt der Ablauf exakt der generische von D-135 —
|
|
1794
|
+
* kein Zielmodell im `RendererInput`, keine `target_model`-Policy.
|
|
1795
|
+
*/
|
|
1796
|
+
targetModelElementId?: string | null;
|
|
1797
|
+
}
|
|
1798
|
+
/**
|
|
1799
|
+
* Das gewaehlte Zielmodell eines Szene-Direktlaufs — Kette
|
|
1800
|
+
* `szenen-direktlauf-target-model-policy`, Schritt 01.
|
|
1801
|
+
*
|
|
1802
|
+
* **Warum ueber die `element_id` und nicht ueber den Key.** Der Shot-Pfad sucht
|
|
1803
|
+
* ein Zielmodell ueber `prompt_render_settings.target_model_id`, also ueber
|
|
1804
|
+
* einen freien Key entlang der Kette — mit allen Ausgaengen, die dazugehoeren
|
|
1805
|
+
* (`not_found`, `ambiguous`, `retired`, `fork`). Der Szene-Direktlauf bekommt
|
|
1806
|
+
* das Modell dagegen von einem Menschen ausgewaehlt, und der waehlt es aus
|
|
1807
|
+
* einer Liste, die schon aufgeloest ist. Die Kennung ist damit eindeutig, und
|
|
1808
|
+
* sie ist dieselbe, die eine `target_model`-Policy in
|
|
1809
|
+
* `applicable_target_models` nennt. Eine zweite Suche ueber einen geratenen
|
|
1810
|
+
* Namen waere fehleranfaelliger als die Kennung, die vorliegt.
|
|
1811
|
+
*
|
|
1812
|
+
* Die **Version** waehlt trotzdem niemand von Hand: Sie kommt aus derselben
|
|
1813
|
+
* D-36-Preferred-Head-Aufloesung wie der Arbeitsstand der Szene daneben.
|
|
1814
|
+
*/
|
|
1815
|
+
interface FrozenSceneTargetModel {
|
|
1816
|
+
element_id: string;
|
|
1817
|
+
version_id: string;
|
|
1818
|
+
/** Glied der Kontextkette, auf dem das Element liegt. `0` = Arbeitskontext. */
|
|
1819
|
+
chain_index: number;
|
|
1820
|
+
payload: unknown;
|
|
1821
|
+
head: PreferredHeadResolution;
|
|
1828
1822
|
}
|
|
1829
1823
|
/**
|
|
1830
1824
|
* Friert den Arbeitsstand **einer Szene** ein und baut die Renderer-Eingabe
|
|
@@ -2879,6 +2873,113 @@ declare function claimWon(job: ImageJob | null, claimId: string): boolean;
|
|
|
2879
2873
|
*/
|
|
2880
2874
|
declare function generationBatchIdOf(jobId: string): string;
|
|
2881
2875
|
|
|
2876
|
+
/**
|
|
2877
|
+
* Die Statusgruppen, nach denen der Bereich filtert (§3).
|
|
2878
|
+
*
|
|
2879
|
+
* Bewusst **Gruppen** und nicht die rohen Auftragszustaende: Fuer die
|
|
2880
|
+
* Bedienung zaehlt „offen / laeuft / fertig / fehlgeschlagen", und
|
|
2881
|
+
* `succeeded` von `partial` zu trennen waere ein Filter, den niemand braucht.
|
|
2882
|
+
* Die genauen Zustaende stehen weiterhin an jedem Auftrag.
|
|
2883
|
+
*/
|
|
2884
|
+
type ImageJobStatusFilter = 'pending' | 'claimed' | 'done' | 'failed' | 'all';
|
|
2885
|
+
/** Ob ein Auftrag noch auf Uebernahme wartet — der Arbeitsvorrat. */
|
|
2886
|
+
declare function istOffen(job: ImageJob): boolean;
|
|
2887
|
+
/**
|
|
2888
|
+
* Die Herkunft eines Auftrags, soweit **aus derselben Faltung** sicher
|
|
2889
|
+
* auflösbar (§3, §8 Regel 3).
|
|
2890
|
+
*
|
|
2891
|
+
* `null`-Felder heissen „steht nicht im Bestand", nicht „unbekannt geraten":
|
|
2892
|
+
* Ein Auftrag, dessen Lauf hier nicht liegt, bekommt keinen erfundenen Titel
|
|
2893
|
+
* (Regel 4).
|
|
2894
|
+
*/
|
|
2895
|
+
interface ImageJobHerkunft {
|
|
2896
|
+
run_id: string;
|
|
2897
|
+
/** Der Titel des benennenden Elements — meist die Szene. */
|
|
2898
|
+
szene_titel: string | null;
|
|
2899
|
+
/** Die Kennung dieses Elements, auch wenn kein Titel auflösbar war. */
|
|
2900
|
+
szene_element_id: string | null;
|
|
2901
|
+
/** Ein kurzer Ausschnitt des eingefrorenen positiven Prompts. */
|
|
2902
|
+
prompt_auszug: string | null;
|
|
2903
|
+
/** Ob der Lauf selbst im Bestand liegt. `false` → alle Felder oben sind leer. */
|
|
2904
|
+
lauf_gefunden: boolean;
|
|
2905
|
+
}
|
|
2906
|
+
/** Ein Auftrag mit seiner gemeinsam geladenen Herkunft. */
|
|
2907
|
+
interface ImageJobEintrag {
|
|
2908
|
+
job: ImageJob;
|
|
2909
|
+
herkunft: ImageJobHerkunft;
|
|
2910
|
+
}
|
|
2911
|
+
/** Wie viele Zeichen des Prompts in einer Zeile stehen. */
|
|
2912
|
+
declare const PROMPT_AUSZUG_ZEICHEN = 160;
|
|
2913
|
+
interface ImageJobQuery {
|
|
2914
|
+
/** Vorgabe: `pending` — der Bereich ist eine Arbeitsqueue, kein Archiv. */
|
|
2915
|
+
status?: ImageJobStatusFilter;
|
|
2916
|
+
/** Hoechstens so viele Eintraege je Seite. Fehlt: alle. */
|
|
2917
|
+
limit?: number;
|
|
2918
|
+
/** Die Auftragskennung, **nach** der weitergelesen wird. */
|
|
2919
|
+
cursor?: string | null;
|
|
2920
|
+
}
|
|
2921
|
+
interface ImageJobSeite {
|
|
2922
|
+
eintraege: readonly ImageJobEintrag[];
|
|
2923
|
+
/** Die Kennung fuer die naechste Seite, oder `null` — dann ist es vollstaendig. */
|
|
2924
|
+
nextCursor: string | null;
|
|
2925
|
+
/** Wie viele Auftraege der Filter insgesamt trifft, unabhaengig vom Schnitt. */
|
|
2926
|
+
gesamt: number;
|
|
2927
|
+
/**
|
|
2928
|
+
* Wie viele Auftraege des Bestands **offen** sind — unabhaengig von Filter
|
|
2929
|
+
* und Seitenschnitt.
|
|
2930
|
+
*
|
|
2931
|
+
* Der Arbeitsvorrat muss vollstaendig ablesbar bleiben, auch wenn die Seite
|
|
2932
|
+
* ihn nicht ganz zeigt (§8 Regel 4).
|
|
2933
|
+
*/
|
|
2934
|
+
offen: number;
|
|
2935
|
+
}
|
|
2936
|
+
/**
|
|
2937
|
+
* Die bestandsweite Auftragsliste aus **einem** Ereignisstrom.
|
|
2938
|
+
*
|
|
2939
|
+
* `storeId` schneidet auf den Bestand dieses Hosts zu — dieselbe Bindung, an
|
|
2940
|
+
* der `claimAndRun()` eine fremde Uebernahme ablehnt. Ein Auftrag eines
|
|
2941
|
+
* anderen Bestands gehoert nicht in diese Liste: Er waere hier weder
|
|
2942
|
+
* ausfuehrbar noch auffindbar.
|
|
2943
|
+
*
|
|
2944
|
+
* Ein unbekannter `cursor` ist ein **Fehler** und kein leeres Ergebnis
|
|
2945
|
+
* (Regel 4): Er bedeutet, dass die Seite auf einem Stand aufsetzt, den es
|
|
2946
|
+
* nicht mehr gibt.
|
|
2947
|
+
*/
|
|
2948
|
+
declare function selectImageJobs(events: readonly ElementEvent[], storeId: string, query?: ImageJobQuery): ImageJobSeite;
|
|
2949
|
+
/** Das zuletzt gesicherte Bild des Bestands, mit seinem Nachweis (§5). */
|
|
2950
|
+
interface LetztesErzeugtesBild {
|
|
2951
|
+
/** Der Auftrag, aus dem dieser Batch stammt — `null` bei einem Batch ohne Auftrag. */
|
|
2952
|
+
job: ImageJob | null;
|
|
2953
|
+
prompt_run_id: string;
|
|
2954
|
+
item_id: string;
|
|
2955
|
+
generation_batch_id: string;
|
|
2956
|
+
/** Das **letzte** Bild dieses Batches — das zuletzt entstandene. */
|
|
2957
|
+
bild: PromptBatchImageRef;
|
|
2958
|
+
/** Seine Stelle im Batch, 1-basiert, und die Batchgroesse — „4 / 4". */
|
|
2959
|
+
position: number;
|
|
2960
|
+
anzahl: number;
|
|
2961
|
+
/** Der Zeitpunkt aus dem Ereignis, nicht aus einer lokalen Uhr. */
|
|
2962
|
+
gespeichert_am: string | null;
|
|
2963
|
+
/** Das Zielmodell des Auftrags, soweit es einen gibt. */
|
|
2964
|
+
execution_target_model_key: string | null;
|
|
2965
|
+
/** Die Herkunft des Laufs, in derselben Form wie in der Liste. */
|
|
2966
|
+
herkunft: ImageJobHerkunft | null;
|
|
2967
|
+
}
|
|
2968
|
+
/**
|
|
2969
|
+
* Das zuletzt gesicherte Bild dieses Bestands.
|
|
2970
|
+
*
|
|
2971
|
+
* **Bestimmt ueber die Ereignisreihenfolge**, nicht ueber Dateinamen oder
|
|
2972
|
+
* lokale Zeitstempel (§5.1): Das letzte `image_batch_persisted` im Log ist
|
|
2973
|
+
* das zuletzt gesicherte, auch wenn eine Hostuhr falsch geht.
|
|
2974
|
+
*
|
|
2975
|
+
* Der Zuschnitt auf den Bestand laeuft ueber die Auftraege: Ein Batch, dessen
|
|
2976
|
+
* `generation_batch_id` zu einem Auftrag dieses Bestands gehoert, zaehlt
|
|
2977
|
+
* sicher dazu. Ein Batch ohne Auftrag — etwa aus „Bilder erzeugen" im Lauf —
|
|
2978
|
+
* zaehlt ebenfalls, denn er steht im Log **dieses** Bestands; ein fremder
|
|
2979
|
+
* Bestand hat sein eigenes Log.
|
|
2980
|
+
*/
|
|
2981
|
+
declare function letztesErzeugtesBild(events: readonly ElementEvent[], storeId: string): LetztesErzeugtesBild | null;
|
|
2982
|
+
|
|
2882
2983
|
/**
|
|
2883
2984
|
* Was der Auftragskanal braucht.
|
|
2884
2985
|
*
|
|
@@ -2936,6 +3037,28 @@ interface SzenenImageJobPort {
|
|
|
2936
3037
|
listJobs(runId: string): Promise<QueryResult<readonly ImageJob[]>>;
|
|
2937
3038
|
/** Beansprucht einen wartenden Auftrag und fuehrt ihn als Gewinner aus. */
|
|
2938
3039
|
claimAndRun(jobId: string): Promise<ClaimAndRunResult>;
|
|
3040
|
+
/**
|
|
3041
|
+
* Die Auftraege des **Bestands**, unabhaengig vom Prompt-Lauf — Kette
|
|
3042
|
+
* `szenen-bildauftraege-arbeitsqueue`, §8.
|
|
3043
|
+
*
|
|
3044
|
+
* Sie entsteht aus **einem** Lesevorgang derselben autoritativen Projektion,
|
|
3045
|
+
* die `listJobs()` benutzt. Der Weg ueber alle Laeufe plus `listJobs(runId)`
|
|
3046
|
+
* je Lauf waere dieselbe Liste zum N+1-fachen Preis (§8 Regel 1) — und die
|
|
3047
|
+
* Auftraege stehen ohnehin im Log, nicht am Lauf.
|
|
3048
|
+
*
|
|
3049
|
+
* Optional wie jede Portoperation dieses Projekts: Ein Host ohne sie
|
|
3050
|
+
* bekommt den Arbeitsbereich nicht, statt einen leeren zu bekommen.
|
|
3051
|
+
*/
|
|
3052
|
+
listAllJobs?(query?: ImageJobQuery): Promise<QueryResult<ImageJobSeite>>;
|
|
3053
|
+
/**
|
|
3054
|
+
* Das zuletzt gesicherte Bild dieses Bestands — die Vorschau „Letztes
|
|
3055
|
+
* erzeugtes Bild" (§5).
|
|
3056
|
+
*
|
|
3057
|
+
* Bestimmt ueber die **Ereignisreihenfolge** des autoritativen Logs, nicht
|
|
3058
|
+
* ueber Dateinamen oder lokale Zeitstempel (§5.1). Erzwingt **keine** Kopie
|
|
3059
|
+
* in die Library: Gelesen wird der vorhandene Batch-Nachweis (§5.2).
|
|
3060
|
+
*/
|
|
3061
|
+
latestImage?(): Promise<QueryResult<LetztesErzeugtesBild | null>>;
|
|
2939
3062
|
}
|
|
2940
3063
|
interface CreateImageJobPortOptions {
|
|
2941
3064
|
channel: ImageJobChannel;
|
|
@@ -3111,6 +3234,70 @@ interface SzenenRunPort {
|
|
|
3111
3234
|
* `promptOverview: false`, und die Ansicht nennt den Grund (§8).
|
|
3112
3235
|
*/
|
|
3113
3236
|
listAllRuns?(filter?: PromptRunFilter): Promise<QueryResult<PromptRunListing>>;
|
|
3237
|
+
/**
|
|
3238
|
+
* Legt einen **manuell erfassten** Promptlauf in einer Szene an — Kette
|
|
3239
|
+
* `szenen-manuell-angepasste-promptlaeufe`, Schritt 01.
|
|
3240
|
+
*
|
|
3241
|
+
* Derselbe Weg wie `startRunFromScene`, nur ohne den Modellaufruf: Kontext
|
|
3242
|
+
* ermitteln, Kette auflösen, einfrieren (D-97), Lauf ablegen. Es entsteht
|
|
3243
|
+
* kein zweites Laufformat und keine zweite Ablage — der Lauf ist danach ein
|
|
3244
|
+
* ganz normaler Szene-Direktlauf und über dieselben Abfragen erreichbar.
|
|
3245
|
+
*
|
|
3246
|
+
* Dieselben drei Fehlausgänge wie beim Szenenlauf, und aus demselben Grund:
|
|
3247
|
+
* Konflikt, fachlicher Mangel und technischer Fehler sind verschiedene
|
|
3248
|
+
* Auskünfte. Hier gilt in **jedem** Fall: Es wurde kein Modell gerufen — auch
|
|
3249
|
+
* im Erfolgsfall nicht.
|
|
3250
|
+
*
|
|
3251
|
+
* Optional wie `listAllRuns`, und aus demselben Grund: Ein Host ohne diese
|
|
3252
|
+
* Operation verliert genau die eine Aktion, und `capabilitiesOf()` meldet
|
|
3253
|
+
* `manualPromptRun: false`, damit die Ansicht den Grund nennt statt ein
|
|
3254
|
+
* Formular zu zeigen, das nichts ablegen kann (§8). Ein Pflichtmitglied
|
|
3255
|
+
* hätte ausserdem jeden bestehenden Implementierer der öffentlichen
|
|
3256
|
+
* Schnittstelle gebrochen.
|
|
3257
|
+
*/
|
|
3258
|
+
addManualSceneRun?(input: AddManualSceneRunInput): Promise<StartRunFromDraftResult>;
|
|
3259
|
+
/**
|
|
3260
|
+
* **Eine Seite** Laeufe, neueste zuerst — Kette `szenen-listen-pagination`.
|
|
3261
|
+
*
|
|
3262
|
+
* Sie ersetzt die vier Abfragen darueber nicht, sie schneidet sie: derselbe
|
|
3263
|
+
* Bestand, derselbe Bezugsrahmen (`selectPromptRuns`), dieselbe
|
|
3264
|
+
* Gruppierungsregel — nur nicht mehr alles auf einmal. Welcher Einstieg
|
|
3265
|
+
* gemeint ist, steht in `source`; damit gibt es **eine** seitenweise
|
|
3266
|
+
* Operation statt vier, und die Ansicht hat eine Ladefunktion statt vier.
|
|
3267
|
+
*
|
|
3268
|
+
* Die Rundennummern kommen mit (`PromptRunPage.rounds`). Ohne sie muesste die
|
|
3269
|
+
* Ansicht wieder den vollen Bestand lesen, um den Platz eines Laufs unter
|
|
3270
|
+
* seinen Geschwistern zu kennen (U23) — genau das, was der Seitenschnitt
|
|
3271
|
+
* vermeiden soll. Es entsteht keine zweite Zaehlung: gerechnet wird mit
|
|
3272
|
+
* derselben Regel, dort wo der volle Bestand ohnehin liegt.
|
|
3273
|
+
*
|
|
3274
|
+
* Optional wie `listAllRuns`, und aus demselben Grund: Ein Pflichtmitglied
|
|
3275
|
+
* haette jeden bestehenden Implementierer der oeffentlichen Schnittstelle
|
|
3276
|
+
* gebrochen. Fehlt die Operation, meldet `capabilitiesOf()`
|
|
3277
|
+
* `pagedRuns: false`, und die Ansicht laedt wie bisher vollstaendig — sie
|
|
3278
|
+
* zeigt keinen „Mehr laden"-Knopf, den niemand bedienen koennte.
|
|
3279
|
+
*/
|
|
3280
|
+
listRunsPage?(input: PromptRunPageInput): Promise<QueryResult<PromptRunPage>>;
|
|
3281
|
+
/**
|
|
3282
|
+
* Setzt die **direkten** Tags eines Laufs — Kette
|
|
3283
|
+
* `szenen-prompt-anzeige-bilder-tags`.
|
|
3284
|
+
*
|
|
3285
|
+
* Uebergeben wird der vollstaendige Satz an Labels, nicht ein Delta:
|
|
3286
|
+
* Entfernen ist ein kuerzerer Satz. Aufgeloest werden die Labels gegen die
|
|
3287
|
+
* bestehende Library-Vokabel (`resolveTagLabels`) — ein unbekanntes Label
|
|
3288
|
+
* wird abgelehnt und nicht nebenbei angelegt, genau wie im Library-Weg.
|
|
3289
|
+
*
|
|
3290
|
+
* Beruehrt **ausschliesslich** die Prompt-Tags. Die Tags zugeordneter
|
|
3291
|
+
* Library-Items sind abgeleitet und liegen an ihren Items; dieser Aufruf
|
|
3292
|
+
* kann sie weder schreiben noch loeschen, und das ist die Zusage, wegen der
|
|
3293
|
+
* die Anzeige beide Herkuenfte mischen darf.
|
|
3294
|
+
*
|
|
3295
|
+
* Optional wie `listRunsPage`: Ein Host ohne autoritativen Schreibweg
|
|
3296
|
+
* bekommt die Operation nicht, `capabilitiesOf()` meldet `runTags: false`,
|
|
3297
|
+
* und die Ansicht zeigt die Tags dann nur an, statt einen Editor
|
|
3298
|
+
* anzubieten, der nichts ablegen kann (§8).
|
|
3299
|
+
*/
|
|
3300
|
+
setRunTags?(runId: string, labels: readonly string[]): Promise<CommandResult<readonly LibraryTagRef[]>>;
|
|
3114
3301
|
}
|
|
3115
3302
|
interface StartRunFromSceneInput {
|
|
3116
3303
|
/** Das Szenen-**Element**. Ob Entwurf oder Version gilt, entscheidet der Bestand. */
|
|
@@ -3118,6 +3305,27 @@ interface StartRunFromSceneInput {
|
|
|
3118
3305
|
userInstruction?: string;
|
|
3119
3306
|
contextId?: string | null;
|
|
3120
3307
|
}
|
|
3308
|
+
/** Die Eingabe eines manuell erfassten Promptlaufs (Schritt 01). */
|
|
3309
|
+
interface AddManualSceneRunInput {
|
|
3310
|
+
/** Die bestehende Szene, zu der der Lauf gehört. */
|
|
3311
|
+
sceneElementId: string;
|
|
3312
|
+
/** Der vollständige Prompttext, **unverändert** wie eingegeben. */
|
|
3313
|
+
promptText: string;
|
|
3314
|
+
/**
|
|
3315
|
+
* Das gewählte Zielmodell als Element-Kennung, oder `null`.
|
|
3316
|
+
*
|
|
3317
|
+
* Aufgelöst wird es beim Einfrieren — mit derselben Kontextsichtbarkeit wie
|
|
3318
|
+
* überall sonst. Hier entsteht keine zweite Modellliste und kein Freitext.
|
|
3319
|
+
*/
|
|
3320
|
+
targetModelElementId?: string | null;
|
|
3321
|
+
/** Kurze Bezeichnung oder Notiz zur Variante. */
|
|
3322
|
+
note?: string | null;
|
|
3323
|
+
/** Der Lauf, aus dem der Prompt von Hand abgeleitet wurde — loser Bezug. */
|
|
3324
|
+
derivedFromRunId?: string | null;
|
|
3325
|
+
/** Wer den Lauf einträgt. */
|
|
3326
|
+
enteredBy: string;
|
|
3327
|
+
contextId?: string | null;
|
|
3328
|
+
}
|
|
3121
3329
|
/**
|
|
3122
3330
|
* Warum ein Draft-Lauf nicht zustande kam — **drei** verschiedene Auskünfte.
|
|
3123
3331
|
*
|
|
@@ -3613,6 +3821,10 @@ interface PromptImageBatch {
|
|
|
3613
3821
|
* heute nicht — der reguläre `unsupported`-Fall, keine Zeile Sondercode
|
|
3614
3822
|
* (D-115-Analogie: keine Host-Verzweigung im gemeinsamen Code).
|
|
3615
3823
|
*/
|
|
3824
|
+
/** Die bestehende Library-Tag-Vokabel, nur lesend. */
|
|
3825
|
+
interface SzenenTagVocabularyPort {
|
|
3826
|
+
listTags(): Promise<QueryResult<readonly LibraryTagRef[]>>;
|
|
3827
|
+
}
|
|
3616
3828
|
interface SzenenImageBatchHistoryPort {
|
|
3617
3829
|
/** Alle Batches eines Prompt-Laufs — gesucht über IDs, nicht über Titel/Zeit (D-109). */
|
|
3618
3830
|
listBatchesForPromptRun(runId: string): Promise<QueryResult<readonly PromptImageBatch[]>>;
|
|
@@ -3760,6 +3972,17 @@ interface SzenenViewPort {
|
|
|
3760
3972
|
* Ereignislog. Flow liefert sie deshalb unabhängig von Bildprovider und
|
|
3761
3973
|
* Batch-Schreibweg — React liefert sie zusätzlich über MySQL als Index.
|
|
3762
3974
|
*/
|
|
3975
|
+
/**
|
|
3976
|
+
* Die Tag-Vokabel des Hosts — Kette `szenen-prompt-anzeige-bilder-tags`.
|
|
3977
|
+
*
|
|
3978
|
+
* Sie existiert nur, damit der Tag-Editor **vorschlagen** kann, was es
|
|
3979
|
+
* bereits gibt. Geprueft wird trotzdem beim Schreiben, und zwar dort, wo die
|
|
3980
|
+
* Vokabel liegt: Eine Vorschlagsliste im Browser ist keine Zusage.
|
|
3981
|
+
*
|
|
3982
|
+
* Optional wie alles hier: Ein Host ohne sie zeigt ein Freitextfeld, und ein
|
|
3983
|
+
* unbekanntes Label wird beim Speichern mit Namen abgelehnt (Regel 11).
|
|
3984
|
+
*/
|
|
3985
|
+
tags?: SzenenTagVocabularyPort;
|
|
3763
3986
|
imageBatchHistory?: SzenenImageBatchHistoryPort;
|
|
3764
3987
|
/**
|
|
3765
3988
|
* Bild-Batch-Schreiben — fehlt ohne sicheren, hostübergreifenden
|
|
@@ -3815,8 +4038,28 @@ interface SzenenViewCapabilities {
|
|
|
3815
4038
|
imageGeneration: boolean;
|
|
3816
4039
|
/** Bildauftraege aus dem Chat uebernehmen (Kette szenen-mcp-chatgpt-flow). */
|
|
3817
4040
|
imageJobs: boolean;
|
|
4041
|
+
/**
|
|
4042
|
+
* Die bestandsweite Auftragsqueue — Bereich `Bildauftraege` (Kette
|
|
4043
|
+
* `szenen-bildauftraege-arbeitsqueue`).
|
|
4044
|
+
*
|
|
4045
|
+
* Getrennt von `imageJobs`: Ein Host kann Auftraege eines Laufs lesen und
|
|
4046
|
+
* uebernehmen, ohne die globale Projektion zu liefern. Dann bleibt die
|
|
4047
|
+
* bestehende Laufansicht vollstaendig und nur der Arbeitsbereich fehlt —
|
|
4048
|
+
* statt leer dazustehen (§2).
|
|
4049
|
+
*/
|
|
4050
|
+
imageJobQueue: boolean;
|
|
3818
4051
|
/** Die herkunftsuebergreifende Prompt-Sicht (P1-A) — Bereich `Prompts`. */
|
|
3819
4052
|
promptOverview: boolean;
|
|
4053
|
+
/** „Promptlauf manuell hinzufuegen" — Kette szenen-manuell-angepasste-promptlaeufe. */
|
|
4054
|
+
manualPromptRun: boolean;
|
|
4055
|
+
/** Seitenweises Laden der Laufliste (Kette szenen-listen-pagination). */
|
|
4056
|
+
pagedRuns: boolean;
|
|
4057
|
+
/** Seitenweises Laden der Elementliste (Kette szenen-listen-pagination). */
|
|
4058
|
+
pagedElements: boolean;
|
|
4059
|
+
/** Prompt-Tags bearbeiten (Kette szenen-prompt-anzeige-bilder-tags). */
|
|
4060
|
+
runTags: boolean;
|
|
4061
|
+
/** Vorschlagsliste aus der bestehenden Library-Tag-Vokabel. */
|
|
4062
|
+
tagVocabulary: boolean;
|
|
3820
4063
|
}
|
|
3821
4064
|
declare function capabilitiesOf(port: SzenenViewPort): SzenenViewCapabilities;
|
|
3822
4065
|
/**
|
|
@@ -4017,7 +4260,108 @@ interface LadeVorschauenOptionen {
|
|
|
4017
4260
|
*/
|
|
4018
4261
|
declare function ladeVorschauen(port: SzenenImageLibraryPort, mediaRefs: readonly string[], fertig: (mediaRef: string, quelle: string) => void, optionen?: LadeVorschauenOptionen): Promise<void>;
|
|
4019
4262
|
|
|
4263
|
+
/**
|
|
4264
|
+
* Der Anbieter eines manuell erfassten Laufs.
|
|
4265
|
+
*
|
|
4266
|
+
* `manual` und nicht der Name des Zielmodells: `provider`/`model_id` sagen,
|
|
4267
|
+
* **womit formuliert wurde**. Formuliert hat hier ein Mensch. Das Zielmodell
|
|
4268
|
+
* steht dort, wo es hingehoert — in `target_model_version_id` und im
|
|
4269
|
+
* eingefrorenen `input_payload`.
|
|
4270
|
+
*/
|
|
4271
|
+
declare const MANUAL_PROVIDER = "manual";
|
|
4272
|
+
/** Die Modellkennung eines manuell erfassten Laufs — ehrlich, nicht geraten. */
|
|
4273
|
+
declare const MANUAL_MODEL_ID = "manual-entry";
|
|
4274
|
+
/** Die Basis der Sichtbarkeitsangaben: keine Ableitung, sondern Handeingabe. */
|
|
4275
|
+
declare const MANUAL_VISIBILITY_BASIS = "manual_entry";
|
|
4276
|
+
/** Der Knotenzustand, wenn niemand die Sichtbarkeit beurteilt hat. */
|
|
4277
|
+
declare const MANUAL_NODE_STATE = "unassessed";
|
|
4278
|
+
/**
|
|
4279
|
+
* Die Handeingabe am Lauf — additiv, wie `operation_id` und `execution_origin`.
|
|
4280
|
+
*
|
|
4281
|
+
* Sie steht **neben** `source` und nicht darin: Herkunft im Sinne von D-98 ist,
|
|
4282
|
+
* welcher Stand eingefroren wurde, und der ist hier derselbe wie bei jedem
|
|
4283
|
+
* anderen Szene-Direktlauf. Was dieser Block hinzufuegt, ist die Auskunft,
|
|
4284
|
+
* **wie** der Text entstand.
|
|
4285
|
+
*/
|
|
4286
|
+
interface ManualPromptEntry {
|
|
4287
|
+
/** Immer `true`. Ein Leser muss das nicht aus `provider` erschliessen. */
|
|
4288
|
+
entered_manually: true;
|
|
4289
|
+
/** Die kurze Bezeichnung oder Notiz zur Variante, oder `null`. */
|
|
4290
|
+
note: string | null;
|
|
4291
|
+
/**
|
|
4292
|
+
* Der Lauf, aus dem dieser Prompt von Hand abgeleitet wurde — oder `null`.
|
|
4293
|
+
*
|
|
4294
|
+
* Bewusst eine **lose** Kennung ohne Aufloesung und ohne Pruefung gegen den
|
|
4295
|
+
* Bestand: Ein manuell abgeleiteter Lauf soll auch dann lesbar bleiben, wenn
|
|
4296
|
+
* sein Ursprung spaeter nicht mehr auffindbar ist. Eine harte Abhaengigkeit
|
|
4297
|
+
* waere eine Zusage, die dieses Feld nicht halten kann (Schritt 01, Regel 4).
|
|
4298
|
+
*/
|
|
4299
|
+
derived_from_run_id: string | null;
|
|
4300
|
+
/** Wer eingetragen hat. */
|
|
4301
|
+
entered_by: string;
|
|
4302
|
+
}
|
|
4303
|
+
/** Ein Lauf, der von Hand eingetragen wurde. */
|
|
4304
|
+
type ManualPromptRunRecord = PromptRunRecord & {
|
|
4305
|
+
manual_entry: ManualPromptEntry;
|
|
4306
|
+
};
|
|
4307
|
+
interface BuildManualPromptRunInput {
|
|
4308
|
+
runId: string;
|
|
4309
|
+
/** Der eingefrorene Szenenstand — woertlich der von `freezeSceneWorkingState()`. */
|
|
4310
|
+
scene: FrozenSceneState;
|
|
4311
|
+
/** Die eingefrorene Renderer-Eingabe desselben Einfrierens (D-22). */
|
|
4312
|
+
input: RendererInput;
|
|
4313
|
+
/** Der Prompttext, **unveraendert** wie eingegeben. */
|
|
4314
|
+
promptText: string;
|
|
4315
|
+
note?: string | null;
|
|
4316
|
+
derivedFromRunId?: string | null;
|
|
4317
|
+
enteredBy: string;
|
|
4318
|
+
now?: () => Date;
|
|
4319
|
+
}
|
|
4320
|
+
type BuildManualPromptRunResult = {
|
|
4321
|
+
kind: 'ok';
|
|
4322
|
+
record: ManualPromptRunRecord;
|
|
4323
|
+
} | {
|
|
4324
|
+
kind: 'rejected';
|
|
4325
|
+
message: string;
|
|
4326
|
+
};
|
|
4327
|
+
/**
|
|
4328
|
+
* Baut den Lauf. Prueft nur, was ohne Bestandszugriff pruefbar ist.
|
|
4329
|
+
*
|
|
4330
|
+
* Ein leerer Prompttext ist eine Ablehnung und kein Lauf: Er waere ein
|
|
4331
|
+
* erfolgreicher Lauf ohne Ergebnis und wuerde in jeder Leseansicht als
|
|
4332
|
+
* vollwertige Runde erscheinen.
|
|
4333
|
+
*/
|
|
4334
|
+
declare function buildManualPromptRunRecord(eingabe: BuildManualPromptRunInput): BuildManualPromptRunResult;
|
|
4335
|
+
/** Der Handeingabe-Block eines Laufs, oder `null` bei jedem anderen Lauf. */
|
|
4336
|
+
declare function manualEntryOf(run: PromptRunPageRecord): ManualPromptEntry | null;
|
|
4337
|
+
|
|
4020
4338
|
interface CreateMemoryViewPortOptions {
|
|
4339
|
+
/**
|
|
4340
|
+
* Die **direkten** Tags je Lauf — Kette `szenen-prompt-anzeige-bilder-tags`.
|
|
4341
|
+
*
|
|
4342
|
+
* Der Speicherhost fuehrt sie als Zustand und laesst sie auch schreiben:
|
|
4343
|
+
* Anders als der Ereignislog-Weg braucht er dafuer keine Vokabel-Tabelle,
|
|
4344
|
+
* und ein Editor, der im Test nichts ablegen kann, prueft nichts.
|
|
4345
|
+
*/
|
|
4346
|
+
runTags?: Record<string, readonly string[]>;
|
|
4347
|
+
/**
|
|
4348
|
+
* Bildanzahl, Vorschau und Library-Tags je Lauf.
|
|
4349
|
+
*
|
|
4350
|
+
* Vorbelegt statt aus Ereignissen gefaltet: Dieser Port haelt Laeufe als
|
|
4351
|
+
* Liste, nicht als Log. Die Faltung selbst prueft
|
|
4352
|
+
* `promptKarte.test.ts` gegen `annotateRunsFromEvents`.
|
|
4353
|
+
*/
|
|
4354
|
+
runAnnotations?: Record<string, PromptRunAnnotation>;
|
|
4355
|
+
/** Die Vorschlagsliste des Tag-Editors. Fehlt sie, bietet der Port keine an. */
|
|
4356
|
+
tagVocabulary?: readonly string[];
|
|
4357
|
+
/**
|
|
4358
|
+
* Bildanzahl, Deckbild und Tags je **Element**.
|
|
4359
|
+
*
|
|
4360
|
+
* Vorbelegt wie `runAnnotations` und aus demselben Grund: Dieser Port haelt
|
|
4361
|
+
* keinen Laufbestand, aus dem sich die Ableitung falten liesse. Die Faltung
|
|
4362
|
+
* selbst prueft `promptKarte.test.ts` gegen `annotateElementsFromEvents`.
|
|
4363
|
+
*/
|
|
4364
|
+
elementAnnotations?: Record<string, ElementAnnotation>;
|
|
4021
4365
|
/**
|
|
4022
4366
|
* Ob der Port Items anbietet. `false` bildet Flow-Pure nach: das Feld fehlt
|
|
4023
4367
|
* dann ganz, statt eine Operation zu haben, die `unsupported` zurückgibt.
|
|
@@ -4295,6 +4639,30 @@ interface PromptRunPersistencePort {
|
|
|
4295
4639
|
* leeren Bereich zu zeigen (§8).
|
|
4296
4640
|
*/
|
|
4297
4641
|
listAll?(): Promise<QueryResult<readonly PromptRunRecord[]>>;
|
|
4642
|
+
/**
|
|
4643
|
+
* **Eine Seite** Laeufe — Kette `szenen-listen-pagination`.
|
|
4644
|
+
*
|
|
4645
|
+
* Optional, und zwar mit einer klaren Aufgabenteilung: Eine Persistenz, die
|
|
4646
|
+
* ihren Bestand **ohne Transport** faltet (der Ereignislog in Flow), braucht
|
|
4647
|
+
* sie nicht — dort schneidet der Port selbst, und das Ergebnis ist
|
|
4648
|
+
* identisch. Eine Persistenz **hinter einer Leitung** (REST) braucht sie,
|
|
4649
|
+
* denn dort ist die Uebertragungsmenge genau das Problem: Nachtraeglich im
|
|
4650
|
+
* Browser zu schneiden hiesse, vorher alles geholt zu haben.
|
|
4651
|
+
*/
|
|
4652
|
+
listPage?(input: PromptRunPageInput): Promise<QueryResult<PromptRunPage>>;
|
|
4653
|
+
/**
|
|
4654
|
+
* Setzt die direkten Tags eines Laufs — Kette
|
|
4655
|
+
* `szenen-prompt-anzeige-bilder-tags`.
|
|
4656
|
+
*
|
|
4657
|
+
* Optional, und zwar nicht aus Bequemlichkeit: Ein Prompt-Tag ist eine
|
|
4658
|
+
* **Library-Vokabel**, und die steht in `tags` (MySQL). Eine Persistenz ohne
|
|
4659
|
+
* Zugang zu dieser Vokabel koennte ein Label nicht pruefen — sie muesste es
|
|
4660
|
+
* entweder nebenbei anlegen (was der Library-Weg ausdruecklich nicht tut)
|
|
4661
|
+
* oder ungeprueft anhaengen. Beides waere ein zweites Tag-System. Deshalb
|
|
4662
|
+
* bietet nur die REST-Persistenz diese Operation an; der Ereignislog-Weg
|
|
4663
|
+
* zeigt Tags an, ohne sie schreiben zu koennen (§8).
|
|
4664
|
+
*/
|
|
4665
|
+
setTags?(runId: string, labels: readonly string[]): Promise<CommandResult<readonly LibraryTagRef[]>>;
|
|
4298
4666
|
}
|
|
4299
4667
|
/** Was der Eventlog-Adapter vom Kanal braucht — lesen und anhängen. */
|
|
4300
4668
|
interface RunEventChannel {
|
|
@@ -4666,6 +5034,15 @@ interface PreparePromptOperationInput {
|
|
|
4666
5034
|
contextChain: readonly (string | null)[];
|
|
4667
5035
|
contextId: string | null;
|
|
4668
5036
|
userInstruction?: string | null;
|
|
5037
|
+
/**
|
|
5038
|
+
* Das gewaehlte Zielmodell (Kette `szenen-direktlauf-target-model-policy`).
|
|
5039
|
+
*
|
|
5040
|
+
* Optional. Ohne Angabe bleibt der Vorgang exakt der generische von D-135;
|
|
5041
|
+
* mit Angabe traegt der eingefrorene `RendererInput` die Modellprovenienz,
|
|
5042
|
+
* und `completePromptOperation()` schreibt ihre `version_id` ohne Zutun in
|
|
5043
|
+
* `target_model_version_id` des Laufs.
|
|
5044
|
+
*/
|
|
5045
|
+
targetModelElementId?: string | null;
|
|
4669
5046
|
preparedBy: string;
|
|
4670
5047
|
now?: () => Date;
|
|
4671
5048
|
}
|
|
@@ -4733,6 +5110,89 @@ declare function runOfOperation(runs: readonly PromptRunRecord[], operationId: s
|
|
|
4733
5110
|
/** Ob eine eingereichte Antwort woertlich die des bereits gespeicherten Laufs ist. */
|
|
4734
5111
|
declare function sameResponseAs(run: PromptRunRecord, response: string): boolean;
|
|
4735
5112
|
|
|
5113
|
+
/** Die waehlbaren Pausen zwischen zwei Auftraegen, in Sekunden (§4). */
|
|
5114
|
+
declare const PAUSE_SEKUNDEN_OPTIONEN: readonly number[];
|
|
5115
|
+
/** Die Vorgabe, wenn der Nutzer nichts waehlt (§4). */
|
|
5116
|
+
declare const PAUSE_SEKUNDEN_VORGABE = 3;
|
|
5117
|
+
/** Ob ein Wert eine angebotene Pause ist — die Liste ist die Wahrheit. */
|
|
5118
|
+
declare function istGueltigePause(sekunden: number): boolean;
|
|
5119
|
+
/** Wie ein einzelner Auftrag des Snapshots ausgegangen ist. */
|
|
5120
|
+
type QueueAusgang =
|
|
5121
|
+
/** Uebernommen und bis zu einem sicheren Ausgang ausgefuehrt. */
|
|
5122
|
+
{
|
|
5123
|
+
kind: 'ausgefuehrt';
|
|
5124
|
+
jobId: string;
|
|
5125
|
+
status: ImageJob['status'];
|
|
5126
|
+
text: string;
|
|
5127
|
+
}
|
|
5128
|
+
/**
|
|
5129
|
+
* Nicht mehr offen — ein anderer Host hatte ihn, oder er wurde fachlich
|
|
5130
|
+
* abgelehnt. **Nichts wurde bezahlt**, und die Queue laeuft weiter (§4.3).
|
|
5131
|
+
*/
|
|
5132
|
+
| {
|
|
5133
|
+
kind: 'uebersprungen';
|
|
5134
|
+
jobId: string;
|
|
5135
|
+
text: string;
|
|
5136
|
+
}
|
|
5137
|
+
/**
|
|
5138
|
+
* Der Ausgang steht **nicht** sicher fest. Die Queue haelt an, damit sie
|
|
5139
|
+
* nicht neben einem moeglicherweise laufenden Providerjob einen zweiten
|
|
5140
|
+
* startet (§4.3, letzter Punkt).
|
|
5141
|
+
*/
|
|
5142
|
+
| {
|
|
5143
|
+
kind: 'unbekannt';
|
|
5144
|
+
jobId: string;
|
|
5145
|
+
text: string;
|
|
5146
|
+
};
|
|
5147
|
+
type QueueZustand =
|
|
5148
|
+
/** Ein Auftrag laeuft gerade. */
|
|
5149
|
+
'laeuft'
|
|
5150
|
+
/** Zwischen zwei Auftraegen — die eingestellte Pause laeuft. */
|
|
5151
|
+
| 'pause'
|
|
5152
|
+
/** Der Snapshot ist vollstaendig abgearbeitet. */
|
|
5153
|
+
| 'fertig'
|
|
5154
|
+
/** Der Nutzer hat abgebrochen; der zuletzt gestartete Auftrag lief zu Ende. */
|
|
5155
|
+
| 'abgebrochen'
|
|
5156
|
+
/** Angehalten wegen unsicherem Ausgang (§4.3). */
|
|
5157
|
+
| 'gestoppt';
|
|
5158
|
+
interface QueueFortschritt {
|
|
5159
|
+
/** Die Kennungen dieses Laufs, in Startreihenfolge — fest ab dem Klick. */
|
|
5160
|
+
snapshot: readonly string[];
|
|
5161
|
+
/** „Job n von m": 1-basiert, `0` solange noch keiner gestartet wurde. */
|
|
5162
|
+
nummer: number;
|
|
5163
|
+
/** Der gerade bearbeitete Auftrag, oder `null` zwischen zwei Auftraegen. */
|
|
5164
|
+
aktuell: string | null;
|
|
5165
|
+
zustand: QueueZustand;
|
|
5166
|
+
/** Der letzte sicher bekannte Ausgang (§4.2). */
|
|
5167
|
+
letzterAusgang: QueueAusgang | null;
|
|
5168
|
+
/** Warum die Queue angehalten hat — gesetzt bei `gestoppt` und `abgebrochen`. */
|
|
5169
|
+
grund: string | null;
|
|
5170
|
+
/** Die eingestellte Pause, damit die Laufanzeige sie nennen kann (§4.2). */
|
|
5171
|
+
pauseSekunden: number;
|
|
5172
|
+
}
|
|
5173
|
+
interface QueueLaufOptionen {
|
|
5174
|
+
/** Die beim Klick offenen Auftraege, aelteste zuerst (§4.1). */
|
|
5175
|
+
snapshot: readonly string[];
|
|
5176
|
+
pauseSekunden: number;
|
|
5177
|
+
/** Der **eine** Ausfuehrungsweg — derselbe wie beim Einzelstart. */
|
|
5178
|
+
claimAndRun: (jobId: string) => Promise<ClaimAndRunResult>;
|
|
5179
|
+
/** Warten. Einspeisbar, damit ein Test nicht zehn Sekunden schlaeft. */
|
|
5180
|
+
warte: (ms: number) => Promise<void>;
|
|
5181
|
+
/** Jeder Zustandswechsel, fuer die Laufanzeige. */
|
|
5182
|
+
melde: (fortschritt: QueueFortschritt) => void;
|
|
5183
|
+
/** Ob der Nutzer inzwischen abgebrochen hat — vor jedem Start gefragt. */
|
|
5184
|
+
abgebrochen: () => boolean;
|
|
5185
|
+
}
|
|
5186
|
+
/**
|
|
5187
|
+
* Arbeitet den Snapshot streng seriell ab.
|
|
5188
|
+
*
|
|
5189
|
+
* Der Rueckgabewert ist der Endstand; jeder Zwischenstand kam vorher ueber
|
|
5190
|
+
* `melde()`. Die Funktion wirft nicht: Ein geworfener Fehler aus
|
|
5191
|
+
* `claimAndRun()` ist genau der unsichere Ausgang, wegen dem angehalten wird,
|
|
5192
|
+
* und er gehoert in den Fortschritt, nicht in einen Stacktrace.
|
|
5193
|
+
*/
|
|
5194
|
+
declare function fuehreQueueAus(optionen: QueueLaufOptionen): Promise<QueueFortschritt>;
|
|
5195
|
+
|
|
4736
5196
|
interface CreateHfImageBatchPersistenceOptions {
|
|
4737
5197
|
namespace: string;
|
|
4738
5198
|
token: string;
|
|
@@ -4839,7 +5299,7 @@ declare function istZipDatei(datei: {
|
|
|
4839
5299
|
*/
|
|
4840
5300
|
declare function leseBilderAusZip(datei: File | Blob): Promise<readonly ZipBild[]>;
|
|
4841
5301
|
|
|
4842
|
-
type SzenenAreaId = 'scene' | 'prompts' | 'elements' | 'advanced' | 'media';
|
|
5302
|
+
type SzenenAreaId = 'scene' | 'prompts' | 'imageJobs' | 'elements' | 'advanced' | 'media';
|
|
4843
5303
|
interface SzenenArea {
|
|
4844
5304
|
id: SzenenAreaId;
|
|
4845
5305
|
title: string;
|
|
@@ -4891,7 +5351,36 @@ interface SzenenViewProps {
|
|
|
4891
5351
|
initialArea?: SzenenAreaId;
|
|
4892
5352
|
/** Meldet Bereichswechsel nach außen, damit der Host sie merken kann. */
|
|
4893
5353
|
onAreaChange?: (area: SzenenAreaId) => void;
|
|
5354
|
+
/**
|
|
5355
|
+
* Ein von außen angesteuertes Ziel — der Einstieg aus der Library
|
|
5356
|
+
* („Promptlauf öffnen" / „Szene öffnen").
|
|
5357
|
+
*
|
|
5358
|
+
* Es gibt dafür **kein** zweites Routing: Der Fokus wählt den vorhandenen
|
|
5359
|
+
* Bereich und reicht die Kennung an die vorhandene Liste weiter, die ihn
|
|
5360
|
+
* wie jede andere Auswahl behandelt.
|
|
5361
|
+
*/
|
|
5362
|
+
fokus?: SzenenFokus | null;
|
|
5363
|
+
/** Zurück dorthin, woher der Fokus kam. Fehlt, wenn es kein Zurück gibt. */
|
|
5364
|
+
onFokusVerlassen?: () => void;
|
|
4894
5365
|
}
|
|
5366
|
+
/** Das angesteuerte Ziel. Genau eines — nie beides und nie geraten. */
|
|
5367
|
+
type SzenenFokus = {
|
|
5368
|
+
kind: 'run';
|
|
5369
|
+
runId: string;
|
|
5370
|
+
} | {
|
|
5371
|
+
kind: 'scene';
|
|
5372
|
+
elementId: string;
|
|
5373
|
+
/**
|
|
5374
|
+
* Der Lauf, aus dem der Sprung kam — optional.
|
|
5375
|
+
*
|
|
5376
|
+
* Er macht das Ziel nicht mehrdeutig: Angesteuert ist die Szene. Er
|
|
5377
|
+
* sagt nur, welche Runde ihrer Historie gemeint ist, damit dort nicht
|
|
5378
|
+
* die neueste aufgeht und wie die Antwort auf den Sprung aussieht.
|
|
5379
|
+
*/
|
|
5380
|
+
runId?: string | null;
|
|
5381
|
+
};
|
|
5382
|
+
/** Der Bereich, in dem ein Fokusziel zu Hause ist. */
|
|
5383
|
+
declare function areaForFokus(fokus: SzenenFokus): SzenenAreaId;
|
|
4895
5384
|
declare const SzenenView: React__default.FC<SzenenViewProps>;
|
|
4896
5385
|
|
|
4897
|
-
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,
|
|
5386
|
+
export { type AddManualSceneRunInput, type AttachLibraryItemInput, type AttachLibraryItemResult, AuthoritativeSzenenStore, type BestandsGalerieEintrag, type BestandsItem, type BuildManualPromptRunInput, 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, ElementAnnotation, ElementEvent, type ElementEventChannel, 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, GENERAL_POLICY_SUBTYPE, type GeneratedImage, type GruppierbaresBild, type HfImageStore, type HfImageStoreOptions, type IdFactory, 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 ImageJobEintrag, type ImageJobHerkunft, type ImageJobQuery, type ImageJobRequestedPayload, type ImageJobSeite, type ImageJobSettledPayload, type ImageJobStatusFilter, 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 LetztesErzeugtesBild, type LibraryImage, type LibraryImageItem, LibraryTagRef, MANUAL_MODEL_ID, MANUAL_NODE_STATE, MANUAL_PROVIDER, MANUAL_VISIBILITY_BASIS, MCP_CLIENT_PROVIDER, type ManualPromptEntry, type ManualPromptRunRecord, type NodeContribution, NotDerivable, type Notice, type NoticeTone, PAUSE_SEKUNDEN_OPTIONEN, PAUSE_SEKUNDEN_VORGABE, PROMPT_AUSZUG_ZEICHEN, PROMPT_RULE_EFFECT, PROMPT_RUN_DETAIL_FIELDS, Page, PageRequest, type PolicySnapshot, PreferredHeadResolution, type PreparePromptOperationInput, type PreparePromptOperationResult, type PreparedPromptOperation, type PromptBatchImageRef, type PromptBatchOrigin, type PromptDiagnostic, type PromptEffect, type PromptExecutionOrigin, type PromptImageBatch, type PromptOperationPreparedPayload, type PromptResponseContract, PromptRunAnnotation, type PromptRunFilter, type PromptRunGroup, type PromptRunListRecord, type PromptRunListing, type PromptRunOriginFilter, type PromptRunOutcome, type PromptRunOutput, type PromptRunPage, type PromptRunPageFilter, type PromptRunPageInput, type PromptRunPageRecord, type PromptRunPageSource, type PromptRunPersistencePort, type PromptRunRecord, type PromptRunRecordedPayload, type PromptRunSource, type PromptRunStatusFilter, type ProviderCheckRecord, type ProviderCheckRecordedPayload, type ProviderCheckResult, PublishCheckResult, PublishFinding, type QueueAusgang, type QueueFortschritt, type QueueLaufOptionen, type QueueZustand, RULES_WITHOUT_CAPABILITY_EFFECT, RULE_SCOPES, type RawSchema, type RecordedDerivationInput, type RecordedProposal, type RecoveryStatus, ReferenceResolver, type RendererInput, type ResolveFailure, type ResolveResult, type ResolveScenePayloadInput, type ResolveShotInput, type ResolveShotPayloadInput, ResolveTechnicalError, type ResolvedCamera, type ResolvedNode, type ResolvedPlacement, type ResolvedScenePolicy, type RunEventChannel, type RunFailure, type RunFailureClass, type RunItemReference, 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, type ScenePolicyResult, 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 SzenenFokus, 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, areaForFokus, areasFor, batchesForPromptRun, bildPfad, buildManualPromptRunRecord, 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, detailFehlt, diagnosticOfFinding, diagnosticOfSchemaError, differentialSteps, executableImageModels, findExecutableImageModel, findImageBatch, findImageGenerationOrder, findImageJob, findPromptOperation, findPromptRun, findProviderCheck, findSceneDerivation, findSceneDerivationRecovery, firstError, formatSeedListe, freezeDraftChain, freezeSceneWorkingState, fuehreQueueAus, generationBatchIdOf, gesamtHerkunft, groupKeyOf, groupOf, gruppiereZuItems, hasPlacementCapability, isKnownElementType, isSzenenItemId, istGueltigePause, istOffen, istSzenenSnapshotDatei, istZipDatei, itemIdForRun, itemsAusBestand, jobsForPromptRun, ladeVorschauen, leseBilderAusZip, letztesErzeugtesBild, locatorAus, locatorTeile, manualEntryOf, mergeSnapshotAndPending, mergeSzenenBatchOrigin, mimeTypAus, mitDefaultVorlage, namingElementOf, noticeFor, ordersForPromptRun, ordneSeedsZu, pagePromptRuns, parseRunResponse, parseSeedListe, parseSzenenSnapshot, preparePromptOperation, promptDiagnosticsOf, promptRunPageForTransport, promptRunPageFromTransport, publishedHeadsOf, recoveriesForRun, recoveryStatusOf, resolveArea, resolveGeneralScenePolicies, resolveScenePayload, resolveShot, resolveShotPayload, responseContractOf, roundOfRun, roundsOf, rulesWithoutPromptEffect, runOfOperation, runPromptDerivation, runStoreDifferential, sameResponseAs, sceneOnlyCapabilities, scenePolicyFingerprint, scopeOfPath, seedFehlerText, selectImageJobs, selectPromptRuns, selectableTargetModels, siblingsOf, sortScenePolicies, sourceOf, szenenSnapshotFilename, totalModelCalls, typAusBytes, unclassifiedPublishRules, unsupportedReason };
|