@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.
- package/dist/auth.js +2 -2
- package/dist/clients/cloud.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/manual/content.d.ts +1 -1
- package/dist/manual/content.js +1 -1
- package/dist/operations/index.d.ts +817 -16
- package/dist/operations/index.js +1413 -360
- package/dist/operations/surface.d.ts +4 -1
- package/dist/operations/surface.js +41 -10
- package/dist/prompts/ad-presets.d.ts +77 -0
- package/dist/prompts/ad-presets.js +43 -0
- package/dist/prompts/agent-doctrine.js +27 -5
- package/dist/prompts/banned-tokens.d.ts +4 -29
- package/dist/prompts/banned-tokens.js +29 -204
- package/dist/prompts/craft-cards.js +2 -2
- package/dist/prompts/generation-policy.d.ts +41 -0
- package/dist/prompts/generation-policy.js +53 -0
- package/dist/prompts/guide-retrieval.d.ts +9 -0
- package/dist/prompts/guide-retrieval.js +53 -0
- package/dist/prompts/index.d.ts +1 -0
- package/dist/prompts/index.js +1 -0
- package/dist/prompts/model-capabilities.d.ts +18 -1
- package/dist/prompts/model-capabilities.js +72 -19
- package/dist/prompts/model-facts.d.ts +34 -2
- package/dist/prompts/model-facts.js +66 -5
- package/dist/prompts/partials.generated.js +8 -2
- package/dist/prompts/prompting-tips.d.ts +1 -1
- package/dist/prompts/prompting-tips.js +61 -16
- package/dist/prompts/reference-composer.d.ts +2 -0
- package/dist/prompts/reference-composer.js +51 -50
- package/dist/prompts/script-document.d.ts +165 -0
- package/dist/prompts/script-document.js +11 -0
- package/dist/prompts/shot-grammar.d.ts +4 -4
- package/dist/prompts/shot-grammar.js +3 -3
- package/dist/prompts/shot-spec.d.ts +13 -0
- package/dist/prompts/shot-spec.js +23 -5
- package/dist/skills/content.js +27 -24
- package/exports/slates-chatgpt-images/generated/SKILL.md +107 -0
- package/exports/slates-chatgpt-images/generated/slates-chatgpt-images.skill +0 -0
- package/exports/slates-prompt-builder/generated/SKILL.md +1 -1
- package/exports/slates-prompt-builder/generated/reference-character.md +9 -1
- package/exports/slates-prompt-builder/generated/reference-kling.md +3 -3
- package/exports/slates-prompt-builder/generated/reference-nano-banana.md +22 -10
- package/exports/slates-prompt-builder/generated/reference-seedance.md +4 -4
- package/exports/slates-prompt-builder/generated/slates-prompt-builder-manifest.json +17 -17
- package/exports/slates-prompt-builder/generated/slates-prompt-builder.skill +0 -0
- package/package.json +9 -3
- package/skills/_partials/cinematic-card.md +8 -0
- package/skills/_partials/cinematic-routes-short.md +2 -0
- package/skills/_partials/cinematic-tips-short.md +2 -0
- package/skills/_partials/decision-log.md +1 -13
- package/skills/_partials/image-defaults.md +11 -0
- package/skills/_partials/lens-video-split.md +1 -0
- package/skills/_partials/reference-rules-core.md +1 -1
- package/skills/_partials/sheet-tool-defaults.md +6 -0
- package/skills/slates-character-identity.md +9 -1
- package/skills/slates-chatgpt-images.md +107 -0
- package/skills/slates-cinematic-look.md +237 -0
- package/skills/slates-cost-discipline.md +18 -12
- package/skills/slates-direct-response-ad.md +13 -53
- package/skills/slates-edit-and-iterate.md +1 -1
- package/skills/slates-model-selection.md +20 -14
- package/skills/slates-one-prompt-film.md +19 -77
- package/skills/slates-project-organization.md +7 -3
- package/skills/slates-prompting-flux-2-max.md +15 -4
- package/skills/slates-prompting-gpt-image-2-5.md +41 -28
- package/skills/slates-prompting-inworld-tts.md +174 -174
- package/skills/slates-prompting-kling-v3.md +3 -3
- package/skills/slates-prompting-lip-sync.md +1 -1
- package/skills/slates-prompting-minimax-h3.md +30 -17
- package/skills/slates-prompting-motion-transfer.md +1 -1
- package/skills/slates-prompting-nano-banana-2.md +24 -11
- package/skills/slates-prompting-seedance-2-5.md +7 -6
- package/skills/slates-prompting-seedance.md +5 -5
- package/skills/slates-prompting-seedream-5-lite.md +14 -3
- package/skills/slates-prompting-veo-3.md +1 -1
- package/skills/slates-script-craft.md +45 -0
- package/skills/slates-shot-variety.md +11 -40
- package/skills/slates-storyboard-from-script.md +14 -66
- package/skills/slates-style-prompting.md +4 -4
- package/skills/slates-ugc-influencer-ad.md +32 -309
- package/skills/slates-vision-feedback-loop.md +2 -1
|
@@ -122,6 +122,9 @@ export interface ShotSpec {
|
|
|
122
122
|
* only thing that may number anything, and a stored "image 3" would be a
|
|
123
123
|
* lie the moment a reference is added, removed or reordered. */
|
|
124
124
|
prompt: string;
|
|
125
|
+
/** Custom bytes remain recoverable when script mode is selected. */
|
|
126
|
+
recipeMode?: 'script' | 'custom';
|
|
127
|
+
promptScriptLine?: string | null;
|
|
125
128
|
model: string | null;
|
|
126
129
|
/**
|
|
127
130
|
* The model the PROMPT WAS AUTHORED FOR. Never auto-rewritten.
|
|
@@ -229,6 +232,16 @@ export type ScriptTextField = (typeof SCRIPT_TEXT_FIELDS)[number];
|
|
|
229
232
|
* Dialogue is quoted so a model receives it as speech rather than as
|
|
230
233
|
* description — the one piece of grammar this adds, and the reason it is not
|
|
231
234
|
* just `join(' ')`.
|
|
235
|
+
*
|
|
236
|
+
* 🚨 A LINE IS SPEECH ONLY WHEN THE SHOT SAYS WHO SPEAKS OR HOW (2026-09-27).
|
|
237
|
+
* Since the Script page became one continuous text (2026-09-19, "cues stay
|
|
238
|
+
* words"), `line` holds whatever script text a Shot's range covers, and most
|
|
239
|
+
* of a script is action. Composing every speaker-less line as `A voice says
|
|
240
|
+
* "…"` told the video model that someone speaks the stage direction: an ad
|
|
241
|
+
* script broken into four Shots sent four of them (first-hour walk finding 15).
|
|
242
|
+
* Unlabelled text now goes in as written; a speaker (VO included) or a
|
|
243
|
+
* delivery note still makes it quoted speech. Mirrored byte-for-byte in both
|
|
244
|
+
* repos, and `check:composer-mirror` compares the two outputs.
|
|
232
245
|
*/
|
|
233
246
|
export declare function scriptPromptBody(spec: Pick<ShotSpec, ScriptTextField>): string;
|
|
234
247
|
/**
|
|
@@ -68,6 +68,16 @@ export const SCRIPT_TEXT_FIELDS = [
|
|
|
68
68
|
* Dialogue is quoted so a model receives it as speech rather than as
|
|
69
69
|
* description — the one piece of grammar this adds, and the reason it is not
|
|
70
70
|
* just `join(' ')`.
|
|
71
|
+
*
|
|
72
|
+
* 🚨 A LINE IS SPEECH ONLY WHEN THE SHOT SAYS WHO SPEAKS OR HOW (2026-09-27).
|
|
73
|
+
* Since the Script page became one continuous text (2026-09-19, "cues stay
|
|
74
|
+
* words"), `line` holds whatever script text a Shot's range covers, and most
|
|
75
|
+
* of a script is action. Composing every speaker-less line as `A voice says
|
|
76
|
+
* "…"` told the video model that someone speaks the stage direction: an ad
|
|
77
|
+
* script broken into four Shots sent four of them (first-hour walk finding 15).
|
|
78
|
+
* Unlabelled text now goes in as written; a speaker (VO included) or a
|
|
79
|
+
* delivery note still makes it quoted speech. Mirrored byte-for-byte in both
|
|
80
|
+
* repos, and `check:composer-mirror` compares the two outputs.
|
|
71
81
|
*/
|
|
72
82
|
export function scriptPromptBody(spec) {
|
|
73
83
|
const clean = (v) => (v ?? '').trim();
|
|
@@ -87,10 +97,16 @@ export function scriptPromptBody(spec) {
|
|
|
87
97
|
if (line) {
|
|
88
98
|
const speaker = clean(spec.speaker);
|
|
89
99
|
const delivery = clean(spec.delivery).replace(/^\(|\)$/g, '').trim();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
100
|
+
if (!speaker && !delivery) {
|
|
101
|
+
// Script text with no one named to speak it: sent as written.
|
|
102
|
+
parts.push(line);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// "VO" is a screenplay abbreviation, not something to send to a model.
|
|
106
|
+
const who = !speaker || speaker.toUpperCase() === 'VO' ? 'A voice' : speaker;
|
|
107
|
+
const how = delivery ? `, ${delivery},` : '';
|
|
108
|
+
parts.push(`${who} says${how} "${line}"`);
|
|
109
|
+
}
|
|
94
110
|
}
|
|
95
111
|
return parts.join(' ');
|
|
96
112
|
}
|
|
@@ -101,7 +117,7 @@ export function scriptPromptBody(spec) {
|
|
|
101
117
|
* while the row plainly has a script in it.
|
|
102
118
|
*/
|
|
103
119
|
export function effectivePrompt(spec) {
|
|
104
|
-
const authored = spec.prompt.trim();
|
|
120
|
+
const authored = spec.recipeMode === 'script' ? '' : spec.prompt.trim();
|
|
105
121
|
return authored || scriptPromptBody(spec);
|
|
106
122
|
}
|
|
107
123
|
/** An empty Shot: a prompt bar nobody has touched. Every reader starts here and
|
|
@@ -247,6 +263,8 @@ export function normalizeShotSpec(raw) {
|
|
|
247
263
|
}
|
|
248
264
|
const out = {
|
|
249
265
|
prompt: typeof v.prompt === 'string' ? v.prompt : '',
|
|
266
|
+
...(v.recipeMode === 'script' || v.recipeMode === 'custom' ? { recipeMode: v.recipeMode } : {}),
|
|
267
|
+
...(typeof v.promptScriptLine === 'string' || v.promptScriptLine === null ? { promptScriptLine: v.promptScriptLine } : {}),
|
|
250
268
|
model: str(v.model),
|
|
251
269
|
authoredFor: str(v.authoredFor),
|
|
252
270
|
params: readParams(v.params),
|