@slatesvideo/shared 0.5.6 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -4,6 +4,6 @@ export { SlatesDesktopClient, type DesktopHealth } from './clients/desktop.js';
4
4
  export { SKILLS } from './skills/content.js';
5
5
  export * as operations from './operations/index.js';
6
6
  export { ALL_OPERATIONS, VIDEO_MODELS, AUDIO_MODELS, defaultContext, type Operation, type OperationContext, type OperationResult } from './operations/index.js';
7
- export { MODEL_FACTS, getModelFact, type ModelFact } from './prompts/model-facts.js';
7
+ export { MODEL_FACTS, getModelFact, multimodalRefSummary, multimodalRefModels, SEEDANCE_TASK_INTENT_WORDS, seedanceTaskIntentWords, type ModelFact, } from './prompts/model-facts.js';
8
8
  export { PROMPTING_TIPS, getPromptingTips, type PromptingTipsEntry, type PromptingTipCard, type PromptingTipsKey } from './prompts/prompting-tips.js';
9
9
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -7,7 +7,10 @@ export { ALL_OPERATIONS, VIDEO_MODELS, AUDIO_MODELS, defaultContext } from './op
7
7
  // Model routing/prompting facts — the SSOT the desktop Studio Agent system
8
8
  // prompt derives its MODEL ROUTING doctrine from (kind: image | video | audio,
9
9
  // default/premium/niche notes). Edit model-facts.ts, never prose copies.
10
- export { MODEL_FACTS, getModelFact } from './prompts/model-facts.js';
10
+ export { MODEL_FACTS, getModelFact, multimodalRefSummary, multimodalRefModels,
11
+ // Mirrored in slate/src/shared/pricing.ts — see the constant's own header for
12
+ // why the mirror exists and why it must never drive a prompt rewrite.
13
+ SEEDANCE_TASK_INTENT_WORDS, seedanceTaskIntentWords, } from './prompts/model-facts.js';
11
14
  // Per-model prompting tips — the SSOT for the desktop "See prompting tips"
12
15
  // modals. The desktop renders these; it never hand-writes tips content.
13
16
  export { PROMPTING_TIPS, getPromptingTips } from './prompts/prompting-tips.js';
@@ -32,7 +32,6 @@ export declare const estimateGenerationCost: Operation<{
32
32
  model: string;
33
33
  quantity?: number;
34
34
  duration?: number;
35
- characters?: number;
36
35
  videoResolution?: '480p' | '720p' | '1080p' | '4k';
37
36
  resolution?: '1k' | '2k' | '3k' | '4k';
38
37
  quality?: 'medium' | 'high';
@@ -182,7 +181,7 @@ export declare const editImage: Operation<{
182
181
  confirm?: boolean;
183
182
  background?: boolean;
184
183
  }>;
185
- export declare const VIDEO_MODELS: readonly ["kling-v3.0-std", "kling-v3.0-pro", "kling-v3.0-omni", "veo-3.1-fast", "veo-3.1-standard", "seedance-2", "omni-flash"];
184
+ export declare const VIDEO_MODELS: readonly ["kling-v3.0-std", "kling-v3.0-pro", "kling-v3.0-omni", "veo-3.1-fast", "veo-3.1-standard", "seedance-2", "seedance-2.5", "omni-flash"];
186
185
  type VideoModel = (typeof VIDEO_MODELS)[number];
187
186
  export declare function videoCostKey(input: {
188
187
  model: VideoModel;
@@ -198,7 +197,16 @@ export declare function videoCostKey(input: {
198
197
  }): string;
199
198
  export declare function klingEditCostKey(model: 'kling-v3.0-omni-edit' | 'kling-v3.0-omni-pro-edit', duration: number): string;
200
199
  export declare function omniFlashEditCostKey(duration: number): string;
201
- export declare const AUDIO_MODELS: readonly ["seed-audio", "eleven-v3", "eleven-sfx", "suno"];
200
+ /** Seedance 2.5 source-clip bounds for the edit task type. */
201
+ export declare const SEEDANCE_25_EDIT_MIN_SECONDS = 4;
202
+ export declare const SEEDANCE_25_EDIT_MAX_SECONDS = 30;
203
+ export declare function seedanceEditCostKey(input: {
204
+ duration: number;
205
+ videoResolution?: '480p' | '720p';
206
+ seedanceFace?: boolean;
207
+ seedanceRealFace?: boolean;
208
+ }): string;
209
+ export declare const AUDIO_MODELS: readonly ["seed-audio", "eleven-sfx"];
202
210
  export type AudioModel = (typeof AUDIO_MODELS)[number];
203
211
  /**
204
212
  * Per-surface bounds and defaults.
@@ -224,15 +232,10 @@ export declare const SEED_AUDIO_DEFAULT_SECONDS = 15;
224
232
  export declare const ELEVEN_SFX_MIN_SECONDS = 1;
225
233
  export declare const ELEVEN_SFX_MAX_SECONDS = 22;
226
234
  export declare const ELEVEN_SFX_DEFAULT_SECONDS = 4;
227
- export declare const ELEVEN_V3_MAX_CHARACTERS = 5000;
228
- export declare const SUNO_MIN_SECONDS = 10;
229
- export declare const SUNO_MAX_SECONDS = 360;
230
235
  export declare function audioCostKey(input: {
231
236
  model: AudioModel;
232
237
  /** seed-audio + eleven-sfx: the REQUESTED duration in seconds (ceiled). */
233
238
  durationSeconds?: number;
234
- /** eleven-v3: character count of the text to speak (ceiled to 100-char buckets). */
235
- characters?: number;
236
239
  }): string;
237
240
  export declare const generateVideo: Operation<{
238
241
  prompt: string;
@@ -250,6 +253,9 @@ export declare const generateVideo: Operation<{
250
253
  videoReferenceAssetId?: string;
251
254
  videoReferenceSeconds?: number;
252
255
  audioReferenceAssetId?: string;
256
+ videoReferenceAssetIds?: string[];
257
+ videoReferenceSecondsEach?: number[];
258
+ audioReferenceAssetIds?: string[];
253
259
  sound?: boolean;
254
260
  audioLanguage?: 'EN' | 'ZH' | 'JA' | 'KO' | 'ES';
255
261
  generateMusic?: boolean;
@@ -266,8 +272,6 @@ export declare const generateAudio: Operation<{
266
272
  prompt: string;
267
273
  durationSeconds?: number;
268
274
  voice?: string;
269
- stability?: number;
270
- languageCode?: string;
271
275
  speed?: number;
272
276
  volume?: number;
273
277
  pitch?: number;
@@ -276,15 +280,6 @@ export declare const generateAudio: Operation<{
276
280
  promptInfluence?: number;
277
281
  audioReferenceAssetIds?: string[];
278
282
  imageReferenceAssetId?: string;
279
- sunoModel?: 'V4' | 'V4_5' | 'V4_5PLUS' | 'V4_5ALL' | 'V5' | 'V5_5';
280
- customMode?: boolean;
281
- instrumental?: boolean;
282
- style?: string;
283
- title?: string;
284
- negativeTags?: string;
285
- vocalGender?: 'm' | 'f';
286
- styleWeight?: number;
287
- weirdnessConstraint?: number;
288
283
  background?: boolean;
289
284
  confirm?: boolean;
290
285
  }>;
@@ -300,14 +295,6 @@ export declare const generateLipSync: Operation<{
300
295
  audioFilePath?: string;
301
296
  avatarModel?: 'avatar-standard' | 'avatar-pro';
302
297
  klingProvider?: 'fal' | 'kling';
303
- engine?: 'kling' | 'seedance-2';
304
- videoResolution?: '480p' | '720p' | '1080p' | '4k';
305
- aspectRatio?: string;
306
- seedanceFace?: boolean;
307
- seedanceRealFace?: boolean;
308
- realFaceConsent?: boolean;
309
- sourceSeconds?: number;
310
- audioSeconds?: number;
311
298
  background?: boolean;
312
299
  confirm?: boolean;
313
300
  }>;
@@ -315,17 +302,10 @@ export declare const generateMotionTransfer: Operation<{
315
302
  projectId: string;
316
303
  sourceVideoAssetId: string;
317
304
  targetImageAssetId: string;
318
- motionModel?: 'kling-mc-std' | 'kling-mc-pro' | 'seedance-2';
305
+ motionModel?: 'kling-mc-std' | 'kling-mc-pro';
319
306
  characterOrientation?: 'video' | 'image';
320
307
  prompt?: string;
321
308
  klingProvider?: 'fal' | 'kling';
322
- duration?: number;
323
- videoResolution?: '480p' | '720p' | '1080p' | '4k';
324
- aspectRatio?: string;
325
- seedanceFace?: boolean;
326
- seedanceRealFace?: boolean;
327
- realFaceConsent?: boolean;
328
- sourceVideoSeconds?: number;
329
309
  background?: boolean;
330
310
  confirm?: boolean;
331
311
  }>;
@@ -333,10 +313,12 @@ export declare const editVideo: Operation<{
333
313
  projectId: string;
334
314
  sourceVideoAssetId: string;
335
315
  prompt: string;
336
- model?: 'kling-v3.0-omni-edit' | 'kling-v3.0-omni-pro-edit' | 'omni-flash-edit';
316
+ model?: 'kling-v3.0-omni-edit' | 'kling-v3.0-omni-pro-edit' | 'omni-flash-edit' | 'seedance-2.5-edit';
337
317
  characterAssetIds?: string[];
338
318
  styleAssetIds?: string[];
339
319
  keepAudio?: boolean;
320
+ videoResolution?: '480p' | '720p';
321
+ seedanceFace?: boolean;
340
322
  background?: boolean;
341
323
  confirm?: boolean;
342
324
  }>;
@@ -504,6 +486,31 @@ export declare const updateFrame: Operation<{
504
486
  frameType?: 'first' | 'last' | 'ingredient' | null;
505
487
  motionPrompt?: string | null;
506
488
  }>;
489
+ /**
490
+ * Batch form of `slates_update_frame`.
491
+ *
492
+ * Writing a scene's worth of frames — motion prompts, shot labels — is ONE
493
+ * logical edit. Doing it as N `slates_update_frame` calls costs N LLM
494
+ * round-trips and makes the desktop refetch the whole storyboard N times for a
495
+ * single intent. This is also where the storyboard's deleted "generate motion
496
+ * prompts" button's capability went: the agent can be told "redo scene 3,
497
+ * handheld", which that fixed-shape button never could.
498
+ *
499
+ * Hits `POST /agent/frames/batch-update`, which validates every id BEFORE the
500
+ * first write and emits one broadcast for the batch.
501
+ */
502
+ export declare const batchUpdateFrames: Operation<{
503
+ updates: {
504
+ frameId: string;
505
+ shotLabel?: string;
506
+ notes?: string;
507
+ assetId?: string | null;
508
+ sceneId?: string | null;
509
+ position?: number;
510
+ frameType?: 'first' | 'last' | 'ingredient' | null;
511
+ motionPrompt?: string | null;
512
+ }[];
513
+ }>;
507
514
  export declare const deleteFrame: Operation<{
508
515
  frameId: string;
509
516
  }>;