@cueframe/kernel 0.2.37 → 0.2.38

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.
@@ -302,6 +302,20 @@ export declare const Transition: z.ZodObject<{
302
302
  duration: z.ZodNumber;
303
303
  }, z.core.$strip>;
304
304
  export type Transition = z.infer<typeof Transition>;
305
+ /**
306
+ * Where a clip's CENTRE sits, as a FRACTION of the frame: 0.5,0.5 is the centre,
307
+ * 0,0 the top-left corner, 1,1 the bottom-right. The renderer turns this straight
308
+ * into CSS `left`/`top` percentages (`x * 100`), so a value authored in pixels is
309
+ * not slightly off — it is hundreds of frame-widths off-canvas and the clip draws
310
+ * NOTHING. CUE-39: a card animated to `position.x: 180` rendered as sixteen black
311
+ * stills, and the contract had never said what the unit was.
312
+ *
313
+ * Overshoot is legitimate — an entrance slides in from just outside the frame —
314
+ * so the bound is a whole frame either side. Past that it is a unit mistake, and
315
+ * the refusal says so, the way `fontSize` refuses px.
316
+ */
317
+ export declare const POSITION_MIN = -1;
318
+ export declare const POSITION_MAX = 2;
305
319
  export declare const Region: z.ZodObject<{
306
320
  x: z.ZodNumber;
307
321
  y: z.ZodNumber;
@@ -359,6 +373,8 @@ export declare const KeyframeChannel: z.ZodArray<z.ZodObject<{
359
373
  export type KeyframeChannel = z.infer<typeof KeyframeChannel>;
360
374
  export declare const ANIMATABLE_PARAMS: readonly ["opacity", "scale", "rotation", "position.x", "position.y", "volume"];
361
375
  export type AnimatableParam = (typeof ANIMATABLE_PARAMS)[number];
376
+ /** The bound each channel's keyframe VALUES carry — one rule shared with the scalar field. */
377
+ export declare const ANIMATABLE_VALUE: Record<AnimatableParam, z.ZodNumber>;
362
378
  export declare const TimelineClip: z.ZodObject<{
363
379
  id: z.ZodString;
364
380
  startTime: z.ZodNumber;
@@ -4,13 +4,13 @@ import {
4
4
  buildPlannerTools,
5
5
  buildToolsFromSchemas,
6
6
  extractProviderError
7
- } from "../chunk-6A6AYPWO.js";
8
- import "../chunk-HLW3P5ZP.js";
7
+ } from "../chunk-S3HHEJMZ.js";
8
+ import "../chunk-MJWRC7G7.js";
9
9
  import "../chunk-JOURGVOR.js";
10
10
  import "../chunk-7AZLFN26.js";
11
- import "../chunk-CMC6MLR3.js";
12
- import "../chunk-EGNTUGAM.js";
13
- import "../chunk-AYZPTH7L.js";
11
+ import "../chunk-POTCIQTA.js";
12
+ import "../chunk-AG7HKF2U.js";
13
+ import "../chunk-ID5QY7V6.js";
14
14
  import "../chunk-WPZKOVYF.js";
15
15
  import "../chunk-B7J5UUUV.js";
16
16
  import "../chunk-KYRDKK2D.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  buildDirectorContext
3
- } from "../chunk-6VTNIYSR.js";
4
- import "../chunk-CMC6MLR3.js";
5
- import "../chunk-EGNTUGAM.js";
6
- import "../chunk-AYZPTH7L.js";
3
+ } from "../chunk-ZUJCWFS7.js";
4
+ import "../chunk-POTCIQTA.js";
5
+ import "../chunk-AG7HKF2U.js";
6
+ import "../chunk-ID5QY7V6.js";
7
7
  import "../chunk-WPZKOVYF.js";
8
8
  import "../chunk-B7J5UUUV.js";
9
9
  import "../chunk-KYRDKK2D.js";
@@ -6,12 +6,12 @@ import {
6
6
  COMPOSE_ROLE_TOOLS,
7
7
  COMPOSE_ROLE_TOOL_NAMES,
8
8
  dispatchComposeRoleTool
9
- } from "../chunk-HLW3P5ZP.js";
9
+ } from "../chunk-MJWRC7G7.js";
10
10
  import "../chunk-JOURGVOR.js";
11
11
  import "../chunk-7AZLFN26.js";
12
- import "../chunk-CMC6MLR3.js";
13
- import "../chunk-EGNTUGAM.js";
14
- import "../chunk-AYZPTH7L.js";
12
+ import "../chunk-POTCIQTA.js";
13
+ import "../chunk-AG7HKF2U.js";
14
+ import "../chunk-ID5QY7V6.js";
15
15
  import "../chunk-WPZKOVYF.js";
16
16
  import "../chunk-B7J5UUUV.js";
17
17
  import "../chunk-KYRDKK2D.js";
package/dist/authoring.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  buildPlannerTools,
12
12
  buildToolsFromSchemas,
13
13
  extractProviderError
14
- } from "./chunk-6A6AYPWO.js";
14
+ } from "./chunk-S3HHEJMZ.js";
15
15
  import {
16
16
  COMPOSE_MOTION_TOOLS,
17
17
  COMPOSE_MOTION_VERIFY_TOOLS,
@@ -20,14 +20,14 @@ import {
20
20
  COMPOSE_ROLE_TOOLS,
21
21
  COMPOSE_ROLE_TOOL_NAMES,
22
22
  dispatchComposeRoleTool
23
- } from "./chunk-HLW3P5ZP.js";
23
+ } from "./chunk-MJWRC7G7.js";
24
24
  import {
25
25
  AgentFixableCaptureError,
26
26
  getExcludedTools
27
27
  } from "./chunk-JOURGVOR.js";
28
28
  import {
29
29
  buildDirectorContext
30
- } from "./chunk-6VTNIYSR.js";
30
+ } from "./chunk-ZUJCWFS7.js";
31
31
  import {
32
32
  buildFastModel,
33
33
  buildModel,
@@ -55,9 +55,9 @@ import {
55
55
  import "./chunk-ILO4NEZ3.js";
56
56
  import "./chunk-7AZLFN26.js";
57
57
  import "./chunk-VG2ND6PX.js";
58
- import "./chunk-CMC6MLR3.js";
59
- import "./chunk-EGNTUGAM.js";
60
- import "./chunk-AYZPTH7L.js";
58
+ import "./chunk-POTCIQTA.js";
59
+ import "./chunk-AG7HKF2U.js";
60
+ import "./chunk-ID5QY7V6.js";
61
61
  import "./chunk-WPZKOVYF.js";
62
62
  import "./chunk-B7J5UUUV.js";
63
63
  import "./chunk-KYRDKK2D.js";
@@ -4,7 +4,7 @@ import {
4
4
  Format,
5
5
  GraphicRole,
6
6
  OpaqueId
7
- } from "./chunk-AYZPTH7L.js";
7
+ } from "./chunk-ID5QY7V6.js";
8
8
  import {
9
9
  brandKitCaptionFaceIssues
10
10
  } from "./chunk-AVTEPAWI.js";
@@ -2,7 +2,7 @@ import {
2
2
  querySchemaShape,
3
3
  serializeQuery,
4
4
  waitForJob
5
- } from "./chunk-ZBQQFAE7.js";
5
+ } from "./chunk-JNOM4FW3.js";
6
6
  import {
7
7
  CURATED_TOOLS
8
8
  } from "./chunk-5YO4LAB7.js";
@@ -23,7 +23,7 @@ import {
23
23
  text,
24
24
  textWithData,
25
25
  withMedia
26
- } from "./chunk-F2HXB6RG.js";
26
+ } from "./chunk-GA6NRDK3.js";
27
27
 
28
28
  // ../mcp/src/prompts.ts
29
29
  var skillListCache = null;
@@ -1282,6 +1282,10 @@ var briefCreateRequestSeededGraphicsItemSourceThreeParallaxMax = 0.3;
1282
1282
  var briefCreateRequestSeededGraphicsItemOpacityMin = 0;
1283
1283
  var briefCreateRequestSeededGraphicsItemOpacityMax = 1;
1284
1284
  var briefCreateRequestSeededGraphicsItemScaleExclusiveMin = 0;
1285
+ var briefCreateRequestSeededGraphicsItemPositionXMin = -1;
1286
+ var briefCreateRequestSeededGraphicsItemPositionXMax = 2;
1287
+ var briefCreateRequestSeededGraphicsItemPositionYMin = -1;
1288
+ var briefCreateRequestSeededGraphicsItemPositionYMax = 2;
1285
1289
  var briefCreateRequestSeededGraphicsItemRegionXMin = 0;
1286
1290
  var briefCreateRequestSeededGraphicsItemRegionXMax = 1;
1287
1291
  var briefCreateRequestSeededGraphicsItemRegionYMin = 0;
@@ -1429,9 +1433,9 @@ var BriefCreateRequest = zod19.strictObject({
1429
1433
  "scale": zod19.number().gt(briefCreateRequestSeededGraphicsItemScaleExclusiveMin).optional(),
1430
1434
  "rotation": zod19.number().optional(),
1431
1435
  "position": zod19.strictObject({
1432
- "x": zod19.number(),
1433
- "y": zod19.number()
1434
- }).optional(),
1436
+ "x": zod19.number().min(briefCreateRequestSeededGraphicsItemPositionXMin).max(briefCreateRequestSeededGraphicsItemPositionXMax),
1437
+ "y": zod19.number().min(briefCreateRequestSeededGraphicsItemPositionYMin).max(briefCreateRequestSeededGraphicsItemPositionYMax)
1438
+ }).optional().describe("Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing."),
1435
1439
  "region": zod19.strictObject({
1436
1440
  "x": zod19.number().min(briefCreateRequestSeededGraphicsItemRegionXMin).max(briefCreateRequestSeededGraphicsItemRegionXMax),
1437
1441
  "y": zod19.number().min(briefCreateRequestSeededGraphicsItemRegionYMin).max(briefCreateRequestSeededGraphicsItemRegionYMax),
@@ -1459,7 +1463,7 @@ var BriefCreateRequest = zod19.strictObject({
1459
1463
  zod19.number()
1460
1464
  ])
1461
1465
  })]).optional()
1462
- })).min(briefCreateRequestSeededGraphicsItemAnimateMinOne)).optional()
1466
+ })).min(briefCreateRequestSeededGraphicsItemAnimateMinOne)).optional().describe("Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.")
1463
1467
  })).max(briefCreateRequestSeededGraphicsMax).optional().describe("Client-authored graphic clips the Director must carry VERBATIM: seeded into the design loop's base composition as LOCKED clips (never re-authored, never discarded)."),
1464
1468
  "exclusions": zod19.array(BriefExclusion).max(briefCreateRequestExclusionsMax).optional(),
1465
1469
  "gates": BriefGates.optional(),
@@ -1536,6 +1540,10 @@ var briefResponseSeededGraphicsItemSourceThreeParallaxMax = 0.3;
1536
1540
  var briefResponseSeededGraphicsItemOpacityMin = 0;
1537
1541
  var briefResponseSeededGraphicsItemOpacityMax = 1;
1538
1542
  var briefResponseSeededGraphicsItemScaleExclusiveMin = 0;
1543
+ var briefResponseSeededGraphicsItemPositionXMin = -1;
1544
+ var briefResponseSeededGraphicsItemPositionXMax = 2;
1545
+ var briefResponseSeededGraphicsItemPositionYMin = -1;
1546
+ var briefResponseSeededGraphicsItemPositionYMax = 2;
1539
1547
  var briefResponseSeededGraphicsItemRegionXMin = 0;
1540
1548
  var briefResponseSeededGraphicsItemRegionXMax = 1;
1541
1549
  var briefResponseSeededGraphicsItemRegionYMin = 0;
@@ -1686,9 +1694,9 @@ var BriefResponse = zod21.strictObject({
1686
1694
  "scale": zod21.number().gt(briefResponseSeededGraphicsItemScaleExclusiveMin).optional(),
1687
1695
  "rotation": zod21.number().optional(),
1688
1696
  "position": zod21.strictObject({
1689
- "x": zod21.number(),
1690
- "y": zod21.number()
1691
- }).optional(),
1697
+ "x": zod21.number().min(briefResponseSeededGraphicsItemPositionXMin).max(briefResponseSeededGraphicsItemPositionXMax),
1698
+ "y": zod21.number().min(briefResponseSeededGraphicsItemPositionYMin).max(briefResponseSeededGraphicsItemPositionYMax)
1699
+ }).optional().describe("Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing."),
1692
1700
  "region": zod21.strictObject({
1693
1701
  "x": zod21.number().min(briefResponseSeededGraphicsItemRegionXMin).max(briefResponseSeededGraphicsItemRegionXMax),
1694
1702
  "y": zod21.number().min(briefResponseSeededGraphicsItemRegionYMin).max(briefResponseSeededGraphicsItemRegionYMax),
@@ -1716,7 +1724,7 @@ var BriefResponse = zod21.strictObject({
1716
1724
  zod21.number()
1717
1725
  ])
1718
1726
  })]).optional()
1719
- })).min(briefResponseSeededGraphicsItemAnimateMinOne)).optional()
1727
+ })).min(briefResponseSeededGraphicsItemAnimateMinOne)).optional().describe("Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.")
1720
1728
  })).max(briefResponseSeededGraphicsMax).optional().describe("Client-authored graphic clips the Director must carry VERBATIM: seeded into the design loop's base composition as LOCKED clips (never re-authored, never discarded)."),
1721
1729
  "exclusions": zod21.array(BriefExclusion).max(briefResponseExclusionsMax).optional(),
1722
1730
  "gates": BriefGates.optional(),
@@ -1786,6 +1794,10 @@ var briefPatchRequestSeededGraphicsItemSourceThreeParallaxMax = 0.3;
1786
1794
  var briefPatchRequestSeededGraphicsItemOpacityMin = 0;
1787
1795
  var briefPatchRequestSeededGraphicsItemOpacityMax = 1;
1788
1796
  var briefPatchRequestSeededGraphicsItemScaleExclusiveMin = 0;
1797
+ var briefPatchRequestSeededGraphicsItemPositionXMin = -1;
1798
+ var briefPatchRequestSeededGraphicsItemPositionXMax = 2;
1799
+ var briefPatchRequestSeededGraphicsItemPositionYMin = -1;
1800
+ var briefPatchRequestSeededGraphicsItemPositionYMax = 2;
1789
1801
  var briefPatchRequestSeededGraphicsItemRegionXMin = 0;
1790
1802
  var briefPatchRequestSeededGraphicsItemRegionXMax = 1;
1791
1803
  var briefPatchRequestSeededGraphicsItemRegionYMin = 0;
@@ -1932,9 +1944,9 @@ var BriefPatchRequest = zod23.strictObject({
1932
1944
  "scale": zod23.number().gt(briefPatchRequestSeededGraphicsItemScaleExclusiveMin).optional(),
1933
1945
  "rotation": zod23.number().optional(),
1934
1946
  "position": zod23.strictObject({
1935
- "x": zod23.number(),
1936
- "y": zod23.number()
1937
- }).optional(),
1947
+ "x": zod23.number().min(briefPatchRequestSeededGraphicsItemPositionXMin).max(briefPatchRequestSeededGraphicsItemPositionXMax),
1948
+ "y": zod23.number().min(briefPatchRequestSeededGraphicsItemPositionYMin).max(briefPatchRequestSeededGraphicsItemPositionYMax)
1949
+ }).optional().describe("Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing."),
1938
1950
  "region": zod23.strictObject({
1939
1951
  "x": zod23.number().min(briefPatchRequestSeededGraphicsItemRegionXMin).max(briefPatchRequestSeededGraphicsItemRegionXMax),
1940
1952
  "y": zod23.number().min(briefPatchRequestSeededGraphicsItemRegionYMin).max(briefPatchRequestSeededGraphicsItemRegionYMax),
@@ -1962,7 +1974,7 @@ var BriefPatchRequest = zod23.strictObject({
1962
1974
  zod23.number()
1963
1975
  ])
1964
1976
  })]).optional()
1965
- })).min(briefPatchRequestSeededGraphicsItemAnimateMinOne)).optional()
1977
+ })).min(briefPatchRequestSeededGraphicsItemAnimateMinOne)).optional().describe("Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.")
1966
1978
  })).max(briefPatchRequestSeededGraphicsMax).optional().describe("Client-authored graphic clips the Director must carry VERBATIM: seeded into the design loop's base composition as LOCKED clips (never re-authored, never discarded)."),
1967
1979
  "exclusions": zod23.array(BriefExclusion).max(briefPatchRequestExclusionsMax).optional(),
1968
1980
  "gates": BriefGates.optional(),
@@ -2513,6 +2525,10 @@ var compositionTracksItemContentsItemOneSourceThreeParallaxMax = 0.3;
2513
2525
  var compositionTracksItemContentsItemOneOpacityMin = 0;
2514
2526
  var compositionTracksItemContentsItemOneOpacityMax = 1;
2515
2527
  var compositionTracksItemContentsItemOneScaleExclusiveMin = 0;
2528
+ var compositionTracksItemContentsItemOnePositionXMin = -1;
2529
+ var compositionTracksItemContentsItemOnePositionXMax = 2;
2530
+ var compositionTracksItemContentsItemOnePositionYMin = -1;
2531
+ var compositionTracksItemContentsItemOnePositionYMax = 2;
2516
2532
  var compositionTracksItemContentsItemOneRegionXMin = 0;
2517
2533
  var compositionTracksItemContentsItemOneRegionXMax = 1;
2518
2534
  var compositionTracksItemContentsItemOneRegionYMin = 0;
@@ -2678,9 +2694,9 @@ var Composition = zod57.strictObject({
2678
2694
  "scale": zod57.number().gt(compositionTracksItemContentsItemOneScaleExclusiveMin).optional(),
2679
2695
  "rotation": zod57.number().optional(),
2680
2696
  "position": zod57.strictObject({
2681
- "x": zod57.number(),
2682
- "y": zod57.number()
2683
- }).optional(),
2697
+ "x": zod57.number().min(compositionTracksItemContentsItemOnePositionXMin).max(compositionTracksItemContentsItemOnePositionXMax),
2698
+ "y": zod57.number().min(compositionTracksItemContentsItemOnePositionYMin).max(compositionTracksItemContentsItemOnePositionYMax)
2699
+ }).optional().describe("Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing."),
2684
2700
  "region": zod57.strictObject({
2685
2701
  "x": zod57.number().min(compositionTracksItemContentsItemOneRegionXMin).max(compositionTracksItemContentsItemOneRegionXMax),
2686
2702
  "y": zod57.number().min(compositionTracksItemContentsItemOneRegionYMin).max(compositionTracksItemContentsItemOneRegionYMax),
@@ -2708,7 +2724,7 @@ var Composition = zod57.strictObject({
2708
2724
  zod57.number()
2709
2725
  ])
2710
2726
  })]).optional()
2711
- })).min(compositionTracksItemContentsItemOneAnimateMinOne)).optional()
2727
+ })).min(compositionTracksItemContentsItemOneAnimateMinOne)).optional().describe("Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.")
2712
2728
  }), zod57.strictObject({
2713
2729
  "id": zod57.string().min(1),
2714
2730
  "startTime": zod57.number().min(compositionTracksItemContentsItemTwoStartTimeMin).describe("Timeline start (seconds)."),
@@ -5881,6 +5897,10 @@ var compositionOpThreeClipSourceThreeParallaxMax = 0.3;
5881
5897
  var compositionOpThreeClipOpacityMin = 0;
5882
5898
  var compositionOpThreeClipOpacityMax = 1;
5883
5899
  var compositionOpThreeClipScaleExclusiveMin = 0;
5900
+ var compositionOpThreeClipPositionXMin = -1;
5901
+ var compositionOpThreeClipPositionXMax = 2;
5902
+ var compositionOpThreeClipPositionYMin = -1;
5903
+ var compositionOpThreeClipPositionYMax = 2;
5884
5904
  var compositionOpThreeClipRegionXMin = 0;
5885
5905
  var compositionOpThreeClipRegionXMax = 1;
5886
5906
  var compositionOpThreeClipRegionYMin = 0;
@@ -5929,6 +5949,10 @@ var compositionOpFivePatchSourceThreeParallaxMax = 0.3;
5929
5949
  var compositionOpFivePatchOpacityMin = 0;
5930
5950
  var compositionOpFivePatchOpacityMax = 1;
5931
5951
  var compositionOpFivePatchScaleExclusiveMin = 0;
5952
+ var compositionOpFivePatchPositionXMin = -1;
5953
+ var compositionOpFivePatchPositionXMax = 2;
5954
+ var compositionOpFivePatchPositionYMin = -1;
5955
+ var compositionOpFivePatchPositionYMax = 2;
5932
5956
  var compositionOpFivePatchRegionXMin = 0;
5933
5957
  var compositionOpFivePatchRegionXMax = 1;
5934
5958
  var compositionOpFivePatchRegionYMin = 0;
@@ -5977,6 +6001,10 @@ var compositionOpSevenClipsItemSourceThreeParallaxMax = 0.3;
5977
6001
  var compositionOpSevenClipsItemOpacityMin = 0;
5978
6002
  var compositionOpSevenClipsItemOpacityMax = 1;
5979
6003
  var compositionOpSevenClipsItemScaleExclusiveMin = 0;
6004
+ var compositionOpSevenClipsItemPositionXMin = -1;
6005
+ var compositionOpSevenClipsItemPositionXMax = 2;
6006
+ var compositionOpSevenClipsItemPositionYMin = -1;
6007
+ var compositionOpSevenClipsItemPositionYMax = 2;
5980
6008
  var compositionOpSevenClipsItemRegionXMin = 0;
5981
6009
  var compositionOpSevenClipsItemRegionXMax = 1;
5982
6010
  var compositionOpSevenClipsItemRegionYMin = 0;
@@ -6165,9 +6193,9 @@ var CompositionOp = zod66.union([zod66.strictObject({
6165
6193
  "scale": zod66.number().gt(compositionOpThreeClipScaleExclusiveMin).optional(),
6166
6194
  "rotation": zod66.number().optional(),
6167
6195
  "position": zod66.strictObject({
6168
- "x": zod66.number(),
6169
- "y": zod66.number()
6170
- }).optional(),
6196
+ "x": zod66.number().min(compositionOpThreeClipPositionXMin).max(compositionOpThreeClipPositionXMax),
6197
+ "y": zod66.number().min(compositionOpThreeClipPositionYMin).max(compositionOpThreeClipPositionYMax)
6198
+ }).optional().describe("Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing."),
6171
6199
  "region": zod66.strictObject({
6172
6200
  "x": zod66.number().min(compositionOpThreeClipRegionXMin).max(compositionOpThreeClipRegionXMax),
6173
6201
  "y": zod66.number().min(compositionOpThreeClipRegionYMin).max(compositionOpThreeClipRegionYMax),
@@ -6195,7 +6223,7 @@ var CompositionOp = zod66.union([zod66.strictObject({
6195
6223
  zod66.number()
6196
6224
  ])
6197
6225
  })]).optional()
6198
- })).min(compositionOpThreeClipAnimateMinOne)).optional()
6226
+ })).min(compositionOpThreeClipAnimateMinOne)).optional().describe("Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.")
6199
6227
  }),
6200
6228
  "trackId": zod66.string().optional(),
6201
6229
  "newTrack": zod66.boolean().optional(),
@@ -6314,9 +6342,9 @@ var CompositionOp = zod66.union([zod66.strictObject({
6314
6342
  "scale": zod66.number().gt(compositionOpFivePatchScaleExclusiveMin).optional(),
6315
6343
  "rotation": zod66.number().optional(),
6316
6344
  "position": zod66.strictObject({
6317
- "x": zod66.number(),
6318
- "y": zod66.number()
6319
- }).optional(),
6345
+ "x": zod66.number().min(compositionOpFivePatchPositionXMin).max(compositionOpFivePatchPositionXMax),
6346
+ "y": zod66.number().min(compositionOpFivePatchPositionYMin).max(compositionOpFivePatchPositionYMax)
6347
+ }).optional().describe("Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing."),
6320
6348
  "region": zod66.strictObject({
6321
6349
  "x": zod66.number().min(compositionOpFivePatchRegionXMin).max(compositionOpFivePatchRegionXMax),
6322
6350
  "y": zod66.number().min(compositionOpFivePatchRegionYMin).max(compositionOpFivePatchRegionYMax),
@@ -6344,7 +6372,7 @@ var CompositionOp = zod66.union([zod66.strictObject({
6344
6372
  zod66.number()
6345
6373
  ])
6346
6374
  })]).optional()
6347
- })).min(compositionOpFivePatchAnimateMinOne)).optional()
6375
+ })).min(compositionOpFivePatchAnimateMinOne)).optional().describe("Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.")
6348
6376
  })
6349
6377
  }).describe("Patch an existing clip by id (cross-family). The patch is a partial TimelineClip. NOTE: `source` is REPLACED wholesale \u2014 the patch merges at the top level only, so a partial `source` WIPES the source fields you omit. Patch the whole source object when changing it. (To change reframe/excluded ranges, prefer setCropIntents / addExcludedRange, not a source patch.)"), zod66.strictObject({
6350
6378
  "type": zod66.literal("removeClipsByMediaId"),
@@ -6459,9 +6487,9 @@ var CompositionOp = zod66.union([zod66.strictObject({
6459
6487
  "scale": zod66.number().gt(compositionOpSevenClipsItemScaleExclusiveMin).optional(),
6460
6488
  "rotation": zod66.number().optional(),
6461
6489
  "position": zod66.strictObject({
6462
- "x": zod66.number(),
6463
- "y": zod66.number()
6464
- }).optional(),
6490
+ "x": zod66.number().min(compositionOpSevenClipsItemPositionXMin).max(compositionOpSevenClipsItemPositionXMax),
6491
+ "y": zod66.number().min(compositionOpSevenClipsItemPositionYMin).max(compositionOpSevenClipsItemPositionYMax)
6492
+ }).optional().describe("Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing."),
6465
6493
  "region": zod66.strictObject({
6466
6494
  "x": zod66.number().min(compositionOpSevenClipsItemRegionXMin).max(compositionOpSevenClipsItemRegionXMax),
6467
6495
  "y": zod66.number().min(compositionOpSevenClipsItemRegionYMin).max(compositionOpSevenClipsItemRegionYMax),
@@ -6489,7 +6517,7 @@ var CompositionOp = zod66.union([zod66.strictObject({
6489
6517
  zod66.number()
6490
6518
  ])
6491
6519
  })]).optional()
6492
- })).min(compositionOpSevenClipsItemAnimateMinOne)).optional()
6520
+ })).min(compositionOpSevenClipsItemAnimateMinOne)).optional().describe("Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.")
6493
6521
  }))
6494
6522
  }).describe("Replace the overlay channel wholesale with the given clips (bulk set, not a merge)."), zod66.strictObject({
6495
6523
  "type": zod66.literal("addMarker"),
@@ -106,10 +106,13 @@ var Transition = z2.object({
106
106
  type: z2.string().min(1),
107
107
  duration: z2.number().positive()
108
108
  });
109
- var Position = z2.object({
110
- x: z2.number(),
111
- y: z2.number()
112
- });
109
+ var POSITION_MIN = -1;
110
+ var POSITION_MAX = 2;
111
+ var positionUnit = (axis) => `position.${axis} is a FRACTION of the frame (0.5 = centre, 0 to 1 inside it, ${POSITION_MIN} to ${POSITION_MAX} with entrance/exit overshoot) \u2014 px values are not accepted`;
112
+ var PositionAxis = (axis) => z2.number().min(POSITION_MIN, positionUnit(axis)).max(POSITION_MAX, positionUnit(axis));
113
+ var Position = z2.object({ x: PositionAxis("x"), y: PositionAxis("y") }).describe(
114
+ "Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing."
115
+ );
113
116
  var Region = z2.object({
114
117
  x: z2.number().min(0).max(1),
115
118
  y: z2.number().min(0).max(1),
@@ -139,6 +142,14 @@ var ANIMATABLE_PARAMS = [
139
142
  "position.y",
140
143
  "volume"
141
144
  ];
145
+ var ANIMATABLE_VALUE = {
146
+ opacity: z2.number().min(0, "opacity is 0 to 1").max(1, "opacity is 0 to 1"),
147
+ scale: z2.number().positive("scale is a multiplier and must be > 0"),
148
+ rotation: z2.number(),
149
+ "position.x": PositionAxis("x"),
150
+ "position.y": PositionAxis("y"),
151
+ volume: z2.number().min(0, "volume is 0 to 4").max(4, "volume is 0 to 4")
152
+ };
142
153
  var TimelineClip = z2.object({
143
154
  id: z2.string().min(1),
144
155
  startTime: z2.number().nonnegative(),
@@ -155,16 +166,30 @@ var TimelineClip = z2.object({
155
166
  transitionIn: Transition.optional(),
156
167
  linkGroupId: z2.string().min(1).optional(),
157
168
  animate: z2.record(z2.string(), KeyframeChannel).superRefine((channels, ctx) => {
158
- for (const key of Object.keys(channels)) {
169
+ for (const [key, channel] of Object.entries(channels)) {
159
170
  if (!ANIMATABLE_PARAMS.includes(key)) {
160
171
  ctx.addIssue({
161
172
  code: z2.ZodIssueCode.custom,
162
173
  path: [key],
163
174
  message: `"${key}" is not an animatable param (${ANIMATABLE_PARAMS.join(", ")})`
164
175
  });
176
+ continue;
165
177
  }
178
+ const bound = ANIMATABLE_VALUE[key];
179
+ channel.forEach((kf, i) => {
180
+ const res = bound.safeParse(kf.value);
181
+ if (!res.success) {
182
+ ctx.addIssue({
183
+ code: z2.ZodIssueCode.custom,
184
+ path: [key, i, "value"],
185
+ message: res.error.issues[0]?.message ?? `invalid ${key} keyframe value`
186
+ });
187
+ }
188
+ });
166
189
  }
167
- }).optional()
190
+ }).describe(
191
+ "Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4."
192
+ ).optional()
168
193
  }).strict();
169
194
  var Gap = z2.object({
170
195
  id: z2.string().min(1),
@@ -465,6 +490,8 @@ export {
465
490
  CompositionClipSource,
466
491
  ClipSource,
467
492
  Transition,
493
+ POSITION_MIN,
494
+ POSITION_MAX,
468
495
  Region,
469
496
  ClipFit,
470
497
  PerClipEffect,
@@ -472,6 +499,7 @@ export {
472
499
  Keyframe,
473
500
  KeyframeChannel,
474
501
  ANIMATABLE_PARAMS,
502
+ ANIMATABLE_VALUE,
475
503
  TimelineClip,
476
504
  Gap,
477
505
  TrackContent,
@@ -5,7 +5,7 @@ import {
5
5
  isOk,
6
6
  opById,
7
7
  safeParse
8
- } from "./chunk-F2HXB6RG.js";
8
+ } from "./chunk-GA6NRDK3.js";
9
9
 
10
10
  // ../mcp/src/wait.ts
11
11
  var defaultSleep = (ms) => new Promise((r) => setTimeout(r, ms));
@@ -7,13 +7,13 @@ import {
7
7
  } from "./chunk-7AZLFN26.js";
8
8
  import {
9
9
  selectAllOverlays
10
- } from "./chunk-CMC6MLR3.js";
10
+ } from "./chunk-POTCIQTA.js";
11
11
  import {
12
12
  ComposePlan
13
- } from "./chunk-EGNTUGAM.js";
13
+ } from "./chunk-AG7HKF2U.js";
14
14
  import {
15
15
  OverlayClipSource
16
- } from "./chunk-AYZPTH7L.js";
16
+ } from "./chunk-ID5QY7V6.js";
17
17
 
18
18
  // ../authoring/src/tools/toolSets.ts
19
19
  var COMPOSE_PLANNER_TOOLS = [
@@ -63,7 +63,7 @@ var COMPOSE_ROLE_TOOLS = Object.freeze({
63
63
  schema: z.object({}),
64
64
  metadata: { label: "Get Context" },
65
65
  handler: async (_args, capabilities) => {
66
- const { buildDirectorContext } = await import("./context-43UC63RY.js");
66
+ const { buildDirectorContext } = await import("./context-KNFL62QR.js");
67
67
  return buildDirectorContext(capabilities);
68
68
  }
69
69
  },
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Composition
3
- } from "./chunk-AYZPTH7L.js";
3
+ } from "./chunk-ID5QY7V6.js";
4
4
  import {
5
5
  expandToLinkGroup
6
6
  } from "./chunk-KYRDKK2D.js";
@@ -2,7 +2,7 @@ import {
2
2
  COMPOSE_PLANNER_TOOLS,
3
3
  COMPOSE_ROLE_TOOLS,
4
4
  dispatchComposeRoleTool
5
- } from "./chunk-HLW3P5ZP.js";
5
+ } from "./chunk-MJWRC7G7.js";
6
6
 
7
7
  // ../authoring/src/agent/buildTools.ts
8
8
  import { tool } from "ai";
@@ -2,7 +2,7 @@ import {
2
2
  selectAllClips,
3
3
  selectAllOverlays,
4
4
  selectSceneMarkers
5
- } from "./chunk-CMC6MLR3.js";
5
+ } from "./chunk-POTCIQTA.js";
6
6
 
7
7
  // ../authoring/src/context/transcript.ts
8
8
  var MAX_TRANSCRIPT_CHARS = 6e4;
package/dist/compose.js CHANGED
@@ -5,39 +5,39 @@ import {
5
5
  } from "./chunk-QDBVYZSF.js";
6
6
  import "./chunk-JQMPHKLU.js";
7
7
  import "./chunk-ZZRBKGDA.js";
8
+ import {
9
+ catalog as catalog4
10
+ } from "./chunk-JRJQECCF.js";
11
+ import {
12
+ catalog as catalog7
13
+ } from "./chunk-TE3PNQG6.js";
14
+ import {
15
+ catalog
16
+ } from "./chunk-RBWS5XHE.js";
17
+ import "./chunk-DLF4WVSE.js";
18
+ import "./chunk-U4V4FZGE.js";
8
19
  import {
9
20
  catalog as catalog3
10
21
  } from "./chunk-FVDFPJHT.js";
22
+ import "./chunk-QGAWDLYX.js";
11
23
  import {
12
24
  catalog as catalog6
13
25
  } from "./chunk-VLJOIUHL.js";
26
+ import "./chunk-S5H6GH6M.js";
27
+ import "./chunk-QAGGJHAF.js";
28
+ import {
29
+ catalog as catalog5
30
+ } from "./chunk-RAXHCRVV.js";
14
31
  import {
15
32
  catalog as catalog2
16
33
  } from "./chunk-WAUVKF2F.js";
34
+ import "./chunk-MFHXCHRI.js";
17
35
  import {
18
36
  catalog as catalog8
19
37
  } from "./chunk-RL5SO653.js";
20
- import {
21
- catalog as catalog4
22
- } from "./chunk-JRJQECCF.js";
23
- import {
24
- catalog as catalog7
25
- } from "./chunk-TE3PNQG6.js";
26
- import "./chunk-QGAWDLYX.js";
27
- import "./chunk-S5H6GH6M.js";
28
- import "./chunk-QAGGJHAF.js";
29
- import "./chunk-MFHXCHRI.js";
30
- import {
31
- catalog
32
- } from "./chunk-RBWS5XHE.js";
33
- import "./chunk-DLF4WVSE.js";
34
- import "./chunk-U4V4FZGE.js";
35
38
  import "./chunk-LT4PWSR2.js";
36
39
  import "./chunk-FWSJLHSV.js";
37
40
  import "./chunk-ZFEXATWN.js";
38
- import {
39
- catalog as catalog5
40
- } from "./chunk-RAXHCRVV.js";
41
41
  import "./chunk-XHGZ2E77.js";
42
42
  import "./chunk-W2245F6G.js";
43
43
  import "./chunk-JBWSK2YD.js";
@@ -26,7 +26,7 @@ import {
26
26
  PlanRect,
27
27
  StyleRole,
28
28
  ZPlane
29
- } from "../chunk-AYZPTH7L.js";
29
+ } from "../chunk-ID5QY7V6.js";
30
30
  import "../chunk-WPZKOVYF.js";
31
31
  import "../chunk-B7J5UUUV.js";
32
32
  import "../chunk-WREYUH2E.js";
@@ -20,9 +20,9 @@ import {
20
20
  selectMediaClipAt,
21
21
  selectSceneMarkers,
22
22
  selectTracksByKind
23
- } from "../chunk-CMC6MLR3.js";
24
- import "../chunk-EGNTUGAM.js";
25
- import "../chunk-AYZPTH7L.js";
23
+ } from "../chunk-POTCIQTA.js";
24
+ import "../chunk-AG7HKF2U.js";
25
+ import "../chunk-ID5QY7V6.js";
26
26
  import "../chunk-WPZKOVYF.js";
27
27
  import "../chunk-B7J5UUUV.js";
28
28
  import "../chunk-KYRDKK2D.js";
@@ -48,9 +48,10 @@ import {
48
48
  WebhookDeliveryStatus,
49
49
  WebhookDestination,
50
50
  YoutubeDestination
51
- } from "../chunk-EGNTUGAM.js";
51
+ } from "../chunk-AG7HKF2U.js";
52
52
  import {
53
53
  ANIMATABLE_PARAMS,
54
+ ANIMATABLE_VALUE,
54
55
  AlphaLayerClipSource,
55
56
  CaptionSegment,
56
57
  CaptionStyle,
@@ -74,6 +75,8 @@ import {
74
75
  MediaClipSource,
75
76
  OpaqueId,
76
77
  OverlayClipSource,
78
+ POSITION_MAX,
79
+ POSITION_MIN,
77
80
  PerClipEffect,
78
81
  Region,
79
82
  TimelineClip,
@@ -82,7 +85,7 @@ import {
82
85
  Transition,
83
86
  captionWords,
84
87
  captionsAreBehindSubject
85
- } from "../chunk-AYZPTH7L.js";
88
+ } from "../chunk-ID5QY7V6.js";
86
89
  import {
87
90
  AUTHORED_GRAPHIC_KINDS
88
91
  } from "../chunk-WPZKOVYF.js";
@@ -97,6 +100,7 @@ import "../chunk-AVTEPAWI.js";
97
100
  import "../chunk-2ESYSVXG.js";
98
101
  export {
99
102
  ANIMATABLE_PARAMS,
103
+ ANIMATABLE_VALUE,
100
104
  AUTHORED_GRAPHIC_KINDS,
101
105
  AlphaLayerClipSource,
102
106
  AudioPaletteRef,
@@ -136,6 +140,8 @@ export {
136
140
  MuxDestination,
137
141
  OpaqueId,
138
142
  OverlayClipSource,
143
+ POSITION_MAX,
144
+ POSITION_MIN,
139
145
  PerClipEffect,
140
146
  PlanAssetRequest,
141
147
  PlanCut,
@@ -11,8 +11,8 @@ import {
11
11
  findClipById,
12
12
  findMarkerById,
13
13
  findTrackContainingClipId
14
- } from "./chunk-CMC6MLR3.js";
15
- import "./chunk-EGNTUGAM.js";
14
+ } from "./chunk-POTCIQTA.js";
15
+ import "./chunk-AG7HKF2U.js";
16
16
  import {
17
17
  CaptionSegment,
18
18
  CaptionStyle,
@@ -23,7 +23,7 @@ import {
23
23
  TimelineClip,
24
24
  Track,
25
25
  Transition
26
- } from "./chunk-AYZPTH7L.js";
26
+ } from "./chunk-ID5QY7V6.js";
27
27
  import "./chunk-WPZKOVYF.js";
28
28
  import {
29
29
  ReframeSegment
@@ -149,9 +149,10 @@ import {
149
149
  WebhookDeliveryStatus,
150
150
  WebhookDestination,
151
151
  YoutubeDestination
152
- } from "./chunk-EGNTUGAM.js";
152
+ } from "./chunk-AG7HKF2U.js";
153
153
  import {
154
154
  ANIMATABLE_PARAMS,
155
+ ANIMATABLE_VALUE,
155
156
  AlphaLayerClipSource,
156
157
  CaptionSegment,
157
158
  CaptionStyle,
@@ -175,6 +176,8 @@ import {
175
176
  MediaClipSource,
176
177
  OpaqueId,
177
178
  OverlayClipSource,
179
+ POSITION_MAX,
180
+ POSITION_MIN,
178
181
  PerClipEffect,
179
182
  Region,
180
183
  TimelineClip,
@@ -183,7 +186,7 @@ import {
183
186
  Transition,
184
187
  captionWords,
185
188
  captionsAreBehindSubject
186
- } from "./chunk-AYZPTH7L.js";
189
+ } from "./chunk-ID5QY7V6.js";
187
190
  import {
188
191
  AUTHORED_GRAPHIC_KINDS
189
192
  } from "./chunk-WPZKOVYF.js";
@@ -286,6 +289,7 @@ function deriveReframedComposition(source, targetFormat, perceptionByClipId) {
286
289
  }
287
290
  export {
288
291
  ANIMATABLE_PARAMS,
292
+ ANIMATABLE_VALUE,
289
293
  AUTHORED_GRAPHIC_KINDS,
290
294
  AlphaLayerClipSource,
291
295
  AudioPaletteRef,
@@ -344,6 +348,8 @@ export {
344
348
  MuxDestination,
345
349
  OpaqueId,
346
350
  OverlayClipSource,
351
+ POSITION_MAX,
352
+ POSITION_MIN,
347
353
  PerClipEffect,
348
354
  PlanAssetRequest,
349
355
  PlanCut,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  buildDirectorContext
3
- } from "./chunk-6VTNIYSR.js";
4
- import "./chunk-CMC6MLR3.js";
5
- import "./chunk-EGNTUGAM.js";
6
- import "./chunk-AYZPTH7L.js";
3
+ } from "./chunk-ZUJCWFS7.js";
4
+ import "./chunk-POTCIQTA.js";
5
+ import "./chunk-AG7HKF2U.js";
6
+ import "./chunk-ID5QY7V6.js";
7
7
  import "./chunk-WPZKOVYF.js";
8
8
  import "./chunk-B7J5UUUV.js";
9
9
  import "./chunk-KYRDKK2D.js";
@@ -2,7 +2,7 @@ import {
2
2
  querySchemaShape,
3
3
  serializeQuery,
4
4
  waitForJob
5
- } from "../chunk-ZBQQFAE7.js";
5
+ } from "../chunk-JNOM4FW3.js";
6
6
  import {
7
7
  CURATED_TOOLS
8
8
  } from "../chunk-5YO4LAB7.js";
@@ -16,7 +16,7 @@ import {
16
16
  opById,
17
17
  safeParse,
18
18
  sniffImageMediaType
19
- } from "../chunk-F2HXB6RG.js";
19
+ } from "../chunk-GA6NRDK3.js";
20
20
  import "../chunk-2ESYSVXG.js";
21
21
 
22
22
  // ../mcp/src/adapter.ts
package/dist/mcp/core.js CHANGED
@@ -18,7 +18,7 @@ import {
18
18
  text,
19
19
  textWithData,
20
20
  withMedia
21
- } from "../chunk-F2HXB6RG.js";
21
+ } from "../chunk-GA6NRDK3.js";
22
22
  import "../chunk-2ESYSVXG.js";
23
23
  export {
24
24
  __resetPreviewCache,
@@ -7,10 +7,10 @@ import {
7
7
  registerRawTools,
8
8
  registerSkillPrompts,
9
9
  titleCase
10
- } from "../chunk-LL5GI3IS.js";
11
- import "../chunk-ZBQQFAE7.js";
10
+ } from "../chunk-BLDL2EKL.js";
11
+ import "../chunk-JNOM4FW3.js";
12
12
  import "../chunk-5YO4LAB7.js";
13
- import "../chunk-F2HXB6RG.js";
13
+ import "../chunk-GA6NRDK3.js";
14
14
  import "../chunk-2ESYSVXG.js";
15
15
  export {
16
16
  RAW_EXCLUDED_OPERATION_IDS,
package/dist/mcp.js CHANGED
@@ -7,10 +7,10 @@ import {
7
7
  buildServer,
8
8
  registerCuratedTools,
9
9
  registerRawTools
10
- } from "./chunk-LL5GI3IS.js";
11
- import "./chunk-ZBQQFAE7.js";
10
+ } from "./chunk-BLDL2EKL.js";
11
+ import "./chunk-JNOM4FW3.js";
12
12
  import "./chunk-5YO4LAB7.js";
13
- import "./chunk-F2HXB6RG.js";
13
+ import "./chunk-GA6NRDK3.js";
14
14
  import "./chunk-2ESYSVXG.js";
15
15
  export {
16
16
  API_URLS,
@@ -1,36 +1,36 @@
1
+ import {
2
+ catalog as catalog4
3
+ } from "./chunk-JRJQECCF.js";
4
+ import {
5
+ catalog as catalog7
6
+ } from "./chunk-TE3PNQG6.js";
7
+ import {
8
+ catalog
9
+ } from "./chunk-RBWS5XHE.js";
10
+ import "./chunk-DLF4WVSE.js";
11
+ import "./chunk-U4V4FZGE.js";
1
12
  import {
2
13
  catalog as catalog3
3
14
  } from "./chunk-FVDFPJHT.js";
15
+ import "./chunk-QGAWDLYX.js";
4
16
  import {
5
17
  catalog as catalog6
6
18
  } from "./chunk-VLJOIUHL.js";
19
+ import "./chunk-S5H6GH6M.js";
20
+ import "./chunk-QAGGJHAF.js";
21
+ import {
22
+ catalog as catalog5
23
+ } from "./chunk-RAXHCRVV.js";
7
24
  import {
8
25
  catalog as catalog2
9
26
  } from "./chunk-WAUVKF2F.js";
27
+ import "./chunk-MFHXCHRI.js";
10
28
  import {
11
29
  catalog as catalog8
12
30
  } from "./chunk-RL5SO653.js";
13
- import {
14
- catalog as catalog4
15
- } from "./chunk-JRJQECCF.js";
16
- import {
17
- catalog as catalog7
18
- } from "./chunk-TE3PNQG6.js";
19
- import "./chunk-QGAWDLYX.js";
20
- import "./chunk-S5H6GH6M.js";
21
- import "./chunk-QAGGJHAF.js";
22
- import "./chunk-MFHXCHRI.js";
23
- import {
24
- catalog
25
- } from "./chunk-RBWS5XHE.js";
26
- import "./chunk-DLF4WVSE.js";
27
- import "./chunk-U4V4FZGE.js";
28
31
  import "./chunk-LT4PWSR2.js";
29
32
  import "./chunk-FWSJLHSV.js";
30
33
  import "./chunk-ZFEXATWN.js";
31
- import {
32
- catalog as catalog5
33
- } from "./chunk-RAXHCRVV.js";
34
34
  import "./chunk-XHGZ2E77.js";
35
35
  import "./chunk-W2245F6G.js";
36
36
  import "./chunk-JBWSK2YD.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cueframe/kernel",
3
- "version": "0.2.37",
3
+ "version": "0.2.38",
4
4
  "type": "module",
5
5
  "description": "Publish-only aggregate of CueFrame's isomorphic kernel packages — composition, primitives, authoring, MCP, and friends shipped as one npm artifact. Members remain separate workspace packages; this only changes what ships.",
6
6
  "files": [
@@ -16,26 +16,26 @@
16
16
  "devDependencies": {
17
17
  "tsup": "^8.3.5",
18
18
  "typescript": "^5.9.3",
19
- "@cueframe/account-model": "0.1.0",
20
19
  "@cueframe/authoring": "0.1.0",
21
- "@cueframe/compose": "0.1.0",
22
- "@cueframe/composition-ops": "0.1.0",
23
20
  "@cueframe/animate": "0.1.0",
24
21
  "@cueframe/brand-derivation": "0.1.0",
25
- "@cueframe/composition": "0.1.0",
26
22
  "@cueframe/cloud-import": "0.1.0",
27
- "@cueframe/core": "0.1.0",
23
+ "@cueframe/account-model": "0.1.0",
24
+ "@cueframe/compose": "0.1.0",
25
+ "@cueframe/composition": "0.1.0",
28
26
  "@cueframe/component-runtime": "0.1.0",
27
+ "@cueframe/core": "0.1.0",
28
+ "@cueframe/errors": "0.1.0",
29
+ "@cueframe/composition-ops": "0.1.0",
29
30
  "@cueframe/foundation": "0.1.0",
30
- "@cueframe/director": "0.1.0",
31
- "@cueframe/mcp": "0.1.0",
32
31
  "@cueframe/nle-export": "0.1.0",
33
32
  "@cueframe/perception": "0.1.0",
33
+ "@cueframe/render-harness": "0.1.0",
34
+ "@cueframe/mcp": "0.1.0",
34
35
  "@cueframe/plane": "0.1.0",
35
- "@cueframe/primitives": "0.1.0",
36
+ "@cueframe/director": "0.1.0",
36
37
  "@cueframe/media-model": "0.1.0",
37
- "@cueframe/render-harness": "0.1.0",
38
- "@cueframe/errors": "0.1.0"
38
+ "@cueframe/primitives": "0.1.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "gsap": "3.13.0",