@slatesvideo/shared 0.6.11 → 0.7.1

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.
Files changed (83) hide show
  1. package/dist/auth.js +2 -2
  2. package/dist/clients/cloud.js +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/manual/content.d.ts +1 -1
  6. package/dist/manual/content.js +1 -1
  7. package/dist/operations/index.d.ts +817 -16
  8. package/dist/operations/index.js +1413 -360
  9. package/dist/operations/surface.d.ts +4 -1
  10. package/dist/operations/surface.js +41 -10
  11. package/dist/prompts/ad-presets.d.ts +77 -0
  12. package/dist/prompts/ad-presets.js +43 -0
  13. package/dist/prompts/agent-doctrine.js +27 -5
  14. package/dist/prompts/banned-tokens.d.ts +4 -29
  15. package/dist/prompts/banned-tokens.js +29 -204
  16. package/dist/prompts/craft-cards.js +2 -2
  17. package/dist/prompts/generation-policy.d.ts +41 -0
  18. package/dist/prompts/generation-policy.js +53 -0
  19. package/dist/prompts/guide-retrieval.d.ts +9 -0
  20. package/dist/prompts/guide-retrieval.js +53 -0
  21. package/dist/prompts/index.d.ts +1 -0
  22. package/dist/prompts/index.js +1 -0
  23. package/dist/prompts/model-capabilities.d.ts +18 -1
  24. package/dist/prompts/model-capabilities.js +72 -19
  25. package/dist/prompts/model-facts.d.ts +34 -2
  26. package/dist/prompts/model-facts.js +66 -5
  27. package/dist/prompts/partials.generated.js +8 -2
  28. package/dist/prompts/prompting-tips.d.ts +1 -1
  29. package/dist/prompts/prompting-tips.js +61 -16
  30. package/dist/prompts/reference-composer.d.ts +2 -0
  31. package/dist/prompts/reference-composer.js +51 -50
  32. package/dist/prompts/script-document.d.ts +165 -0
  33. package/dist/prompts/script-document.js +11 -0
  34. package/dist/prompts/shot-grammar.d.ts +4 -4
  35. package/dist/prompts/shot-grammar.js +3 -3
  36. package/dist/prompts/shot-spec.d.ts +13 -0
  37. package/dist/prompts/shot-spec.js +23 -5
  38. package/dist/skills/content.js +27 -24
  39. package/exports/slates-chatgpt-images/generated/SKILL.md +107 -0
  40. package/exports/slates-chatgpt-images/generated/slates-chatgpt-images.skill +0 -0
  41. package/exports/slates-prompt-builder/generated/SKILL.md +1 -1
  42. package/exports/slates-prompt-builder/generated/reference-character.md +9 -1
  43. package/exports/slates-prompt-builder/generated/reference-kling.md +3 -3
  44. package/exports/slates-prompt-builder/generated/reference-nano-banana.md +22 -10
  45. package/exports/slates-prompt-builder/generated/reference-seedance.md +4 -4
  46. package/exports/slates-prompt-builder/generated/slates-prompt-builder-manifest.json +17 -17
  47. package/exports/slates-prompt-builder/generated/slates-prompt-builder.skill +0 -0
  48. package/package.json +9 -3
  49. package/skills/_partials/cinematic-card.md +8 -0
  50. package/skills/_partials/cinematic-routes-short.md +2 -0
  51. package/skills/_partials/cinematic-tips-short.md +2 -0
  52. package/skills/_partials/decision-log.md +1 -13
  53. package/skills/_partials/image-defaults.md +11 -0
  54. package/skills/_partials/lens-video-split.md +1 -0
  55. package/skills/_partials/reference-rules-core.md +1 -1
  56. package/skills/_partials/sheet-tool-defaults.md +6 -0
  57. package/skills/slates-character-identity.md +9 -1
  58. package/skills/slates-chatgpt-images.md +107 -0
  59. package/skills/slates-cinematic-look.md +237 -0
  60. package/skills/slates-cost-discipline.md +18 -12
  61. package/skills/slates-direct-response-ad.md +13 -53
  62. package/skills/slates-edit-and-iterate.md +1 -1
  63. package/skills/slates-model-selection.md +20 -14
  64. package/skills/slates-one-prompt-film.md +19 -77
  65. package/skills/slates-project-organization.md +7 -3
  66. package/skills/slates-prompting-flux-2-max.md +15 -4
  67. package/skills/slates-prompting-gpt-image-2-5.md +41 -28
  68. package/skills/slates-prompting-inworld-tts.md +174 -174
  69. package/skills/slates-prompting-kling-v3.md +3 -3
  70. package/skills/slates-prompting-lip-sync.md +1 -1
  71. package/skills/slates-prompting-minimax-h3.md +30 -17
  72. package/skills/slates-prompting-motion-transfer.md +1 -1
  73. package/skills/slates-prompting-nano-banana-2.md +24 -11
  74. package/skills/slates-prompting-seedance-2-5.md +7 -6
  75. package/skills/slates-prompting-seedance.md +5 -5
  76. package/skills/slates-prompting-seedream-5-lite.md +14 -3
  77. package/skills/slates-prompting-veo-3.md +1 -1
  78. package/skills/slates-script-craft.md +45 -0
  79. package/skills/slates-shot-variety.md +11 -40
  80. package/skills/slates-storyboard-from-script.md +14 -66
  81. package/skills/slates-style-prompting.md +4 -4
  82. package/skills/slates-ugc-influencer-ad.md +32 -309
  83. package/skills/slates-vision-feedback-loop.md +2 -1
@@ -1,3 +1,4 @@
1
+ import { type GuideDepth } from '../prompts/guide-retrieval.js';
1
2
  import { type GptQuality, type GptBackground } from '../prompts/model-capabilities.js';
2
3
  import { z } from 'zod';
3
4
  import { SlatesCloudClient } from '../clients/cloud.js';
@@ -81,10 +82,8 @@ export interface Operation<I> {
81
82
  * Which tier of the desktop tool surface this op belongs to.
82
83
  *
83
84
  * `core` is sent on every Studio Agent turn; `extended` is deferred behind
84
- * `slates_load_tools` and appended to the tool list for the rest of the run
85
- * once a group loads. The MCP server registers everything as before — hosts
86
- * there do their own deferral (Claude Code defers stdio tool schemas through
87
- * its tool search) and a stdio server has no run to append to.
85
+ * `slates_load_tools` and selected until the next named/group load
86
+ * on either surface. MCP keeps unlisted operations callable for older clients.
88
87
  *
89
88
  * Defaults to `core` when absent, so a new op is visible until someone
90
89
  * deliberately defers it.
@@ -103,7 +102,7 @@ export interface OperationAnnotations {
103
102
  openWorldHint: boolean;
104
103
  }
105
104
  export type OperationTier = 'core' | 'extended';
106
- export type OperationGroup = 'library' | 'timeline' | 'admin' | 'blender';
105
+ export type OperationGroup = 'script' | 'library' | 'timeline' | 'admin' | 'blender';
107
106
  export declare const CONFIRM_CREDITS = 17;
108
107
  /**
109
108
  * The desktop deviation guard's ceiling multiplier: the Studio Agent pauses and
@@ -153,12 +152,61 @@ export declare const getWorkspaceState: Operation<{
153
152
  projectId?: string;
154
153
  limit?: number;
155
154
  }>;
155
+ /**
156
+ * What the user has selected in the app RIGHT NOW. The selection band in every
157
+ * grid (images, clips, audio, storyboard shots) reports its ids to the desktop,
158
+ * and the image viewer reports what is open; the desktop looks codes and labels
159
+ * up at request time. Exists so "make these into videos" needs no codes typed.
160
+ */
161
+ export declare const getSelection: Operation<Record<string, never>>;
162
+ declare const VIEW_LENSES: readonly ["board", "media", "script"];
163
+ declare const VIEW_CUT_SIDES: readonly ["bottom", "left", "right"];
164
+ declare const VIEW_DOCK_SECTIONS: readonly ["storyboards", "library", "folders", "pinned"];
165
+ type DockSection = (typeof VIEW_DOCK_SECTIONS)[number];
166
+ /**
167
+ * How the Slates window is ARRANGED right now — which lens is showing, where
168
+ * the timeline sits, which side panels are open. Read it before rearranging
169
+ * anything, so you change one thing and leave the rest as the user had it.
170
+ */
171
+ export declare const getView: Operation<Record<string, never>>;
172
+ /**
173
+ * Rearrange the window. Every field is optional and only what you name moves,
174
+ * so parking the timeline does not also change the lens.
175
+ *
176
+ * 🚨 THE APP ANSWERS, NOT THE REQUEST. Sizes are clamped by the app's own
177
+ * rules and the reply reports what it settled on — ask for a 10px timeline and
178
+ * you are told 420, because that is what is on the user's screen. A window too
179
+ * small to show the timeline beside the board will not split at all; it shows
180
+ * the timeline full-screen instead, and says so.
181
+ */
182
+ export declare const setView: Operation<{
183
+ lens?: (typeof VIEW_LENSES)[number];
184
+ cut?: {
185
+ open?: boolean;
186
+ full?: boolean;
187
+ side?: (typeof VIEW_CUT_SIDES)[number];
188
+ height?: number;
189
+ width?: number;
190
+ };
191
+ leftDock?: {
192
+ open?: boolean;
193
+ width?: number;
194
+ folded?: DockSection[];
195
+ };
196
+ studioAgent?: {
197
+ open?: boolean;
198
+ width?: number;
199
+ };
200
+ script?: {
201
+ details?: boolean;
202
+ };
203
+ }>;
156
204
  export declare const getMe: Operation<Record<string, never>>;
157
205
  export declare const getCreditBalance: Operation<Record<string, never>>;
158
206
  export declare const listAvailableModels: Operation<{
159
207
  filter?: string;
160
208
  }>;
161
- 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", "minimax-h3", "minimax-h3-max", "ltx-2-5", "ltx-2-5-pro"];
209
+ 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", "minimax-h3", "minimax-h3-max", "minimax-h3-max-turbo", "ltx-2-5", "ltx-2-5-pro"];
162
210
  type VideoModel = (typeof VIDEO_MODELS)[number];
163
211
  /** The exact `model` ids `slates_edit_video` accepts. Edit rows are deliberately
164
212
  * NOT in VIDEO_MODELS — they take a source clip, not frames. */
@@ -208,6 +256,28 @@ export declare const getAssetVideoFrames: Operation<{
208
256
  id: string;
209
257
  count?: number;
210
258
  }>;
259
+ export declare const getChatGptStatus: Operation<Record<string, never>>;
260
+ export declare const connectChatGpt: Operation<Record<string, never>>;
261
+ export declare const generateChatGptImage: Operation<{
262
+ projectId: string;
263
+ requestId: string;
264
+ prompt: string;
265
+ aspectRatio?: string;
266
+ referenceAssetIds?: string[];
267
+ background?: boolean;
268
+ }>;
269
+ export declare const saveExternalImage: Operation<{
270
+ projectId: string;
271
+ filePath?: string;
272
+ dataUrl?: string;
273
+ assetId?: string;
274
+ prompt: string;
275
+ generator: string;
276
+ model?: string;
277
+ negativePrompt?: string;
278
+ referenceAssetIds?: string[];
279
+ requestedSettings?: Record<string, string | number | boolean>;
280
+ }>;
211
281
  export declare const uploadReferenceImage: Operation<{
212
282
  projectId: string;
213
283
  filePath?: string;
@@ -225,6 +295,25 @@ export declare const moveAssetsToFolder: Operation<{
225
295
  assetIds: string[];
226
296
  folderId: string | null;
227
297
  }>;
298
+ export declare const setAssetFavorite: Operation<{
299
+ assetId: string;
300
+ favorite: boolean;
301
+ }>;
302
+ export declare const exportAssets: Operation<{
303
+ assetIds: string[];
304
+ directory: string;
305
+ }>;
306
+ export declare const listPins: Operation<{
307
+ projectId: string;
308
+ }>;
309
+ export declare const pinReferences: Operation<{
310
+ projectId: string;
311
+ assetIds: string[];
312
+ }>;
313
+ export declare const unpinReference: Operation<{
314
+ projectId: string;
315
+ assetId: string;
316
+ }>;
228
317
  export declare const moveAssetsToProject: Operation<{
229
318
  sourceProjectId: string;
230
319
  assetIds: string[];
@@ -236,7 +325,7 @@ export declare const copyAssetsToProject: Operation<{
236
325
  targetProjectId: string;
237
326
  }>;
238
327
  export declare const moveEntityToProject: Operation<{
239
- kind: 'character' | 'environment' | 'style';
328
+ kind?: 'library' | 'character' | 'environment' | 'style';
240
329
  entityId: string;
241
330
  targetProjectId: string;
242
331
  }>;
@@ -520,11 +609,56 @@ export declare const listGenerations: Operation<{
520
609
  status?: 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled';
521
610
  limit?: number;
522
611
  }>;
612
+ declare const exportCutsInput: z.ZodObject<{
613
+ projectId: z.ZodString;
614
+ directory: z.ZodString;
615
+ manifestId: z.ZodString;
616
+ action: z.ZodOptional<z.ZodEnum<["start", "status", "cancel"]>>;
617
+ items: z.ZodOptional<z.ZodArray<z.ZodObject<{
618
+ timelineId: z.ZodString;
619
+ format: z.ZodEnum<["mp4", "xml"]>;
620
+ }, "strip", z.ZodTypeAny, {
621
+ timelineId: string;
622
+ format: "mp4" | "xml";
623
+ }, {
624
+ timelineId: string;
625
+ format: "mp4" | "xml";
626
+ }>, "many">>;
627
+ }, "strip", z.ZodTypeAny, {
628
+ projectId: string;
629
+ directory: string;
630
+ manifestId: string;
631
+ action?: "status" | "start" | "cancel" | undefined;
632
+ items?: {
633
+ timelineId: string;
634
+ format: "mp4" | "xml";
635
+ }[] | undefined;
636
+ }, {
637
+ projectId: string;
638
+ directory: string;
639
+ manifestId: string;
640
+ action?: "status" | "start" | "cancel" | undefined;
641
+ items?: {
642
+ timelineId: string;
643
+ format: "mp4" | "xml";
644
+ }[] | undefined;
645
+ }>;
646
+ export declare const exportCuts: Operation<z.infer<typeof exportCutsInput>>;
647
+ export declare const listTimelines: Operation<{
648
+ projectId: string;
649
+ }>;
650
+ export declare const saveTimeline: Operation<{
651
+ projectId: string;
652
+ timelineId?: string;
653
+ name: string;
654
+ }>;
523
655
  export declare const getTimeline: Operation<{
524
656
  projectId: string;
657
+ timelineId?: string;
525
658
  }>;
526
659
  export declare const addClipToTimeline: Operation<{
527
660
  projectId: string;
661
+ timelineId?: string;
528
662
  assetId: string;
529
663
  trackId?: string;
530
664
  startFrame?: number;
@@ -538,8 +672,18 @@ export declare const reorderClips: Operation<{
538
672
  export declare const removeClip: Operation<{
539
673
  clipId: string;
540
674
  }>;
675
+ export declare const manageTimelineMarker: Operation<{
676
+ action: 'create' | 'update' | 'delete';
677
+ projectId: string;
678
+ timelineId?: string;
679
+ markerId?: string;
680
+ frame?: number;
681
+ name?: string;
682
+ color?: string;
683
+ }>;
541
684
  export declare const addTimelineTrack: Operation<{
542
685
  projectId: string;
686
+ timelineId?: string;
543
687
  type?: 'video' | 'audio';
544
688
  name?: string;
545
689
  }>;
@@ -557,6 +701,7 @@ export declare const removeTimelineTrack: Operation<{
557
701
  }>;
558
702
  export declare const updateTimelineSettings: Operation<{
559
703
  projectId: string;
704
+ timelineId?: string;
560
705
  width?: number;
561
706
  height?: number;
562
707
  frameRate?: 24 | 30 | 60;
@@ -589,6 +734,12 @@ export declare const deleteProject: Operation<{
589
734
  export declare const getProjectDirectory: Operation<{
590
735
  id: string;
591
736
  }>;
737
+ export declare const relocateProject: Operation<{
738
+ id: string;
739
+ }>;
740
+ export declare const undoRelocateProject: Operation<{
741
+ id: string;
742
+ }>;
592
743
  export declare const deleteAsset: Operation<{
593
744
  id: string;
594
745
  }>;
@@ -640,6 +791,66 @@ export declare const updateStyle: Operation<{
640
791
  export declare const deleteStyle: Operation<{
641
792
  styleId: string;
642
793
  }>;
794
+ export declare const listLibrary: Operation<{
795
+ projectId: string;
796
+ }>;
797
+ export declare const createLibraryItem: Operation<{
798
+ projectId: string;
799
+ categoryId: string;
800
+ name: string;
801
+ description?: string;
802
+ style?: string;
803
+ imageAssetId?: string;
804
+ }>;
805
+ export declare const updateLibraryItem: Operation<{
806
+ projectId: string;
807
+ itemId: string;
808
+ name?: string;
809
+ description?: string;
810
+ style?: string;
811
+ categoryId?: string;
812
+ retagShots?: boolean;
813
+ imageAssetId?: string | null;
814
+ voiceAssetId?: string | null;
815
+ }>;
816
+ export declare const deleteLibraryItem: Operation<{
817
+ itemId: string;
818
+ }>;
819
+ export declare const manageLibraryCategory: Operation<{
820
+ action: 'create' | 'rename' | 'set-behaviour' | 'reorder' | 'delete';
821
+ projectId?: string;
822
+ categoryId?: string;
823
+ name?: string;
824
+ kind?: 'thing' | 'look';
825
+ template?: 'person' | 'location' | null;
826
+ retagShots?: boolean;
827
+ orderedIds?: string[];
828
+ }>;
829
+ export declare const copyLibraryItemToProject: Operation<{
830
+ itemId: string;
831
+ targetProjectId: string;
832
+ }>;
833
+ export declare const getTemplate: Operation<{
834
+ path?: string;
835
+ }>;
836
+ export declare const exportTemplate: Operation<{
837
+ projectId: string;
838
+ path: string;
839
+ storyboardId?: string;
840
+ sceneId?: string;
841
+ shotId?: string;
842
+ name?: string;
843
+ description?: string;
844
+ }>;
845
+ export declare const importTemplate: Operation<{
846
+ projectId: string;
847
+ path: string;
848
+ sceneIndices?: number[];
849
+ storyboardId?: string;
850
+ sceneId?: string;
851
+ swaps?: Record<string, string>;
852
+ useTemplateCategories?: boolean;
853
+ }>;
643
854
  export declare const updateStoryboard: Operation<{
644
855
  storyboardId: string;
645
856
  name?: string;
@@ -695,6 +906,8 @@ export declare const deleteFrame: Operation<{
695
906
  frameId: string;
696
907
  }>;
697
908
  interface ShotOpScript {
909
+ recipeMode?: 'script' | 'custom';
910
+ promptScriptLine?: string | null;
698
911
  speaker?: string | null;
699
912
  line?: string | null;
700
913
  delivery?: string | null;
@@ -713,7 +926,7 @@ interface ShotOpRefs {
713
926
  environmentIds?: string[];
714
927
  styleIds?: string[];
715
928
  }
716
- type ShotOpParams = Pick<ShotParams, 'aspectRatio' | 'duration' | 'videoResolution' | 'imageResolution' | 'gptQuality' | 'imageQuantity' | 'negativePrompt' | 'sound' | 'seedanceFace' | 'audioDurationSeconds' | 'voiceId' | 'voiceReferenceAssetId' | 'voiceDescription'> & {
929
+ type ShotOpParams = Omit<ShotParams, 'aspectRatio' | 'videoResolution' | 'imageResolution'> & {
717
930
  aspectRatio?: AspectRatio;
718
931
  videoResolution?: VideoResolution;
719
932
  imageResolution?: '1k' | '2k' | '3k' | '4k';
@@ -726,6 +939,8 @@ export declare const createShot: Operation<ShotOpRefs & ShotOpScript & {
726
939
  params?: ShotOpParams;
727
940
  frameId?: string;
728
941
  sceneId?: string;
942
+ storyboardId?: string;
943
+ position?: number;
729
944
  }>;
730
945
  export declare const updateShot: Operation<ShotOpRefs & ShotOpScript & {
731
946
  shotId: string;
@@ -773,31 +988,617 @@ export declare const splitShot: Operation<{
773
988
  shotId: string;
774
989
  caret?: number;
775
990
  }>;
991
+ export declare const splitTake: Operation<{
992
+ shotId: string;
993
+ assetId: string;
994
+ sceneId?: string;
995
+ position?: number;
996
+ name?: string;
997
+ }>;
998
+ export declare const refileTake: Operation<{
999
+ assetId: string;
1000
+ fromShotId?: string | null;
1001
+ toShotId: string;
1002
+ }>;
776
1003
  export declare const mergeShots: Operation<{
777
1004
  firstId: string;
778
1005
  secondId: string;
779
1006
  }>;
1007
+ export declare const getScript: Operation<{
1008
+ sceneId: string;
1009
+ }>;
1010
+ declare const variationSchema: z.ZodObject<{
1011
+ storyboardId: z.ZodString;
1012
+ expectedRevision: z.ZodNumber;
1013
+ name: z.ZodString;
1014
+ choices: z.ZodArray<z.ZodObject<{
1015
+ sectionId: z.ZodString;
1016
+ alternativeId: z.ZodString;
1017
+ }, "strip", z.ZodTypeAny, {
1018
+ sectionId: string;
1019
+ alternativeId: string;
1020
+ }, {
1021
+ sectionId: string;
1022
+ alternativeId: string;
1023
+ }>, "many">;
1024
+ arrangement: z.ZodOptional<z.ZodArray<z.ZodObject<{
1025
+ sectionId: z.ZodString;
1026
+ alternativeId: z.ZodString;
1027
+ }, "strip", z.ZodTypeAny, {
1028
+ sectionId: string;
1029
+ alternativeId: string;
1030
+ }, {
1031
+ sectionId: string;
1032
+ alternativeId: string;
1033
+ }>, "many">>;
1034
+ itemOverrides: z.ZodOptional<z.ZodArray<z.ZodObject<{
1035
+ from: z.ZodString;
1036
+ to: z.ZodString;
1037
+ voice: z.ZodEnum<["keep", "replace"]>;
1038
+ }, "strip", z.ZodTypeAny, {
1039
+ voice: "replace" | "keep";
1040
+ from: string;
1041
+ to: string;
1042
+ }, {
1043
+ voice: "replace" | "keep";
1044
+ from: string;
1045
+ to: string;
1046
+ }>, "many">>;
1047
+ assetOverrides: z.ZodOptional<z.ZodArray<z.ZodObject<{
1048
+ from: z.ZodString;
1049
+ to: z.ZodString;
1050
+ }, "strip", z.ZodTypeAny, {
1051
+ from: string;
1052
+ to: string;
1053
+ }, {
1054
+ from: string;
1055
+ to: string;
1056
+ }>, "many">>;
1057
+ idempotencyKey: z.ZodOptional<z.ZodString>;
1058
+ }, "strip", z.ZodTypeAny, {
1059
+ name: string;
1060
+ storyboardId: string;
1061
+ expectedRevision: number;
1062
+ choices: {
1063
+ sectionId: string;
1064
+ alternativeId: string;
1065
+ }[];
1066
+ arrangement?: {
1067
+ sectionId: string;
1068
+ alternativeId: string;
1069
+ }[] | undefined;
1070
+ itemOverrides?: {
1071
+ voice: "replace" | "keep";
1072
+ from: string;
1073
+ to: string;
1074
+ }[] | undefined;
1075
+ assetOverrides?: {
1076
+ from: string;
1077
+ to: string;
1078
+ }[] | undefined;
1079
+ idempotencyKey?: string | undefined;
1080
+ }, {
1081
+ name: string;
1082
+ storyboardId: string;
1083
+ expectedRevision: number;
1084
+ choices: {
1085
+ sectionId: string;
1086
+ alternativeId: string;
1087
+ }[];
1088
+ arrangement?: {
1089
+ sectionId: string;
1090
+ alternativeId: string;
1091
+ }[] | undefined;
1092
+ itemOverrides?: {
1093
+ voice: "replace" | "keep";
1094
+ from: string;
1095
+ to: string;
1096
+ }[] | undefined;
1097
+ assetOverrides?: {
1098
+ from: string;
1099
+ to: string;
1100
+ }[] | undefined;
1101
+ idempotencyKey?: string | undefined;
1102
+ }>;
1103
+ export declare const previewScriptVariation: Operation<z.infer<typeof variationSchema>>;
1104
+ export declare const createScriptVariation: Operation<z.infer<typeof variationSchema>>;
1105
+ export declare const getScriptUses: Operation<{
1106
+ sectionId: string;
1107
+ }>;
1108
+ export declare const getShotInputs: Operation<{
1109
+ projectId: string;
1110
+ shotId: string;
1111
+ }>;
1112
+ export declare const reuseShotTake: Operation<{
1113
+ projectId: string;
1114
+ shotId: string;
1115
+ assetId: string;
1116
+ }>;
1117
+ export declare const getScriptSections: Operation<{
1118
+ storyboardId: string;
1119
+ }>;
1120
+ declare const sectionInput: z.ZodObject<{
1121
+ storyboardId: z.ZodString;
1122
+ expectedRevision: z.ZodNumber;
1123
+ action: z.ZodEnum<["create", "alternative", "choose", "save", "reuse", "updateUses", "rename", "archive", "tags"]>;
1124
+ sectionId: z.ZodOptional<z.ZodString>;
1125
+ alternativeId: z.ZodOptional<z.ZodString>;
1126
+ parentId: z.ZodOptional<z.ZodString>;
1127
+ label: z.ZodOptional<z.ZodString>;
1128
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1129
+ target: z.ZodOptional<z.ZodObject<{
1130
+ sceneId: z.ZodString;
1131
+ at: z.ZodNumber;
1132
+ expectedRevision: z.ZodNumber;
1133
+ }, "strip", z.ZodTypeAny, {
1134
+ at: number;
1135
+ sceneId: string;
1136
+ expectedRevision: number;
1137
+ }, {
1138
+ at: number;
1139
+ sceneId: string;
1140
+ expectedRevision: number;
1141
+ }>>;
1142
+ uses: z.ZodOptional<z.ZodArray<z.ZodObject<{
1143
+ sectionId: z.ZodString;
1144
+ expectedRevision: z.ZodNumber;
1145
+ }, "strip", z.ZodTypeAny, {
1146
+ expectedRevision: number;
1147
+ sectionId: string;
1148
+ }, {
1149
+ expectedRevision: number;
1150
+ sectionId: string;
1151
+ }>, "many">>;
1152
+ fragments: z.ZodOptional<z.ZodArray<z.ZodObject<{
1153
+ sceneId: z.ZodString;
1154
+ start: z.ZodNumber;
1155
+ end: z.ZodNumber;
1156
+ }, "strip", z.ZodTypeAny, {
1157
+ end: number;
1158
+ sceneId: string;
1159
+ start: number;
1160
+ }, {
1161
+ end: number;
1162
+ sceneId: string;
1163
+ start: number;
1164
+ }>, "many">>;
1165
+ }, "strip", z.ZodTypeAny, {
1166
+ action: "tags" | "create" | "rename" | "alternative" | "choose" | "save" | "reuse" | "updateUses" | "archive";
1167
+ storyboardId: string;
1168
+ expectedRevision: number;
1169
+ label?: string | undefined;
1170
+ target?: {
1171
+ at: number;
1172
+ sceneId: string;
1173
+ expectedRevision: number;
1174
+ } | undefined;
1175
+ tags?: string[] | undefined;
1176
+ sectionId?: string | undefined;
1177
+ alternativeId?: string | undefined;
1178
+ parentId?: string | undefined;
1179
+ uses?: {
1180
+ expectedRevision: number;
1181
+ sectionId: string;
1182
+ }[] | undefined;
1183
+ fragments?: {
1184
+ end: number;
1185
+ sceneId: string;
1186
+ start: number;
1187
+ }[] | undefined;
1188
+ }, {
1189
+ action: "tags" | "create" | "rename" | "alternative" | "choose" | "save" | "reuse" | "updateUses" | "archive";
1190
+ storyboardId: string;
1191
+ expectedRevision: number;
1192
+ label?: string | undefined;
1193
+ target?: {
1194
+ at: number;
1195
+ sceneId: string;
1196
+ expectedRevision: number;
1197
+ } | undefined;
1198
+ tags?: string[] | undefined;
1199
+ sectionId?: string | undefined;
1200
+ alternativeId?: string | undefined;
1201
+ parentId?: string | undefined;
1202
+ uses?: {
1203
+ expectedRevision: number;
1204
+ sectionId: string;
1205
+ }[] | undefined;
1206
+ fragments?: {
1207
+ end: number;
1208
+ sceneId: string;
1209
+ start: number;
1210
+ }[] | undefined;
1211
+ }>;
1212
+ export declare const changeScriptSection: Operation<z.infer<typeof sectionInput>>;
1213
+ export declare const getScriptSuggestions: Operation<{
1214
+ storyboardId: string;
1215
+ }>;
1216
+ declare const suggestionInput: z.ZodObject<{
1217
+ storyboardId: z.ZodString;
1218
+ expectedRevision: z.ZodNumber;
1219
+ action: z.ZodEnum<["create", "accept", "dismiss"]>;
1220
+ suggestions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1221
+ sceneId: z.ZodString;
1222
+ start: z.ZodNumber;
1223
+ end: z.ZodNumber;
1224
+ original: z.ZodString;
1225
+ replacement: z.ZodString;
1226
+ note: z.ZodOptional<z.ZodString>;
1227
+ }, "strip", z.ZodTypeAny, {
1228
+ end: number;
1229
+ sceneId: string;
1230
+ start: number;
1231
+ original: string;
1232
+ replacement: string;
1233
+ note?: string | undefined;
1234
+ }, {
1235
+ end: number;
1236
+ sceneId: string;
1237
+ start: number;
1238
+ original: string;
1239
+ replacement: string;
1240
+ note?: string | undefined;
1241
+ }>, "many">>;
1242
+ suggestionId: z.ZodOptional<z.ZodString>;
1243
+ }, "strip", z.ZodTypeAny, {
1244
+ action: "create" | "accept" | "dismiss";
1245
+ storyboardId: string;
1246
+ expectedRevision: number;
1247
+ suggestions?: {
1248
+ end: number;
1249
+ sceneId: string;
1250
+ start: number;
1251
+ original: string;
1252
+ replacement: string;
1253
+ note?: string | undefined;
1254
+ }[] | undefined;
1255
+ suggestionId?: string | undefined;
1256
+ }, {
1257
+ action: "create" | "accept" | "dismiss";
1258
+ storyboardId: string;
1259
+ expectedRevision: number;
1260
+ suggestions?: {
1261
+ end: number;
1262
+ sceneId: string;
1263
+ start: number;
1264
+ original: string;
1265
+ replacement: string;
1266
+ note?: string | undefined;
1267
+ }[] | undefined;
1268
+ suggestionId?: string | undefined;
1269
+ }>;
1270
+ export declare const changeScriptSuggestions: Operation<z.infer<typeof suggestionInput>>;
1271
+ export declare const getScriptDocument: Operation<{
1272
+ storyboardId: string;
1273
+ }>;
1274
+ declare const writeScriptDocumentInput: z.ZodObject<{
1275
+ storyboardId: z.ZodString;
1276
+ expectedRevision: z.ZodNumber;
1277
+ edits: z.ZodArray<z.ZodObject<{
1278
+ sceneId: z.ZodString;
1279
+ at: z.ZodNumber;
1280
+ removed: z.ZodNumber;
1281
+ text: z.ZodString;
1282
+ }, "strip", z.ZodTypeAny, {
1283
+ at: number;
1284
+ text: string;
1285
+ sceneId: string;
1286
+ removed: number;
1287
+ }, {
1288
+ at: number;
1289
+ text: string;
1290
+ sceneId: string;
1291
+ removed: number;
1292
+ }>, "many">;
1293
+ structures: z.ZodOptional<z.ZodArray<z.ZodObject<{
1294
+ sceneId: z.ZodString;
1295
+ blocks: z.ZodArray<z.ZodObject<{
1296
+ id: z.ZodString;
1297
+ kind: z.ZodEnum<["paragraph", "heading", "direction"]>;
1298
+ start: z.ZodNumber;
1299
+ end: z.ZodNumber;
1300
+ label: z.ZodOptional<z.ZodString>;
1301
+ level: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
1302
+ marks: z.ZodArray<z.ZodObject<{
1303
+ start: z.ZodNumber;
1304
+ end: z.ZodNumber;
1305
+ type: z.ZodEnum<["strong", "em"]>;
1306
+ }, "strip", z.ZodTypeAny, {
1307
+ end: number;
1308
+ type: "strong" | "em";
1309
+ start: number;
1310
+ }, {
1311
+ end: number;
1312
+ type: "strong" | "em";
1313
+ start: number;
1314
+ }>, "many">;
1315
+ }, "strip", z.ZodTypeAny, {
1316
+ end: number;
1317
+ id: string;
1318
+ kind: "paragraph" | "heading" | "direction";
1319
+ start: number;
1320
+ marks: {
1321
+ end: number;
1322
+ type: "strong" | "em";
1323
+ start: number;
1324
+ }[];
1325
+ label?: string | undefined;
1326
+ level?: 2 | 3 | undefined;
1327
+ }, {
1328
+ end: number;
1329
+ id: string;
1330
+ kind: "paragraph" | "heading" | "direction";
1331
+ start: number;
1332
+ marks: {
1333
+ end: number;
1334
+ type: "strong" | "em";
1335
+ start: number;
1336
+ }[];
1337
+ label?: string | undefined;
1338
+ level?: 2 | 3 | undefined;
1339
+ }>, "many">;
1340
+ }, "strip", z.ZodTypeAny, {
1341
+ sceneId: string;
1342
+ blocks: {
1343
+ end: number;
1344
+ id: string;
1345
+ kind: "paragraph" | "heading" | "direction";
1346
+ start: number;
1347
+ marks: {
1348
+ end: number;
1349
+ type: "strong" | "em";
1350
+ start: number;
1351
+ }[];
1352
+ label?: string | undefined;
1353
+ level?: 2 | 3 | undefined;
1354
+ }[];
1355
+ }, {
1356
+ sceneId: string;
1357
+ blocks: {
1358
+ end: number;
1359
+ id: string;
1360
+ kind: "paragraph" | "heading" | "direction";
1361
+ start: number;
1362
+ marks: {
1363
+ end: number;
1364
+ type: "strong" | "em";
1365
+ start: number;
1366
+ }[];
1367
+ label?: string | undefined;
1368
+ level?: 2 | 3 | undefined;
1369
+ }[];
1370
+ }>, "many">>;
1371
+ move: z.ZodOptional<z.ZodObject<{
1372
+ sceneId: z.ZodString;
1373
+ blockId: z.ZodString;
1374
+ delta: z.ZodUnion<[z.ZodLiteral<-1>, z.ZodLiteral<1>]>;
1375
+ }, "strip", z.ZodTypeAny, {
1376
+ sceneId: string;
1377
+ blockId: string;
1378
+ delta: 1 | -1;
1379
+ }, {
1380
+ sceneId: string;
1381
+ blockId: string;
1382
+ delta: 1 | -1;
1383
+ }>>;
1384
+ makeShots: z.ZodOptional<z.ZodArray<z.ZodObject<{
1385
+ sceneId: z.ZodString;
1386
+ start: z.ZodNumber;
1387
+ end: z.ZodNumber;
1388
+ waitingShotId: z.ZodOptional<z.ZodString>;
1389
+ }, "strip", z.ZodTypeAny, {
1390
+ end: number;
1391
+ sceneId: string;
1392
+ start: number;
1393
+ waitingShotId?: string | undefined;
1394
+ }, {
1395
+ end: number;
1396
+ sceneId: string;
1397
+ start: number;
1398
+ waitingShotId?: string | undefined;
1399
+ }>, "many">>;
1400
+ restoreRevision: z.ZodOptional<z.ZodNumber>;
1401
+ ensureScene: z.ZodOptional<z.ZodBoolean>;
1402
+ sceneAction: z.ZodOptional<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
1403
+ kind: z.ZodLiteral<"split">;
1404
+ sceneId: z.ZodString;
1405
+ at: z.ZodNumber;
1406
+ }, "strip", z.ZodTypeAny, {
1407
+ at: number;
1408
+ kind: "split";
1409
+ sceneId: string;
1410
+ }, {
1411
+ at: number;
1412
+ kind: "split";
1413
+ sceneId: string;
1414
+ }>, z.ZodObject<{
1415
+ kind: z.ZodLiteral<"merge">;
1416
+ sceneId: z.ZodString;
1417
+ }, "strip", z.ZodTypeAny, {
1418
+ kind: "merge";
1419
+ sceneId: string;
1420
+ }, {
1421
+ kind: "merge";
1422
+ sceneId: string;
1423
+ }>]>>;
1424
+ }, "strip", z.ZodTypeAny, {
1425
+ storyboardId: string;
1426
+ expectedRevision: number;
1427
+ edits: {
1428
+ at: number;
1429
+ text: string;
1430
+ sceneId: string;
1431
+ removed: number;
1432
+ }[];
1433
+ structures?: {
1434
+ sceneId: string;
1435
+ blocks: {
1436
+ end: number;
1437
+ id: string;
1438
+ kind: "paragraph" | "heading" | "direction";
1439
+ start: number;
1440
+ marks: {
1441
+ end: number;
1442
+ type: "strong" | "em";
1443
+ start: number;
1444
+ }[];
1445
+ label?: string | undefined;
1446
+ level?: 2 | 3 | undefined;
1447
+ }[];
1448
+ }[] | undefined;
1449
+ move?: {
1450
+ sceneId: string;
1451
+ blockId: string;
1452
+ delta: 1 | -1;
1453
+ } | undefined;
1454
+ makeShots?: {
1455
+ end: number;
1456
+ sceneId: string;
1457
+ start: number;
1458
+ waitingShotId?: string | undefined;
1459
+ }[] | undefined;
1460
+ restoreRevision?: number | undefined;
1461
+ ensureScene?: boolean | undefined;
1462
+ sceneAction?: {
1463
+ at: number;
1464
+ kind: "split";
1465
+ sceneId: string;
1466
+ } | {
1467
+ kind: "merge";
1468
+ sceneId: string;
1469
+ } | undefined;
1470
+ }, {
1471
+ storyboardId: string;
1472
+ expectedRevision: number;
1473
+ edits: {
1474
+ at: number;
1475
+ text: string;
1476
+ sceneId: string;
1477
+ removed: number;
1478
+ }[];
1479
+ structures?: {
1480
+ sceneId: string;
1481
+ blocks: {
1482
+ end: number;
1483
+ id: string;
1484
+ kind: "paragraph" | "heading" | "direction";
1485
+ start: number;
1486
+ marks: {
1487
+ end: number;
1488
+ type: "strong" | "em";
1489
+ start: number;
1490
+ }[];
1491
+ label?: string | undefined;
1492
+ level?: 2 | 3 | undefined;
1493
+ }[];
1494
+ }[] | undefined;
1495
+ move?: {
1496
+ sceneId: string;
1497
+ blockId: string;
1498
+ delta: 1 | -1;
1499
+ } | undefined;
1500
+ makeShots?: {
1501
+ end: number;
1502
+ sceneId: string;
1503
+ start: number;
1504
+ waitingShotId?: string | undefined;
1505
+ }[] | undefined;
1506
+ restoreRevision?: number | undefined;
1507
+ ensureScene?: boolean | undefined;
1508
+ sceneAction?: {
1509
+ at: number;
1510
+ kind: "split";
1511
+ sceneId: string;
1512
+ } | {
1513
+ kind: "merge";
1514
+ sceneId: string;
1515
+ } | undefined;
1516
+ }>;
1517
+ export declare const writeScriptDocument: Operation<z.infer<typeof writeScriptDocumentInput>>;
1518
+ export declare const editScript: Operation<{
1519
+ sceneId: string;
1520
+ at: number;
1521
+ removed: number;
1522
+ text: string;
1523
+ rev?: string;
1524
+ expectedRevision?: number;
1525
+ }>;
1526
+ export declare const makeShotFromScript: Operation<{
1527
+ sceneId: string;
1528
+ start: number;
1529
+ end: number;
1530
+ waitingShotId?: string | null;
1531
+ perParagraph?: boolean;
1532
+ }>;
1533
+ export declare const breakScriptIntoShots: Operation<{
1534
+ storyboardId?: string;
1535
+ sceneId?: string;
1536
+ }>;
1537
+ export declare const splitScene: Operation<{
1538
+ sceneId: string;
1539
+ lineStart: number;
1540
+ lineEnd: number;
1541
+ name?: string | null;
1542
+ }>;
1543
+ export declare const mergeScene: Operation<{
1544
+ sceneId: string;
1545
+ }>;
1546
+ export declare const pasteScript: Operation<{
1547
+ storyboardId?: string;
1548
+ sceneId?: string | null;
1549
+ text: string;
1550
+ at?: number;
1551
+ }>;
780
1552
  export declare const generateFromShots: Operation<{
781
1553
  shotIds: string[];
782
1554
  confirm?: boolean;
1555
+ fingerprint?: string;
1556
+ draft?: {
1557
+ model?: ImageModelId;
1558
+ };
783
1559
  }>;
1560
+ export declare const quoteBoard: Operation<{
1561
+ projectId: string;
1562
+ storyboardId?: string;
1563
+ sceneId?: string;
1564
+ shotIds?: string[];
1565
+ missingOnly?: boolean;
1566
+ draft?: {
1567
+ model?: ImageModelId;
1568
+ };
1569
+ }>;
1570
+ export declare const getBoardProgress: Operation<{
1571
+ projectId: string;
1572
+ }>;
1573
+ export declare const editCut: Operation<{
1574
+ projectId: string;
1575
+ timelineId?: string;
1576
+ action: 'changes' | 'replace' | 'sync' | 'build' | 'restore' | 'undo-build';
1577
+ storyboardId?: string;
1578
+ clipId?: string;
1579
+ assetId?: string;
1580
+ before?: Record<string, unknown>[];
1581
+ clipIds?: string[];
1582
+ markerIds?: string[];
1583
+ skipPresent?: boolean;
1584
+ }>;
1585
+ export declare function resolveGuideTopic(topic: string): string | null;
784
1586
  export declare const getPromptingGuide: Operation<{
785
1587
  topic: string;
786
- depth?: 'card' | 'full';
1588
+ depth?: GuideDepth;
787
1589
  query?: string;
788
1590
  }>;
789
1591
  /**
790
1592
  * The one op that changes what OTHER ops are visible.
791
1593
  *
792
1594
  * 🚨 IT EXISTS BECAUSE THE SURFACE IS 112 KB AND EVERY TURN PAYS FOR ALL OF IT.
793
- * The desktop Studio Agent sends `core` plus this; a group arrives when the
794
- * work needs it and stays for the rest of the run. On the MCP surface every op
795
- * is registered up front (a stdio server has no run to append to), so this
796
- * returns the same definitions as a plain listing — useful either way, since
797
- * it is also how an agent asks "what else can you do".
1595
+ * Both surfaces start with the shared core set. Search returns compact metadata;
1596
+ * names/group returns exact schemas and replaces the optional selection.
798
1597
  */
799
1598
  export declare const loadTools: Operation<{
800
- group: OperationGroup;
1599
+ group?: OperationGroup;
1600
+ query?: string;
1601
+ names?: string[];
801
1602
  }>;
802
1603
  export declare const blenderStatus: Operation<Record<string, never>>;
803
1604
  export declare const blenderExecute: Operation<{
@@ -823,5 +1624,5 @@ export declare const blenderRenderBlocking: Operation<{
823
1624
  basename?: string;
824
1625
  }>;
825
1626
  export declare const ALL_OPERATIONS: ReadonlyArray<Operation<unknown>>;
826
- export { toolDefinitions, toolDefinition, groupFor, tierFor, OPERATION_GROUPS, GROUP_SUMMARY, type ToolDefinition } from './surface.js';
1627
+ export { toolDefinitions, toolDefinition, groupFor, tierFor, OPERATION_GROUPS, GROUP_SUMMARY, type ToolDefinition, STARTUP_TOOL_IDS } from './surface.js';
827
1628
  //# sourceMappingURL=index.d.ts.map