@cueframe/kernel 0.2.35 → 0.2.36

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.
@@ -555,6 +555,7 @@ __export(zod_exports, {
555
555
  previewFrameJobBodyJpegQualityMax: () => previewFrameJobBodyJpegQualityMax2,
556
556
  previewFrameJobBodyScaleMax: () => previewFrameJobBodyScaleMax2,
557
557
  previewFrameJobBodyScaleMin: () => previewFrameJobBodyScaleMin2,
558
+ previewFrameJobBodyTimestampsMax: () => previewFrameJobBodyTimestampsMax2,
558
559
  previewFrameJobParams: () => PreviewFrameJobParams,
559
560
  previewFrameJobResponse: () => PreviewFrameJobResponse,
560
561
  previewSelectorBody: () => PreviewSelectorBody,
@@ -7603,6 +7604,7 @@ var PreviewComponentBody = zod146.strictObject({
7603
7604
 
7604
7605
  // ../sdk/src/generated/zod/models/previewFrameJobBody.zod.ts
7605
7606
  import * as zod147 from "zod";
7607
+ var previewFrameJobBodyTimestampsMax = 18;
7606
7608
  var previewFrameJobBodyScaleMin = 0.1;
7607
7609
  var previewFrameJobBodyScaleMax = 1;
7608
7610
  var previewFrameJobBodyJpegQualityMax = 100;
@@ -7610,7 +7612,7 @@ var PreviewFrameJobBody = zod147.strictObject({
7610
7612
  "composition": zod147.unknown().optional().describe("The composition to render. Absent \u21D2 the project's ACTIVE composition \u2014 what create_render will encode. The response's `previewed.source` names what was rendered."),
7611
7613
  "compositionId": zod147.string().optional().describe("Preview a SPECIFIC persisted composition of this project (create_render parity). Absent \u21D2 the active one. A stale/foreign id is a 404 \u2014 never a silent fall-through."),
7612
7614
  "session_id": zod147.string().optional().describe("Compose-session id: render that session's SCRATCH composition (what the session has been editing) instead of the active row. Ignored when `composition` is passed."),
7613
- "timestamps": zod147.array(zod147.number()).min(1),
7615
+ "timestamps": zod147.array(zod147.number()).min(1).max(previewFrameJobBodyTimestampsMax).describe("Composition seconds to capture, 18 per request. The batch renders as ONE unit of work \u2014 one warm container, one source decode, N seeks \u2014 and that unit has a fixed time budget, so a larger batch is refused here rather than accepted and timed out minutes later. For a denser sweep, split it across calls; identical beats are served from the still cache, so overlapping batches are cheap."),
7614
7616
  "imageFormat": zod147.enum(["png", "jpeg"]).optional().describe("Still format. Default jpeg \u2014 these pixels go to a vision model, where jpeg is equivalent and png costs multiples in bytes to store and move. Pass png only when you need full fidelity."),
7615
7617
  "scale": zod147.number().min(previewFrameJobBodyScaleMin).max(previewFrameJobBodyScaleMax).optional().describe("Render scale 0.1\u20131. Default 0.5, which is what this schema has always recommended for vision-bound looks. Pass 1 when judging fine detail \u2014 it costs ~4x the vision tokens."),
7616
7618
  "jpegQuality": zod147.int().min(1).max(previewFrameJobBodyJpegQualityMax).optional().describe("JPEG quality (jpeg only). Default 70 \u2014 the quality the eval panel grades at.")
@@ -8864,6 +8866,7 @@ var ScoreCompositionResponse = JobEnqueueResponse;
8864
8866
  var PreviewFrameJobParams = zod224.object({
8865
8867
  "id": zod224.string()
8866
8868
  });
8869
+ var previewFrameJobBodyTimestampsMax2 = 18;
8867
8870
  var previewFrameJobBodyScaleMin2 = 0.1;
8868
8871
  var previewFrameJobBodyScaleMax2 = 1;
8869
8872
  var previewFrameJobBodyJpegQualityMax2 = 100;
@@ -8871,7 +8874,7 @@ var PreviewFrameJobBody2 = zod224.strictObject({
8871
8874
  "composition": zod224.unknown().optional().describe("The composition to render. Absent \u21D2 the project's ACTIVE composition \u2014 what create_render will encode. The response's `previewed.source` names what was rendered."),
8872
8875
  "compositionId": zod224.string().optional().describe("Preview a SPECIFIC persisted composition of this project (create_render parity). Absent \u21D2 the active one. A stale/foreign id is a 404 \u2014 never a silent fall-through."),
8873
8876
  "session_id": zod224.string().optional().describe("Compose-session id: render that session's SCRATCH composition (what the session has been editing) instead of the active row. Ignored when `composition` is passed."),
8874
- "timestamps": zod224.array(zod224.number()).min(1),
8877
+ "timestamps": zod224.array(zod224.number()).min(1).max(previewFrameJobBodyTimestampsMax2).describe("Composition seconds to capture, 18 per request. The batch renders as ONE unit of work \u2014 one warm container, one source decode, N seeks \u2014 and that unit has a fixed time budget, so a larger batch is refused here rather than accepted and timed out minutes later. For a denser sweep, split it across calls; identical beats are served from the still cache, so overlapping batches are cheap."),
8875
8878
  "imageFormat": zod224.enum(["png", "jpeg"]).optional().describe("Still format. Default jpeg \u2014 these pixels go to a vision model, where jpeg is equivalent and png costs multiples in bytes to store and move. Pass png only when you need full fidelity."),
8876
8879
  "scale": zod224.number().min(previewFrameJobBodyScaleMin2).max(previewFrameJobBodyScaleMax2).optional().describe("Render scale 0.1\u20131. Default 0.5, which is what this schema has always recommended for vision-bound looks. Pass 1 when judging fine detail \u2014 it costs ~4x the vision tokens."),
8877
8880
  "jpegQuality": zod224.int().min(1).max(previewFrameJobBodyJpegQualityMax2).optional().describe("JPEG quality (jpeg only). Default 70 \u2014 the quality the eval panel grades at.")
@@ -2,7 +2,7 @@ import {
2
2
  querySchemaShape,
3
3
  serializeQuery,
4
4
  waitForJob
5
- } from "./chunk-YOE5Y2SJ.js";
5
+ } from "./chunk-ZBQQFAE7.js";
6
6
  import {
7
7
  CURATED_TOOLS
8
8
  } from "./chunk-5YO4LAB7.js";
@@ -23,7 +23,7 @@ import {
23
23
  text,
24
24
  textWithData,
25
25
  withMedia
26
- } from "./chunk-ANNB4VC6.js";
26
+ } from "./chunk-F2HXB6RG.js";
27
27
 
28
28
  // ../mcp/src/prompts.ts
29
29
  var skillListCache = null;
@@ -5,7 +5,7 @@ import {
5
5
  isOk,
6
6
  opById,
7
7
  safeParse
8
- } from "./chunk-ANNB4VC6.js";
8
+ } from "./chunk-F2HXB6RG.js";
9
9
 
10
10
  // ../mcp/src/wait.ts
11
11
  var defaultSleep = (ms) => new Promise((r) => setTimeout(r, ms));
package/dist/compose.js CHANGED
@@ -5,39 +5,39 @@ import {
5
5
  } from "./chunk-QDBVYZSF.js";
6
6
  import "./chunk-JQMPHKLU.js";
7
7
  import "./chunk-ZZRBKGDA.js";
8
- import {
9
- catalog as catalog4
10
- } from "./chunk-JRJQECCF.js";
11
- import {
12
- catalog as catalog7
13
- } from "./chunk-TE3PNQG6.js";
14
- import {
15
- catalog
16
- } from "./chunk-RBWS5XHE.js";
17
- import "./chunk-DLF4WVSE.js";
18
- import "./chunk-U4V4FZGE.js";
19
8
  import {
20
9
  catalog as catalog3
21
10
  } from "./chunk-FVDFPJHT.js";
22
- import "./chunk-QGAWDLYX.js";
23
11
  import {
24
12
  catalog as catalog6
25
13
  } from "./chunk-VLJOIUHL.js";
26
- import "./chunk-S5H6GH6M.js";
27
- import "./chunk-QAGGJHAF.js";
28
- import {
29
- catalog as catalog5
30
- } from "./chunk-RAXHCRVV.js";
31
14
  import {
32
15
  catalog as catalog2
33
16
  } from "./chunk-WAUVKF2F.js";
34
- import "./chunk-MFHXCHRI.js";
35
17
  import {
36
18
  catalog as catalog8
37
19
  } from "./chunk-RL5SO653.js";
20
+ import {
21
+ catalog as catalog4
22
+ } from "./chunk-JRJQECCF.js";
23
+ import {
24
+ catalog as catalog7
25
+ } from "./chunk-TE3PNQG6.js";
26
+ import "./chunk-QGAWDLYX.js";
27
+ import "./chunk-S5H6GH6M.js";
28
+ import "./chunk-QAGGJHAF.js";
29
+ import "./chunk-MFHXCHRI.js";
30
+ import {
31
+ catalog
32
+ } from "./chunk-RBWS5XHE.js";
33
+ import "./chunk-DLF4WVSE.js";
34
+ import "./chunk-U4V4FZGE.js";
38
35
  import "./chunk-LT4PWSR2.js";
39
36
  import "./chunk-FWSJLHSV.js";
40
37
  import "./chunk-ZFEXATWN.js";
38
+ import {
39
+ catalog as catalog5
40
+ } from "./chunk-RAXHCRVV.js";
41
41
  import "./chunk-XHGZ2E77.js";
42
42
  import "./chunk-W2245F6G.js";
43
43
  import "./chunk-JBWSK2YD.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  playableSpans
3
- } from "./chunk-L5XECASW.js";
3
+ } from "./chunk-UOYKFFFK.js";
4
4
  import "./chunk-QH3YI3ND.js";
5
5
  import "./chunk-QISFYLBB.js";
6
- import "./chunk-VZ7TYX6Z.js";
7
6
  import "./chunk-IYZEK6WY.js";
7
+ import "./chunk-VZ7TYX6Z.js";
8
8
  import "./chunk-DENF4TPI.js";
9
9
  import {
10
10
  createHeadlessStore,
@@ -66,15 +66,15 @@ import {
66
66
  sliceTranscriptWords,
67
67
  splitIntoSentences,
68
68
  validateComposition
69
- } from "../chunk-L5XECASW.js";
69
+ } from "../chunk-UOYKFFFK.js";
70
70
  import {
71
71
  buildEasedZooms,
72
72
  buildPannedCenters,
73
73
  easeOutCubic
74
74
  } from "../chunk-QH3YI3ND.js";
75
75
  import "../chunk-QISFYLBB.js";
76
- import "../chunk-VZ7TYX6Z.js";
77
76
  import "../chunk-IYZEK6WY.js";
77
+ import "../chunk-VZ7TYX6Z.js";
78
78
  import "../chunk-DENF4TPI.js";
79
79
  import "../chunk-KYRDKK2D.js";
80
80
  import "../chunk-WREYUH2E.js";
package/dist/core.js CHANGED
@@ -10,11 +10,11 @@ import {
10
10
  ensureEven,
11
11
  extractCaptionWordsFromDoc,
12
12
  isEmphasized
13
- } from "./chunk-L5XECASW.js";
13
+ } from "./chunk-UOYKFFFK.js";
14
14
  import "./chunk-QH3YI3ND.js";
15
15
  import "./chunk-QISFYLBB.js";
16
- import "./chunk-VZ7TYX6Z.js";
17
16
  import "./chunk-IYZEK6WY.js";
17
+ import "./chunk-VZ7TYX6Z.js";
18
18
  import "./chunk-DENF4TPI.js";
19
19
  import "./chunk-KYRDKK2D.js";
20
20
  import "./chunk-WREYUH2E.js";
@@ -2,7 +2,7 @@ import {
2
2
  querySchemaShape,
3
3
  serializeQuery,
4
4
  waitForJob
5
- } from "../chunk-YOE5Y2SJ.js";
5
+ } from "../chunk-ZBQQFAE7.js";
6
6
  import {
7
7
  CURATED_TOOLS
8
8
  } from "../chunk-5YO4LAB7.js";
@@ -16,7 +16,7 @@ import {
16
16
  opById,
17
17
  safeParse,
18
18
  sniffImageMediaType
19
- } from "../chunk-ANNB4VC6.js";
19
+ } from "../chunk-F2HXB6RG.js";
20
20
  import "../chunk-2ESYSVXG.js";
21
21
 
22
22
  // ../mcp/src/adapter.ts
@@ -29,7 +29,7 @@ var INTERNAL_LOOP_TOOLS = [
29
29
  name: "render_frame",
30
30
  operationId: "previewFrameJob",
31
31
  pathArgs: { projectId: "id" },
32
- description: "Queue durable stills of the WHOLE composition, then wait for the job and return the images. `body.timestamps` is an array of clip-relative SECONDS: pass EVERY beat you want to inspect in ONE call \u2014 a call is flat-cost and one budget unit however many timestamps it carries. Stills are content-addressed and retries reattach to the same execution. (One component instead of the whole composition? use preview_component.)",
32
+ description: "Queue durable stills of the WHOLE composition, then wait for the job and return the images. `body.timestamps` is an array of clip-relative SECONDS, up to 18 per call: the batch renders as ONE unit of work with a fixed time budget, so a bigger batch is refused rather than timed out. Within that bound pass every beat you want in one call \u2014 a call is flat-cost and one budget unit however many timestamps it carries \u2014 and split a denser sweep across calls, which is cheap because stills are content-addressed and identical beats hit the cache. Retries reattach to the same execution. (One component instead of the whole composition? use preview_component.)",
33
33
  annotations: { readOnlyHint: true }
34
34
  },
35
35
  {
@@ -219,6 +219,15 @@ function previewVisionModelOutput({ output }) {
219
219
  value: typeof output === "string" ? output : JSON.stringify(output)
220
220
  };
221
221
  }
222
+ function renderFrameTimestamps() {
223
+ const body = bodySchemaFor(opById("previewFrameJob"));
224
+ const shape = body?.shape;
225
+ const timestamps = shape?.timestamps;
226
+ if (!timestamps) {
227
+ throw new Error("MCP: previewFrameJob body schema has no `timestamps` \u2014 run `pnpm generate:api-consumers`.");
228
+ }
229
+ return timestamps;
230
+ }
222
231
  function buildRenderFrameTool(spec, ex, budget, opts) {
223
232
  const canonicalOp = opById(spec.operationId);
224
233
  const transport = opts?.transportOverrides?.[spec.name];
@@ -231,7 +240,10 @@ function buildRenderFrameTool(spec, ex, budget, opts) {
231
240
  const mapArg = (p) => sessionPathValue(reverse[p], opts) ?? void 0;
232
241
  return tool({
233
242
  description: spec.description,
234
- inputSchema: z.object({ body: z.object({ timestamps: z.array(z.number()).min(1) }) }),
243
+ // The SAME bound the server enforces, not a hand-rolled copy of it. The
244
+ // duplicate here said `.min(1)` with no maximum long after the API grew one,
245
+ // so this tool advertised a batch size it would be refused for (CUE-39).
246
+ inputSchema: z.object({ body: z.object({ timestamps: renderFrameTimestamps() }) }),
235
247
  inputExamples: [{ input: { body: { timestamps: [14.2, 14.8, 15.6] } } }],
236
248
  execute: async (args) => {
237
249
  if (++budget.used.captures > budget.caps.captures) {
package/dist/mcp/core.js CHANGED
@@ -18,7 +18,7 @@ import {
18
18
  text,
19
19
  textWithData,
20
20
  withMedia
21
- } from "../chunk-ANNB4VC6.js";
21
+ } from "../chunk-F2HXB6RG.js";
22
22
  import "../chunk-2ESYSVXG.js";
23
23
  export {
24
24
  __resetPreviewCache,
@@ -7,10 +7,10 @@ import {
7
7
  registerRawTools,
8
8
  registerSkillPrompts,
9
9
  titleCase
10
- } from "../chunk-NJOWIGUL.js";
11
- import "../chunk-YOE5Y2SJ.js";
10
+ } from "../chunk-LL5GI3IS.js";
11
+ import "../chunk-ZBQQFAE7.js";
12
12
  import "../chunk-5YO4LAB7.js";
13
- import "../chunk-ANNB4VC6.js";
13
+ import "../chunk-F2HXB6RG.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-NJOWIGUL.js";
11
- import "./chunk-YOE5Y2SJ.js";
10
+ } from "./chunk-LL5GI3IS.js";
11
+ import "./chunk-ZBQQFAE7.js";
12
12
  import "./chunk-5YO4LAB7.js";
13
- import "./chunk-ANNB4VC6.js";
13
+ import "./chunk-F2HXB6RG.js";
14
14
  import "./chunk-2ESYSVXG.js";
15
15
  export {
16
16
  API_URLS,
@@ -1,36 +1,36 @@
1
- import {
2
- catalog as catalog4
3
- } from "./chunk-JRJQECCF.js";
4
- import {
5
- catalog as catalog7
6
- } from "./chunk-TE3PNQG6.js";
7
- import {
8
- catalog
9
- } from "./chunk-RBWS5XHE.js";
10
- import "./chunk-DLF4WVSE.js";
11
- import "./chunk-U4V4FZGE.js";
12
1
  import {
13
2
  catalog as catalog3
14
3
  } from "./chunk-FVDFPJHT.js";
15
- import "./chunk-QGAWDLYX.js";
16
4
  import {
17
5
  catalog as catalog6
18
6
  } from "./chunk-VLJOIUHL.js";
19
- import "./chunk-S5H6GH6M.js";
20
- import "./chunk-QAGGJHAF.js";
21
- import {
22
- catalog as catalog5
23
- } from "./chunk-RAXHCRVV.js";
24
7
  import {
25
8
  catalog as catalog2
26
9
  } from "./chunk-WAUVKF2F.js";
27
- import "./chunk-MFHXCHRI.js";
28
10
  import {
29
11
  catalog as catalog8
30
12
  } from "./chunk-RL5SO653.js";
13
+ import {
14
+ catalog as catalog4
15
+ } from "./chunk-JRJQECCF.js";
16
+ import {
17
+ catalog as catalog7
18
+ } from "./chunk-TE3PNQG6.js";
19
+ import "./chunk-QGAWDLYX.js";
20
+ import "./chunk-S5H6GH6M.js";
21
+ import "./chunk-QAGGJHAF.js";
22
+ import "./chunk-MFHXCHRI.js";
23
+ import {
24
+ catalog
25
+ } from "./chunk-RBWS5XHE.js";
26
+ import "./chunk-DLF4WVSE.js";
27
+ import "./chunk-U4V4FZGE.js";
31
28
  import "./chunk-LT4PWSR2.js";
32
29
  import "./chunk-FWSJLHSV.js";
33
30
  import "./chunk-ZFEXATWN.js";
31
+ import {
32
+ catalog as catalog5
33
+ } from "./chunk-RAXHCRVV.js";
34
34
  import "./chunk-XHGZ2E77.js";
35
35
  import "./chunk-W2245F6G.js";
36
36
  import "./chunk-JBWSK2YD.js";
@@ -46,11 +46,11 @@ import {
46
46
  parseSceneComponentCaptureIntentV1,
47
47
  prepareSceneShotRenderInput,
48
48
  readSceneShotManifest
49
- } from "./chunk-L5XECASW.js";
49
+ } from "./chunk-UOYKFFFK.js";
50
50
  import "./chunk-QH3YI3ND.js";
51
51
  import "./chunk-QISFYLBB.js";
52
- import "./chunk-VZ7TYX6Z.js";
53
52
  import "./chunk-IYZEK6WY.js";
53
+ import "./chunk-VZ7TYX6Z.js";
54
54
  import "./chunk-DENF4TPI.js";
55
55
  import "./chunk-KYRDKK2D.js";
56
56
  import "./chunk-WREYUH2E.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cueframe/kernel",
3
- "version": "0.2.35",
3
+ "version": "0.2.36",
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": [
@@ -19,23 +19,23 @@
19
19
  "@cueframe/account-model": "0.1.0",
20
20
  "@cueframe/animate": "0.1.0",
21
21
  "@cueframe/authoring": "0.1.0",
22
- "@cueframe/brand-derivation": "0.1.0",
23
22
  "@cueframe/cloud-import": "0.1.0",
24
23
  "@cueframe/compose": "0.1.0",
25
24
  "@cueframe/composition-ops": "0.1.0",
26
- "@cueframe/director": "0.1.0",
27
- "@cueframe/component-runtime": "0.1.0",
28
- "@cueframe/errors": "0.1.0",
29
25
  "@cueframe/composition": "0.1.0",
30
- "@cueframe/foundation": "0.1.0",
26
+ "@cueframe/brand-derivation": "0.1.0",
31
27
  "@cueframe/core": "0.1.0",
32
- "@cueframe/perception": "0.1.0",
33
- "@cueframe/media-model": "0.1.0",
28
+ "@cueframe/errors": "0.1.0",
29
+ "@cueframe/director": "0.1.0",
30
+ "@cueframe/foundation": "0.1.0",
31
+ "@cueframe/component-runtime": "0.1.0",
34
32
  "@cueframe/mcp": "0.1.0",
35
- "@cueframe/nle-export": "0.1.0",
36
33
  "@cueframe/primitives": "0.1.0",
34
+ "@cueframe/perception": "0.1.0",
35
+ "@cueframe/nle-export": "0.1.0",
36
+ "@cueframe/plane": "0.1.0",
37
37
  "@cueframe/render-harness": "0.1.0",
38
- "@cueframe/plane": "0.1.0"
38
+ "@cueframe/media-model": "0.1.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "gsap": "3.13.0",
@@ -7,10 +7,6 @@ import {
7
7
  flattenCompoundClips,
8
8
  hasCompoundClips
9
9
  } from "./chunk-QISFYLBB.js";
10
- import {
11
- compositionHasVo,
12
- roleDefaultGainDb
13
- } from "./chunk-VZ7TYX6Z.js";
14
10
  import {
15
11
  DOMINANCE_WEIGHTS,
16
12
  ENTER_SEC,
@@ -29,6 +25,10 @@ import {
29
25
  segmentShots,
30
26
  stabilizeSelectionHysteresis
31
27
  } from "./chunk-IYZEK6WY.js";
28
+ import {
29
+ compositionHasVo,
30
+ roleDefaultGainDb
31
+ } from "./chunk-VZ7TYX6Z.js";
32
32
  import {
33
33
  SHOT_SCALE_TARGET,
34
34
  shotScaleZoom