@cueframe/kernel 0.2.11 → 0.2.12

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.
@@ -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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"}
@@ -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,
@@ -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;
@@ -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}`
@@ -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
 
@@ -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,
@@ -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.12",
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",
22
+ "@cueframe/cloud-import": "0.1.0",
23
23
  "@cueframe/compose": "0.1.0",
24
+ "@cueframe/authoring": "0.1.0",
25
+ "@cueframe/brand-derivation": "0.1.0",
26
+ "@cueframe/composition-ops": "0.1.0",
24
27
  "@cueframe/composition": "0.1.0",
25
28
  "@cueframe/component-runtime": "0.1.0",
29
+ "@cueframe/errors": "0.1.0",
26
30
  "@cueframe/core": "0.1.0",
27
- "@cueframe/cloud-import": "0.1.0",
28
- "@cueframe/authoring": "0.1.0",
29
- "@cueframe/composition-ops": "0.1.0",
30
- "@cueframe/media-model": "0.1.0",
31
- "@cueframe/plane": "0.1.0",
32
31
  "@cueframe/director": "0.1.0",
33
- "@cueframe/foundation": "0.1.0",
34
- "@cueframe/render-harness": "0.1.0",
35
32
  "@cueframe/mcp": "0.1.0",
36
- "@cueframe/errors": "0.1.0",
33
+ "@cueframe/nle-export": "0.1.0",
37
34
  "@cueframe/perception": "0.1.0",
35
+ "@cueframe/plane": "0.1.0",
36
+ "@cueframe/media-model": "0.1.0",
37
+ "@cueframe/render-harness": "0.1.0",
38
38
  "@cueframe/primitives": "0.1.0",
39
- "@cueframe/nle-export": "0.1.0"
39
+ "@cueframe/foundation": "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"}