@cueframe/kernel 0.2.11 → 0.2.13

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 (44) hide show
  1. package/dist/_members/component-runtime/browserFirewall.d.ts +3 -3
  2. package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -1
  3. package/dist/_members/component-runtime/componentBundleServer.d.ts +9 -0
  4. package/dist/_members/component-runtime/componentBundleServer.d.ts.map +1 -0
  5. package/dist/_members/component-runtime/render.d.ts +1 -1
  6. package/dist/_members/component-runtime/render.d.ts.map +1 -1
  7. package/dist/_members/composition/projection/cropProjection.d.ts +1 -0
  8. package/dist/_members/composition/validators/composition.d.ts +6 -6
  9. package/dist/_members/composition/validators/render.d.ts +2 -2
  10. package/dist/_members/composition-ops/index.d.ts +3 -3
  11. package/dist/authoring/build-tools.js +6 -6
  12. package/dist/authoring/context.js +5 -5
  13. package/dist/authoring/tools.js +5 -5
  14. package/dist/authoring.js +8 -8
  15. package/dist/{chunk-MXMLOPOK.js → chunk-2KO5EQQS.js} +1 -1
  16. package/dist/{chunk-W6B7BMLO.js → chunk-5CNS7IXO.js} +1 -1
  17. package/dist/{chunk-2B5VJZHL.js → chunk-B7J5UUUV.js} +6 -4
  18. package/dist/{chunk-AW6HX577.js → chunk-EWABZ72N.js} +1 -1
  19. package/dist/{chunk-I5RX2QZT.js → chunk-IGP2CA7C.js} +1 -1
  20. package/dist/{chunk-SC55VDLC.js → chunk-NNMXLNOI.js} +3 -1
  21. package/dist/{chunk-XF2QMKRG.js → chunk-QZR4JCFY.js} +1 -1
  22. package/dist/{chunk-MTYEB6C4.js → chunk-RSEN7JYE.js} +34 -36
  23. package/dist/{chunk-UKGNHZS4.js → chunk-S3PZFAF5.js} +1 -1
  24. package/dist/{chunk-TCHPRGC5.js → chunk-TAXZ4KBF.js} +1 -1
  25. package/dist/{chunk-TBNTAQJA.js → chunk-X6U6XVU4.js} +4 -4
  26. package/dist/{chunk-JX53CVJV.js → chunk-YH4MCHMS.js} +6 -4
  27. package/dist/component-runtime/render.js +1 -1
  28. package/dist/component-runtime.js +2 -2
  29. package/dist/composition/graphics-plan.js +2 -2
  30. package/dist/composition/ops.js +4 -4
  31. package/dist/composition/projection.js +1 -1
  32. package/dist/composition/reframe.js +1 -1
  33. package/dist/composition/validators.js +3 -3
  34. package/dist/composition-ops.js +4 -4
  35. package/dist/composition.js +4 -4
  36. package/dist/{context-IUPQ54V4.js → context-VHBMKP65.js} +5 -5
  37. package/dist/mcp/adapter.js +1 -1
  38. package/dist/mcp/curation.js +1 -1
  39. package/dist/mcp/server.js +2 -2
  40. package/dist/mcp.js +2 -2
  41. package/dist/render-harness.js +2 -2
  42. package/package.json +11 -11
  43. package/dist/_members/component-runtime/livePreviewProxy.d.ts +0 -7
  44. package/dist/_members/component-runtime/livePreviewProxy.d.ts.map +0 -1
@@ -1,8 +1,8 @@
1
1
  export interface ComponentFirewallDecision {
2
2
  allow: boolean;
3
- documentOrigin: string | null;
3
+ documentOrigin: string;
4
4
  }
5
- export declare function decideComponentRequest(url: string, resourceType: string, documentOrigin: string | null, allowedAssetOrigins: ReadonlySet<string>): ComponentFirewallDecision;
5
+ export declare function decideComponentRequest(url: string, _resourceType: string, documentOrigin: string, allowedAssetOrigins: ReadonlySet<string>): ComponentFirewallDecision;
6
6
  export declare const COMPONENT_PAGE_LOCKDOWN = "\nObject.defineProperties(globalThis, {\n open: { value: undefined },\n Worker: { value: undefined },\n SharedWorker: { value: undefined },\n RTCPeerConnection: { value: undefined },\n webkitRTCPeerConnection: { value: undefined },\n WebSocket: { value: undefined },\n EventSource: { value: undefined }\n});\n";
7
7
  type DevtoolsSession = {
8
8
  on(event: string, listener: (payload: any) => void): void;
@@ -14,7 +14,7 @@ type FirewallBrowser = {
14
14
  silent: boolean;
15
15
  }): Promise<void>;
16
16
  };
17
- export declare function installComponentRequestFirewall(browser: FirewallBrowser, allowedAssetOrigins: ReadonlySet<string>, onDiagnostic?: (entry: {
17
+ export declare function installComponentRequestFirewall(browser: FirewallBrowser, documentOrigin: string, allowedAssetOrigins: ReadonlySet<string>, onDiagnostic?: (entry: {
18
18
  type: 'request-failed' | 'page-error';
19
19
  url?: string;
20
20
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"browserFirewall.d.ts","sourceRoot":"","sources":["../src/browserFirewall.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAMD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,yBAAyB,CAoB3B;AAcD,eAAO,MAAM,uBAAuB,iUAAgB,CAAC;AAErD,KAAK,eAAe,GAAG;IACrB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,eAAe,EACxB,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,EACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,GACvG,OAAO,CAAC;IACT,cAAc,IAAI,SAAS,MAAM,EAAE,CAAC;IACpC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC,CA0ED"}
1
+ {"version":3,"file":"browserFirewall.d.ts","sourceRoot":"","sources":["../src/browserFirewall.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,yBAAyB,CAiB3B;AAcD,eAAO,MAAM,uBAAuB,iUAAgB,CAAC;AAErD,KAAK,eAAe,GAAG;IACrB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,EACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,GACvG,OAAO,CAAC;IACT,cAAc,IAAI,SAAS,MAAM,EAAE,CAAC;IACpC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC,CA0ED"}
@@ -0,0 +1,9 @@
1
+ export interface ComponentBundleServer {
2
+ renderUrl: string;
3
+ liveUrl: string;
4
+ origin: string;
5
+ close(): Promise<void>;
6
+ }
7
+ /** Own one loopback bundle origin for selection, capture and the live player. */
8
+ export declare function startComponentBundleServer(upstream: string, assetOrigins: ReadonlySet<string>): Promise<ComponentBundleServer>;
9
+ //# sourceMappingURL=componentBundleServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"componentBundleServer.d.ts","sourceRoot":"","sources":["../src/componentBundleServer.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAmBD,iFAAiF;AACjF,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC,qBAAqB,CAAC,CAkFhC"}
@@ -72,7 +72,7 @@ export interface CreateComponentStillSessionOpts extends Omit<RenderComponentSti
72
72
  /** Optional host diagnostic sink for browser console output during startup/render. */
73
73
  onBrowserLog?: (entry: unknown) => void;
74
74
  /** Reports bounded startup phases without exposing component source or props. */
75
- onStartupPhase?: (phase: 'prepare' | 'prepared' | 'open-browser' | 'browser-open' | 'firewall' | 'select-composition' | 'composition-ready' | 'start-proxy' | 'ready') => void;
75
+ onStartupPhase?: (phase: 'prepare' | 'prepared' | 'open-browser' | 'browser-open' | 'firewall' | 'select-composition' | 'composition-ready' | 'start-bundle-server' | 'ready') => void;
76
76
  }
77
77
  export declare function importFromRenderEntry<T>(renderEntryRoot: string, spec: string): Promise<T>;
78
78
  /** What the shared verifier hands back: the browser this process will actually run. */
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ export declare function computeCropTransform(input: {
29
29
  verticalBias: number;
30
30
  lateralBias: number;
31
31
  reframe?: ReframeAdjustment;
32
+ fit?: 'cover' | 'contain';
32
33
  }): {
33
34
  tx: number;
34
35
  ty: number;
@@ -310,8 +310,8 @@ export declare const Region: z.ZodObject<{
310
310
  }, z.core.$strip>;
311
311
  export type Region = z.infer<typeof Region>;
312
312
  export declare const ClipFit: z.ZodEnum<{
313
- cover: "cover";
314
313
  contain: "contain";
314
+ cover: "cover";
315
315
  }>;
316
316
  export type ClipFit = z.infer<typeof ClipFit>;
317
317
  export declare const PerClipEffect: z.ZodObject<{
@@ -517,8 +517,8 @@ export declare const TimelineClip: z.ZodObject<{
517
517
  h: z.ZodNumber;
518
518
  }, z.core.$strip>>;
519
519
  fit: z.ZodOptional<z.ZodEnum<{
520
- cover: "cover";
521
520
  contain: "contain";
521
+ cover: "cover";
522
522
  }>>;
523
523
  effects: z.ZodOptional<z.ZodArray<z.ZodObject<{
524
524
  primitiveId: z.ZodString;
@@ -674,7 +674,7 @@ export declare const TrackContent: z.ZodPipe<z.ZodUnknown, z.ZodTransform<{
674
674
  w: number;
675
675
  h: number;
676
676
  } | undefined;
677
- fit?: "cover" | "contain" | undefined;
677
+ fit?: "contain" | "cover" | undefined;
678
678
  effects?: {
679
679
  primitiveId: string;
680
680
  params?: Record<string, unknown> | undefined;
@@ -833,7 +833,7 @@ export declare const Track: z.ZodObject<{
833
833
  w: number;
834
834
  h: number;
835
835
  } | undefined;
836
- fit?: "cover" | "contain" | undefined;
836
+ fit?: "contain" | "cover" | undefined;
837
837
  effects?: {
838
838
  primitiveId: string;
839
839
  params?: Record<string, unknown> | undefined;
@@ -1260,7 +1260,7 @@ export declare const Composition: z.ZodObject<{
1260
1260
  w: number;
1261
1261
  h: number;
1262
1262
  } | undefined;
1263
- fit?: "cover" | "contain" | undefined;
1263
+ fit?: "contain" | "cover" | undefined;
1264
1264
  effects?: {
1265
1265
  primitiveId: string;
1266
1266
  params?: Record<string, unknown> | undefined;
@@ -1644,7 +1644,7 @@ export declare const CompositionVersion: z.ZodObject<{
1644
1644
  w: number;
1645
1645
  h: number;
1646
1646
  } | undefined;
1647
- fit?: "cover" | "contain" | undefined;
1647
+ fit?: "contain" | "cover" | undefined;
1648
1648
  effects?: {
1649
1649
  primitiveId: string;
1650
1650
  params?: Record<string, unknown> | undefined;
@@ -204,7 +204,7 @@ export declare const RenderSnapshot: z.ZodObject<{
204
204
  w: number;
205
205
  h: number;
206
206
  } | undefined;
207
- fit?: "cover" | "contain" | undefined;
207
+ fit?: "contain" | "cover" | undefined;
208
208
  effects?: {
209
209
  primitiveId: string;
210
210
  params?: Record<string, unknown> | undefined;
@@ -1036,7 +1036,7 @@ export declare const RenderJob: z.ZodObject<{
1036
1036
  w: number;
1037
1037
  h: number;
1038
1038
  } | undefined;
1039
- fit?: "cover" | "contain" | undefined;
1039
+ fit?: "contain" | "cover" | undefined;
1040
1040
  effects?: {
1041
1041
  primitiveId: string;
1042
1042
  params?: Record<string, unknown> | undefined;
@@ -167,8 +167,8 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
167
167
  h: z.ZodNumber;
168
168
  }, z.core.$strip>>;
169
169
  fit: z.ZodOptional<z.ZodEnum<{
170
- cover: "cover";
171
170
  contain: "contain";
171
+ cover: "cover";
172
172
  }>>;
173
173
  effects: z.ZodOptional<z.ZodArray<z.ZodObject<{
174
174
  primitiveId: z.ZodString;
@@ -360,8 +360,8 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
360
360
  h: z.ZodNumber;
361
361
  }, z.core.$strip>>>;
362
362
  fit: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
363
- cover: "cover";
364
363
  contain: "contain";
364
+ cover: "cover";
365
365
  }>>>;
366
366
  effects: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
367
367
  primitiveId: z.ZodString;
@@ -549,8 +549,8 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
549
549
  h: z.ZodNumber;
550
550
  }, z.core.$strip>>;
551
551
  fit: z.ZodOptional<z.ZodEnum<{
552
- cover: "cover";
553
552
  contain: "contain";
553
+ cover: "cover";
554
554
  }>>;
555
555
  effects: z.ZodOptional<z.ZodArray<z.ZodObject<{
556
556
  primitiveId: z.ZodString;
@@ -4,15 +4,15 @@ import {
4
4
  buildPlannerTools,
5
5
  buildToolsFromSchemas,
6
6
  extractProviderError
7
- } from "../chunk-W6B7BMLO.js";
8
- import "../chunk-TBNTAQJA.js";
7
+ } from "../chunk-5CNS7IXO.js";
8
+ import "../chunk-X6U6XVU4.js";
9
9
  import "../chunk-JOURGVOR.js";
10
10
  import "../chunk-7AZLFN26.js";
11
- import "../chunk-I5RX2QZT.js";
12
- import "../chunk-TCHPRGC5.js";
13
- import "../chunk-XF2QMKRG.js";
11
+ import "../chunk-IGP2CA7C.js";
12
+ import "../chunk-TAXZ4KBF.js";
13
+ import "../chunk-QZR4JCFY.js";
14
14
  import "../chunk-WPZKOVYF.js";
15
- import "../chunk-2B5VJZHL.js";
15
+ import "../chunk-B7J5UUUV.js";
16
16
  import "../chunk-KYRDKK2D.js";
17
17
  import "../chunk-WREYUH2E.js";
18
18
  import "../chunk-7PA7FGLD.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  buildDirectorContext
3
- } from "../chunk-UKGNHZS4.js";
4
- import "../chunk-I5RX2QZT.js";
5
- import "../chunk-TCHPRGC5.js";
6
- import "../chunk-XF2QMKRG.js";
3
+ } from "../chunk-S3PZFAF5.js";
4
+ import "../chunk-IGP2CA7C.js";
5
+ import "../chunk-TAXZ4KBF.js";
6
+ import "../chunk-QZR4JCFY.js";
7
7
  import "../chunk-WPZKOVYF.js";
8
- import "../chunk-2B5VJZHL.js";
8
+ import "../chunk-B7J5UUUV.js";
9
9
  import "../chunk-KYRDKK2D.js";
10
10
  import "../chunk-WREYUH2E.js";
11
11
  import "../chunk-TARKDVP6.js";
@@ -6,14 +6,14 @@ import {
6
6
  COMPOSE_ROLE_TOOLS,
7
7
  COMPOSE_ROLE_TOOL_NAMES,
8
8
  dispatchComposeRoleTool
9
- } from "../chunk-TBNTAQJA.js";
9
+ } from "../chunk-X6U6XVU4.js";
10
10
  import "../chunk-JOURGVOR.js";
11
11
  import "../chunk-7AZLFN26.js";
12
- import "../chunk-I5RX2QZT.js";
13
- import "../chunk-TCHPRGC5.js";
14
- import "../chunk-XF2QMKRG.js";
12
+ import "../chunk-IGP2CA7C.js";
13
+ import "../chunk-TAXZ4KBF.js";
14
+ import "../chunk-QZR4JCFY.js";
15
15
  import "../chunk-WPZKOVYF.js";
16
- import "../chunk-2B5VJZHL.js";
16
+ import "../chunk-B7J5UUUV.js";
17
17
  import "../chunk-KYRDKK2D.js";
18
18
  import "../chunk-WREYUH2E.js";
19
19
  import "../chunk-7PA7FGLD.js";
package/dist/authoring.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  buildPlannerTools,
12
12
  buildToolsFromSchemas,
13
13
  extractProviderError
14
- } from "./chunk-W6B7BMLO.js";
14
+ } from "./chunk-5CNS7IXO.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-TBNTAQJA.js";
23
+ } from "./chunk-X6U6XVU4.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-UKGNHZS4.js";
30
+ } from "./chunk-S3PZFAF5.js";
31
31
  import {
32
32
  buildFastModel,
33
33
  buildModel,
@@ -48,18 +48,18 @@ import {
48
48
  formatPlanSteps,
49
49
  initCodeGenPrompts
50
50
  } from "./chunk-Y4HPN4BC.js";
51
- import "./chunk-JX53CVJV.js";
51
+ import "./chunk-YH4MCHMS.js";
52
52
  import {
53
53
  cssLayoutVars
54
54
  } from "./chunk-6VWICHOZ.js";
55
55
  import "./chunk-DSMLHYJ4.js";
56
56
  import "./chunk-7AZLFN26.js";
57
57
  import "./chunk-JF4JJAFP.js";
58
- import "./chunk-I5RX2QZT.js";
59
- import "./chunk-TCHPRGC5.js";
60
- import "./chunk-XF2QMKRG.js";
58
+ import "./chunk-IGP2CA7C.js";
59
+ import "./chunk-TAXZ4KBF.js";
60
+ import "./chunk-QZR4JCFY.js";
61
61
  import "./chunk-WPZKOVYF.js";
62
- import "./chunk-2B5VJZHL.js";
62
+ import "./chunk-B7J5UUUV.js";
63
63
  import "./chunk-KYRDKK2D.js";
64
64
  import "./chunk-WREYUH2E.js";
65
65
  import "./chunk-J3DIUG24.js";
@@ -3,7 +3,7 @@ import {
3
3
  assertSceneShotParamsAdmitted,
4
4
  materializeComponentSource,
5
5
  renderComponentAlpha
6
- } from "./chunk-MTYEB6C4.js";
6
+ } from "./chunk-RSEN7JYE.js";
7
7
  import {
8
8
  componentArtifactId,
9
9
  componentBundleId,
@@ -2,7 +2,7 @@ import {
2
2
  COMPOSE_PLANNER_TOOLS,
3
3
  COMPOSE_ROLE_TOOLS,
4
4
  dispatchComposeRoleTool
5
- } from "./chunk-TBNTAQJA.js";
5
+ } from "./chunk-X6U6XVU4.js";
6
6
 
7
7
  // ../authoring/src/agent/buildTools.ts
8
8
  import { tool } from "ai";
@@ -7,16 +7,18 @@ function coverVisibleFraction(source, target) {
7
7
  }
8
8
  var VISIBLE_FRACTION_FLOOR = 0.75;
9
9
  var MAX_NAMED = 6;
10
- function collectMediaClips(value, nearestId, out) {
10
+ function collectMediaClips(value, nearestId, out, inheritedContain = false) {
11
11
  if (Array.isArray(value)) {
12
- for (const v of value) collectMediaClips(v, nearestId, out);
12
+ for (const v of value) collectMediaClips(v, nearestId, out, inheritedContain);
13
13
  return;
14
14
  }
15
15
  if (value === null || typeof value !== "object") return;
16
16
  const obj = value;
17
17
  if (obj.enabled === false && Array.isArray(obj.contents)) return;
18
18
  const id = typeof obj.id === "string" ? obj.id : nearestId;
19
+ const contain = obj.fit === "contain" || obj.fit === void 0 && inheritedContain;
19
20
  if (obj.kind === "media" && typeof obj.mediaId === "string") {
21
+ if (contain) return;
20
22
  const reframe = obj.reframe;
21
23
  const hasReframe = Array.isArray(reframe?.segments) && reframe.segments.length > 0;
22
24
  out.push({
@@ -26,7 +28,7 @@ function collectMediaClips(value, nearestId, out) {
26
28
  });
27
29
  return;
28
30
  }
29
- for (const v of Object.values(obj)) collectMediaClips(v, id, out);
31
+ for (const v of Object.values(obj)) collectMediaClips(v, id, out, contain);
30
32
  }
31
33
  function findAspectCropLosses(composition, dimensionsByMediaId, target) {
32
34
  const placed = [];
@@ -58,7 +60,7 @@ function detectAspectCropLoss(composition, dimensionsByMediaId, target) {
58
60
  const shown = offenders.slice(0, MAX_NAMED).map((o) => `${o.clipId ?? o.mediaId} (\u2212${o.lostPct}%)`).join(", ");
59
61
  const elided = offenders.length > MAX_NAMED ? ` (+${offenders.length - MAX_NAMED} more)` : "";
60
62
  return [
61
- `aspect_crop_loss \u2014 ${offenders.length} clip${offenders.length === 1 ? "" : "s"} ${offenders.length === 1 ? "is" : "are"} shaped very differently from the ${target.width}\xD7${target.height} output and author no camera, so each is centre-cropped to fill \u2014 discarding up to ${worst.lostPct}% of the picture with faces and subjects as likely to fall outside the crop as inside it: ${shown}${elided}. Author a \`reframe\` (focus a face, a point, or all-faces) or a \`kenBurns\` move on these clips, or render a format closer to their shape. Note \`fit:"contain"\` does NOT avoid this for stills \u2014 images are cropped by the still trajectory, which centres when it has no focus.`
63
+ `aspect_crop_loss \u2014 ${offenders.length} clip${offenders.length === 1 ? "" : "s"} ${offenders.length === 1 ? "is" : "are"} shaped very differently from the ${target.width}\xD7${target.height} output and author no camera, so each is centre-cropped to fill \u2014 discarding up to ${worst.lostPct}% of the picture with faces and subjects as likely to fall outside the crop as inside it: ${shown}${elided}. Author a \`reframe\` (focus a face, a point, or all-faces) or a \`kenBurns\` move on these clips, or render a format closer to their shape, or use \`fit:"contain"\` to show the whole picture.`
62
64
  ];
63
65
  }
64
66
 
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-TECEMBCI.js";
23
23
  import {
24
24
  CURATED_TOOLS
25
- } from "./chunk-SC55VDLC.js";
25
+ } from "./chunk-NNMXLNOI.js";
26
26
 
27
27
  // ../mcp/src/prompts.ts
28
28
  var skillListCache = null;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Composition
3
- } from "./chunk-XF2QMKRG.js";
3
+ } from "./chunk-QZR4JCFY.js";
4
4
  import {
5
5
  expandToLinkGroup
6
6
  } from "./chunk-KYRDKK2D.js";
@@ -259,11 +259,13 @@ function describeClip(c) {
259
259
  function formatComposition(json) {
260
260
  const full = JSON.stringify(json, null, 2);
261
261
  if (full.length <= COMPOSITION_VERBATIM_BUDGET) return full;
262
+ const compact = JSON.stringify(json);
263
+ if (compact.length <= COMPOSITION_VERBATIM_BUDGET) return compact;
262
264
  const tracks = Array.isArray(json?.tracks) ? json.tracks : [];
263
265
  const clips = tracks.flatMap((t) => Array.isArray(t?.contents) ? t.contents : []);
264
266
  const f = json?.format ?? {};
265
267
  const lines = [
266
- `Composition SUMMARIZED \u2014 the full JSON is ${full.length.toLocaleString()} chars, past what an MCP result can carry. Structure below is complete (every track and clip is listed); card html bodies and caption words are elided as lengths/counts. For a verbatim copy, GET /v1/projects/{id}/composition over REST.`,
268
+ `Composition SUMMARIZED \u2014 the full JSON is ${full.length.toLocaleString()} chars, past CueFrame's inline response budget. Structure below is complete (every track and clip is listed); card html bodies and caption words are elided as lengths/counts. For a verbatim copy, GET /v1/projects/{id}/composition over REST.`,
267
269
  "",
268
270
  `format: ${f.aspectRatio ?? "?"} ${f.fps ?? "?"}fps ${f.resolution ?? ""}`.trim(),
269
271
  `tracks: ${tracks.length} clips: ${clips.length}`
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Reframe
3
- } from "./chunk-2B5VJZHL.js";
3
+ } from "./chunk-B7J5UUUV.js";
4
4
  import {
5
5
  captionFaceIssues
6
6
  } from "./chunk-TARKDVP6.js";
@@ -137,7 +137,7 @@ function readMaterializedComponentSource(ws, id) {
137
137
  function isLoopbackHost(hostname) {
138
138
  return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "[::1]";
139
139
  }
140
- function decideComponentRequest(url, resourceType, documentOrigin, allowedAssetOrigins) {
140
+ function decideComponentRequest(url, _resourceType, documentOrigin, allowedAssetOrigins) {
141
141
  let parsed;
142
142
  try {
143
143
  parsed = new URL(url);
@@ -150,9 +150,6 @@ function decideComponentRequest(url, resourceType, documentOrigin, allowedAssetO
150
150
  if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
151
151
  return { allow: false, documentOrigin };
152
152
  }
153
- if (documentOrigin === null && resourceType === "Document" && isLoopbackHost(parsed.hostname)) {
154
- return { allow: true, documentOrigin: parsed.origin };
155
- }
156
153
  return {
157
154
  allow: parsed.origin === documentOrigin || allowedAssetOrigins.has(parsed.origin),
158
155
  documentOrigin
@@ -170,12 +167,15 @@ Object.defineProperties(globalThis, {
170
167
  });
171
168
  `;
172
169
  var COMPONENT_PAGE_LOCKDOWN = PAGE_LOCKDOWN;
173
- async function installComponentRequestFirewall(browser, allowedAssetOrigins, onDiagnostic) {
170
+ async function installComponentRequestFirewall(browser, documentOrigin, allowedAssetOrigins, onDiagnostic) {
174
171
  let closing = false;
175
172
  let fatal = null;
176
173
  let closePromise = null;
177
174
  const denied = [];
178
- let documentOrigin = null;
175
+ const bundle = new URL(documentOrigin);
176
+ if (bundle.origin !== documentOrigin || bundle.protocol !== "http:" || !isLoopbackHost(bundle.hostname)) {
177
+ throw new Error("Component firewall requires an owned loopback bundle origin.");
178
+ }
179
179
  const closeBrowser = browser.close.bind(browser);
180
180
  const close = () => {
181
181
  closing = true;
@@ -195,7 +195,6 @@ async function installComponentRequestFirewall(browser, allowedAssetOrigins, onD
195
195
  documentOrigin,
196
196
  allowedAssetOrigins
197
197
  );
198
- documentOrigin = decision.documentOrigin;
199
198
  if (!decision.allow) {
200
199
  denied.push(event.request.url);
201
200
  let location = "invalid URL";
@@ -929,7 +928,7 @@ function deterministicRuntimeScopeSource() {
929
928
  return createDeterministicRuntimeScope.toString();
930
929
  }
931
930
 
932
- // ../execution/component-runtime/src/livePreviewProxy.ts
931
+ // ../execution/component-runtime/src/componentBundleServer.ts
933
932
  import { createServer } from "http";
934
933
  import { randomBytes } from "crypto";
935
934
  import { readFile, realpath } from "fs/promises";
@@ -950,7 +949,7 @@ function contentSecurityPolicy(assetOrigins, scriptNonce, resourceOrigin) {
950
949
  "frame-ancestors tauri: http://tauri.localhost"
951
950
  ].join("; ");
952
951
  }
953
- async function startLivePreviewProxy(upstream, assetOrigins) {
952
+ async function startComponentBundleServer(upstream, assetOrigins) {
954
953
  const upstreamUrl = URL.canParse(upstream) ? new URL(upstream) : null;
955
954
  if (upstreamUrl && (upstreamUrl.protocol !== "http:" || !["127.0.0.1", "localhost"].includes(upstreamUrl.hostname))) {
956
955
  throw new Error("Live component preview requires a loopback bundle origin.");
@@ -1019,10 +1018,14 @@ async function startLivePreviewProxy(upstream, assetOrigins) {
1019
1018
  throw new Error("Live component preview did not bind a loopback port.");
1020
1019
  }
1021
1020
  const liveUrl = new URL(upstreamUrl ? upstreamUrl.pathname + upstreamUrl.search : "/", `http://localhost:${address.port}`);
1021
+ liveUrl.searchParams.delete("__cueframe_live");
1022
+ const renderUrl = liveUrl.href;
1022
1023
  liveUrl.searchParams.set("__cueframe_live", "1");
1023
1024
  let closePromise;
1024
1025
  return {
1025
- url: liveUrl.href,
1026
+ renderUrl,
1027
+ liveUrl: liveUrl.href,
1028
+ origin: liveUrl.origin,
1026
1029
  close: () => closePromise ??= new Promise((resolve2, reject) => {
1027
1030
  server.close((error) => error ? reject(error) : resolve2());
1028
1031
  })
@@ -1439,7 +1442,7 @@ async function createComponentStillSession(opts) {
1439
1442
  const revision = opts.revision ?? localSourceRevision(opts.ws, opts.id);
1440
1443
  const allowedAssetOrigins = new Set(opts.allowedAssetOrigins ?? []);
1441
1444
  opts.onStartupPhase?.("prepare");
1442
- const { serveUrl, browserExecutable, stagedBrowser, inputProps, renderEntryRoot, pinnedManifest } = await prepareLocalBundle({
1445
+ const { serveUrl: bundlePath, browserExecutable, stagedBrowser, inputProps, renderEntryRoot, pinnedManifest } = await prepareLocalBundle({
1443
1446
  ws: opts.ws,
1444
1447
  id: opts.id,
1445
1448
  width,
@@ -1459,6 +1462,9 @@ async function createComponentStillSession(opts) {
1459
1462
  renderEntryRoot,
1460
1463
  "@remotion/renderer"
1461
1464
  );
1465
+ opts.onStartupPhase?.("start-bundle-server");
1466
+ const bundleServer = await startComponentBundleServer(bundlePath, allowedAssetOrigins);
1467
+ const serveUrl = bundleServer.renderUrl;
1462
1468
  const requiredGraphics = opts.graphics ?? {
1463
1469
  api: "canvas2d",
1464
1470
  required: true,
@@ -1487,6 +1493,7 @@ async function createComponentStillSession(opts) {
1487
1493
  opts.onStartupPhase?.("firewall");
1488
1494
  candidateFirewall = await withComponentBrowserFirewallTimeout(installComponentRequestFirewall(
1489
1495
  candidateBrowser,
1496
+ bundleServer.origin,
1490
1497
  allowedAssetOrigins,
1491
1498
  opts.onBrowserLog ? (entry) => opts.onBrowserLog?.(entry) : void 0
1492
1499
  ));
@@ -1562,9 +1569,11 @@ async function createComponentStillSession(opts) {
1562
1569
  } catch {
1563
1570
  }
1564
1571
  if (!candidateBrowser) {
1572
+ await bundleServer.close();
1565
1573
  throw componentRuntimeError(error, "component_resource_exhausted", true);
1566
1574
  }
1567
1575
  if (error instanceof ComponentBrowserFirewallTimeout && attempt < COMPONENT_BROWSER_FIREWALL_ATTEMPTS) continue;
1576
+ await bundleServer.close();
1568
1577
  const retryable = error instanceof ComponentBrowserFirewallTimeout;
1569
1578
  throw componentRuntimeError(
1570
1579
  error,
@@ -1574,19 +1583,6 @@ async function createComponentStillSession(opts) {
1574
1583
  }
1575
1584
  }
1576
1585
  opts.onStartupPhase?.("composition-ready");
1577
- let liveProxy;
1578
- try {
1579
- opts.onStartupPhase?.("start-proxy");
1580
- liveProxy = await startLivePreviewProxy(serveUrl, allowedAssetOrigins);
1581
- } catch (error) {
1582
- let cleanupError;
1583
- await firewall.close().catch((caught) => {
1584
- cleanupError = caught;
1585
- });
1586
- const failure = componentRuntimeError(error, "component_runtime_error");
1587
- if (cleanupError !== void 0 && failure.cause === void 0) failure.cause = cleanupError;
1588
- throw failure;
1589
- }
1590
1586
  opts.onStartupPhase?.("ready");
1591
1587
  let state = "open";
1592
1588
  let tail = Promise.resolve();
@@ -1602,7 +1598,7 @@ async function createComponentStillSession(opts) {
1602
1598
  };
1603
1599
  const session = {
1604
1600
  revision,
1605
- liveUrl: liveProxy.url,
1601
+ liveUrl: bundleServer.liveUrl,
1606
1602
  hostAttestation,
1607
1603
  renderFrame(frameOpts = {}) {
1608
1604
  if (state !== "open") {
@@ -1612,7 +1608,7 @@ async function createComponentStillSession(opts) {
1612
1608
  const fatal = firewall.fatalError();
1613
1609
  if (fatal !== null) {
1614
1610
  state = "closed";
1615
- closePromise ??= Promise.all([firewall.close(), liveProxy.close()]).then(() => void 0);
1611
+ closePromise ??= Promise.all([firewall.close(), bundleServer.close()]).then(() => void 0);
1616
1612
  throw componentRuntimeError(fatal, "component_runtime_error");
1617
1613
  }
1618
1614
  if (frameOpts.expectedRevision !== void 0 && frameOpts.expectedRevision !== revision) {
@@ -1671,6 +1667,7 @@ async function createComponentStillSession(opts) {
1671
1667
  await sizeLocalLaneWindows(renderEntryRoot, candidateBrowser, width, height);
1672
1668
  candidateFirewall = await withComponentBrowserFirewallTimeout(installComponentRequestFirewall(
1673
1669
  candidateBrowser,
1670
+ bundleServer.origin,
1674
1671
  allowedAssetOrigins,
1675
1672
  opts.onBrowserLog ? (entry) => opts.onBrowserLog?.(entry) : void 0
1676
1673
  ));
@@ -1764,7 +1761,7 @@ async function createComponentStillSession(opts) {
1764
1761
  const renderFatal = firewall.fatalError();
1765
1762
  if (renderFatal !== null) {
1766
1763
  state = "closed";
1767
- closePromise ??= Promise.all([firewall.close(), liveProxy.close()]).then(() => void 0);
1764
+ closePromise ??= Promise.all([firewall.close(), bundleServer.close()]).then(() => void 0);
1768
1765
  return refuseAfterCleanup(componentRuntimeError(renderFatal, "component_runtime_error"));
1769
1766
  }
1770
1767
  if (opts.captureAttestation && capturePageRaster.value === null) {
@@ -1845,7 +1842,7 @@ async function createComponentStillSession(opts) {
1845
1842
  try {
1846
1843
  await Promise.all([
1847
1844
  firewall.close(),
1848
- liveProxy.close(),
1845
+ bundleServer.close(),
1849
1846
  ...[...ownedOutputs].map((path) => unlink(path).catch((error) => {
1850
1847
  if (error.code !== "ENOENT") throw error;
1851
1848
  }))
@@ -1860,7 +1857,7 @@ async function createComponentStillSession(opts) {
1860
1857
  cancel() {
1861
1858
  if (cancelPromise) return cancelPromise;
1862
1859
  state = "closing";
1863
- const browserClose = Promise.all([firewall.close(), liveProxy.close()]);
1860
+ const browserClose = Promise.all([firewall.close(), bundleServer.close()]);
1864
1861
  cancelPromise = (async () => {
1865
1862
  let closeError;
1866
1863
  try {
@@ -1931,7 +1928,7 @@ async function renderComponentAlpha(opts) {
1931
1928
  opts.onTiming?.({ stage, durationMs: now - stageStarted });
1932
1929
  stageStarted = now;
1933
1930
  };
1934
- const { serveUrl, browserExecutable, stagedBrowser, inputProps, renderEntryRoot } = await prepareLocalBundle({
1931
+ const { serveUrl: bundlePath, browserExecutable, stagedBrowser, inputProps, renderEntryRoot } = await prepareLocalBundle({
1935
1932
  ws: opts.ws,
1936
1933
  id: opts.id,
1937
1934
  width,
@@ -1954,19 +1951,22 @@ async function renderComponentAlpha(opts) {
1954
1951
  required: true,
1955
1952
  accelerationPreference: "software-allowed"
1956
1953
  };
1954
+ const bundleServer = await startComponentBundleServer(bundlePath, opts.allowedAssetOrigins ?? /* @__PURE__ */ new Set());
1955
+ const serveUrl = bundleServer.renderUrl;
1957
1956
  const collector = graphicsCollector(requiredGraphics);
1958
1957
  let browser;
1959
1958
  try {
1960
1959
  browser = await openBrowser("chrome", componentBrowserOptions(requiredGraphics, browserExecutable, stagedBrowser.chromeMode));
1961
1960
  timed("browser");
1962
1961
  } catch (error) {
1962
+ await bundleServer.close();
1963
1963
  throw componentRuntimeError(error, "component_resource_exhausted", true);
1964
1964
  }
1965
1965
  let primaryError;
1966
1966
  const pageDiagnostics = [];
1967
1967
  try {
1968
1968
  await sizeLocalLaneWindows(renderEntryRoot, browser, width, height);
1969
- const firewall = await installComponentRequestFirewall(browser, opts.allowedAssetOrigins ?? /* @__PURE__ */ new Set(), (entry) => {
1969
+ const firewall = await installComponentRequestFirewall(browser, bundleServer.origin, opts.allowedAssetOrigins ?? /* @__PURE__ */ new Set(), (entry) => {
1970
1970
  if (pageDiagnostics.length < 5) pageDiagnostics.push(`${entry.type}: ${entry.message.slice(0, 2e3)}`);
1971
1971
  });
1972
1972
  const host = await assertComponentBrowserHardware(browser, requiredGraphics);
@@ -2051,11 +2051,9 @@ ${primaryError.message}`,
2051
2051
  }
2052
2052
  throw primaryError;
2053
2053
  } finally {
2054
- try {
2055
- await browser.close({ silent: true });
2056
- } catch (closeError) {
2057
- if (primaryError === void 0) throw closeError;
2058
- }
2054
+ const cleanup = await Promise.allSettled([browser.close({ silent: true }), bundleServer.close()]);
2055
+ const failed = cleanup.find((result) => result.status === "rejected");
2056
+ if (primaryError === void 0 && failed?.status === "rejected") throw failed.reason;
2059
2057
  }
2060
2058
  }
2061
2059
 
@@ -2,7 +2,7 @@ import {
2
2
  selectAllClips,
3
3
  selectAllOverlays,
4
4
  selectSceneMarkers
5
- } from "./chunk-I5RX2QZT.js";
5
+ } from "./chunk-IGP2CA7C.js";
6
6
 
7
7
  // ../authoring/src/context/transcript.ts
8
8
  var MAX_TRANSCRIPT_CHARS = 6e4;
@@ -4,7 +4,7 @@ import {
4
4
  Format,
5
5
  GraphicRole,
6
6
  OpaqueId
7
- } from "./chunk-XF2QMKRG.js";
7
+ } from "./chunk-QZR4JCFY.js";
8
8
  import {
9
9
  brandKitCaptionFaceIssues
10
10
  } from "./chunk-TARKDVP6.js";
@@ -7,13 +7,13 @@ import {
7
7
  } from "./chunk-7AZLFN26.js";
8
8
  import {
9
9
  selectAllOverlays
10
- } from "./chunk-I5RX2QZT.js";
10
+ } from "./chunk-IGP2CA7C.js";
11
11
  import {
12
12
  ComposePlan
13
- } from "./chunk-TCHPRGC5.js";
13
+ } from "./chunk-TAXZ4KBF.js";
14
14
  import {
15
15
  OverlayClipSource
16
- } from "./chunk-XF2QMKRG.js";
16
+ } from "./chunk-QZR4JCFY.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-IUPQ54V4.js");
66
+ const { buildDirectorContext } = await import("./context-VHBMKP65.js");
67
67
  return buildDirectorContext(capabilities);
68
68
  }
69
69
  },
@@ -477,7 +477,8 @@ function computeCropTransform(input) {
477
477
  zoomScale,
478
478
  verticalBias,
479
479
  lateralBias,
480
- reframe = { kind: "transform", dy: 0, zoom: 1 }
480
+ reframe = { kind: "transform", dy: 0, zoom: 1 },
481
+ fit = "cover"
481
482
  } = input;
482
483
  const reframeDy = reframe.kind === "transform" ? reframe.dy : 0;
483
484
  const faceScale = reframe.kind === "transform" ? reframe.zoom : 1;
@@ -485,7 +486,7 @@ function computeCropTransform(input) {
485
486
  const srcAR = traj.src_w / traj.src_h;
486
487
  let cropW;
487
488
  let cropH;
488
- if (srcAR > outAR) {
489
+ if (srcAR > outAR === (fit === "cover")) {
489
490
  cropH = traj.src_h;
490
491
  cropW = traj.src_h * outAR;
491
492
  } else {
@@ -504,8 +505,9 @@ function computeCropTransform(input) {
504
505
  const txRaw = outW / 2 - cx * scaledSrcW + biasXPx;
505
506
  const tyNoShift = outH / 2 - cy * scaledSrcH + biasYPx;
506
507
  const tyRaw = tyNoShift + reframeDy * outH;
507
- const tx = Math.min(0, Math.max(outW - scaledSrcW, txRaw));
508
- const ty = Math.min(0, Math.max(outH - scaledSrcH, tyRaw));
508
+ const clampOffset = (raw, gap) => Math.max(Math.min(0, gap), Math.min(Math.max(0, gap), raw));
509
+ const tx = clampOffset(txRaw, outW - scaledSrcW);
510
+ const ty = clampOffset(tyRaw, outH - scaledSrcH);
509
511
  return { tx, ty, tyNoShift, scaledSrcW, scaledSrcH };
510
512
  }
511
513
  function sourceRectToOutput(src, t, outW, outH) {
@@ -26,7 +26,7 @@ import {
26
26
  stagedBrowserLocator,
27
27
  verifyLocalStagedBrowser,
28
28
  vp9AlphaFfmpegOverride
29
- } from "../chunk-MTYEB6C4.js";
29
+ } from "../chunk-RSEN7JYE.js";
30
30
  import "../chunk-WB2VFDQZ.js";
31
31
  import "../chunk-EXY4JJPH.js";
32
32
  import "../chunk-DAARYRNT.js";
@@ -7,7 +7,7 @@ import {
7
7
  sourceIdentityForBake,
8
8
  startComponentAssetServer,
9
9
  verifyComponentOutput
10
- } from "./chunk-MXMLOPOK.js";
10
+ } from "./chunk-2KO5EQQS.js";
11
11
  import {
12
12
  COMPONENT_MEDIA_HEADROOM,
13
13
  COMPONENT_MEDIA_TIERS,
@@ -52,7 +52,7 @@ import {
52
52
  stagedBrowserLocator,
53
53
  verifyLocalStagedBrowser,
54
54
  vp9AlphaFfmpegOverride
55
- } from "./chunk-MTYEB6C4.js";
55
+ } from "./chunk-RSEN7JYE.js";
56
56
  import "./chunk-WB2VFDQZ.js";
57
57
  import {
58
58
  bundleIdentityFields,
@@ -26,9 +26,9 @@ import {
26
26
  PlanRect,
27
27
  StyleRole,
28
28
  ZPlane
29
- } from "../chunk-XF2QMKRG.js";
29
+ } from "../chunk-QZR4JCFY.js";
30
30
  import "../chunk-WPZKOVYF.js";
31
- import "../chunk-2B5VJZHL.js";
31
+ import "../chunk-B7J5UUUV.js";
32
32
  import "../chunk-WREYUH2E.js";
33
33
  import "../chunk-TARKDVP6.js";
34
34
  import "../chunk-2ESYSVXG.js";
@@ -20,11 +20,11 @@ import {
20
20
  selectMediaClipAt,
21
21
  selectSceneMarkers,
22
22
  selectTracksByKind
23
- } from "../chunk-I5RX2QZT.js";
24
- import "../chunk-TCHPRGC5.js";
25
- import "../chunk-XF2QMKRG.js";
23
+ } from "../chunk-IGP2CA7C.js";
24
+ import "../chunk-TAXZ4KBF.js";
25
+ import "../chunk-QZR4JCFY.js";
26
26
  import "../chunk-WPZKOVYF.js";
27
- import "../chunk-2B5VJZHL.js";
27
+ import "../chunk-B7J5UUUV.js";
28
28
  import "../chunk-KYRDKK2D.js";
29
29
  import "../chunk-WREYUH2E.js";
30
30
  import "../chunk-TARKDVP6.js";
@@ -32,7 +32,7 @@ import {
32
32
  silhouetteKeepOutForWindow,
33
33
  sourceRectToOutput,
34
34
  sourceWindowKey
35
- } from "../chunk-JX53CVJV.js";
35
+ } from "../chunk-YH4MCHMS.js";
36
36
  import {
37
37
  BRAND_TOKEN_REFS,
38
38
  BRAND_TOKEN_ROOT_KEYS,
@@ -6,7 +6,7 @@ import {
6
6
  coverVisibleFraction,
7
7
  detectAspectCropLoss,
8
8
  findAspectCropLosses
9
- } from "../chunk-2B5VJZHL.js";
9
+ } from "../chunk-B7J5UUUV.js";
10
10
  import {
11
11
  MAX_SOURCE_MAGNIFICATION,
12
12
  NO_GAIN_ZOOM,
@@ -48,7 +48,7 @@ import {
48
48
  WebhookDeliveryStatus,
49
49
  WebhookDestination,
50
50
  YoutubeDestination
51
- } from "../chunk-TCHPRGC5.js";
51
+ } from "../chunk-TAXZ4KBF.js";
52
52
  import {
53
53
  ANIMATABLE_PARAMS,
54
54
  AlphaLayerClipSource,
@@ -82,7 +82,7 @@ import {
82
82
  Transition,
83
83
  captionWords,
84
84
  captionsAreBehindSubject
85
- } from "../chunk-XF2QMKRG.js";
85
+ } from "../chunk-QZR4JCFY.js";
86
86
  import {
87
87
  AUTHORED_GRAPHIC_KINDS
88
88
  } from "../chunk-WPZKOVYF.js";
@@ -91,7 +91,7 @@ import {
91
91
  Reframe,
92
92
  ReframeSegment,
93
93
  ReframeSegmentFields
94
- } from "../chunk-2B5VJZHL.js";
94
+ } from "../chunk-B7J5UUUV.js";
95
95
  import "../chunk-WREYUH2E.js";
96
96
  import "../chunk-TARKDVP6.js";
97
97
  import "../chunk-2ESYSVXG.js";
@@ -11,8 +11,8 @@ import {
11
11
  findClipById,
12
12
  findMarkerById,
13
13
  findTrackContainingClipId
14
- } from "./chunk-I5RX2QZT.js";
15
- import "./chunk-TCHPRGC5.js";
14
+ } from "./chunk-IGP2CA7C.js";
15
+ import "./chunk-TAXZ4KBF.js";
16
16
  import {
17
17
  CaptionSegment,
18
18
  CaptionStyle,
@@ -23,11 +23,11 @@ import {
23
23
  TimelineClip,
24
24
  Track,
25
25
  Transition
26
- } from "./chunk-XF2QMKRG.js";
26
+ } from "./chunk-QZR4JCFY.js";
27
27
  import "./chunk-WPZKOVYF.js";
28
28
  import {
29
29
  ReframeSegment
30
- } from "./chunk-2B5VJZHL.js";
30
+ } from "./chunk-B7J5UUUV.js";
31
31
  import "./chunk-KYRDKK2D.js";
32
32
  import "./chunk-WREYUH2E.js";
33
33
  import "./chunk-J3DIUG24.js";
@@ -46,7 +46,7 @@ import {
46
46
  silhouetteKeepOutForWindow,
47
47
  sourceRectToOutput,
48
48
  sourceWindowKey
49
- } from "./chunk-JX53CVJV.js";
49
+ } from "./chunk-YH4MCHMS.js";
50
50
  import {
51
51
  BRAND_TOKEN_REFS,
52
52
  BRAND_TOKEN_ROOT_KEYS,
@@ -149,7 +149,7 @@ import {
149
149
  WebhookDeliveryStatus,
150
150
  WebhookDestination,
151
151
  YoutubeDestination
152
- } from "./chunk-TCHPRGC5.js";
152
+ } from "./chunk-TAXZ4KBF.js";
153
153
  import {
154
154
  ANIMATABLE_PARAMS,
155
155
  AlphaLayerClipSource,
@@ -183,7 +183,7 @@ import {
183
183
  Transition,
184
184
  captionWords,
185
185
  captionsAreBehindSubject
186
- } from "./chunk-XF2QMKRG.js";
186
+ } from "./chunk-QZR4JCFY.js";
187
187
  import {
188
188
  AUTHORED_GRAPHIC_KINDS
189
189
  } from "./chunk-WPZKOVYF.js";
@@ -192,7 +192,7 @@ import {
192
192
  Reframe,
193
193
  ReframeSegment,
194
194
  ReframeSegmentFields
195
- } from "./chunk-2B5VJZHL.js";
195
+ } from "./chunk-B7J5UUUV.js";
196
196
  import "./chunk-WREYUH2E.js";
197
197
  import "./chunk-J3DIUG24.js";
198
198
  import "./chunk-TARKDVP6.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  buildDirectorContext
3
- } from "./chunk-UKGNHZS4.js";
4
- import "./chunk-I5RX2QZT.js";
5
- import "./chunk-TCHPRGC5.js";
6
- import "./chunk-XF2QMKRG.js";
3
+ } from "./chunk-S3PZFAF5.js";
4
+ import "./chunk-IGP2CA7C.js";
5
+ import "./chunk-TAXZ4KBF.js";
6
+ import "./chunk-QZR4JCFY.js";
7
7
  import "./chunk-WPZKOVYF.js";
8
- import "./chunk-2B5VJZHL.js";
8
+ import "./chunk-B7J5UUUV.js";
9
9
  import "./chunk-KYRDKK2D.js";
10
10
  import "./chunk-WREYUH2E.js";
11
11
  import "./chunk-TARKDVP6.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "../chunk-TECEMBCI.js";
17
17
  import {
18
18
  CURATED_TOOLS
19
- } from "../chunk-SC55VDLC.js";
19
+ } from "../chunk-NNMXLNOI.js";
20
20
  import "../chunk-2ESYSVXG.js";
21
21
 
22
22
  // ../mcp/src/adapter.ts
@@ -10,7 +10,7 @@ import {
10
10
  formatResourceCandidates,
11
11
  formatTranscriptPage,
12
12
  formatWarnings
13
- } from "../chunk-SC55VDLC.js";
13
+ } from "../chunk-NNMXLNOI.js";
14
14
  import "../chunk-2ESYSVXG.js";
15
15
  export {
16
16
  CRUD_COVERAGE,
@@ -7,10 +7,10 @@ import {
7
7
  registerRawTools,
8
8
  registerSkillPrompts,
9
9
  titleCase
10
- } from "../chunk-AW6HX577.js";
10
+ } from "../chunk-EWABZ72N.js";
11
11
  import "../chunk-3V75A6UH.js";
12
12
  import "../chunk-TECEMBCI.js";
13
- import "../chunk-SC55VDLC.js";
13
+ import "../chunk-NNMXLNOI.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-AW6HX577.js";
10
+ } from "./chunk-EWABZ72N.js";
11
11
  import "./chunk-3V75A6UH.js";
12
12
  import "./chunk-TECEMBCI.js";
13
- import "./chunk-SC55VDLC.js";
13
+ import "./chunk-NNMXLNOI.js";
14
14
  import "./chunk-2ESYSVXG.js";
15
15
  export {
16
16
  API_URLS,
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  assertCardHtmlAssetFree
10
10
  } from "./chunk-ODUWCQI3.js";
11
- import "./chunk-MXMLOPOK.js";
11
+ import "./chunk-2KO5EQQS.js";
12
12
  import "./chunk-BVA3537Z.js";
13
13
  import {
14
14
  COMPONENT_STILL_RUNTIME_IDENTITY,
@@ -19,7 +19,7 @@ import {
19
19
  readMaterializedComponentSource,
20
20
  resolveRenderEntryRoot,
21
21
  verifyLocalStagedBrowser
22
- } from "./chunk-MTYEB6C4.js";
22
+ } from "./chunk-RSEN7JYE.js";
23
23
  import "./chunk-WB2VFDQZ.js";
24
24
  import {
25
25
  sourceVersionId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cueframe/kernel",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
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": [
@@ -18,25 +18,25 @@
18
18
  "tsup": "^8.3.5",
19
19
  "typescript": "^5.9.3",
20
20
  "@cueframe/account-model": "0.1.0",
21
- "@cueframe/brand-derivation": "0.1.0",
22
21
  "@cueframe/animate": "0.1.0",
23
- "@cueframe/compose": "0.1.0",
24
- "@cueframe/composition": "0.1.0",
25
- "@cueframe/component-runtime": "0.1.0",
26
- "@cueframe/core": "0.1.0",
27
22
  "@cueframe/cloud-import": "0.1.0",
28
23
  "@cueframe/authoring": "0.1.0",
24
+ "@cueframe/compose": "0.1.0",
25
+ "@cueframe/composition": "0.1.0",
29
26
  "@cueframe/composition-ops": "0.1.0",
30
- "@cueframe/media-model": "0.1.0",
31
- "@cueframe/plane": "0.1.0",
27
+ "@cueframe/brand-derivation": "0.1.0",
28
+ "@cueframe/component-runtime": "0.1.0",
32
29
  "@cueframe/director": "0.1.0",
30
+ "@cueframe/core": "0.1.0",
33
31
  "@cueframe/foundation": "0.1.0",
34
- "@cueframe/render-harness": "0.1.0",
35
- "@cueframe/mcp": "0.1.0",
36
32
  "@cueframe/errors": "0.1.0",
37
33
  "@cueframe/perception": "0.1.0",
34
+ "@cueframe/nle-export": "0.1.0",
35
+ "@cueframe/plane": "0.1.0",
36
+ "@cueframe/render-harness": "0.1.0",
37
+ "@cueframe/mcp": "0.1.0",
38
38
  "@cueframe/primitives": "0.1.0",
39
- "@cueframe/nle-export": "0.1.0"
39
+ "@cueframe/media-model": "0.1.0"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "gsap": "3.13.0",
@@ -1,7 +0,0 @@
1
- export interface LivePreviewProxy {
2
- url: string;
3
- close(): Promise<void>;
4
- }
5
- /** Serve the authored player with a network-denying CSP on a fresh loopback origin. */
6
- export declare function startLivePreviewProxy(upstream: string, assetOrigins: ReadonlySet<string>): Promise<LivePreviewProxy>;
7
- //# sourceMappingURL=livePreviewProxy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"livePreviewProxy.d.ts","sourceRoot":"","sources":["../src/livePreviewProxy.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAmBD,uFAAuF;AACvF,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA8E3B"}