@cueframe/kernel 0.2.14 → 0.2.16

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 (55) hide show
  1. package/dist/_members/animate/index.d.ts +1 -1
  2. package/dist/_members/animate/three/FrameDepthOfField.d.ts +8 -0
  3. package/dist/_members/animate/three/depthOfFieldPipeline.d.ts +29 -0
  4. package/dist/_members/animate/three/index.d.ts +1 -0
  5. package/dist/_members/brand-derivation/constants.d.ts +5 -4
  6. package/dist/_members/brand-derivation/contrastSafe.d.ts +7 -2
  7. package/dist/_members/component-runtime/allowedImports.d.ts +1 -1
  8. package/dist/_members/component-runtime/allowedImports.d.ts.map +1 -1
  9. package/dist/_members/component-runtime/bake.d.ts.map +1 -1
  10. package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -1
  11. package/dist/_members/component-runtime/index.d.ts +1 -0
  12. package/dist/_members/component-runtime/index.d.ts.map +1 -1
  13. package/dist/_members/component-runtime/localRoot.d.ts +10 -0
  14. package/dist/_members/component-runtime/localRoot.d.ts.map +1 -1
  15. package/dist/_members/component-runtime/sourceAdmission.d.ts +12 -0
  16. package/dist/_members/component-runtime/sourceAdmission.d.ts.map +1 -0
  17. package/dist/_members/composition/projection/composition-floor.d.ts +5 -5
  18. package/dist/_members/mcp/generated/harness.d.ts +1 -1
  19. package/dist/animate.js +3 -1
  20. package/dist/authoring.js +4 -4
  21. package/dist/brand-derivation/constants.js +1 -1
  22. package/dist/brand-derivation.js +6 -6
  23. package/dist/{chunk-A74FZCPY.js → chunk-5NGYBI5Z.js} +2 -1
  24. package/dist/{chunk-YH4MCHMS.js → chunk-C4P4NC66.js} +1 -1
  25. package/dist/{chunk-2KO5EQQS.js → chunk-HA4S2ZGH.js} +78 -1
  26. package/dist/{chunk-DSMLHYJ4.js → chunk-ILO4NEZ3.js} +19 -14
  27. package/dist/{chunk-NBCFNHST.js → chunk-LQRW5UPR.js} +212 -78
  28. package/dist/{chunk-6VWICHOZ.js → chunk-O7G2NXUJ.js} +12 -10
  29. package/dist/{chunk-YLDMAZZE.js → chunk-QDBVYZSF.js} +1 -1
  30. package/dist/{chunk-RSEN7JYE.js → chunk-QWIK3HKM.js} +46 -8
  31. package/dist/{chunk-JF4JJAFP.js → chunk-VG2ND6PX.js} +2 -2
  32. package/dist/{chunk-3HYJ7O5V.js → chunk-WTGUORWJ.js} +1 -1
  33. package/dist/{chunk-EWABZ72N.js → chunk-XMAA2HYI.js} +5 -0
  34. package/dist/{chunk-C2C4AVGL.js → chunk-YROOHMJG.js} +1 -1
  35. package/dist/{chunk-JAVKDXRY.js → chunk-ZFI3N2ID.js} +4 -4
  36. package/dist/component-runtime/importPolicy.js +1 -1
  37. package/dist/component-runtime/render.js +2 -2
  38. package/dist/component-runtime.js +9 -3
  39. package/dist/compose.js +13 -13
  40. package/dist/composition/graphics-plan.js +3 -3
  41. package/dist/composition/projection.js +8 -8
  42. package/dist/composition.js +8 -8
  43. package/dist/mcp/server.js +1 -1
  44. package/dist/mcp.js +1 -1
  45. package/dist/primitives/effects.js +3 -3
  46. package/dist/primitives/layouts.js +2 -2
  47. package/dist/primitives/lib/index.js +2 -2
  48. package/dist/primitives/lib/tokens.js +2 -2
  49. package/dist/primitives/lib.js +2 -2
  50. package/dist/primitives/scenes.js +2 -2
  51. package/dist/primitives/ui-blocks.js +4 -4
  52. package/dist/primitives.js +11 -11
  53. package/dist/render-harness.js +7 -7
  54. package/package.json +15 -12
  55. package/dist/{chunk-B3GSTQLR.js → chunk-VLJOIUHL.js} +6 -6
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-EXY4JJPH.js";
10
10
  import {
11
11
  assertComponentImportsAllowed
12
- } from "./chunk-A74FZCPY.js";
12
+ } from "./chunk-5NGYBI5Z.js";
13
13
  import {
14
14
  assertComponentBrowserHardware,
15
15
  componentBrowserBackend,
@@ -188,6 +188,7 @@ async function installComponentRequestFirewall(browser, documentOrigin, allowedA
188
188
  return await closePromise;
189
189
  };
190
190
  const configureSession = async (client) => {
191
+ const assetRequests = /* @__PURE__ */ new Set();
191
192
  client.on("Fetch.requestPaused", (event) => {
192
193
  const decision = decideComponentRequest(
193
194
  event.request.url,
@@ -195,6 +196,12 @@ async function installComponentRequestFirewall(browser, documentOrigin, allowedA
195
196
  documentOrigin,
196
197
  allowedAssetOrigins
197
198
  );
199
+ if (decision.allow && event.networkId) {
200
+ try {
201
+ if (allowedAssetOrigins.has(new URL(event.request.url).origin)) assetRequests.add(event.networkId);
202
+ } catch {
203
+ }
204
+ }
198
205
  if (!decision.allow) {
199
206
  denied.push(event.request.url);
200
207
  let location = "invalid URL";
@@ -209,7 +216,12 @@ async function installComponentRequestFirewall(browser, documentOrigin, allowedA
209
216
  void action.catch(() => {
210
217
  });
211
218
  });
219
+ client.on("Network.loadingFinished", (event) => {
220
+ assetRequests.delete(event.requestId);
221
+ });
212
222
  client.on("Network.loadingFailed", (event) => {
223
+ const ownedAsset = assetRequests.delete(event.requestId);
224
+ if (ownedAsset && event.canceled === true && event.errorText === "net::ERR_ABORTED") return;
213
225
  onDiagnostic?.({ type: "request-failed", message: String(event.errorText ?? "request failed") });
214
226
  });
215
227
  client.on("Runtime.exceptionThrown", (event) => {
@@ -323,13 +335,35 @@ import { join as join2, relative } from "path";
323
335
  var LOCAL_ROOT_FILENAME = "Root.local.tsx";
324
336
  var LOCAL_ENTRY_FILENAME = "entry.local.tsx";
325
337
  var LOCAL_COMPOSITION_ID = "CueFrameLocalStill";
338
+ function createWebGlSurfaceMonitor(onLost) {
339
+ const listeners = /* @__PURE__ */ new Map();
340
+ return {
341
+ watch(canvas) {
342
+ if (listeners.has(canvas)) return;
343
+ const lost = () => {
344
+ if (canvas.isConnected) onLost();
345
+ };
346
+ listeners.set(canvas, lost);
347
+ canvas.addEventListener("webglcontextlost", lost);
348
+ },
349
+ dispose() {
350
+ for (const [canvas, lost] of listeners) canvas.removeEventListener("webglcontextlost", lost);
351
+ listeners.clear();
352
+ }
353
+ };
354
+ }
326
355
  function createLivePresentationRouter(callbacks) {
327
356
  let pending = null;
328
357
  let committedFrame = null;
329
358
  let presentedFrame = null;
330
359
  let presentedScene = null;
331
- const matches = (transport, actual) => transport.playing ? actual >= transport.frame : actual === transport.frame;
360
+ let acknowledgedFrame = null;
361
+ const matches = (transport, actual) => transport.playing ? actual !== acknowledgedFrame : actual === transport.frame;
332
362
  const sameRequest = (left, right) => left.sequence === right.sequence && left.frame === right.frame && left.playing === right.playing;
363
+ const acknowledge = (transport, actual) => {
364
+ acknowledgedFrame = actual;
365
+ callbacks.acknowledge(transport, actual);
366
+ };
333
367
  const route = () => {
334
368
  const transport = pending;
335
369
  if (transport === null || committedFrame === null || !matches(transport, committedFrame)) return;
@@ -338,7 +372,7 @@ function createLivePresentationRouter(callbacks) {
338
372
  if (scene !== null) {
339
373
  if (presentedScene === scene && presentedFrame !== null && matches(transport, presentedFrame)) {
340
374
  pending = null;
341
- callbacks.acknowledge(transport, presentedFrame);
375
+ acknowledge(transport, presentedFrame);
342
376
  }
343
377
  return;
344
378
  }
@@ -346,7 +380,7 @@ function createLivePresentationRouter(callbacks) {
346
380
  if (pending === null || !sameRequest(pending, transport) || callbacks.mediaTileScene() !== null || committedFrame === null || !matches(transport, committedFrame)) return;
347
381
  const acknowledged = pending;
348
382
  pending = null;
349
- callbacks.acknowledge(acknowledged, committed);
383
+ acknowledge(acknowledged, committed);
350
384
  });
351
385
  };
352
386
  return {
@@ -396,6 +430,7 @@ const importAuthoredComponent = async () => {
396
430
  };
397
431
 
398
432
  const hostFontFaces = ${JSON.stringify(fontFaces)};
433
+ const createWebGlSurfaceMonitor = ${createWebGlSurfaceMonitor.toString()};
399
434
  const hostFontCss = hostFontFaces.map((face) => {
400
435
  const url = face.url.startsWith('/') ? staticFile(face.url) : face.url;
401
436
  return '@font-face{font-family:' + JSON.stringify(face.family) + ';font-weight:' + face.weight +
@@ -463,6 +498,9 @@ export const CueFrameLocalComponent: React.FC<CueFrameComponentInput> = (input)
463
498
  getContext: (kind: string, ...args: unknown[]) => unknown;
464
499
  };
465
500
  const originalGetContext = canvasPrototype.getContext;
501
+ const glSurfaces = createWebGlSurfaceMonitor(() => {
502
+ if (!disposed) cancelRender(new Error(${JSON.stringify(BROWSER_RUNTIME_ERROR_PREFIX)} + 'component_device_lost:' + input.graphics.api + ' context was lost during component rendering.'));
503
+ });
466
504
 
467
505
  void (async () => {
468
506
  try {
@@ -488,7 +526,9 @@ export const CueFrameLocalComponent: React.FC<CueFrameComponentInput> = (input)
488
526
  throw new Error('A ' + requiredApi + '-required component may only create a ' + acceptedKinds.join('/') + ' canvas context.');
489
527
  }
490
528
  const context = originalGetContext.call(this, kind, ...args) as WebGLRenderingContext | WebGL2RenderingContext | null;
491
- if (!context || admitted) return context;
529
+ if (!context) return context;
530
+ glSurfaces.watch(this as HTMLCanvasElement);
531
+ if (admitted) return context;
492
532
  admitted = true;
493
533
  const rendererInfo = context.getExtension('WEBGL_debug_renderer_info');
494
534
  const adapterName = rendererInfo
@@ -500,9 +540,6 @@ export const CueFrameLocalComponent: React.FC<CueFrameComponentInput> = (input)
500
540
  console.info(${JSON.stringify(GRAPHICS_ATTESTATION_PREFIX)} + JSON.stringify({
501
541
  api: requiredApi, acceleration, adapterName: adapterName || undefined, deviceLost: false,
502
542
  }));
503
- this.addEventListener('webglcontextlost', () => {
504
- if (!disposed) cancelRender(new Error(${JSON.stringify(BROWSER_RUNTIME_ERROR_PREFIX)} + 'component_device_lost:' + requiredApi + ' context was lost during component rendering.'));
505
- }, {once: true});
506
543
  if (admissionTimer) clearTimeout(admissionTimer);
507
544
  continueRender(waitHandle as number);
508
545
  return context;
@@ -578,6 +615,7 @@ export const CueFrameLocalComponent: React.FC<CueFrameComponentInput> = (input)
578
615
  })();
579
616
  return () => {
580
617
  disposed = true;
618
+ glSurfaces.dispose();
581
619
  if (admissionTimer) clearTimeout(admissionTimer);
582
620
  canvasPrototype.getContext = originalGetContext;
583
621
  if (gpuPrototype && originalRequestAdapter) gpuPrototype.requestAdapter = originalRequestAdapter;
@@ -1,6 +1,6 @@
1
1
  // ../brand-derivation/src/constants.ts
2
- var DERIVATION_VERSION = 2;
3
- var FLOORS = { body: 75, nonBody: 60, headline: 45 };
2
+ var DERIVATION_VERSION = 3;
3
+ var FLOORS = { body: 7, nonBody: 4.5, headline: 3 };
4
4
  var NEUTRAL_RAMP = { onDark: "#FFFFFF", onLight: "#0A0A0A" };
5
5
 
6
6
  export {
@@ -43,7 +43,7 @@ import {
43
43
  makeDefaultScreenTexture,
44
44
  resolveCamera,
45
45
  useImageTexture
46
- } from "./chunk-NBCFNHST.js";
46
+ } from "./chunk-LQRW5UPR.js";
47
47
  import {
48
48
  DEVICE_GLASS_OPACITY_ENCODED,
49
49
  DeviceMesh,
@@ -148,6 +148,11 @@ Component \`tsxSource\` MUST follow the component contract v2:
148
148
  - Use normal static imports from the documented allowlist: React, Remotion, Three.js (WebGL and WebGPU/TSL),
149
149
  React Three Fiber/Drei, Remotion Three, and CueFrame animate helpers. Dynamic imports, URL imports,
150
150
  Node/Tauri modules, remote fetches, and arbitrary filesystem paths are refused.
151
+ - For embedded video, import \`MediaTileScene\` from \`@cueframe/animate\` and declare graphics.api
152
+ as \`webgl2\`. Pass declared asset bindings as \`streams: { hero: { asset: assets.hero } }\` and
153
+ place them with \`tiles: [{ stream: 'hero', x: 0, y: 0, width, height }]\`. Stream timing uses
154
+ \`trimBeforeFrames\`, \`trimAfterFrames\`, \`playbackRate\`, and \`loop\`. Direct Remotion Video/Audio
155
+ imports and raw video/audio elements are refused; put audio on composition audio tracks.
151
156
  - Ordinary React hooks, loops, classes, constructors, refs, typed arrays, canvas, and WebGPU are valid.
152
157
  - Declare every media input in \`componentManifest.assets\` and bind it by project media id in
153
158
  \`componentAssets\`. Read only the matching \`assets[name].handle\`; undeclared or missing assets fail.
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-W2245F6G.js";
25
25
  import {
26
26
  FlexLayout
27
- } from "./chunk-NBCFNHST.js";
27
+ } from "./chunk-LQRW5UPR.js";
28
28
 
29
29
  // ../execution/primitives/src/layouts/chat-to-preview-layout/index.tsx
30
30
  import { Easing, interpolate, useCurrentFrame, useVideoConfig } from "remotion";
@@ -1,9 +1,9 @@
1
- import {
2
- FitText
3
- } from "./chunk-XHGZ2E77.js";
4
1
  import {
5
2
  EASING_BY_INTENT
6
3
  } from "./chunk-MFHXCHRI.js";
4
+ import {
5
+ FitText
6
+ } from "./chunk-XHGZ2E77.js";
7
7
  import {
8
8
  ACCENT,
9
9
  ACCENT_STRONG,
@@ -26,7 +26,7 @@ import {
26
26
  perspectiveFor,
27
27
  resolveCamera,
28
28
  useStage
29
- } from "./chunk-NBCFNHST.js";
29
+ } from "./chunk-LQRW5UPR.js";
30
30
 
31
31
  // ../execution/primitives/src/effects/blur/index.tsx
32
32
  import React2 from "react";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  COMPONENT_IMPORT_ALLOWLIST,
3
3
  assertComponentImportsAllowed
4
- } from "../chunk-A74FZCPY.js";
4
+ } from "../chunk-5NGYBI5Z.js";
5
5
  import "../chunk-ZVG446DJ.js";
6
6
  import "../chunk-2ESYSVXG.js";
7
7
  export {
@@ -26,11 +26,11 @@ import {
26
26
  stagedBrowserLocator,
27
27
  verifyLocalStagedBrowser,
28
28
  vp9AlphaFfmpegOverride
29
- } from "../chunk-RSEN7JYE.js";
29
+ } from "../chunk-QWIK3HKM.js";
30
30
  import "../chunk-WB2VFDQZ.js";
31
31
  import "../chunk-EXY4JJPH.js";
32
32
  import "../chunk-DAARYRNT.js";
33
- import "../chunk-A74FZCPY.js";
33
+ import "../chunk-5NGYBI5Z.js";
34
34
  import "../chunk-C5MPFJCD.js";
35
35
  import "../chunk-ZVG446DJ.js";
36
36
  import "../chunk-KKV5U5EA.js";
@@ -1,13 +1,16 @@
1
1
  import {
2
2
  assertAssetBindingsMatch,
3
3
  assertComponentOutputProbe,
4
+ assertSourceReadsDeclaredAssets,
4
5
  bakeComponentAlphaV2,
5
6
  bakeOpacityContradictsPolicy,
7
+ missingDeclaredAssetHandleReads,
6
8
  parseAlphaOpaqueFractions,
9
+ sourceAssetHandleReads,
7
10
  sourceIdentityForBake,
8
11
  startComponentAssetServer,
9
12
  verifyComponentOutput
10
- } from "./chunk-2KO5EQQS.js";
13
+ } from "./chunk-HA4S2ZGH.js";
11
14
  import {
12
15
  COMPONENT_MEDIA_HEADROOM,
13
16
  COMPONENT_MEDIA_TIERS,
@@ -52,7 +55,7 @@ import {
52
55
  stagedBrowserLocator,
53
56
  verifyLocalStagedBrowser,
54
57
  vp9AlphaFfmpegOverride
55
- } from "./chunk-RSEN7JYE.js";
58
+ } from "./chunk-QWIK3HKM.js";
56
59
  import "./chunk-WB2VFDQZ.js";
57
60
  import {
58
61
  bundleIdentityFields,
@@ -68,7 +71,7 @@ import {
68
71
  import {
69
72
  COMPONENT_IMPORT_ALLOWLIST,
70
73
  assertComponentImportsAllowed
71
- } from "./chunk-A74FZCPY.js";
74
+ } from "./chunk-5NGYBI5Z.js";
72
75
  import {
73
76
  HALF_FLOAT_COLOR_TARGET_EXTENSIONS,
74
77
  admittedHost,
@@ -189,6 +192,7 @@ export {
189
192
  assertRendererReceiptMatches,
190
193
  assertSceneShotCapabilitySupported,
191
194
  assertSceneShotParamsAdmitted,
195
+ assertSourceReadsDeclaredAssets,
192
196
  authoredComponentProps,
193
197
  bakeComponentAlphaV2,
194
198
  bakeOpacityContradictsPolicy,
@@ -209,6 +213,7 @@ export {
209
213
  installComponentRequestFirewall,
210
214
  installLocalLaneWindowSizer,
211
215
  materializeComponentSource,
216
+ missingDeclaredAssetHandleReads,
212
217
  parseAlphaOpaqueFractions,
213
218
  parseGraphicsAttestationLog,
214
219
  planComponentMediaRepresentation,
@@ -225,6 +230,7 @@ export {
225
230
  sha256Hex,
226
231
  shouldIsolateWebGpuStillBrowser,
227
232
  sizeLocalLaneWindows,
233
+ sourceAssetHandleReads,
228
234
  sourceIdentityForBake,
229
235
  sourceVersionId,
230
236
  stagedBrowserLocator,
package/dist/compose.js CHANGED
@@ -4,7 +4,10 @@ import "./chunk-ZZRBKGDA.js";
4
4
  import "./chunk-GULDS3VE.js";
5
5
  import {
6
6
  isContrastCritical
7
- } from "./chunk-YLDMAZZE.js";
7
+ } from "./chunk-QDBVYZSF.js";
8
+ import {
9
+ catalog as catalog7
10
+ } from "./chunk-WTGUORWJ.js";
8
11
  import {
9
12
  catalog
10
13
  } from "./chunk-ZS3A3QUM.js";
@@ -13,15 +16,19 @@ import "./chunk-DLF4WVSE.js";
13
16
  import {
14
17
  catalog as catalog3
15
18
  } from "./chunk-FVDFPJHT.js";
19
+ import "./chunk-QGAWDLYX.js";
16
20
  import {
17
21
  catalog as catalog6
18
- } from "./chunk-B3GSTQLR.js";
22
+ } from "./chunk-VLJOIUHL.js";
23
+ import "./chunk-S5H6GH6M.js";
24
+ import "./chunk-QAGGJHAF.js";
19
25
  import {
20
26
  catalog as catalog5
21
27
  } from "./chunk-RAXHCRVV.js";
22
28
  import {
23
29
  catalog as catalog2
24
- } from "./chunk-JAVKDXRY.js";
30
+ } from "./chunk-ZFI3N2ID.js";
31
+ import "./chunk-MFHXCHRI.js";
25
32
  import {
26
33
  catalog as catalog8
27
34
  } from "./chunk-RL5SO653.js";
@@ -30,17 +37,10 @@ import "./chunk-FWSJLHSV.js";
30
37
  import "./chunk-ZFEXATWN.js";
31
38
  import {
32
39
  catalog as catalog4
33
- } from "./chunk-C2C4AVGL.js";
40
+ } from "./chunk-YROOHMJG.js";
34
41
  import "./chunk-XHGZ2E77.js";
35
- import {
36
- catalog as catalog7
37
- } from "./chunk-3HYJ7O5V.js";
38
- import "./chunk-QGAWDLYX.js";
39
- import "./chunk-S5H6GH6M.js";
40
- import "./chunk-QAGGJHAF.js";
41
- import "./chunk-MFHXCHRI.js";
42
42
  import "./chunk-W2245F6G.js";
43
- import "./chunk-NBCFNHST.js";
43
+ import "./chunk-LQRW5UPR.js";
44
44
  import "./chunk-77TLECRC.js";
45
45
  import {
46
46
  getPrimitiveSubtextParam,
@@ -50,7 +50,7 @@ import {
50
50
  } from "./chunk-7AZLFN26.js";
51
51
  import {
52
52
  NEUTRAL_RAMP
53
- } from "./chunk-JF4JJAFP.js";
53
+ } from "./chunk-VG2ND6PX.js";
54
54
  import {
55
55
  CueframeError,
56
56
  encodeError
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  placeInLegalArea,
3
3
  resolveBrandRefsDeep
4
- } from "../chunk-6VWICHOZ.js";
5
- import "../chunk-DSMLHYJ4.js";
6
- import "../chunk-JF4JJAFP.js";
4
+ } from "../chunk-O7G2NXUJ.js";
5
+ import "../chunk-ILO4NEZ3.js";
6
+ import "../chunk-VG2ND6PX.js";
7
7
  import {
8
8
  ContentBeat,
9
9
  ContentPlan,
@@ -32,12 +32,12 @@ import {
32
32
  silhouetteKeepOutForWindow,
33
33
  sourceRectToOutput,
34
34
  sourceWindowKey
35
- } from "../chunk-YH4MCHMS.js";
35
+ } from "../chunk-C4P4NC66.js";
36
36
  import {
37
37
  BRAND_TOKEN_REFS,
38
38
  BRAND_TOKEN_ROOT_KEYS,
39
39
  CAPTION_BOTTOM_INSET,
40
- CAPTION_LC_FLOOR,
40
+ CAPTION_CONTRAST_FLOOR,
41
41
  COVIEW_MAX_BAND_COVERAGE,
42
42
  COVIEW_MAX_SILHOUETTE_W,
43
43
  COVIEW_MIN_BAND_COVERAGE,
@@ -69,11 +69,11 @@ import {
69
69
  resolveLayoutIntent,
70
70
  resolveOverlayRegion,
71
71
  unionFaceKeepOutSeries
72
- } from "../chunk-6VWICHOZ.js";
72
+ } from "../chunk-O7G2NXUJ.js";
73
73
  import {
74
- apcaLc
75
- } from "../chunk-DSMLHYJ4.js";
76
- import "../chunk-JF4JJAFP.js";
74
+ contrastRatio
75
+ } from "../chunk-ILO4NEZ3.js";
76
+ import "../chunk-VG2ND6PX.js";
77
77
  import "../chunk-J3DIUG24.js";
78
78
  import "../chunk-TARKDVP6.js";
79
79
  import "../chunk-2ESYSVXG.js";
@@ -84,7 +84,7 @@ export {
84
84
  BRAND_TOKEN_ROOT_KEYS,
85
85
  BUDGET,
86
86
  CAPTION_BOTTOM_INSET,
87
- CAPTION_LC_FLOOR,
87
+ CAPTION_CONTRAST_FLOOR,
88
88
  CARD_MOTION_VAR_NAMES,
89
89
  COVIEW_MAX_BAND_COVERAGE,
90
90
  COVIEW_MAX_SILHOUETTE_W,
@@ -99,7 +99,6 @@ export {
99
99
  SAFE_ZONE_PROFILE_VERSION,
100
100
  SILHOUETTE_TO_KEEPOUT_W,
101
101
  activeFaceKeepOutSeries,
102
- apcaLc,
103
102
  behindReadinessForOverlay,
104
103
  behindReadinessForTarget,
105
104
  behindWindowsOf,
@@ -113,6 +112,7 @@ export {
113
112
  colorMix,
114
113
  componentBrandPalette,
115
114
  computeCropTransform,
115
+ contrastRatio,
116
116
  cssLayoutVars,
117
117
  decideLegibility,
118
118
  deriveBehindAnchor,
@@ -46,12 +46,12 @@ import {
46
46
  silhouetteKeepOutForWindow,
47
47
  sourceRectToOutput,
48
48
  sourceWindowKey
49
- } from "./chunk-YH4MCHMS.js";
49
+ } from "./chunk-C4P4NC66.js";
50
50
  import {
51
51
  BRAND_TOKEN_REFS,
52
52
  BRAND_TOKEN_ROOT_KEYS,
53
53
  CAPTION_BOTTOM_INSET,
54
- CAPTION_LC_FLOOR,
54
+ CAPTION_CONTRAST_FLOOR,
55
55
  COVIEW_MAX_BAND_COVERAGE,
56
56
  COVIEW_MAX_SILHOUETTE_W,
57
57
  COVIEW_MIN_BAND_COVERAGE,
@@ -83,11 +83,11 @@ import {
83
83
  resolveLayoutIntent,
84
84
  resolveOverlayRegion,
85
85
  unionFaceKeepOutSeries
86
- } from "./chunk-6VWICHOZ.js";
86
+ } from "./chunk-O7G2NXUJ.js";
87
87
  import {
88
- apcaLc
89
- } from "./chunk-DSMLHYJ4.js";
90
- import "./chunk-JF4JJAFP.js";
88
+ contrastRatio
89
+ } from "./chunk-ILO4NEZ3.js";
90
+ import "./chunk-VG2ND6PX.js";
91
91
  import {
92
92
  InvariantError,
93
93
  checkClipDurationMatchesTrim,
@@ -296,7 +296,7 @@ export {
296
296
  BUDGET,
297
297
  BrandKit,
298
298
  CAPTION_BOTTOM_INSET,
299
- CAPTION_LC_FLOOR,
299
+ CAPTION_CONTRAST_FLOOR,
300
300
  CARD_MOTION_VAR_NAMES,
301
301
  COVIEW_MAX_BAND_COVERAGE,
302
302
  COVIEW_MAX_SILHOUETTE_W,
@@ -391,7 +391,6 @@ export {
391
391
  WebhookDestination,
392
392
  YoutubeDestination,
393
393
  activeFaceKeepOutSeries,
394
- apcaLc,
395
394
  behindReadinessForOverlay,
396
395
  behindReadinessForTarget,
397
396
  behindWindowsOf,
@@ -423,6 +422,7 @@ export {
423
422
  componentBrandPalette,
424
423
  compositionDuration,
425
424
  computeCropTransform,
425
+ contrastRatio,
426
426
  cssLayoutVars,
427
427
  decideLegibility,
428
428
  deriveBehindAnchor,
@@ -7,7 +7,7 @@ import {
7
7
  registerRawTools,
8
8
  registerSkillPrompts,
9
9
  titleCase
10
- } from "../chunk-EWABZ72N.js";
10
+ } from "../chunk-XMAA2HYI.js";
11
11
  import "../chunk-3V75A6UH.js";
12
12
  import "../chunk-TECEMBCI.js";
13
13
  import "../chunk-NNMXLNOI.js";
package/dist/mcp.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  buildServer,
8
8
  registerCuratedTools,
9
9
  registerRawTools
10
- } from "./chunk-EWABZ72N.js";
10
+ } from "./chunk-XMAA2HYI.js";
11
11
  import "./chunk-3V75A6UH.js";
12
12
  import "./chunk-TECEMBCI.js";
13
13
  import "./chunk-NNMXLNOI.js";
@@ -12,11 +12,11 @@ import {
12
12
  Vignette,
13
13
  catalog,
14
14
  laneDepths
15
- } from "../chunk-JAVKDXRY.js";
16
- import "../chunk-XHGZ2E77.js";
15
+ } from "../chunk-ZFI3N2ID.js";
17
16
  import "../chunk-MFHXCHRI.js";
17
+ import "../chunk-XHGZ2E77.js";
18
18
  import "../chunk-W2245F6G.js";
19
- import "../chunk-NBCFNHST.js";
19
+ import "../chunk-LQRW5UPR.js";
20
20
  import "../chunk-77TLECRC.js";
21
21
  import "../chunk-KKV5U5EA.js";
22
22
  import "../chunk-2L7PYYJK.js";
@@ -8,10 +8,10 @@ import {
8
8
  SplitScreen,
9
9
  StaggeredBentoGrid,
10
10
  catalog
11
- } from "../chunk-C2C4AVGL.js";
11
+ } from "../chunk-YROOHMJG.js";
12
12
  import "../chunk-XHGZ2E77.js";
13
13
  import "../chunk-W2245F6G.js";
14
- import "../chunk-NBCFNHST.js";
14
+ import "../chunk-LQRW5UPR.js";
15
15
  import "../chunk-77TLECRC.js";
16
16
  import "../chunk-KKV5U5EA.js";
17
17
  import "../chunk-2L7PYYJK.js";
@@ -23,7 +23,7 @@ import {
23
23
  lintBrandPath,
24
24
  resolveParams,
25
25
  resolveTokenValue
26
- } from "../../chunk-YLDMAZZE.js";
26
+ } from "../../chunk-QDBVYZSF.js";
27
27
  import {
28
28
  FRAME_BASELINE_WIDTH,
29
29
  frameScale,
@@ -46,7 +46,7 @@ import {
46
46
  } from "../../chunk-W2245F6G.js";
47
47
  import {
48
48
  NEUTRAL_RAMP
49
- } from "../../chunk-JF4JJAFP.js";
49
+ } from "../../chunk-VG2ND6PX.js";
50
50
  import "../../chunk-2ESYSVXG.js";
51
51
  export {
52
52
  ALLOWED_BRAND_PATHS,
@@ -8,8 +8,8 @@ import {
8
8
  lintBrandPath,
9
9
  resolveParams,
10
10
  resolveTokenValue
11
- } from "../../chunk-YLDMAZZE.js";
12
- import "../../chunk-JF4JJAFP.js";
11
+ } from "../../chunk-QDBVYZSF.js";
12
+ import "../../chunk-VG2ND6PX.js";
13
13
  import "../../chunk-2ESYSVXG.js";
14
14
  export {
15
15
  ALLOWED_BRAND_PATHS,
@@ -23,7 +23,7 @@ import {
23
23
  lintBrandPath,
24
24
  resolveParams,
25
25
  resolveTokenValue
26
- } from "../chunk-YLDMAZZE.js";
26
+ } from "../chunk-QDBVYZSF.js";
27
27
  import {
28
28
  FRAME_BASELINE_WIDTH,
29
29
  frameScale,
@@ -46,7 +46,7 @@ import {
46
46
  } from "../chunk-W2245F6G.js";
47
47
  import {
48
48
  NEUTRAL_RAMP
49
- } from "../chunk-JF4JJAFP.js";
49
+ } from "../chunk-VG2ND6PX.js";
50
50
  import "../chunk-2ESYSVXG.js";
51
51
  export {
52
52
  ALLOWED_BRAND_PATHS,
@@ -8,13 +8,13 @@ import {
8
8
  ProductLaunchTrailer,
9
9
  TerminalToBrowserDeploy,
10
10
  catalog
11
- } from "../chunk-3HYJ7O5V.js";
11
+ } from "../chunk-WTGUORWJ.js";
12
12
  import "../chunk-QGAWDLYX.js";
13
13
  import "../chunk-S5H6GH6M.js";
14
14
  import "../chunk-QAGGJHAF.js";
15
15
  import "../chunk-MFHXCHRI.js";
16
16
  import "../chunk-W2245F6G.js";
17
- import "../chunk-NBCFNHST.js";
17
+ import "../chunk-LQRW5UPR.js";
18
18
  import "../chunk-77TLECRC.js";
19
19
  import "../chunk-KKV5U5EA.js";
20
20
  import "../chunk-2L7PYYJK.js";
@@ -30,14 +30,14 @@ import {
30
30
  VisualDocsSnippet,
31
31
  VoiceWaveform,
32
32
  catalog
33
- } from "../chunk-B3GSTQLR.js";
34
- import "../chunk-LT4PWSR2.js";
35
- import "../chunk-FWSJLHSV.js";
36
- import "../chunk-XHGZ2E77.js";
33
+ } from "../chunk-VLJOIUHL.js";
37
34
  import {
38
35
  DashboardPopulate
39
36
  } from "../chunk-S5H6GH6M.js";
40
37
  import "../chunk-QAGGJHAF.js";
38
+ import "../chunk-LT4PWSR2.js";
39
+ import "../chunk-FWSJLHSV.js";
40
+ import "../chunk-XHGZ2E77.js";
41
41
  import "../chunk-W2245F6G.js";
42
42
  import "../chunk-2ESYSVXG.js";
43
43
  export {
@@ -1,3 +1,6 @@
1
+ import {
2
+ catalog as catalog7
3
+ } from "./chunk-WTGUORWJ.js";
1
4
  import {
2
5
  catalog
3
6
  } from "./chunk-ZS3A3QUM.js";
@@ -6,15 +9,19 @@ import "./chunk-DLF4WVSE.js";
6
9
  import {
7
10
  catalog as catalog3
8
11
  } from "./chunk-FVDFPJHT.js";
12
+ import "./chunk-QGAWDLYX.js";
9
13
  import {
10
14
  catalog as catalog6
11
- } from "./chunk-B3GSTQLR.js";
15
+ } from "./chunk-VLJOIUHL.js";
16
+ import "./chunk-S5H6GH6M.js";
17
+ import "./chunk-QAGGJHAF.js";
12
18
  import {
13
19
  catalog as catalog5
14
20
  } from "./chunk-RAXHCRVV.js";
15
21
  import {
16
22
  catalog as catalog2
17
- } from "./chunk-JAVKDXRY.js";
23
+ } from "./chunk-ZFI3N2ID.js";
24
+ import "./chunk-MFHXCHRI.js";
18
25
  import {
19
26
  catalog as catalog8
20
27
  } from "./chunk-RL5SO653.js";
@@ -23,17 +30,10 @@ import "./chunk-FWSJLHSV.js";
23
30
  import "./chunk-ZFEXATWN.js";
24
31
  import {
25
32
  catalog as catalog4
26
- } from "./chunk-C2C4AVGL.js";
33
+ } from "./chunk-YROOHMJG.js";
27
34
  import "./chunk-XHGZ2E77.js";
28
- import {
29
- catalog as catalog7
30
- } from "./chunk-3HYJ7O5V.js";
31
- import "./chunk-QGAWDLYX.js";
32
- import "./chunk-S5H6GH6M.js";
33
- import "./chunk-QAGGJHAF.js";
34
- import "./chunk-MFHXCHRI.js";
35
35
  import "./chunk-W2245F6G.js";
36
- import "./chunk-NBCFNHST.js";
36
+ import "./chunk-LQRW5UPR.js";
37
37
  import "./chunk-77TLECRC.js";
38
38
  import "./chunk-KKV5U5EA.js";
39
39
  import "./chunk-2L7PYYJK.js";