@chai-ui/core 0.7.0 → 0.8.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.
@@ -4,13 +4,19 @@
4
4
  */
5
5
  import type { ComposerAttachment, ComposerSubmitPayload, ComposerUseCase } from "./composer.js";
6
6
  import type { EditRegion } from "./region-edit.js";
7
- import type { MediaKind, ModelOption, ParameterOption } from "./types.js";
8
- export type ComposerAttachMenuAction = "add-media" | "create-image" | "create-video" | "edit-media";
9
- /** The `+` menu, in order. "Add media" is the only item with a divider after it. */
7
+ import type { ModelOption, OutputKind, ParameterOption } from "./types.js";
8
+ /** Which prompt field an Enhance click is for: the bar's prompt, or a world's environment or character. */
9
+ export type ComposerPromptField = "prompt" | "environment" | "character";
10
+ export type ComposerAttachMenuAction = "add-media" | "create-image" | "create-video" | "create-world" | "edit-media";
11
+ /**
12
+ * The `+` menu, in order. "Add media" is the only item with a divider after
13
+ * it. An `optIn` item shows only when `attachMenuActions` lists it.
14
+ */
10
15
  export declare const COMPOSER_ATTACH_MENU_ITEMS: {
11
16
  action: ComposerAttachMenuAction;
12
17
  label: string;
13
18
  divider?: boolean;
19
+ optIn?: boolean;
14
20
  }[];
15
21
  /**
16
22
  * Past this length a rewritten prompt appears at once: a long reveal reads
@@ -28,7 +34,7 @@ export interface ComposerViewInput {
28
34
  defaultUseCase?: ComposerUseCase;
29
35
  multiSelectUseCases?: boolean;
30
36
  useCases?: ComposerUseCase[];
31
- modelsByKind?: Partial<Record<MediaKind, ModelOption[]>>;
37
+ modelsByKind?: Partial<Record<OutputKind, ModelOption[]>>;
32
38
  multiSelectModels?: boolean;
33
39
  modelIds?: string[];
34
40
  models?: ModelOption[];
@@ -38,6 +44,9 @@ export interface ComposerViewInput {
38
44
  autoSelectModel?: boolean;
39
45
  aspectRatios?: ParameterOption<string>[];
40
46
  aspectRatio?: string | null;
47
+ /** A world's character field. */
48
+ character?: string;
49
+ frameRate?: number | null;
41
50
  submitError?: string | null;
42
51
  submitDisabled?: boolean;
43
52
  submitting?: boolean;
@@ -47,6 +56,13 @@ export interface ComposerViewInput {
47
56
  }
48
57
  export declare function composerView(props: ComposerViewInput): {
49
58
  pickedUseCases: ComposerUseCase[];
59
+ /**
60
+ * Which use cases are picked, as one string. When it changes, a Composer
61
+ * whose end user owns the auto-select switch turns auto-select off: it
62
+ * belongs to the Model menu it was turned on in, so a new use case
63
+ * starts with its model picked by hand.
64
+ */
65
+ useCaseKey: string;
50
66
  activeUseCases: ComposerUseCase[];
51
67
  editing: boolean;
52
68
  isSubmitDisabled: boolean;
@@ -57,7 +73,7 @@ export declare function composerView(props: ComposerViewInput): {
57
73
  options: ModelOption[];
58
74
  suggested: boolean;
59
75
  label: string;
60
- kind: MediaKind;
76
+ kind: OutputKind;
61
77
  }[];
62
78
  pickedModelIds: string[];
63
79
  canPickModel: boolean;
@@ -66,13 +82,26 @@ export declare function composerView(props: ComposerViewInput): {
66
82
  aspectOptions: ParameterOption<string>[];
67
83
  offeredAspect: string | null;
68
84
  selectedAspect: ParameterOption<string> | null;
85
+ world: boolean;
86
+ /**
87
+ * Why submit can't go yet, shown under the environment: there's
88
+ * something to send (a character or an attachment) but no environment.
89
+ */
90
+ environmentHint: string | null;
91
+ characterPlaceholder: string;
92
+ frameRateOptions: number[];
93
+ offeredFrameRate: number | null;
69
94
  /** The model ids after a row click: the one picked, or with multi-select that one toggled. */
70
95
  toggledModelIds: (id: string) => string[];
71
96
  /** Everything a submit sends. */
72
97
  payload: () => ComposerSubmitPayload;
73
98
  };
74
99
  export type ComposerView = ReturnType<typeof composerView>;
75
- /** The `+` menu items that can work: "Add media" needs somewhere to put files, the use-case items a handler. */
100
+ /**
101
+ * The `+` menu items that can work: "Add media" needs somewhere to put
102
+ * files, the use-case items a handler. With no `actions`, every item that
103
+ * isn't opt-in.
104
+ */
76
105
  export declare function composerAttachMenuItems(actions: ComposerAttachMenuAction[] | undefined, { canAddMedia, canSelect }: {
77
106
  canAddMedia: boolean;
78
107
  canSelect: boolean;
@@ -80,6 +109,7 @@ export declare function composerAttachMenuItems(actions: ComposerAttachMenuActio
80
109
  action: ComposerAttachMenuAction;
81
110
  label: string;
82
111
  divider?: boolean;
112
+ optIn?: boolean;
83
113
  }[];
84
114
  /**
85
115
  * The attachments after picking files: each image, video or audio file
@@ -1 +1 @@
1
- {"version":3,"file":"composer-view.d.ts","sourceRoot":"","sources":["../src/composer-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer-view.d.ts","sourceRoot":"","sources":["../src/composer-view.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,17 @@ import { TEXT_USE_CASE } from "./composer.js";
3
3
  import { readMediaFiles } from "./media-analyzer.js";
4
4
  import { deriveGenerationUseCase } from "./run.js";
5
5
  import { suggestedModels } from "./suggested-models.js";
6
- /** The `+` menu, in order. "Add media" is the only item with a divider after it. */
6
+ /**
7
+ * The `+` menu, in order. "Add media" is the only item with a divider after
8
+ * it. An `optIn` item shows only when `attachMenuActions` lists it.
9
+ */
7
10
  export const COMPOSER_ATTACH_MENU_ITEMS = [
8
11
  { action: "add-media", label: "Add media", divider: true },
9
12
  { action: "create-image", label: "Create image" },
10
13
  { action: "create-video", label: "Create video" },
14
+ // No suggested world models or shipped world engine yet: a builder adds
15
+ // this with their own models and `engineByKind.world`.
16
+ { action: "create-world", label: "Create world", optIn: true },
11
17
  { action: "edit-media", label: "Edit image" },
12
18
  ];
13
19
  /**
@@ -20,7 +26,7 @@ export function enhanceRevealDurationMs(charCount) {
20
26
  return Math.min(900, Math.max(300, charCount * 6));
21
27
  }
22
28
  export function composerView(props) {
23
- const { value, attachments = [], useCase = null, defaultUseCase = TEXT_USE_CASE, multiSelectUseCases = false, useCases = [], modelsByKind, multiSelectModels = false, modelIds = [], models, modelId = null, autoSelectModel = false, aspectRatios, aspectRatio = null, submitError = null, submitting = false, regions = [], disabled = false, } = props;
29
+ const { value, attachments = [], useCase = null, defaultUseCase = TEXT_USE_CASE, multiSelectUseCases = false, useCases = [], modelsByKind, multiSelectModels = false, modelIds = [], models, modelId = null, autoSelectModel = false, aspectRatios, aspectRatio = null, character = "", frameRate = null, submitError = null, submitting = false, regions = [], disabled = false, } = props;
24
30
  // What the person picked, and what actually runs: with nothing picked, the
25
31
  // builder's default use case (a text request unless they chose otherwise).
26
32
  const pickedUseCases = multiSelectUseCases ? useCases : useCase ? [useCase] : [];
@@ -28,17 +34,26 @@ export function composerView(props) {
28
34
  // An edit needs an image, then a change: a prompt for the whole image, a
29
35
  // region with its own instruction, or both.
30
36
  const editing = activeUseCases.some((u) => u.edit);
37
+ // A world takes two prompts: the environment (`value`, required) and the
38
+ // character the person plays (optional). An image can start the world,
39
+ // but the environment is still needed.
40
+ const world = activeUseCases.some((u) => u.kind === "world");
31
41
  const hasImage = attachments.some((a) => a.kind === "image");
32
42
  const hasContent = editing
33
43
  ? hasImage && (value.trim().length > 0 || regions.length > 0)
34
- : value.trim().length > 0 || attachments.length > 0;
35
- const isSubmitDisabled = submitError ? disabled : (props.submitDisabled ?? (disabled || !hasContent));
44
+ : world
45
+ ? value.trim().length > 0
46
+ : value.trim().length > 0 || attachments.length > 0;
36
47
  const placeholder = props.placeholder ??
37
48
  (editing
38
49
  ? hasImage
39
50
  ? "Describe a change across the whole image, or leave this empty"
40
51
  : "Attach an image to edit"
41
- : "Describe media to create");
52
+ : world
53
+ ? attachments.length > 0
54
+ ? "Describe the world, and how to use the attached media"
55
+ : "Describe the world and how you move through it"
56
+ : "Describe media to create");
42
57
  // The stop icon only appears with somewhere for its click to go.
43
58
  const showStop = submitting && Boolean(props.onAbort);
44
59
  const multiModel = multiSelectModels || multiSelectUseCases;
@@ -55,18 +70,25 @@ export function composerView(props) {
55
70
  .map((u) => ({ label: multiSelectUseCases ? u.label : "", kind: u.kind, ...rosterFor(u) }))
56
71
  .filter((s) => s.options.length > 0);
57
72
  const allModels = modelSections.flatMap((s) => s.options);
73
+ // No menu that can't change anything: without its handler, the Model menu hides.
74
+ const canPickModel = Boolean(multiModel ? props.onModelIdsChange : props.onModelChange);
58
75
  // A pick that isn't in the current list (e.g. the edit model after leaving
59
76
  // edit mode) is shown as unpicked and never submitted. With no list at
60
- // all, the app's pick is passed through as given. With nothing picked
61
- // from a suggested list (and auto-select off), its first model is the pick.
77
+ // all, the app's pick is passed through as given. The Composer never picks
78
+ // for the person: with a Model menu, nothing is picked until they pick or
79
+ // turn on auto-select. Only with no menu (nothing the person could pick
80
+ // with) does a suggested list's first model run.
62
81
  const validPicks = allModels.length > 0 ? rawPickedIds.filter((id) => allModels.some((m) => m.id === id)) : rawPickedIds;
63
- const pickedModelIds = validPicks.length > 0 || autoSelectModel ? validPicks : modelSections.filter((s) => s.suggested).map((s) => s.options[0].id);
82
+ const pickedModelIds = validPicks.length > 0 || autoSelectModel || canPickModel
83
+ ? validPicks
84
+ : modelSections.filter((s) => s.suggested).map((s) => s.options[0].id);
64
85
  const pickedModels = allModels.filter((m) => pickedModelIds.includes(m.id));
65
- // No menu that can't change anything: without its handler, the Model menu hides (the default pick still runs).
66
- const canPickModel = Boolean(multiModel ? props.onModelIdsChange : props.onModelChange);
67
86
  const modelTriggerLabel = pickedModels.length > 1
68
87
  ? `${pickedModels.length} models`
69
- : (pickedModels[0]?.label ?? (autoSelectModel ? "Auto-select" : "Select models"));
88
+ : (pickedModels[0]?.label ?? (autoSelectModel ? "Auto-select" : multiModel ? "Select models" : "Select model"));
89
+ // With a Model menu, a submit needs a model: one picked, or auto-select to pick it.
90
+ const needsModel = canPickModel && modelSections.length > 0 && !autoSelectModel && pickedModelIds.length === 0;
91
+ const isSubmitDisabled = submitError ? disabled : (props.submitDisabled ?? (disabled || !hasContent || needsModel));
70
92
  // An edit keeps the source image's shape.
71
93
  const showAspectRatio = activeUseCases.some((u) => !u.edit && (u.kind === "image" || u.kind === "video"));
72
94
  // Only ratios every model that might run takes: the picked ones, or with
@@ -81,6 +103,12 @@ export function composerView(props) {
81
103
  // A pick the current models don't take is shown as unpicked and never sent.
82
104
  const offeredAspect = showAspectRatio && aspectOptions.some((o) => o.value === aspectRatio) ? aspectRatio : null;
83
105
  const selectedAspect = aspectOptions.find((o) => o.value === offeredAspect) ?? null;
106
+ // A world's frame rate works like aspect ratio: only rates every model
107
+ // that might run takes, and a pick outside them is never sent.
108
+ const frameRateOptions = world
109
+ ? (ratioModels.reduce((shared, m) => (shared ?? m.frameRates ?? []).filter((r) => m.frameRates?.includes(r)), null) ?? [])
110
+ : [];
111
+ const offeredFrameRate = frameRate != null && frameRateOptions.includes(frameRate) ? frameRate : null;
84
112
  const selections = () => activeUseCases.map((u) => ({
85
113
  useCase: u,
86
114
  models: rosterFor(u).options,
@@ -88,6 +116,13 @@ export function composerView(props) {
88
116
  }));
89
117
  return {
90
118
  pickedUseCases,
119
+ /**
120
+ * Which use cases are picked, as one string. When it changes, a Composer
121
+ * whose end user owns the auto-select switch turns auto-select off: it
122
+ * belongs to the Model menu it was turned on in, so a new use case
123
+ * starts with its model picked by hand.
124
+ */
125
+ useCaseKey: pickedUseCases.map((u) => `${u.kind}${u.edit ? ":edit" : ""}`).join(","),
91
126
  activeUseCases,
92
127
  editing,
93
128
  isSubmitDisabled,
@@ -102,6 +137,17 @@ export function composerView(props) {
102
137
  aspectOptions,
103
138
  offeredAspect,
104
139
  selectedAspect,
140
+ world,
141
+ /**
142
+ * Why submit can't go yet, shown under the environment: there's
143
+ * something to send (a character or an attachment) but no environment.
144
+ */
145
+ environmentHint: world && !value.trim() && (character.trim().length > 0 || attachments.length > 0)
146
+ ? "Add an environment to create a world"
147
+ : null,
148
+ characterPlaceholder: "Describe who you play as, or leave this empty",
149
+ frameRateOptions,
150
+ offeredFrameRate,
105
151
  /** The model ids after a row click: the one picked, or with multi-select that one toggled. */
106
152
  toggledModelIds: (id) => (modelIds.includes(id) ? modelIds.filter((m) => m !== id) : [...modelIds, id]),
107
153
  /** Everything a submit sends. */
@@ -114,12 +160,17 @@ export function composerView(props) {
114
160
  selections: selections(),
115
161
  autoSelectModel,
116
162
  regions: editing ? regions : [],
163
+ ...(world && { character, frameRate: offeredFrameRate }),
117
164
  }),
118
165
  };
119
166
  }
120
- /** The `+` menu items that can work: "Add media" needs somewhere to put files, the use-case items a handler. */
167
+ /**
168
+ * The `+` menu items that can work: "Add media" needs somewhere to put
169
+ * files, the use-case items a handler. With no `actions`, every item that
170
+ * isn't opt-in.
171
+ */
121
172
  export function composerAttachMenuItems(actions, { canAddMedia, canSelect }) {
122
- return COMPOSER_ATTACH_MENU_ITEMS.filter((item) => (actions ?? COMPOSER_ATTACH_MENU_ITEMS.map((i) => i.action)).includes(item.action) &&
173
+ return COMPOSER_ATTACH_MENU_ITEMS.filter((item) => (actions ? actions.includes(item.action) : !item.optIn) &&
123
174
  (item.action === "add-media" ? canAddMedia : canSelect));
124
175
  }
125
176
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"composer-view.js","sourceRoot":"","sources":["../src/composer-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer-view.js","sourceRoot":"","sources":["../src/composer-view.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ import { type ModelRoutingInput, type ModelRoutingResult } from "./model-routing
10
10
  import { type EditRegion } from "./region-edit.js";
11
11
  import { type Reasoning } from "./reasoning.js";
12
12
  import { type ResultStatus, type Run } from "./run.js";
13
- import type { DroppedMedia, GenerationUseCase, MediaKind, ModelOption } from "./types.js";
13
+ import type { ComposerPromptField } from "./composer-view.js";
14
+ import type { DroppedMedia, GenerationUseCase, ModelOption, OutputKind } from "./types.js";
14
15
  export interface ComposerAttachment extends DroppedMedia {
15
16
  id: string;
16
17
  }
@@ -23,7 +24,7 @@ export interface ComposerAttachment extends DroppedMedia {
23
24
  * the design). With none picked, `defaultUseCase` applies.
24
25
  */
25
26
  export interface ComposerUseCase {
26
- kind: MediaKind;
27
+ kind: OutputKind;
27
28
  label: string;
28
29
  /**
29
30
  * An edit of the attached image rather than a new one: no aspect ratio,
@@ -63,6 +64,10 @@ export interface ComposerSubmitPayload {
63
64
  autoSelectModel: boolean;
64
65
  /** An edit's marked regions, each with its own instruction. Empty unless the use case is an edit. */
65
66
  regions?: EditRegion[];
67
+ /** A world's character, the person's own figure in it. With a world use case, `value` is the environment. Undefined for other use cases. */
68
+ character?: string;
69
+ /** The picked frame rate for a world, or null for the model's default. Undefined for other use cases. */
70
+ frameRate?: number | null;
66
71
  }
67
72
  /**
68
73
  * One version of the image being edited: the original, or the result of an
@@ -89,7 +94,7 @@ export interface ComposerOptions {
89
94
  * for multi-use-case select, since one Fal engine outputs one kind, e.g.
90
95
  * `{ image: createFalEngine({ outputKind: "image" }), video: createFalEngine({ outputKind: "video" }) }`.
91
96
  */
92
- engineByKind?: Partial<Record<MediaKind, GenerationEngine>>;
97
+ engineByKind?: Partial<Record<OutputKind, GenerationEngine>>;
93
98
  /**
94
99
  * The engine for text requests (a Composer with no use case picked, or a
95
100
  * text use case). Defaults to `reasoningEngine`, and to a mock text engine
@@ -110,8 +115,12 @@ export interface ComposerOptions {
110
115
  reasoningEngine?: GenerationEngine;
111
116
  /** Set with `reasoningEngine` to override the provider's pair; used for every kind (§5.5). */
112
117
  reasoningModel?: string;
113
- /** Overrides the instruction wrapping a raw prompt for Enhance. Defaults to a generic still/video-aware rewrite instruction. */
114
- enhancePrompt?: (value: string, mode?: GenerationUseCase) => string;
118
+ /**
119
+ * Overrides the instruction wrapping a raw prompt for Enhance. Defaults to
120
+ * a rewrite instruction for the kind of prompt: still, video, text, or a
121
+ * world's environment or character (`field`).
122
+ */
123
+ enhancePrompt?: (value: string, mode?: GenerationUseCase, field?: ComposerPromptField) => string;
115
124
  /**
116
125
  * Auto-select: with `autoSelectModel` on in the payload, the reasoning
117
126
  * model picks one model per use case at submit, then these fire with the
@@ -178,7 +187,7 @@ export declare function createComposerStore(getOptions: () => ComposerOptions, g
178
187
  subscribe(listener: () => void): () => undefined;
179
188
  submit: (payload: ComposerSubmitPayload) => void;
180
189
  cancel: () => void;
181
- enhance: (value: string) => Promise<string>;
190
+ enhance: (value: string, field?: ComposerPromptField) => Promise<string>;
182
191
  edit: (s: ComposerState, editImage: DroppedMedia | null | undefined) => ComposerEdit | null;
183
192
  reasoning: () => Reasoning | undefined;
184
193
  };
@@ -1 +1 @@
1
- {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"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"}
package/dist/composer.js CHANGED
@@ -17,7 +17,14 @@ export const EDIT_IMAGE_USE_CASE = { kind: "image", label: "Edit image", edit: t
17
17
  /** A result's `modelId` when nothing was picked: the engine runs its own default model. */
18
18
  export const DEFAULT_MODEL_ID = "default";
19
19
  const mockTextEngine = createMockEngine({ outputKind: "text" });
20
- function defaultEnhancePrompt(value, mode) {
20
+ function defaultEnhancePrompt(value, mode, field = "prompt") {
21
+ const reply = "Reply with only the rewritten description, nothing else.";
22
+ if (field === "environment") {
23
+ return `Rewrite the following description of an interactive world for a world model to be more detailed and specific, keeping the same intent: the setting, its look and lighting, and how the person moves through it. Don't add a character. ${reply}\n\n${value}`;
24
+ }
25
+ if (field === "character") {
26
+ return `Rewrite the following description of the character a person plays in an interactive world to be more detailed and specific, keeping the same intent: who or what they are, how they look, and how they move. Don't describe the world around them. ${reply}\n\n${value}`;
27
+ }
21
28
  const subject = mode?.includes("video")
22
29
  ? "a video-generation"
23
30
  : mode === "text-to-text" || mode === "vision"
@@ -107,6 +114,13 @@ export function createComposerStore(getOptions, getProvided = () => undefined) {
107
114
  const params = payload.aspectRatio && !isEdit ? { aspectRatio: payload.aspectRatio } : {};
108
115
  if (isEdit)
109
116
  params.regions = payload.regions ?? [];
117
+ // A world's extra inputs, for a world engine to map to its model.
118
+ if (selection.useCase.kind === "world") {
119
+ if (payload.character?.trim())
120
+ params.character = payload.character;
121
+ if (payload.frameRate != null)
122
+ params.frameRate = payload.frameRate;
123
+ }
110
124
  const request = {
111
125
  mode: deriveGenerationUseCase(selection.useCase, attachments),
112
126
  prompt: payload.value,
@@ -168,6 +182,8 @@ export function createComposerStore(getOptions, getProvided = () => undefined) {
168
182
  prompt,
169
183
  attachments: newRun.request.attachments,
170
184
  aspectRatio: newRun.request.params.aspectRatio,
185
+ character: newRun.request.params.character,
186
+ frameRate: newRun.request.params.frameRate,
171
187
  // Text engines that stream fill `output` in while still "running".
172
188
  onText: (text) => update(newRun.id, (r) => streamResult(r, result.id, text)),
173
189
  signal,
@@ -266,14 +282,14 @@ export function createComposerStore(getOptions, getProvided = () => undefined) {
266
282
  const cancelAll = (prev) => prev.map((run) => run.results.reduce((acc, r) => cancelResult(acc, r.id), run));
267
283
  set((s) => ({ routing: false, runs: cancelAll(s.runs), editRuns: cancelAll(s.editRuns) }));
268
284
  }
269
- /** Rewrites a prompt with the reasoning model. Only offer it when `reasoning()` is set. */
270
- async function enhance(value) {
285
+ /** Rewrites a prompt with the reasoning model, worded for its `field`. Only offer it when `reasoning()` is set. */
286
+ async function enhance(value, field) {
271
287
  const r = reasoning();
272
288
  if (!r)
273
289
  throw new Error("[chai-ui] Enhance needs a reasoning engine and model.");
274
290
  set(() => ({ enhancing: true }));
275
291
  try {
276
- const prompt = (getOptions().enhancePrompt ?? defaultEnhancePrompt)(value, state.runs[0]?.request.mode);
292
+ const prompt = (getOptions().enhancePrompt ?? defaultEnhancePrompt)(value, state.runs[0]?.request.mode, field);
277
293
  const { src } = await r.engine.generate({ modelId: r.model, prompt, attachments: [] });
278
294
  return src;
279
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../src/composer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,wBAAwB,GAEzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAmD,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAmB,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAkB,MAAM,gBAAgB,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,YAAY,GAIb,MAAM,UAAU,CAAC;AA2BlB,uHAAuH;AACvH,MAAM,CAAC,MAAM,aAAa,GAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAE9E,8HAA8H;AAC9H,MAAM,CAAC,MAAM,mBAAmB,GAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAoDvG,2FAA2F;AAC3F,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AA2F1C,MAAM,cAAc,GAAG,gBAAgB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAEhE,SAAS,oBAAoB,CAAC,KAAa,EAAE,IAAwB,EAAE,QAA6B,QAAQ;IAC1G,MAAM,KAAK,GAAG,0DAA0D,CAAC;IACzE,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,0OAA0O,KAAK,OAAO,KAAK,EAAE,CAAC;IACvQ,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,sPAAsP,KAAK,OAAO,KAAK,EAAE,CAAC;IACnR,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;QACrC,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,QAAQ;YAC5C,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,qBAAqB,CAAC;IAC5B,OAAO,yBAAyB,OAAO,6HAA6H,KAAK,EAAE,CAAC;AAC9K,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAkE;IACnH,OAAO,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,KAAsC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvG;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAiC,EAAE,cAA2C,GAAG,EAAE,CAAC,SAAS;IAC/H,IAAI,KAAK,GAAkB;QACzB,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,IAAI;QAC1D,cAAc,EAAE,CAAC;KAClB,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAExC,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,QAAQ,GAAG,CAAC,CAAgB,EAAE,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,EAAiB,EAAE;QAC9F,MAAM,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC;QAC/B,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU;YACzB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IACnH,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,EAAgD,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,CAAC,EAAE,CAAC;IACjC,CAAC,CAAC;IAEF,IAAI,aAAa,GAAmG,IAAI,CAAC;IACzH,MAAM,UAAU,GAAG,CAAC,CAAgB,EAAE,KAA0B,EAAiB,EAAE;QACjF,IAAI,aAAa,IAAI,aAAa,CAAC,KAAK,KAAK,KAAK,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC,KAAK,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;YACxI,OAAO,aAAa,CAAC,QAAQ,CAAC;QAChC,CAAC;QACD,MAAM,QAAQ,GAAkB,KAAK;YACnC,CAAC,CAAC;gBACE,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;gBACnF,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG;oBAClB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG;oBACrC,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,OAAO,EAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAoC,IAAI,EAAE;oBACvE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO;iBACxB,CAAC,CAAC,CACJ;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,aAAa,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC;QACnF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAEnE,mFAAmF;IACnF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,4EAA4E;IAC5E,4DAA4D;IAC5D,IAAI,UAAU,GAA2B,IAAI,CAAC;IAC9C,0EAA0E;IAC1E,kEAAkE;IAClE,IAAI,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,uEAAuE;IACvE,8EAA8E;IAC9E,SAAS,YAAY,CAAC,OAA8B,EAAE,SAA4B;QAChF,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;QACzF,MAAM,WAAW,GAAmB,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAClH,mEAAmE;QACnE,wEAAwE;QACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,MAAM,MAAM,GAA4B,OAAO,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnH,IAAI,MAAM;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACnD,kEAAkE;QAClE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE;gBAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACpE,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI;gBAAE,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,MAAM,OAAO,GAAY;YACvB,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;YAC7D,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,WAAW;YACX,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,gBAAgB,CAAC;YAC7F,MAAM;SACP,CAAC;QACF,MAAM,MAAM,GAAG,MAAM;YACnB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,MAAM,IAAI,cAAc,CAAC;YAClD,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC;QAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,SAAS,KAAK,CAAC,OAA8B,EAAE,MAAmB;QAChE,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACnD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACrE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,cAAc,CAAC;QACpC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACR,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvC,uEAAuE;YACvE,mDAAmD;YACnD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,IAAI;oBACJ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC;oBACnC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBACjE,OAAO,EAAE,EAAE;iBACZ,CAAC;YACJ,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,qEAAqE;QACrE,uEAAuE;QACvE,2DAA2D;QAC3D,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAqB,EAAE,EAAE;YACtD,MAAM,KAAK,GAAG,CAAC,IAAW,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC;QAEF,KAAK,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YAC9D,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;YACrB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,mEAAmE;gBACnE,wDAAwD;gBACxD,MAAM,OAAO,GAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAoC,IAAI,EAAE,CAAC;gBAClF,MAAM,KAAK,GACT,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1G,MAAM,MAAM,GAAG,MAAM;oBACnB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;oBAC3F,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC1B,KAAK,MAAM;qBACR,QAAQ,CAAC;oBACR,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;oBACzE,MAAM;oBACN,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;oBACvC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAiC;oBACpE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAA+B;oBAChE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAA+B;oBAChE,mEAAmE;oBACnE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC5E,MAAM;iBACP,CAAC;qBACD,IAAI,CACH,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;oBACpC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;oBACzF,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;oBACN,IAAI,YAAY,CAAC,GAAG,CAAC;wBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnF,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClF,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5C,CAAC,CACF,CAAC;YACN,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,MAAM,CAAC,OAA8B;QAC5C,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC;QACtB,UAAU,EAAE,KAAK,EAAE,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,OAAO;gBAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC;YAAE,mBAAmB,CAAC,6CAA6C,CAAC,CAAC;QAC3E,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/E,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACR,MAAM,IAAI,GAA2B,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7F,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzE,KAAK,MAAM,GAAG,IAAI,gBAAgB;oBAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC;gBACnD,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,OAAO,CAAC,GAAG,CACd,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7B,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACrB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,UAAU,CAAC;gBACT,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;gBAC5B,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvD,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,CAAC,EAAE,MAAM;gBACjB,KAAK,EAAE,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;gBACrD,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,MAAM;aACP,CAAC,CACP,CACF,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACjB,IAAI,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO;YAC9C,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,OAAO;gBAAE,IAAI,GAAG,EAAE,MAAM,KAAK,UAAU;oBAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC;YAC3F,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,IAAI,MAAM,CAAC,gBAAgB;gBAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;iBAC3D,IAAI,SAAS,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,KAAK,CACH;gBACE,GAAG,OAAO;gBACV,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO;gBACxC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9C,GAAG,GAAG;oBACN,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ;iBAC5D,CAAC,CAAC;aACJ,EACD,MAAM,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,SAAS,MAAM;QACb,QAAQ,IAAI,CAAC,CAAC;QACd,UAAU,EAAE,KAAK,EAAE,CAAC;QACpB,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,SAAS,GAAG,CAAC,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACnH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,mHAAmH;IACnH,KAAK,UAAU,OAAO,CAAC,KAAa,EAAE,KAA2B;QAC/D,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACjF,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,aAAa,IAAI,oBAAoB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/G,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;YACvF,OAAO,GAAG,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,CAAC,OAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAEvE;;;;OAIG;IACH,SAAS,IAAI,CAAC,CAAgB,EAAE,SAA0C;QACxE,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO;YACL,QAAQ;YACR,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACnE,qBAAqB,EAAE,gBAAgB;YACvC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,SAAS,CAAC,QAAoB;YAC5B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,SAAS;KACV,CAAC;AACJ,CAAC;AAID,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AACjC,8GAA8G;AAC9G,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO;IACpC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,IAAI,CACV,yEAAyE,WAAW,sDAAsD,CAC3I,CAAC;AACJ,CAAC"}
package/dist/engine.d.ts CHANGED
@@ -21,6 +21,10 @@ export interface GenerationEngine {
21
21
  attachments: DroppedMedia[];
22
22
  /** The output aspect ratio the person picked, e.g. `"16:9"`. Only set for a model that lists it in `ModelOption.aspectRatios`. */
23
23
  aspectRatio?: string;
24
+ /** A world's character (Create world), when the person gave one. `prompt` is the environment. */
25
+ character?: string;
26
+ /** A world's frame rate, e.g. `16`. Only set for a model that lists it in `ModelOption.frameRates`. */
27
+ frameRate?: number;
24
28
  /**
25
29
  * Optional streaming hook for text output. An engine that can stream
26
30
  * calls this with the full text received so far (not a delta) each time
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE;QACb;;;WAGG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,YAAY,EAAE,CAAC;QAC5B,kIAAkI;QAClI,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;;;WAKG;QACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QACrC;;;;;WAKG;QACH,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAC;CAC1F;AAED,sEAAsE;AACtE,wBAAgB,UAAU,IAAI,KAAK,CAElC;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAElD;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9E;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;gBACP,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;CAKhD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,GAAG,SAAS,CAQvE;AAED,uGAAuG;AACvG,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAM9F;AAoFD,MAAM,WAAW,iBAAiB;IAChC,8HAA8H;IAC9H,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAgClF;AAED,eAAO,MAAM,UAAU,EAAE,gBAAqC,CAAC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE;QACb;;;WAGG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,YAAY,EAAE,CAAC;QAC5B,kIAAkI;QAClI,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iGAAiG;QACjG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,uGAAuG;QACvG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;;;WAKG;QACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QACrC;;;;;WAKG;QACH,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAC;CAC1F;AAED,sEAAsE;AACtE,wBAAgB,UAAU,IAAI,KAAK,CAElC;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAElD;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9E;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;gBACP,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;CAKhD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,GAAG,SAAS,CAQvE;AAED,uGAAuG;AACvG,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAM9F;AAoFD,MAAM,WAAW,iBAAiB;IAChC,8HAA8H;IAC9H,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAgClF;AAED,eAAO,MAAM,UAAU,EAAE,gBAAqC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,12 @@
5
5
  * pass your own builder to the hooks' `routingPrompt` option to replace it.
6
6
  */
7
7
  import { type GenerationEngine } from "./engine.js";
8
- import type { DroppedMedia, MediaKind, ModelOption } from "./types.js";
8
+ import type { DroppedMedia, MediaKind, ModelOption, OutputKind } from "./types.js";
9
9
  export interface ModelRoutingInput {
10
10
  /** What the person typed. Empty for media-only requests (e.g. Media Analyzer). */
11
11
  prompt: string;
12
12
  /** What the request produces, e.g. "image" for Create image, "text" for analysis. */
13
- outputKind: MediaKind;
13
+ outputKind: OutputKind;
14
14
  /** Kinds of media attached, if any. */
15
15
  attachmentKinds: MediaKind[];
16
16
  /** The candidates: only models the builder offers for this request. */
@@ -1 +1 @@
1
- {"version":3,"file":"model-routing.d.ts","sourceRoot":"","sources":["../src/model-routing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,SAAS,CAAC;IACtB,uCAAuC;IACvC,eAAe,EAAE,SAAS,EAAE,CAAC;IAC7B,uEAAuE;IACvE,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,MAAM,CAgBlH;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,SAAS,CAO/F;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,GAAG,gBAAgB,GAAG,eAAe,CAAC;IAC5D,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,uFAAuF;IACvF,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,CAAC;IACrD,kFAAkF;IAClF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2BlF"}
1
+ {"version":3,"file":"model-routing.d.ts","sourceRoot":"","sources":["../src/model-routing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,UAAU,CAAC;IACvB,uCAAuC;IACvC,eAAe,EAAE,SAAS,EAAE,CAAC;IAC7B,uEAAuE;IACvE,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAG,MAAM,CAgBlH;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,SAAS,CAO/F;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrC;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,GAAG,gBAAgB,GAAG,eAAe,CAAC;IAC5D,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,uFAAuF;IACvF,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC;IAC7B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,MAAM,CAAC;IACrD,kFAAkF;IAClF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2BlF"}
package/dist/run.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * transitions over it: pure, framework-free logic here; `useComposer`
4
4
  * (`@chai-ui/react`) is the thin React binding on top.
5
5
  */
6
- import type { DroppedMedia, Evaluation, GenerationUseCase, MediaKind, Usage } from "./types.js";
6
+ import type { DroppedMedia, Evaluation, GenerationUseCase, MediaKind, OutputKind, Usage } from "./types.js";
7
7
  export interface Request {
8
8
  /** The specific generation use case, when one could be derived — see `deriveGenerationUseCase`. Undefined when the use case (or its kind) has no `GenerationUseCase` match yet, e.g. audio. */
9
9
  mode?: GenerationUseCase;
@@ -71,11 +71,11 @@ export declare function cancelResult(run: Run, resultId: string): Run;
71
71
  * case plus whether anything is attached — this is real derivation logic,
72
72
  * not just plumbing: the same `kind: "video"` means `"text-to-video"` with
73
73
  * nothing attached but `"image-to-video"` once an image is. Returns
74
- * `undefined` for "audio" (no `GenerationUseCase` member exists yet;
75
- * audio generation is planned). `"text"` is a text request: a reply to
74
+ * `undefined` for "audio" and "world" (no `GenerationUseCase` member exists
75
+ * yet; audio generation is planned, world models await provider specs). `"text"` is a text request: a reply to
76
76
  * the prompt, or a description of the attached media ("vision").
77
77
  */
78
78
  export declare function deriveGenerationUseCase(useCase: {
79
- kind: MediaKind;
79
+ kind: OutputKind;
80
80
  } | null | undefined, attachments: DroppedMedia[]): GenerationUseCase | undefined;
81
81
  //# sourceMappingURL=run.d.ts.map
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhG,MAAM,WAAW,OAAO;IACtB,+LAA+L;IAC/L,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,gGAAgG;AAChG,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEjF,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wFAAwF;IACxF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChD,kKAAkK;IAClK,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4SAA4S;IAC5S,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAQ1C;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAa/C;AAMD,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAI/E;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EACxB,KAAK,CAAC,EAAE,KAAK,EACb,WAAW,CAAC,EAAE,UAAU,EAAE,GACzB,GAAG,CASL;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAOlF;AAED,oGAAoG;AACpG,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAM5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAC/C,WAAW,EAAE,YAAY,EAAE,GAC1B,iBAAiB,GAAG,SAAS,CAO/B"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE5G,MAAM,WAAW,OAAO;IACtB,+LAA+L;IAC/L,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,gGAAgG;AAChG,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEjF,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wFAAwF;IACxF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChD,kKAAkK;IAClK,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4SAA4S;IAC5S,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAQ1C;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAa/C;AAMD,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAI/E;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EACxB,KAAK,CAAC,EAAE,KAAK,EACb,WAAW,CAAC,EAAE,UAAU,EAAE,GACzB,GAAG,CASL;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAOlF;AAED,oGAAoG;AACpG,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAM5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAChD,WAAW,EAAE,YAAY,EAAE,GAC1B,iBAAiB,GAAG,SAAS,CAO/B"}
package/dist/run.js CHANGED
@@ -77,8 +77,8 @@ export function cancelResult(run, resultId) {
77
77
  * case plus whether anything is attached — this is real derivation logic,
78
78
  * not just plumbing: the same `kind: "video"` means `"text-to-video"` with
79
79
  * nothing attached but `"image-to-video"` once an image is. Returns
80
- * `undefined` for "audio" (no `GenerationUseCase` member exists yet;
81
- * audio generation is planned). `"text"` is a text request: a reply to
80
+ * `undefined` for "audio" and "world" (no `GenerationUseCase` member exists
81
+ * yet; audio generation is planned, world models await provider specs). `"text"` is a text request: a reply to
82
82
  * the prompt, or a description of the attached media ("vision").
83
83
  */
84
84
  export function deriveGenerationUseCase(useCase, attachments) {
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,6 +3,12 @@
3
3
  */
4
4
  /** The kinds of media a component can take in or produce. */
5
5
  export type MediaKind = "image" | "video" | "audio" | "text";
6
+ /**
7
+ * What a generation produces: any `MediaKind`, or an interactive world from
8
+ * a world model (Create world). A world is never an attachment, so it lives
9
+ * here rather than in `MediaKind`.
10
+ */
11
+ export type OutputKind = MediaKind | "world";
6
12
  /**
7
13
  * A piece of media a person attached (or an engine received) — just enough
8
14
  * to know its kind and where it lives.
@@ -102,6 +108,12 @@ export interface ModelOption {
102
108
  * the input image): no menu shows.
103
109
  */
104
110
  aspectRatios?: string[];
111
+ /**
112
+ * The frame rates a world model runs at, e.g. `[16]`. Composer's frame
113
+ * rate menu offers only rates the selected models share. Leave it out for
114
+ * a model with one fixed rate it doesn't take as an input: no menu shows.
115
+ */
116
+ frameRates?: number[];
105
117
  }
106
118
  /** See `ModelOption.falInput`. */
107
119
  export interface FalInputFormat {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,iBAAiB,CAAC;IACvD,WAAW,CAAC,EAAE,cAAc,GAAG,YAAY,CAAC;CAC7C;AAED,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,QAAQ,GACR,cAAc,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,iBAAiB,CAAC;IACvD,WAAW,CAAC,EAAE,cAAc,GAAG,YAAY,CAAC;CAC7C;AAED,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,QAAQ,GACR,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chai-ui/core",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "CHAI UI headless core — the Request/Run/Result data model and pluggable generation engines (Fal.ai, OpenRouter, mock). No framework, no rendering.",
5
5
  "license": "MIT",
6
6
  "author": "kazarazat",
@@ -9,15 +9,29 @@ import { readMediaFiles } from "./media-analyzer.js";
9
9
  import type { EditRegion } from "./region-edit.js";
10
10
  import { deriveGenerationUseCase } from "./run.js";
11
11
  import { suggestedModels } from "./suggested-models.js";
12
- import type { MediaKind, ModelOption, ParameterOption } from "./types.js";
12
+ import type { ModelOption, OutputKind, ParameterOption } from "./types.js";
13
13
 
14
- export type ComposerAttachMenuAction = "add-media" | "create-image" | "create-video" | "edit-media";
14
+ /** Which prompt field an Enhance click is for: the bar's prompt, or a world's environment or character. */
15
+ export type ComposerPromptField = "prompt" | "environment" | "character";
15
16
 
16
- /** The `+` menu, in order. "Add media" is the only item with a divider after it. */
17
- export const COMPOSER_ATTACH_MENU_ITEMS: { action: ComposerAttachMenuAction; label: string; divider?: boolean }[] = [
17
+ export type ComposerAttachMenuAction = "add-media" | "create-image" | "create-video" | "create-world" | "edit-media";
18
+
19
+ /**
20
+ * The `+` menu, in order. "Add media" is the only item with a divider after
21
+ * it. An `optIn` item shows only when `attachMenuActions` lists it.
22
+ */
23
+ export const COMPOSER_ATTACH_MENU_ITEMS: {
24
+ action: ComposerAttachMenuAction;
25
+ label: string;
26
+ divider?: boolean;
27
+ optIn?: boolean;
28
+ }[] = [
18
29
  { action: "add-media", label: "Add media", divider: true },
19
30
  { action: "create-image", label: "Create image" },
20
31
  { action: "create-video", label: "Create video" },
32
+ // No suggested world models or shipped world engine yet: a builder adds
33
+ // this with their own models and `engineByKind.world`.
34
+ { action: "create-world", label: "Create world", optIn: true },
21
35
  { action: "edit-media", label: "Edit image" },
22
36
  ];
23
37
 
@@ -41,7 +55,7 @@ export interface ComposerViewInput {
41
55
  defaultUseCase?: ComposerUseCase;
42
56
  multiSelectUseCases?: boolean;
43
57
  useCases?: ComposerUseCase[];
44
- modelsByKind?: Partial<Record<MediaKind, ModelOption[]>>;
58
+ modelsByKind?: Partial<Record<OutputKind, ModelOption[]>>;
45
59
  multiSelectModels?: boolean;
46
60
  modelIds?: string[];
47
61
  models?: ModelOption[];
@@ -51,6 +65,9 @@ export interface ComposerViewInput {
51
65
  autoSelectModel?: boolean;
52
66
  aspectRatios?: ParameterOption<string>[];
53
67
  aspectRatio?: string | null;
68
+ /** A world's character field. */
69
+ character?: string;
70
+ frameRate?: number | null;
54
71
  submitError?: string | null;
55
72
  submitDisabled?: boolean;
56
73
  submitting?: boolean;
@@ -75,6 +92,8 @@ export function composerView(props: ComposerViewInput) {
75
92
  autoSelectModel = false,
76
93
  aspectRatios,
77
94
  aspectRatio = null,
95
+ character = "",
96
+ frameRate = null,
78
97
  submitError = null,
79
98
  submitting = false,
80
99
  regions = [],
@@ -88,18 +107,27 @@ export function composerView(props: ComposerViewInput) {
88
107
  // An edit needs an image, then a change: a prompt for the whole image, a
89
108
  // region with its own instruction, or both.
90
109
  const editing = activeUseCases.some((u) => u.edit);
110
+ // A world takes two prompts: the environment (`value`, required) and the
111
+ // character the person plays (optional). An image can start the world,
112
+ // but the environment is still needed.
113
+ const world = activeUseCases.some((u) => u.kind === "world");
91
114
  const hasImage = attachments.some((a) => a.kind === "image");
92
115
  const hasContent = editing
93
116
  ? hasImage && (value.trim().length > 0 || regions.length > 0)
94
- : value.trim().length > 0 || attachments.length > 0;
95
- const isSubmitDisabled = submitError ? disabled : (props.submitDisabled ?? (disabled || !hasContent));
117
+ : world
118
+ ? value.trim().length > 0
119
+ : value.trim().length > 0 || attachments.length > 0;
96
120
  const placeholder =
97
121
  props.placeholder ??
98
122
  (editing
99
123
  ? hasImage
100
124
  ? "Describe a change across the whole image, or leave this empty"
101
125
  : "Attach an image to edit"
102
- : "Describe media to create");
126
+ : world
127
+ ? attachments.length > 0
128
+ ? "Describe the world, and how to use the attached media"
129
+ : "Describe the world and how you move through it"
130
+ : "Describe media to create");
103
131
  // The stop icon only appears with somewhere for its click to go.
104
132
  const showStop = submitting && Boolean(props.onAbort);
105
133
 
@@ -116,20 +144,27 @@ export function composerView(props: ComposerViewInput) {
116
144
  .map((u) => ({ label: multiSelectUseCases ? u.label : "", kind: u.kind, ...rosterFor(u) }))
117
145
  .filter((s) => s.options.length > 0);
118
146
  const allModels = modelSections.flatMap((s) => s.options);
147
+ // No menu that can't change anything: without its handler, the Model menu hides.
148
+ const canPickModel = Boolean(multiModel ? props.onModelIdsChange : props.onModelChange);
119
149
  // A pick that isn't in the current list (e.g. the edit model after leaving
120
150
  // edit mode) is shown as unpicked and never submitted. With no list at
121
- // all, the app's pick is passed through as given. With nothing picked
122
- // from a suggested list (and auto-select off), its first model is the pick.
151
+ // all, the app's pick is passed through as given. The Composer never picks
152
+ // for the person: with a Model menu, nothing is picked until they pick or
153
+ // turn on auto-select. Only with no menu (nothing the person could pick
154
+ // with) does a suggested list's first model run.
123
155
  const validPicks = allModels.length > 0 ? rawPickedIds.filter((id) => allModels.some((m) => m.id === id)) : rawPickedIds;
124
156
  const pickedModelIds =
125
- validPicks.length > 0 || autoSelectModel ? validPicks : modelSections.filter((s) => s.suggested).map((s) => s.options[0]!.id);
157
+ validPicks.length > 0 || autoSelectModel || canPickModel
158
+ ? validPicks
159
+ : modelSections.filter((s) => s.suggested).map((s) => s.options[0]!.id);
126
160
  const pickedModels = allModels.filter((m) => pickedModelIds.includes(m.id));
127
- // No menu that can't change anything: without its handler, the Model menu hides (the default pick still runs).
128
- const canPickModel = Boolean(multiModel ? props.onModelIdsChange : props.onModelChange);
129
161
  const modelTriggerLabel =
130
162
  pickedModels.length > 1
131
163
  ? `${pickedModels.length} models`
132
- : (pickedModels[0]?.label ?? (autoSelectModel ? "Auto-select" : "Select models"));
164
+ : (pickedModels[0]?.label ?? (autoSelectModel ? "Auto-select" : multiModel ? "Select models" : "Select model"));
165
+ // With a Model menu, a submit needs a model: one picked, or auto-select to pick it.
166
+ const needsModel = canPickModel && modelSections.length > 0 && !autoSelectModel && pickedModelIds.length === 0;
167
+ const isSubmitDisabled = submitError ? disabled : (props.submitDisabled ?? (disabled || !hasContent || needsModel));
133
168
 
134
169
  // An edit keeps the source image's shape.
135
170
  const showAspectRatio = activeUseCases.some((u) => !u.edit && (u.kind === "image" || u.kind === "video"));
@@ -147,6 +182,13 @@ export function composerView(props: ComposerViewInput) {
147
182
  const offeredAspect = showAspectRatio && aspectOptions.some((o) => o.value === aspectRatio) ? aspectRatio : null;
148
183
  const selectedAspect = aspectOptions.find((o) => o.value === offeredAspect) ?? null;
149
184
 
185
+ // A world's frame rate works like aspect ratio: only rates every model
186
+ // that might run takes, and a pick outside them is never sent.
187
+ const frameRateOptions = world
188
+ ? (ratioModels.reduce<number[] | null>((shared, m) => (shared ?? m.frameRates ?? []).filter((r) => m.frameRates?.includes(r)), null) ?? [])
189
+ : [];
190
+ const offeredFrameRate = frameRate != null && frameRateOptions.includes(frameRate) ? frameRate : null;
191
+
150
192
  const selections = (): ComposerSelection[] =>
151
193
  activeUseCases.map((u) => ({
152
194
  useCase: u,
@@ -156,6 +198,13 @@ export function composerView(props: ComposerViewInput) {
156
198
 
157
199
  return {
158
200
  pickedUseCases,
201
+ /**
202
+ * Which use cases are picked, as one string. When it changes, a Composer
203
+ * whose end user owns the auto-select switch turns auto-select off: it
204
+ * belongs to the Model menu it was turned on in, so a new use case
205
+ * starts with its model picked by hand.
206
+ */
207
+ useCaseKey: pickedUseCases.map((u) => `${u.kind}${u.edit ? ":edit" : ""}`).join(","),
159
208
  activeUseCases,
160
209
  editing,
161
210
  isSubmitDisabled,
@@ -170,6 +219,18 @@ export function composerView(props: ComposerViewInput) {
170
219
  aspectOptions,
171
220
  offeredAspect,
172
221
  selectedAspect,
222
+ world,
223
+ /**
224
+ * Why submit can't go yet, shown under the environment: there's
225
+ * something to send (a character or an attachment) but no environment.
226
+ */
227
+ environmentHint:
228
+ world && !value.trim() && (character.trim().length > 0 || attachments.length > 0)
229
+ ? "Add an environment to create a world"
230
+ : null,
231
+ characterPlaceholder: "Describe who you play as, or leave this empty",
232
+ frameRateOptions,
233
+ offeredFrameRate,
173
234
  /** The model ids after a row click: the one picked, or with multi-select that one toggled. */
174
235
  toggledModelIds: (id: string) => (modelIds.includes(id) ? modelIds.filter((m) => m !== id) : [...modelIds, id]),
175
236
  /** Everything a submit sends. */
@@ -182,20 +243,25 @@ export function composerView(props: ComposerViewInput) {
182
243
  selections: selections(),
183
244
  autoSelectModel,
184
245
  regions: editing ? regions : [],
246
+ ...(world && { character, frameRate: offeredFrameRate }),
185
247
  }),
186
248
  };
187
249
  }
188
250
 
189
251
  export type ComposerView = ReturnType<typeof composerView>;
190
252
 
191
- /** The `+` menu items that can work: "Add media" needs somewhere to put files, the use-case items a handler. */
253
+ /**
254
+ * The `+` menu items that can work: "Add media" needs somewhere to put
255
+ * files, the use-case items a handler. With no `actions`, every item that
256
+ * isn't opt-in.
257
+ */
192
258
  export function composerAttachMenuItems(
193
259
  actions: ComposerAttachMenuAction[] | undefined,
194
260
  { canAddMedia, canSelect }: { canAddMedia: boolean; canSelect: boolean }
195
261
  ) {
196
262
  return COMPOSER_ATTACH_MENU_ITEMS.filter(
197
263
  (item) =>
198
- (actions ?? COMPOSER_ATTACH_MENU_ITEMS.map((i) => i.action)).includes(item.action) &&
264
+ (actions ? actions.includes(item.action) : !item.optIn) &&
199
265
  (item.action === "add-media" ? canAddMedia : canSelect)
200
266
  );
201
267
  }
package/src/composer.ts CHANGED
@@ -28,7 +28,8 @@ import {
28
28
  type ResultStatus,
29
29
  type Run,
30
30
  } from "./run.js";
31
- import type { DroppedMedia, GenerationUseCase, MediaKind, ModelOption } from "./types.js";
31
+ import type { ComposerPromptField } from "./composer-view.js";
32
+ import type { DroppedMedia, GenerationUseCase, MediaKind, ModelOption, OutputKind } from "./types.js";
32
33
 
33
34
  export interface ComposerAttachment extends DroppedMedia {
34
35
  id: string;
@@ -43,7 +44,7 @@ export interface ComposerAttachment extends DroppedMedia {
43
44
  * the design). With none picked, `defaultUseCase` applies.
44
45
  */
45
46
  export interface ComposerUseCase {
46
- kind: MediaKind;
47
+ kind: OutputKind;
47
48
  label: string;
48
49
  /**
49
50
  * An edit of the attached image rather than a new one: no aspect ratio,
@@ -87,6 +88,10 @@ export interface ComposerSubmitPayload {
87
88
  autoSelectModel: boolean;
88
89
  /** An edit's marked regions, each with its own instruction. Empty unless the use case is an edit. */
89
90
  regions?: EditRegion[];
91
+ /** A world's character, the person's own figure in it. With a world use case, `value` is the environment. Undefined for other use cases. */
92
+ character?: string;
93
+ /** The picked frame rate for a world, or null for the model's default. Undefined for other use cases. */
94
+ frameRate?: number | null;
90
95
  }
91
96
 
92
97
  /**
@@ -116,7 +121,7 @@ export interface ComposerOptions {
116
121
  * for multi-use-case select, since one Fal engine outputs one kind, e.g.
117
122
  * `{ image: createFalEngine({ outputKind: "image" }), video: createFalEngine({ outputKind: "video" }) }`.
118
123
  */
119
- engineByKind?: Partial<Record<MediaKind, GenerationEngine>>;
124
+ engineByKind?: Partial<Record<OutputKind, GenerationEngine>>;
120
125
  /**
121
126
  * The engine for text requests (a Composer with no use case picked, or a
122
127
  * text use case). Defaults to `reasoningEngine`, and to a mock text engine
@@ -137,8 +142,12 @@ export interface ComposerOptions {
137
142
  reasoningEngine?: GenerationEngine;
138
143
  /** Set with `reasoningEngine` to override the provider's pair; used for every kind (§5.5). */
139
144
  reasoningModel?: string;
140
- /** Overrides the instruction wrapping a raw prompt for Enhance. Defaults to a generic still/video-aware rewrite instruction. */
141
- enhancePrompt?: (value: string, mode?: GenerationUseCase) => string;
145
+ /**
146
+ * Overrides the instruction wrapping a raw prompt for Enhance. Defaults to
147
+ * a rewrite instruction for the kind of prompt: still, video, text, or a
148
+ * world's environment or character (`field`).
149
+ */
150
+ enhancePrompt?: (value: string, mode?: GenerationUseCase, field?: ComposerPromptField) => string;
142
151
  /**
143
152
  * Auto-select: with `autoSelectModel` on in the payload, the reasoning
144
153
  * model picks one model per use case at submit, then these fire with the
@@ -195,7 +204,14 @@ export interface ComposerEdit {
195
204
 
196
205
  const mockTextEngine = createMockEngine({ outputKind: "text" });
197
206
 
198
- function defaultEnhancePrompt(value: string, mode?: GenerationUseCase): string {
207
+ function defaultEnhancePrompt(value: string, mode?: GenerationUseCase, field: ComposerPromptField = "prompt"): string {
208
+ const reply = "Reply with only the rewritten description, nothing else.";
209
+ if (field === "environment") {
210
+ return `Rewrite the following description of an interactive world for a world model to be more detailed and specific, keeping the same intent: the setting, its look and lighting, and how the person moves through it. Don't add a character. ${reply}\n\n${value}`;
211
+ }
212
+ if (field === "character") {
213
+ return `Rewrite the following description of the character a person plays in an interactive world to be more detailed and specific, keeping the same intent: who or what they are, how they look, and how they move. Don't describe the world around them. ${reply}\n\n${value}`;
214
+ }
199
215
  const subject = mode?.includes("video")
200
216
  ? "a video-generation"
201
217
  : mode === "text-to-text" || mode === "vision"
@@ -293,6 +309,11 @@ export function createComposerStore(getOptions: () => ComposerOptions, getProvid
293
309
  const fallback = isText ? (opts.textModel ?? (r && reasoningModelFor(r, attachments))) : undefined;
294
310
  const params: Record<string, unknown> = payload.aspectRatio && !isEdit ? { aspectRatio: payload.aspectRatio } : {};
295
311
  if (isEdit) params.regions = payload.regions ?? [];
312
+ // A world's extra inputs, for a world engine to map to its model.
313
+ if (selection.useCase.kind === "world") {
314
+ if (payload.character?.trim()) params.character = payload.character;
315
+ if (payload.frameRate != null) params.frameRate = payload.frameRate;
316
+ }
296
317
  const request: Request = {
297
318
  mode: deriveGenerationUseCase(selection.useCase, attachments),
298
319
  prompt: payload.value,
@@ -359,6 +380,8 @@ export function createComposerStore(getOptions: () => ComposerOptions, getProvid
359
380
  prompt,
360
381
  attachments: newRun.request.attachments,
361
382
  aspectRatio: newRun.request.params.aspectRatio as string | undefined,
383
+ character: newRun.request.params.character as string | undefined,
384
+ frameRate: newRun.request.params.frameRate as number | undefined,
362
385
  // Text engines that stream fill `output` in while still "running".
363
386
  onText: (text) => update(newRun.id, (r) => streamResult(r, result.id, text)),
364
387
  signal,
@@ -462,13 +485,13 @@ export function createComposerStore(getOptions: () => ComposerOptions, getProvid
462
485
  set((s) => ({ routing: false, runs: cancelAll(s.runs), editRuns: cancelAll(s.editRuns) }));
463
486
  }
464
487
 
465
- /** Rewrites a prompt with the reasoning model. Only offer it when `reasoning()` is set. */
466
- async function enhance(value: string): Promise<string> {
488
+ /** Rewrites a prompt with the reasoning model, worded for its `field`. Only offer it when `reasoning()` is set. */
489
+ async function enhance(value: string, field?: ComposerPromptField): Promise<string> {
467
490
  const r = reasoning();
468
491
  if (!r) throw new Error("[chai-ui] Enhance needs a reasoning engine and model.");
469
492
  set(() => ({ enhancing: true }));
470
493
  try {
471
- const prompt = (getOptions().enhancePrompt ?? defaultEnhancePrompt)(value, state.runs[0]?.request.mode);
494
+ const prompt = (getOptions().enhancePrompt ?? defaultEnhancePrompt)(value, state.runs[0]?.request.mode, field);
472
495
  const { src } = await r.engine.generate({ modelId: r.model, prompt, attachments: [] });
473
496
  return src;
474
497
  } finally {
package/src/engine.ts CHANGED
@@ -23,6 +23,10 @@ export interface GenerationEngine {
23
23
  attachments: DroppedMedia[];
24
24
  /** The output aspect ratio the person picked, e.g. `"16:9"`. Only set for a model that lists it in `ModelOption.aspectRatios`. */
25
25
  aspectRatio?: string;
26
+ /** A world's character (Create world), when the person gave one. `prompt` is the environment. */
27
+ character?: string;
28
+ /** A world's frame rate, e.g. `16`. Only set for a model that lists it in `ModelOption.frameRates`. */
29
+ frameRate?: number;
26
30
  /**
27
31
  * Optional streaming hook for text output. An engine that can stream
28
32
  * calls this with the full text received so far (not a delta) each time
@@ -6,13 +6,13 @@
6
6
  */
7
7
 
8
8
  import { normalizeGenerationError, type GenerationEngine } from "./engine.js";
9
- import type { DroppedMedia, MediaKind, ModelOption } from "./types.js";
9
+ import type { DroppedMedia, MediaKind, ModelOption, OutputKind } from "./types.js";
10
10
 
11
11
  export interface ModelRoutingInput {
12
12
  /** What the person typed. Empty for media-only requests (e.g. Media Analyzer). */
13
13
  prompt: string;
14
14
  /** What the request produces, e.g. "image" for Create image, "text" for analysis. */
15
- outputKind: MediaKind;
15
+ outputKind: OutputKind;
16
16
  /** Kinds of media attached, if any. */
17
17
  attachmentKinds: MediaKind[];
18
18
  /** The candidates: only models the builder offers for this request. */
package/src/run.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * (`@chai-ui/react`) is the thin React binding on top.
5
5
  */
6
6
 
7
- import type { DroppedMedia, Evaluation, GenerationUseCase, MediaKind, Usage } from "./types.js";
7
+ import type { DroppedMedia, Evaluation, GenerationUseCase, MediaKind, OutputKind, Usage } from "./types.js";
8
8
 
9
9
  export interface Request {
10
10
  /** The specific generation use case, when one could be derived — see `deriveGenerationUseCase`. Undefined when the use case (or its kind) has no `GenerationUseCase` match yet, e.g. audio. */
@@ -135,12 +135,12 @@ export function cancelResult(run: Run, resultId: string): Run {
135
135
  * case plus whether anything is attached — this is real derivation logic,
136
136
  * not just plumbing: the same `kind: "video"` means `"text-to-video"` with
137
137
  * nothing attached but `"image-to-video"` once an image is. Returns
138
- * `undefined` for "audio" (no `GenerationUseCase` member exists yet;
139
- * audio generation is planned). `"text"` is a text request: a reply to
138
+ * `undefined` for "audio" and "world" (no `GenerationUseCase` member exists
139
+ * yet; audio generation is planned, world models await provider specs). `"text"` is a text request: a reply to
140
140
  * the prompt, or a description of the attached media ("vision").
141
141
  */
142
142
  export function deriveGenerationUseCase(
143
- useCase: { kind: MediaKind } | null | undefined,
143
+ useCase: { kind: OutputKind } | null | undefined,
144
144
  attachments: DroppedMedia[]
145
145
  ): GenerationUseCase | undefined {
146
146
  if (!useCase) return undefined;
package/src/types.ts CHANGED
@@ -5,6 +5,13 @@
5
5
  /** The kinds of media a component can take in or produce. */
6
6
  export type MediaKind = "image" | "video" | "audio" | "text";
7
7
 
8
+ /**
9
+ * What a generation produces: any `MediaKind`, or an interactive world from
10
+ * a world model (Create world). A world is never an attachment, so it lives
11
+ * here rather than in `MediaKind`.
12
+ */
13
+ export type OutputKind = MediaKind | "world";
14
+
8
15
  /**
9
16
  * A piece of media a person attached (or an engine received) — just enough
10
17
  * to know its kind and where it lives.
@@ -106,6 +113,12 @@ export interface ModelOption {
106
113
  * the input image): no menu shows.
107
114
  */
108
115
  aspectRatios?: string[];
116
+ /**
117
+ * The frame rates a world model runs at, e.g. `[16]`. Composer's frame
118
+ * rate menu offers only rates the selected models share. Leave it out for
119
+ * a model with one fixed rate it doesn't take as an input: no menu shows.
120
+ */
121
+ frameRates?: number[];
109
122
  }
110
123
 
111
124
  /** See `ModelOption.falInput`. */