@nodaro/prompts 1.26.0 → 1.26.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/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/transitions-scope.test.ts +61 -0
- package/src/transitions.ts +4 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodaro/prompts",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.1",
|
|
4
4
|
"description": "Nodaro's prompt-engineering layer — person/picker catalogs with prompt hints, identity-lock clauses, entity prompt builders, brand presets, and prompt/reference assembly shared by the Nodaro platform and SDK.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|
|
@@ -123,6 +123,67 @@ describe("F1 bodies — the subject becomes the material and reforms (2026-09-25
|
|
|
123
123
|
})
|
|
124
124
|
})
|
|
125
125
|
|
|
126
|
+
describe("F2 + vortex bodies (2026-09-25 A/B: F2 arm B, vortex rework D2)", () => {
|
|
127
|
+
// sand-storm, paint-splash and aurora-sweep: the F2 drafts, tidied (first letter lower-cased, final
|
|
128
|
+
// full stop dropped). vortex-swirl: the rework's D2 body, as tested. Each rendered string below is
|
|
129
|
+
// byte-identical to the clause the winning take was generated from.
|
|
130
|
+
const F2_BODIES: Record<string, { term: string; body: string }> = {
|
|
131
|
+
"sand-storm": {
|
|
132
|
+
term: "sand storm",
|
|
133
|
+
body:
|
|
134
|
+
"a wall of opaque, swirling ochre sand sweeps in from one side of the frame and surges across it " +
|
|
135
|
+
"until the whole picture is hidden in dust. The camera stays where it is and the framing does not " +
|
|
136
|
+
"change. The dust then thins and sinks away toward the lower edge of the frame, revealing the second " +
|
|
137
|
+
"shot behind it. The shot ends on the second shot, clear and fully resolved, with no dust left. The " +
|
|
138
|
+
"first shot stays as it is until the sand covers it completely, and the second shot appears only as " +
|
|
139
|
+
"the dust clears",
|
|
140
|
+
},
|
|
141
|
+
"paint-splash": {
|
|
142
|
+
term: "paint splash",
|
|
143
|
+
body:
|
|
144
|
+
"vivid splashes of coloured paint fly across the frame in arcing streaks and pile over one another " +
|
|
145
|
+
"until the whole picture is covered in wet paint. The camera stays where it is and the framing does " +
|
|
146
|
+
"not change. The paint then gathers toward the centre of the frame and shrinks to nothing, uncovering" +
|
|
147
|
+
" the second shot from the edges inward. The shot ends on the second shot, clean and fully resolved, " +
|
|
148
|
+
"with no paint left. The paint lies on the surface of the picture itself, and the second shot appears" +
|
|
149
|
+
" only where the paint has gone",
|
|
150
|
+
},
|
|
151
|
+
"aurora-sweep": {
|
|
152
|
+
term: "aurora sweep",
|
|
153
|
+
body:
|
|
154
|
+
"a luminous curtain of green and violet aurora light ripples across the whole frame, and its bright " +
|
|
155
|
+
"bands veil the first shot. The camera stays where it is and the framing does not change. As the " +
|
|
156
|
+
"bands fade, the second shot is revealed behind them. The shot ends on the second shot, clear and " +
|
|
157
|
+
"fully resolved, with no aurora light left. The aurora glows over the front of the picture, and the " +
|
|
158
|
+
"second shot appears only as it fades",
|
|
159
|
+
},
|
|
160
|
+
"vortex-swirl": {
|
|
161
|
+
term: "vortex swirl",
|
|
162
|
+
body:
|
|
163
|
+
"only the first subject twists, winding around its own centre like wrung cloth into a tight narrow " +
|
|
164
|
+
"column at the same place in the frame, turning faster as it narrows, while the surroundings stay " +
|
|
165
|
+
"upright and still. the camera is locked on a tripod head planted in one spot, holding the frame " +
|
|
166
|
+
"level from start to finish. the column then unwinds in the same direction and opens into the shape " +
|
|
167
|
+
"of the second subject, while the second shot appears around it. the shot ends on the second subject," +
|
|
168
|
+
" solid and fully resolved, with nothing left turning. the twist stays inside the outline of the " +
|
|
169
|
+
"subject, and the edges of the frame stay square and still",
|
|
170
|
+
},
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
it.each(Object.keys(F2_BODIES))("%s renders `term (body)` at the tile-default levers", (id) => {
|
|
174
|
+
const { term, body } = F2_BODIES[id]!
|
|
175
|
+
expect(getTransitionPromptHint(id)).toBe(body)
|
|
176
|
+
expect(composeTransitionHintFromConnections(id, [], [], {}, "full", { scope: "shot" })).toBe(`${term} (${body})`)
|
|
177
|
+
})
|
|
178
|
+
|
|
179
|
+
it.each(Object.keys(F2_BODIES))("%s at middle / short / natural", (id) => {
|
|
180
|
+
const { term, body } = F2_BODIES[id]!
|
|
181
|
+
expect(composeTransitionHintFromConnections(id, [], [], { position: "middle", duration: "short", intensity: "natural" })).toBe(
|
|
182
|
+
`${term} (${body}), the transition occurs in the middle of the clip, lasting approximately 1 second, with natural timing`,
|
|
183
|
+
)
|
|
184
|
+
})
|
|
185
|
+
})
|
|
186
|
+
|
|
126
187
|
describe("L1 — a cut spans nothing, so `full` adds no clause", () => {
|
|
127
188
|
it.each(INSTANT_IDS)("%s + full renders no position clause", (id) => {
|
|
128
189
|
const out = composeTransitionHintFromConnections(id, [], [], { position: "full", duration: "short", intensity: "natural" })
|
package/src/transitions.ts
CHANGED
|
@@ -163,11 +163,11 @@ export const TRANSITIONS: ReadonlyArray<Transition> = [
|
|
|
163
163
|
{ id: "ink-splash", label: "Ink Splash", category: "element", description: "Ink splashes across, scene changes",
|
|
164
164
|
promptHint: "black ink splashes across the frame in expanding tendrils that fully cover the image, then the ink retracts inward and pulls back to reveal the new scene" },
|
|
165
165
|
{ id: "sand-storm", label: "Sand Storm", category: "element", description: "Sand storm engulfs the frame, scene changes inside",
|
|
166
|
-
promptHint: "a
|
|
166
|
+
promptHint: "a wall of opaque, swirling ochre sand sweeps in from one side of the frame and surges across it until the whole picture is hidden in dust. The camera stays where it is and the framing does not change. The dust then thins and sinks away toward the lower edge of the frame, revealing the second shot behind it. The shot ends on the second shot, clear and fully resolved, with no dust left. The first shot stays as it is until the sand covers it completely, and the second shot appears only as the dust clears" },
|
|
167
167
|
{ id: "paint-splash", label: "Paint Splash", category: "element", description: "Vivid paint splash covers, retracts into new scene",
|
|
168
|
-
promptHint: "
|
|
168
|
+
promptHint: "vivid splashes of coloured paint fly across the frame in arcing streaks and pile over one another until the whole picture is covered in wet paint. The camera stays where it is and the framing does not change. The paint then gathers toward the centre of the frame and shrinks to nothing, uncovering the second shot from the edges inward. The shot ends on the second shot, clean and fully resolved, with no paint left. The paint lies on the surface of the picture itself, and the second shot appears only where the paint has gone" },
|
|
169
169
|
{ id: "aurora-sweep", label: "Aurora Sweep", category: "element", description: "Aurora curtain sweeps across, scene changes behind",
|
|
170
|
-
promptHint: "a luminous green and violet aurora
|
|
170
|
+
promptHint: "a luminous curtain of green and violet aurora light ripples across the whole frame, and its bright bands veil the first shot. The camera stays where it is and the framing does not change. As the bands fade, the second shot is revealed behind them. The shot ends on the second shot, clear and fully resolved, with no aurora light left. The aurora glows over the front of the picture, and the second shot appears only as it fades" },
|
|
171
171
|
{ id: "sakura-petals", label: "Sakura Storm", category: "element", description: "Cherry blossom petals storm across the frame",
|
|
172
172
|
promptHint: "a dense storm of cherry blossom petals swirls in from one side and fills the frame in soft pink motion, the petals cluster to fully veil the image, then drift past to reveal the new scene", term: "cherry blossom petal storm" },
|
|
173
173
|
{ id: "garden-bloom", label: "Garden Bloom", category: "element", description: "Flowers bloom outward, parting to reveal new scene",
|
|
@@ -187,7 +187,7 @@ export const TRANSITIONS: ReadonlyArray<Transition> = [
|
|
|
187
187
|
{ id: "origami-fold", label: "Origami Fold", category: "morph", description: "Subject folds like paper into new subject",
|
|
188
188
|
promptHint: "the first subject creases and folds like sheets of origami paper, the folds rotate and re-arrange in elegant geometric steps, and the final fold reveals the new subject" },
|
|
189
189
|
{ id: "vortex-swirl", label: "Vortex Swirl", category: "morph", description: "Subject swirls into vortex, unwinds as new",
|
|
190
|
-
promptHint: "the first subject
|
|
190
|
+
promptHint: "only the first subject twists, winding around its own centre like wrung cloth into a tight narrow column at the same place in the frame, turning faster as it narrows, while the surroundings stay upright and still. the camera is locked on a tripod head planted in one spot, holding the frame level from start to finish. the column then unwinds in the same direction and opens into the shape of the second subject, while the second shot appears around it. the shot ends on the second subject, solid and fully resolved, with nothing left turning. the twist stays inside the outline of the subject, and the edges of the frame stay square and still" },
|
|
191
191
|
{ id: "dream-ripple", label: "Dream Ripple", category: "morph", description: "Surface ripple wave reveals new scene",
|
|
192
192
|
promptHint: "a circular ripple radiates outward across the frame as if the image were the surface of water, and where the ripple passes the first scene is replaced by the second scene" },
|
|
193
193
|
{ id: "wireframe-morph", label: "Wireframe Morph", category: "morph", description: "Subject reduces to wireframe, reforms as new subject",
|