@cueframe/kernel 0.2.3 → 0.2.5

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 (41) hide show
  1. package/dist/_members/component-runtime/bake.d.ts +14 -0
  2. package/dist/_members/component-runtime/bake.d.ts.map +1 -1
  3. package/dist/_members/compose/primitiveRegistry.d.ts +2 -6
  4. package/dist/_members/composition/primitive-catalog/index.d.ts +4 -0
  5. package/dist/_members/mcp/generated/harness.d.ts +1 -1
  6. package/dist/_members/mcp/generated/inputSchemas.d.ts +1 -0
  7. package/dist/_members/mcp/inputSchemas.d.ts +6 -0
  8. package/dist/_members/mcp/server.d.ts +4 -1
  9. package/dist/_members/render-harness/prepareSceneBake.d.ts +5 -0
  10. package/dist/_members/render-harness/prepareSceneBake.d.ts.map +1 -0
  11. package/dist/authoring/build-tools.js +3 -3
  12. package/dist/authoring/tools.js +2 -2
  13. package/dist/authoring.js +4 -4
  14. package/dist/{chunk-AS5EXBNS.js → chunk-7AZLFN26.js} +12 -1
  15. package/dist/chunk-KQDZAHLP.js +3637 -0
  16. package/dist/{chunk-NUKDEOK6.js → chunk-MN6D3U5N.js} +1 -1
  17. package/dist/{chunk-32TH76H3.js → chunk-SC55VDLC.js} +2 -2
  18. package/dist/{chunk-X74EEFXV.js → chunk-TBNTAQJA.js} +1 -1
  19. package/dist/{chunk-UY77TMKD.js → chunk-VCSSJLOU.js} +24 -4
  20. package/dist/{chunk-F2DJL7P7.js → chunk-W6B7BMLO.js} +1 -1
  21. package/dist/component-runtime.js +1 -1
  22. package/dist/compose.js +181 -28
  23. package/dist/composition/primitive-catalog.js +3 -1
  24. package/dist/composition-ops.js +1 -1
  25. package/dist/core/render.js +1 -1
  26. package/dist/core.js +1 -1
  27. package/dist/mcp/adapter.js +1 -1
  28. package/dist/mcp/curation.js +1 -1
  29. package/dist/mcp/server.js +2 -2
  30. package/dist/mcp.js +2 -2
  31. package/dist/nle-export.js +1 -33
  32. package/dist/primitives/effects.js +2 -2
  33. package/dist/primitives/ui-blocks.js +4 -4
  34. package/dist/primitives.js +9 -9
  35. package/dist/render-harness/renderInputAssets.js +2 -2
  36. package/dist/render-harness.js +4 -4
  37. package/package.json +10 -10
  38. package/dist/chunk-E6WHXIDF.js +0 -3619
  39. package/dist/chunk-SX523NDS.js +0 -202
  40. package/dist/{chunk-YHC3RXS7.js → chunk-7W6ZIKWV.js} +3 -3
  41. package/dist/{chunk-B3GSTQLR.js → chunk-VLJOIUHL.js} +6 -6
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getPrimitiveCatalogMeta
3
- } from "./chunk-AS5EXBNS.js";
3
+ } from "./chunk-7AZLFN26.js";
4
4
 
5
5
  // ../execution/render-harness/src/renderInputAssets.ts
6
6
  function isRemoteUrl(u) {
@@ -310,7 +310,7 @@ Call wait_job(kind="compose", id="${j.composeJobId}", projectId="${a.projectId}"
310
310
  name: "apply_composition",
311
311
  operationId: "applyComposition",
312
312
  pathArgs: { projectId: "id" },
313
- description: 'Atomically apply an array of CompositionOps to a project composition. All ops succeed or none do (transactional). Pass `if_match` for optimistic-concurrency control (409 stale_etag on mismatch) and `dry_run: true` to validate the batch without persisting. Use this to seed a composition (add media clips) or make targeted edits (set a crop intent, reorder clips, set the format). CAPTIONS: attach content with {type:"captions.fromTranscript", mediaId, window?} \u2014 the server slices the cached word-timed transcript, rebases times, and sentence-splits into segments (no pasting words; 422 media_no_transcript if the media has no speech); style it with {type:"setCaptionStyle", style}; or set explicit words with {type:"setCaptions", segments, style?} (e.g. translations or your own VO timings). Brand is NOT set here \u2014 it lives on the project (create_project / PATCH /projects/:id with brandKitId). CARDS: a {kind:"card", html, tokens} clip projects each `tokens` KEY `x` to the CSS custom property `--cf-x`, so the html must read it as `var(--cf-x)` \u2014 write `tokens:{"plate":"#0af"}` + `background:var(--cf-plate)`. Do NOT put dashes in the key: `"--plate"` becomes `--cf---plate` and your `var(--plate)` then resolves to NOTHING, which CSS silently degrades to a transparent background and black text. Responses carry `warnings[]` when a card reads a var nothing defines. SCENE SHOTS: for a 3D product shot \u2014 a tilted page screenshot, a lit laptop/phone showing a real screenshot, two-colour type, a colour-field backdrop, focus/grain/vignette and a camera move \u2014 use {type:"scene.add", clipId, newTrack|trackId, startTime, duration, scene, assets} and revise it with {type:"scene.update", clipId, scene?, assets?, startTime?, duration?}. You author a scene SPEC, never wrapper TSX; the server registers the component for you. There is NO built-in scene primitive in list_catalog \u2014 READ cueframe://scene-shot first for the JSON schema, a copyable two-shot example with its asset-binding map, the admitted image formats (PNG/JPEG/WebP), the reference-aspect rule, screen-vs-world text, the v1 limits and the global-effect scope gap.',
313
+ description: 'Atomically apply an array of CompositionOps to a project composition. All ops succeed or none do (transactional). Pass `if_match` for optimistic-concurrency control (409 stale_etag on mismatch) and `dry_run: true` to validate the batch without persisting. Use this to seed a composition (add media clips) or make targeted edits (set a crop intent, reorder clips, set the format). CAPTIONS: attach content with {type:"captions.fromTranscript", mediaId, window?} \u2014 the server slices the cached word-timed transcript, rebases times, and sentence-splits into segments (no pasting words; 422 media_no_transcript if the media has no speech); style it with {type:"setCaptionStyle", style}; or set explicit words with {type:"setCaptions", segments, style?} (e.g. translations or your own VO timings). Brand is NOT set here \u2014 it lives on the project (create_project / PATCH /projects/:id with brandKitId). CARDS: a {kind:"card", html, tokens} clip projects each `tokens` KEY `x` to the CSS custom property `--cf-x`, so the html must read it as `var(--cf-x)` \u2014 write `tokens:{"plate":"#0af"}` + `background:var(--cf-plate)`. Do NOT put dashes in the key: `"--plate"` becomes `--cf---plate` and your `var(--plate)` then resolves to NOTHING, which CSS silently degrades to a transparent background and black text. Responses carry `warnings[]` when a card reads a var nothing defines. SCENE SHOTS: for a 3D product shot \u2014 a tilted page screenshot, a lit laptop/phone showing a real screenshot, two-colour type, a colour-field backdrop, focus/grain/vignette and a camera move \u2014 use {type:"scene.add", clipId, newTrack|trackId, startTime, duration, scene, assets} and revise it with {type:"scene.update", clipId, scene?, assets?, startTime?, duration?}. You author a scene SPEC, never wrapper TSX; the server registers the component for you. There is NO built-in scene primitive in list_catalog \u2014 READ cueframe://scene-shot first for the JSON schema, the canonical V2 world-objects recipe with nested groups, slabs, pages, phones, laptops, world/screen text, admitted surfaces, camera motion, lighting, and the current resource limits.',
314
314
  okFormat: (j, a) => {
315
315
  const warns = formatWarnings(j);
316
316
  if (j && typeof j.valid === "boolean") {
@@ -775,7 +775,7 @@ Render it with create_render(projectId="${a.projectId}", body={ compositionId: "
775
775
  {
776
776
  name: "get_account",
777
777
  operationId: "getAccount",
778
- description: "ORIENT FIRST \u2014 show THIS key's account before you spend a metered call: the org it is bound to, the current plan, a per-feature entitlements map, and per-call cost ceilings. READ `balance`, NOT `included`. CueFrame is credit-funded: rendering (entitlements.exports), generation (generate), preview stills (compose_capture), the judge (compose_verify) and the Director (compose) have NO separate per-plan allowance \u2014 they all spend one shared wallet, named in `fundedBy` (`credits`; generation spends `premium_credits`). Each `balance` restates that ONE wallet in that feature's own unit at `creditCost` credits per unit, so they are alternative ways to spend the same money, not four budgets. A positive balance means proceed \u2014 `create_render`, `compose`, `generate_media` and `create_brand_kit` all succeed on a funded wallet and only 402 `billing_required` once it is spent, so do NOT tell the user a capability is missing, and do not send them to checkout, while balance > 0. `included:false` means the plan genuinely lacks the feature. Every new org starts with a free credit grant, so an account with an empty usage history can still render, generate, preview and score. costCeilings.generateMediaUsdPerCall is the generate_media per-call USD cap. No args \u2014 identity is resolved from your key (never echoed from input).",
778
+ description: "ORIENT FIRST \u2014 show THIS key's account before you spend a metered call: the org it is bound to, the current plan, a per-feature entitlements map, and per-call cost ceilings. READ `balance`, NOT `included`. CueFrame is credit-funded: rendering (entitlements.exports), generation (generate), preview stills (compose_capture), the judge (compose_verify) and the Director (compose) have NO separate per-plan allowance \u2014 they all spend one shared wallet, named in `fundedBy` (`credits`; generation is metered in provider-cost units against that wallet). Each `balance` restates that ONE wallet in that feature's own unit at `creditCost` credits per unit, so they are alternative ways to spend the same money, not four budgets. Check the requested cost against the balance. For generation, also check generationLimit: free accounts have a separate provider-cost cap even with a positive wallet. A billing_required error with reason free_generation_cap requires a credit-pack purchase through normal checkout. `included:false` means the plan genuinely lacks the feature. Every new org starts with a free credit grant, so an account with an empty usage history can still render, generate, preview and score. costCeilings.generateMediaUsdPerCall is the generate_media per-call USD cap. No args \u2014 identity is resolved from your key (never echoed from input).",
779
779
  annotations: { readOnlyHint: true }
780
780
  },
781
781
  {
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getPrimitiveSubtextParam,
6
6
  getPrimitiveTextParam
7
- } from "./chunk-AS5EXBNS.js";
7
+ } from "./chunk-7AZLFN26.js";
8
8
  import {
9
9
  selectAllOverlays
10
10
  } from "./chunk-I5RX2QZT.js";
@@ -271,16 +271,32 @@ function assertAssetBindingsMatch(request) {
271
271
  async function bakeComponentAlphaV2(options) {
272
272
  assertSceneShotCapabilitySupported(options.job?.source?.manifest, { componentId: options.job?.source?.componentId });
273
273
  const job = ComponentBakeJobV2.parse(options.job);
274
- assertSceneShotParamsAdmitted(job.source.manifest, job.params, { componentId: job.source.componentId });
274
+ const scene = assertSceneShotParamsAdmitted(job.source.manifest, job.params, { componentId: job.source.componentId });
275
+ if (scene && !options.prepareScene) throw new ComponentRuntimeError(
276
+ "component_scene_invalid",
277
+ "scene_prepared_plan_required: The scene bake host must supply canonical scene preparation before capture."
278
+ );
275
279
  const assetServer = await startComponentAssetServer({ assets: job.assets, files: job.assetFiles });
280
+ let sceneLease;
276
281
  try {
277
282
  const { assetFiles: _assetFiles, ...unsealedRequest } = job;
278
- const request = ComponentBakeRequestV2.parse({
283
+ let request = ComponentBakeRequestV2.parse({
279
284
  ...unsealedRequest,
280
285
  assets: assetServer.bindings
281
286
  });
282
287
  assertAssetBindingsMatch(request);
283
288
  const materialized = materializeComponentSource(options.workspaceRoot, request.source);
289
+ const allowedAssetOrigins = /* @__PURE__ */ new Set([assetServer.origin]);
290
+ if (scene) {
291
+ sceneLease = await options.prepareScene({
292
+ request,
293
+ materialized,
294
+ runtimeAssets: assetServer.runtimeAssets,
295
+ allowedAssetOrigins
296
+ });
297
+ request = ComponentBakeRequestV2.parse({ ...request, params: sceneLease.params });
298
+ assertSceneShotParamsAdmitted(request.source.manifest, request.params, { componentId: request.source.componentId });
299
+ }
284
300
  const bundleId = componentBundleId({
285
301
  sourceVersionId: materialized.sourceVersionId,
286
302
  runtimeDigest: request.runtimeDigest,
@@ -307,7 +323,7 @@ async function bakeComponentAlphaV2(options) {
307
323
  id: request.source.componentId,
308
324
  params: request.params,
309
325
  assets: assetServer.runtimeAssets,
310
- allowedAssetOrigins: /* @__PURE__ */ new Set([assetServer.origin]),
326
+ allowedAssetOrigins,
311
327
  seed: request.seed,
312
328
  graphics: request.source.manifest.graphics,
313
329
  codec: request.codec,
@@ -360,7 +376,11 @@ async function bakeComponentAlphaV2(options) {
360
376
  assertRendererReceiptMatches(renderRequest, receipt);
361
377
  return receipt;
362
378
  } finally {
363
- await assetServer.close();
379
+ try {
380
+ await sceneLease?.cleanup();
381
+ } finally {
382
+ await assetServer.close();
383
+ }
364
384
  }
365
385
  }
366
386
  function sourceIdentityForBake(request) {
@@ -2,7 +2,7 @@ import {
2
2
  COMPOSE_PLANNER_TOOLS,
3
3
  COMPOSE_ROLE_TOOLS,
4
4
  dispatchComposeRoleTool
5
- } from "./chunk-X74EEFXV.js";
5
+ } from "./chunk-TBNTAQJA.js";
6
6
 
7
7
  // ../authoring/src/agent/buildTools.ts
8
8
  import { tool } from "ai";
@@ -7,7 +7,7 @@ import {
7
7
  sourceIdentityForBake,
8
8
  startComponentAssetServer,
9
9
  verifyComponentOutput
10
- } from "./chunk-UY77TMKD.js";
10
+ } from "./chunk-VCSSJLOU.js";
11
11
  import {
12
12
  COMPONENT_MEDIA_HEADROOM,
13
13
  COMPONENT_MEDIA_TIERS,
package/dist/compose.js CHANGED
@@ -1,53 +1,206 @@
1
- import {
2
- allCatalogs,
3
- getPrimitiveSubtext,
4
- getPrimitiveText,
5
- inflatePrimitiveProps,
6
- isRegisteredTransition,
7
- listPrimitives,
8
- registerPrimitiveOverride,
9
- resetPrimitiveOverrides,
10
- resolvePrimitive,
11
- resolveTransitionPresentation
12
- } from "./chunk-SX523NDS.js";
13
1
  import "./chunk-JVDUSOYG.js";
14
2
  import "./chunk-JQMPHKLU.js";
15
3
  import "./chunk-ZZRBKGDA.js";
16
4
  import "./chunk-GULDS3VE.js";
17
- import "./chunk-YLDMAZZE.js";
18
- import "./chunk-ZS3A3QUM.js";
5
+ import {
6
+ isContrastCritical
7
+ } from "./chunk-YLDMAZZE.js";
8
+ import {
9
+ catalog as catalog7
10
+ } from "./chunk-I5QWBM3M.js";
11
+ import {
12
+ catalog
13
+ } from "./chunk-ZS3A3QUM.js";
19
14
  import "./chunk-U4V4FZGE.js";
20
15
  import "./chunk-DLF4WVSE.js";
21
- import "./chunk-FVDFPJHT.js";
22
- import "./chunk-B3GSTQLR.js";
23
- import "./chunk-RAXHCRVV.js";
24
- import "./chunk-YHC3RXS7.js";
25
- import "./chunk-RL5SO653.js";
26
- import "./chunk-LT4PWSR2.js";
27
- import "./chunk-FWSJLHSV.js";
28
- import "./chunk-ZFEXATWN.js";
29
- import "./chunk-6EWRIAZA.js";
30
- import "./chunk-XHGZ2E77.js";
31
- import "./chunk-I5QWBM3M.js";
16
+ import {
17
+ catalog as catalog3
18
+ } from "./chunk-FVDFPJHT.js";
32
19
  import "./chunk-QGAWDLYX.js";
20
+ import {
21
+ catalog as catalog6
22
+ } from "./chunk-VLJOIUHL.js";
33
23
  import "./chunk-S5H6GH6M.js";
34
24
  import "./chunk-QAGGJHAF.js";
25
+ import {
26
+ catalog as catalog5
27
+ } from "./chunk-RAXHCRVV.js";
28
+ import {
29
+ catalog as catalog2
30
+ } from "./chunk-7W6ZIKWV.js";
35
31
  import "./chunk-MFHXCHRI.js";
32
+ import {
33
+ catalog as catalog8
34
+ } from "./chunk-RL5SO653.js";
35
+ import "./chunk-LT4PWSR2.js";
36
+ import "./chunk-FWSJLHSV.js";
37
+ import "./chunk-ZFEXATWN.js";
38
+ import {
39
+ catalog as catalog4
40
+ } from "./chunk-6EWRIAZA.js";
41
+ import "./chunk-XHGZ2E77.js";
36
42
  import "./chunk-W2245F6G.js";
37
43
  import "./chunk-5DJ3IEJR.js";
38
44
  import "./chunk-VKATKWWR.js";
39
45
  import {
40
46
  getPrimitiveSubtextParam,
47
+ getPrimitiveText,
41
48
  getPrimitiveTextParam,
42
49
  listPrimitivesByCategory
43
- } from "./chunk-AS5EXBNS.js";
44
- import "./chunk-JF4JJAFP.js";
50
+ } from "./chunk-7AZLFN26.js";
51
+ import {
52
+ NEUTRAL_RAMP
53
+ } from "./chunk-JF4JJAFP.js";
54
+ import {
55
+ CueframeError,
56
+ encodeError
57
+ } from "./chunk-J3DIUG24.js";
45
58
  import "./chunk-7PA7FGLD.js";
46
- import "./chunk-J3DIUG24.js";
47
59
  import "./chunk-TARKDVP6.js";
48
60
  import "./chunk-MH3UPKWR.js";
49
61
  import "./chunk-2L7PYYJK.js";
50
62
  import "./chunk-2ESYSVXG.js";
63
+
64
+ // ../execution/compose/src/primitiveRegistry.ts
65
+ var allCatalogs = [
66
+ ...catalog,
67
+ ...catalog2,
68
+ ...catalog3,
69
+ ...catalog4,
70
+ ...catalog5,
71
+ ...catalog6,
72
+ ...catalog7,
73
+ ...catalog8
74
+ ];
75
+ var registryMap = new Map(
76
+ allCatalogs.map((meta) => [meta.id, meta])
77
+ );
78
+ var overrideMap = /* @__PURE__ */ new Map();
79
+ var overrideOwner = null;
80
+ function registerPrimitiveOverride(meta, owner) {
81
+ if (overrideOwner !== null && overrideOwner !== owner) {
82
+ throw new Error(
83
+ `primitive override registry is single-tenant per process: owner '${overrideOwner}' already registered overrides; '${owner}' must call resetPrimitiveOverrides() first (or render in its own process). Registering a second tenant's overrides into the shared map would leak across tenants.`
84
+ );
85
+ }
86
+ overrideOwner = owner;
87
+ overrideMap.set(meta.id, meta);
88
+ }
89
+ function resetPrimitiveOverrides() {
90
+ overrideMap.clear();
91
+ overrideOwner = null;
92
+ }
93
+ function resolvePrimitive(id) {
94
+ return overrideMap.get(id) ?? registryMap.get(id);
95
+ }
96
+ function listPrimitives() {
97
+ return [...registryMap.keys()];
98
+ }
99
+ function resolveTransitionPresentation(id, params = {}) {
100
+ const meta = resolvePrimitive(id);
101
+ if (!meta) return void 0;
102
+ if (meta.kind !== "transition") return void 0;
103
+ if (typeof meta.createPresentation !== "function") return void 0;
104
+ const validated = meta.paramsSchema ? meta.paramsSchema.parse(params) : params;
105
+ return meta.createPresentation(validated);
106
+ }
107
+ function isRegisteredTransition(id) {
108
+ const meta = resolvePrimitive(id);
109
+ return !!meta && meta.kind === "transition";
110
+ }
111
+ function getPrimitiveSubtext(overlay) {
112
+ const canonical = overlay.params.subtext;
113
+ if (typeof canonical === "string" && canonical.length > 0) return canonical;
114
+ const subtextParam = getPrimitiveSubtextParam(overlay.template);
115
+ if (typeof subtextParam === "string") {
116
+ const native = overlay.params[subtextParam];
117
+ if (typeof native === "string") return native;
118
+ }
119
+ return void 0;
120
+ }
121
+ var BRAND_REF_PREFIX = "$brand:";
122
+ var SAFE_NONCRITICAL_DEFAULT = "transparent";
123
+ var HYPHEN_PATH_ALIASES = {
124
+ "colors.text-on-accent": "colors.textOnAccent",
125
+ "colors.text-on-surface": "colors.textOnSurface"
126
+ };
127
+ function lookupBrandPath(kit, path) {
128
+ const normalized = HYPHEN_PATH_ALIASES[path] ?? path;
129
+ const segments = normalized.split(".");
130
+ let current = kit;
131
+ for (const segment of segments) {
132
+ if (current == null || typeof current !== "object") return void 0;
133
+ current = current[segment];
134
+ }
135
+ return current;
136
+ }
137
+ function fallbackForMiss(path, binding) {
138
+ const normalized = HYPHEN_PATH_ALIASES[path] ?? path;
139
+ if (isContrastCritical(normalized)) {
140
+ return NEUTRAL_RAMP.onDark;
141
+ }
142
+ if (binding?.fallback != null) {
143
+ return binding.fallback;
144
+ }
145
+ return SAFE_NONCRITICAL_DEFAULT;
146
+ }
147
+ function resolveBrandValue(value, brandKit, binding, onUnresolved) {
148
+ if (typeof value !== "string" || !value.startsWith(BRAND_REF_PREFIX)) return value;
149
+ const path = value.slice(BRAND_REF_PREFIX.length);
150
+ if (!brandKit) {
151
+ onUnresolved?.({ path });
152
+ return fallbackForMiss(path, binding);
153
+ }
154
+ const resolved = lookupBrandPath(brandKit, path);
155
+ if (resolved === void 0) {
156
+ onUnresolved?.({ path });
157
+ return fallbackForMiss(path, binding);
158
+ }
159
+ return resolved;
160
+ }
161
+ function bindingsByBrandPath(meta) {
162
+ const map = /* @__PURE__ */ new Map();
163
+ if (!meta?.tokens) return map;
164
+ for (const binding of meta.tokens) {
165
+ if (binding.brandKitPath && !map.has(binding.brandKitPath)) {
166
+ map.set(binding.brandKitPath, binding);
167
+ }
168
+ }
169
+ return map;
170
+ }
171
+ function inflatePrimitiveProps(overlay, brandKit, onUnresolved) {
172
+ const meta = resolvePrimitive(overlay.template);
173
+ const { text, subtext, ...rest } = overlay.params;
174
+ const result = {};
175
+ const bindingForPath = bindingsByBrandPath(meta);
176
+ for (const [key, value] of Object.entries(rest)) {
177
+ const binding = typeof value === "string" && value.startsWith(BRAND_REF_PREFIX) ? bindingForPath.get(value.slice(BRAND_REF_PREFIX.length)) : void 0;
178
+ result[key] = resolveBrandValue(value, brandKit, binding, onUnresolved);
179
+ }
180
+ if (meta?.textParam && typeof text === "string") {
181
+ result[meta.textParam] = text;
182
+ }
183
+ if (meta?.subtextParam && typeof subtext === "string") {
184
+ result[meta.subtextParam] = subtext;
185
+ }
186
+ if (meta?.paramsSchema) {
187
+ const parsed = meta.paramsSchema.safeParse(result);
188
+ if (!parsed.success) {
189
+ const issues = parsed.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; ");
190
+ throw new Error(
191
+ encodeError(
192
+ new CueframeError(
193
+ "invalid_primitive_params",
194
+ `${meta.id}: invalid params \u2014 ${issues}`,
195
+ { primitiveId: meta.id }
196
+ )
197
+ )
198
+ );
199
+ }
200
+ return parsed.data;
201
+ }
202
+ return result;
203
+ }
51
204
  export {
52
205
  allCatalogs,
53
206
  getPrimitiveSubtext,
@@ -14,6 +14,7 @@ import {
14
14
  getPrimitiveCatalogMeta,
15
15
  getPrimitivePropSchema,
16
16
  getPrimitiveSubtextParam,
17
+ getPrimitiveText,
17
18
  getPrimitiveTextParam,
18
19
  hasAnyCatalogFilter,
19
20
  isPrimitiveDisabled,
@@ -25,7 +26,7 @@ import {
25
26
  validateCatalogFilters,
26
27
  validateParamsAgainstSchema,
27
28
  validatePrimitiveParams
28
- } from "../chunk-AS5EXBNS.js";
29
+ } from "../chunk-7AZLFN26.js";
29
30
  import "../chunk-7PA7FGLD.js";
30
31
  import "../chunk-2ESYSVXG.js";
31
32
  export {
@@ -44,6 +45,7 @@ export {
44
45
  getPrimitiveCatalogMeta,
45
46
  getPrimitivePropSchema,
46
47
  getPrimitiveSubtextParam,
48
+ getPrimitiveText,
47
49
  getPrimitiveTextParam,
48
50
  hasAnyCatalogFilter,
49
51
  isPrimitiveDisabled,
@@ -30,8 +30,8 @@ import {
30
30
  } from "./chunk-2B5VJZHL.js";
31
31
  import "./chunk-KYRDKK2D.js";
32
32
  import "./chunk-WREYUH2E.js";
33
- import "./chunk-7PA7FGLD.js";
34
33
  import "./chunk-J3DIUG24.js";
34
+ import "./chunk-7PA7FGLD.js";
35
35
  import {
36
36
  introducedCaptionFaceIssues
37
37
  } from "./chunk-TARKDVP6.js";
@@ -78,8 +78,8 @@ import "../chunk-VZ7TYX6Z.js";
78
78
  import "../chunk-DENF4TPI.js";
79
79
  import "../chunk-KYRDKK2D.js";
80
80
  import "../chunk-WREYUH2E.js";
81
- import "../chunk-7PA7FGLD.js";
82
81
  import "../chunk-J3DIUG24.js";
82
+ import "../chunk-7PA7FGLD.js";
83
83
  import "../chunk-TARKDVP6.js";
84
84
  import "../chunk-MH3UPKWR.js";
85
85
  import "../chunk-2L7PYYJK.js";
package/dist/core.js CHANGED
@@ -18,8 +18,8 @@ import "./chunk-VZ7TYX6Z.js";
18
18
  import "./chunk-DENF4TPI.js";
19
19
  import "./chunk-KYRDKK2D.js";
20
20
  import "./chunk-WREYUH2E.js";
21
- import "./chunk-7PA7FGLD.js";
22
21
  import "./chunk-J3DIUG24.js";
22
+ import "./chunk-7PA7FGLD.js";
23
23
  import "./chunk-TARKDVP6.js";
24
24
  import "./chunk-MH3UPKWR.js";
25
25
  import "./chunk-2L7PYYJK.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "../chunk-6BVVCRRD.js";
17
17
  import {
18
18
  CURATED_TOOLS
19
- } from "../chunk-32TH76H3.js";
19
+ } from "../chunk-SC55VDLC.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-32TH76H3.js";
13
+ } from "../chunk-SC55VDLC.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-E6WHXIDF.js";
10
+ } from "../chunk-KQDZAHLP.js";
11
11
  import "../chunk-E7GIZEPS.js";
12
12
  import "../chunk-6BVVCRRD.js";
13
- import "../chunk-32TH76H3.js";
13
+ import "../chunk-SC55VDLC.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-E6WHXIDF.js";
10
+ } from "./chunk-KQDZAHLP.js";
11
11
  import "./chunk-E7GIZEPS.js";
12
12
  import "./chunk-6BVVCRRD.js";
13
- import "./chunk-32TH76H3.js";
13
+ import "./chunk-SC55VDLC.js";
14
14
  import "./chunk-2ESYSVXG.js";
15
15
  export {
16
16
  API_URLS,
@@ -1,39 +1,7 @@
1
1
  import {
2
2
  getPrimitiveText
3
- } from "./chunk-SX523NDS.js";
4
- import "./chunk-JVDUSOYG.js";
5
- import "./chunk-JQMPHKLU.js";
6
- import "./chunk-ZZRBKGDA.js";
7
- import "./chunk-GULDS3VE.js";
8
- import "./chunk-YLDMAZZE.js";
9
- import "./chunk-ZS3A3QUM.js";
10
- import "./chunk-U4V4FZGE.js";
11
- import "./chunk-DLF4WVSE.js";
12
- import "./chunk-FVDFPJHT.js";
13
- import "./chunk-B3GSTQLR.js";
14
- import "./chunk-RAXHCRVV.js";
15
- import "./chunk-YHC3RXS7.js";
16
- import "./chunk-RL5SO653.js";
17
- import "./chunk-LT4PWSR2.js";
18
- import "./chunk-FWSJLHSV.js";
19
- import "./chunk-ZFEXATWN.js";
20
- import "./chunk-6EWRIAZA.js";
21
- import "./chunk-XHGZ2E77.js";
22
- import "./chunk-I5QWBM3M.js";
23
- import "./chunk-QGAWDLYX.js";
24
- import "./chunk-S5H6GH6M.js";
25
- import "./chunk-QAGGJHAF.js";
26
- import "./chunk-MFHXCHRI.js";
27
- import "./chunk-W2245F6G.js";
28
- import "./chunk-5DJ3IEJR.js";
29
- import "./chunk-VKATKWWR.js";
30
- import "./chunk-AS5EXBNS.js";
31
- import "./chunk-JF4JJAFP.js";
3
+ } from "./chunk-7AZLFN26.js";
32
4
  import "./chunk-7PA7FGLD.js";
33
- import "./chunk-J3DIUG24.js";
34
- import "./chunk-TARKDVP6.js";
35
- import "./chunk-MH3UPKWR.js";
36
- import "./chunk-2L7PYYJK.js";
37
5
  import "./chunk-2ESYSVXG.js";
38
6
 
39
7
  // ../nle-export/src/srt.ts
@@ -12,9 +12,9 @@ import {
12
12
  Vignette,
13
13
  catalog,
14
14
  laneDepths
15
- } from "../chunk-YHC3RXS7.js";
16
- import "../chunk-XHGZ2E77.js";
15
+ } from "../chunk-7W6ZIKWV.js";
17
16
  import "../chunk-MFHXCHRI.js";
17
+ import "../chunk-XHGZ2E77.js";
18
18
  import "../chunk-W2245F6G.js";
19
19
  import "../chunk-5DJ3IEJR.js";
20
20
  import "../chunk-VKATKWWR.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-I5QWBM3M.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-YHC3RXS7.js";
23
+ } from "./chunk-7W6ZIKWV.js";
24
+ import "./chunk-MFHXCHRI.js";
18
25
  import {
19
26
  catalog as catalog8
20
27
  } from "./chunk-RL5SO653.js";
@@ -25,13 +32,6 @@ import {
25
32
  catalog as catalog4
26
33
  } from "./chunk-6EWRIAZA.js";
27
34
  import "./chunk-XHGZ2E77.js";
28
- import {
29
- catalog as catalog7
30
- } from "./chunk-I5QWBM3M.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
36
  import "./chunk-5DJ3IEJR.js";
37
37
  import "./chunk-VKATKWWR.js";
@@ -4,8 +4,8 @@ import {
4
4
  assetUrlKey,
5
5
  isRemoteUrl,
6
6
  renderInputAssets
7
- } from "../chunk-NUKDEOK6.js";
8
- import "../chunk-AS5EXBNS.js";
7
+ } from "../chunk-MN6D3U5N.js";
8
+ import "../chunk-7AZLFN26.js";
9
9
  import "../chunk-7PA7FGLD.js";
10
10
  import "../chunk-2ESYSVXG.js";
11
11
  export {
@@ -4,11 +4,11 @@ import {
4
4
  assetUrlKey,
5
5
  isRemoteUrl,
6
6
  renderInputAssets
7
- } from "./chunk-NUKDEOK6.js";
7
+ } from "./chunk-MN6D3U5N.js";
8
8
  import {
9
9
  assertCardHtmlAssetFree
10
10
  } from "./chunk-ODUWCQI3.js";
11
- import "./chunk-UY77TMKD.js";
11
+ import "./chunk-VCSSJLOU.js";
12
12
  import "./chunk-BVA3537Z.js";
13
13
  import {
14
14
  COMPONENT_STILL_RUNTIME_IDENTITY,
@@ -34,7 +34,7 @@ import {
34
34
  generatedStudioPreparationFactsV1,
35
35
  scenePresetBuilderDescriptorV1
36
36
  } from "./chunk-VKATKWWR.js";
37
- import "./chunk-AS5EXBNS.js";
37
+ import "./chunk-7AZLFN26.js";
38
38
  import {
39
39
  SCENE_SHOT_PREPARATION_STAGE,
40
40
  createSceneBuilderDescriptorRegistryV1,
@@ -49,10 +49,10 @@ import "./chunk-VZ7TYX6Z.js";
49
49
  import "./chunk-DENF4TPI.js";
50
50
  import "./chunk-KYRDKK2D.js";
51
51
  import "./chunk-WREYUH2E.js";
52
- import "./chunk-7PA7FGLD.js";
53
52
  import {
54
53
  CueframeError
55
54
  } from "./chunk-J3DIUG24.js";
55
+ import "./chunk-7PA7FGLD.js";
56
56
  import "./chunk-TARKDVP6.js";
57
57
  import {
58
58
  evaluateScene,