@cueframe/kernel 0.2.42 → 0.2.44
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.
- package/dist/_members/component-runtime/contracts.d.ts +7 -1
- package/dist/_members/component-runtime/contracts.d.ts.map +1 -1
- package/dist/_members/errors/registry.d.ts +18 -0
- package/dist/_members/mcp/executor.d.ts +3 -2
- package/dist/_members/mcp/serverClient.d.ts +7 -0
- package/dist/_members/plane/contract.d.ts +28 -1
- package/dist/authoring.js +2 -2
- package/dist/{chunk-DQRJJ2YN.js → chunk-46PFSJZE.js} +114 -74
- package/dist/{chunk-6PBYCESM.js → chunk-4GLMARCJ.js} +1 -1
- package/dist/{chunk-RO57QD5M.js → chunk-7XZW26U2.js} +3 -3
- package/dist/{chunk-UGYYZBG4.js → chunk-EC6VFQE6.js} +1 -0
- package/dist/{chunk-IHKMFEBT.js → chunk-FRNBTODO.js} +1 -1
- package/dist/{chunk-BUAAQDDJ.js → chunk-GOJKL5FM.js} +1 -1
- package/dist/{chunk-BUK4P6AW.js → chunk-JENEKKAM.js} +3 -3
- package/dist/{chunk-PCCVZYAF.js → chunk-JWMWVP64.js} +1 -1
- package/dist/{chunk-JX7NKSJP.js → chunk-K66NLMGX.js} +1 -1
- package/dist/{chunk-WEXGESUQ.js → chunk-KKHI5NLK.js} +1 -1
- package/dist/{chunk-UAOTQSS3.js → chunk-MYBK6DKF.js} +9 -9
- package/dist/{chunk-AYOVAVNO.js → chunk-OASSDEWY.js} +1 -1
- package/dist/{chunk-J53SGAWP.js → chunk-OZNULDQE.js} +1 -1
- package/dist/{chunk-P472GIBJ.js → chunk-SPF3AXTB.js} +1 -1
- package/dist/{chunk-IYZEK6WY.js → chunk-V7LQ7ZHV.js} +1 -1
- package/dist/{chunk-VCBLGZQQ.js → chunk-WKT7SEVP.js} +10 -3
- package/dist/{chunk-62VTAA6O.js → chunk-WL2MLKWU.js} +1 -1
- package/dist/{chunk-SLN5UKLT.js → chunk-WYRKF2OX.js} +2 -3
- package/dist/{chunk-QSWONRX2.js → chunk-XWOV6KI6.js} +17 -1
- package/dist/chunk-YIJZBLQE.js +102 -0
- package/dist/{chunk-D72CKEOC.js → chunk-ZXWSZUSU.js} +2 -2
- package/dist/component-runtime/browserOptions.js +2 -2
- package/dist/component-runtime/contracts.js +1 -1
- package/dist/component-runtime/importPolicy.js +2 -2
- package/dist/component-runtime/render.js +4 -4
- package/dist/component-runtime/sourceAdmission.js +2 -2
- package/dist/component-runtime.js +6 -6
- package/dist/compose.js +1 -1
- package/dist/composition/projection.js +2 -2
- package/dist/composition-ops.js +3 -3
- package/dist/composition.js +2 -2
- package/dist/core/render.js +3 -3
- package/dist/core/select.js +2 -2
- package/dist/core.js +3 -3
- package/dist/director/ai-sdk.js +3 -3
- package/dist/director/domain.js +2 -2
- package/dist/director.js +3 -3
- package/dist/errors.js +1 -1
- package/dist/mcp/adapter.js +2 -2
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/executor.js +2 -1
- package/dist/mcp/scene-shot.js +2 -2
- package/dist/mcp/server.js +4 -4
- package/dist/mcp.js +6 -5
- package/dist/plane/conformance.js +1 -1
- package/dist/plane/contract.js +27 -46
- package/dist/plane.js +1 -1
- package/dist/render-harness/cardAssetAdmission.js +2 -2
- package/dist/render-harness/cardFonts.js +2 -2
- package/dist/render-harness.js +11 -11
- package/package.json +10 -10
|
@@ -242,6 +242,9 @@ __export(zod_exports, {
|
|
|
242
242
|
OpenComposeSessionBody: () => OpenComposeSessionBody2,
|
|
243
243
|
OpenComposeSessionParams: () => OpenComposeSessionParams,
|
|
244
244
|
OpenComposeSessionResponse: () => OpenComposeSessionResponse,
|
|
245
|
+
PatchComponentBody: () => PatchComponentBody,
|
|
246
|
+
PatchComponentParams: () => PatchComponentParams,
|
|
247
|
+
PatchComponentResponse: () => PatchComponentResponse,
|
|
245
248
|
PatchProjectBody: () => PatchProjectBody,
|
|
246
249
|
PatchProjectParams: () => PatchProjectParams,
|
|
247
250
|
PatchProjectResponse: () => PatchProjectResponse,
|
|
@@ -532,6 +535,9 @@ __export(zod_exports, {
|
|
|
532
535
|
openComposeSessionBodyLeaseJobIdMax: () => openComposeSessionBodyLeaseJobIdMax2,
|
|
533
536
|
openComposeSessionParams: () => OpenComposeSessionParams,
|
|
534
537
|
openComposeSessionResponse: () => OpenComposeSessionResponse,
|
|
538
|
+
patchComponentBody: () => PatchComponentBody,
|
|
539
|
+
patchComponentParams: () => PatchComponentParams,
|
|
540
|
+
patchComponentResponse: () => PatchComponentResponse,
|
|
535
541
|
patchProjectBody: () => PatchProjectBody,
|
|
536
542
|
patchProjectParams: () => PatchProjectParams,
|
|
537
543
|
patchProjectResponse: () => PatchProjectResponse,
|
|
@@ -2144,7 +2150,7 @@ var componentCreateRequestDescriptionMax = 2e3;
|
|
|
2144
2150
|
var componentCreateRequestEjectedFromMax = 200;
|
|
2145
2151
|
var componentCreateRequestDurationInFramesExclusiveMin = 0;
|
|
2146
2152
|
var ComponentCreateRequest = zod36.strictObject({
|
|
2147
|
-
"componentId": zod36.string().min(1).max(componentCreateRequestComponentIdMax),
|
|
2153
|
+
"componentId": zod36.string().min(1).max(componentCreateRequestComponentIdMax).describe("Caller-chosen stable component id. On create it names the new component. On PUT/PATCH it is optional and, when present, must equal the id in the path; a mismatch is a 400 naming both."),
|
|
2148
2154
|
"tsxSource": zod36.string().min(1),
|
|
2149
2155
|
"name": zod36.string().min(1).max(componentCreateRequestNameMax),
|
|
2150
2156
|
"description": zod36.string().max(componentCreateRequestDescriptionMax),
|
|
@@ -2153,16 +2159,16 @@ var ComponentCreateRequest = zod36.strictObject({
|
|
|
2153
2159
|
"origin": zod36.enum(["customer-owned", "server-native"]).optional(),
|
|
2154
2160
|
"ejectedFrom": zod36.string().max(componentCreateRequestEjectedFromMax).optional(),
|
|
2155
2161
|
"tokens": zod36.record(zod36.string(), zod36.unknown()).optional(),
|
|
2156
|
-
"examples": zod36.array(zod36.record(zod36.string(), zod36.unknown())).optional(),
|
|
2162
|
+
"examples": zod36.array(zod36.record(zod36.string(), zod36.unknown())).optional().describe("Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back."),
|
|
2157
2163
|
"durationInFrames": zod36.number().gt(componentCreateRequestDurationInFramesExclusiveMin).optional(),
|
|
2158
2164
|
"manifest": ComponentManifestV2
|
|
2159
2165
|
}).describe("POST /components body. Org/user are server-resolved; never accepted from the body.");
|
|
2160
2166
|
|
|
2161
2167
|
// ../sdk/src/generated/zod/models/componentListResponse.zod.ts
|
|
2162
|
-
import * as
|
|
2168
|
+
import * as zod41 from "zod";
|
|
2163
2169
|
|
|
2164
2170
|
// ../sdk/src/generated/zod/models/componentResponse.zod.ts
|
|
2165
|
-
import * as
|
|
2171
|
+
import * as zod39 from "zod";
|
|
2166
2172
|
|
|
2167
2173
|
// ../sdk/src/generated/zod/models/componentPlacement.zod.ts
|
|
2168
2174
|
import * as zod37 from "zod";
|
|
@@ -2171,77 +2177,98 @@ var ComponentPlacement = zod37.strictObject({
|
|
|
2171
2177
|
"refField": zod37.enum(["primitiveId", "componentId"]).describe("Which id field keys the ClipSource: 'primitiveId' for built-ins (source:'default'), 'componentId' for installed components (source:'installed'). Using the wrong field will NOT resolve at render.")
|
|
2172
2178
|
});
|
|
2173
2179
|
|
|
2174
|
-
// ../sdk/src/generated/zod/models/primitiveExample.zod.ts
|
|
2175
|
-
import * as zod38 from "zod";
|
|
2176
|
-
var PrimitiveExample = zod38.strictObject({
|
|
2177
|
-
"name": zod38.string(),
|
|
2178
|
-
"mood": zod38.array(zod38.string()).optional(),
|
|
2179
|
-
"params": zod38.record(zod38.string(), zod38.unknown()).optional(),
|
|
2180
|
-
"description": zod38.string().optional()
|
|
2181
|
-
});
|
|
2182
|
-
|
|
2183
2180
|
// ../sdk/src/generated/zod/models/sceneFormat.zod.ts
|
|
2184
|
-
import * as
|
|
2185
|
-
var SceneFormat =
|
|
2186
|
-
"aspectRatio":
|
|
2187
|
-
"fps":
|
|
2188
|
-
"resolution":
|
|
2181
|
+
import * as zod38 from "zod";
|
|
2182
|
+
var SceneFormat = zod38.strictObject({
|
|
2183
|
+
"aspectRatio": zod38.enum(["16:9", "9:16", "1:1", "4:5"]),
|
|
2184
|
+
"fps": zod38.union([zod38.literal(24), zod38.literal(25), zod38.literal(30), zod38.literal(60)]).optional(),
|
|
2185
|
+
"resolution": zod38.enum(["hd", "fhd", "4k"]).optional()
|
|
2189
2186
|
});
|
|
2190
2187
|
|
|
2191
2188
|
// ../sdk/src/generated/zod/models/componentResponse.zod.ts
|
|
2192
|
-
var
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
"
|
|
2198
|
-
"
|
|
2199
|
-
"
|
|
2200
|
-
"propSchema":
|
|
2201
|
-
"
|
|
2202
|
-
"
|
|
2203
|
-
"
|
|
2189
|
+
var componentResponseNameMax = 200;
|
|
2190
|
+
var componentResponseDescriptionMax = 2e3;
|
|
2191
|
+
var componentResponseEjectedFromMax = 200;
|
|
2192
|
+
var componentResponseDurationInFramesExclusiveMin = 0;
|
|
2193
|
+
var ComponentResponse = zod39.strictObject({
|
|
2194
|
+
"name": zod39.string().min(1).max(componentResponseNameMax),
|
|
2195
|
+
"description": zod39.string().max(componentResponseDescriptionMax),
|
|
2196
|
+
"category": zod39.enum(["text", "effects", "transitions", "layouts", "backgrounds", "ui-blocks", "scenes"]),
|
|
2197
|
+
"propSchema": zod39.record(zod39.string(), zod39.unknown()),
|
|
2198
|
+
"origin": zod39.enum(["customer-owned", "server-native"]).optional(),
|
|
2199
|
+
"ejectedFrom": zod39.string().max(componentResponseEjectedFromMax).optional(),
|
|
2200
|
+
"tokens": zod39.record(zod39.string(), zod39.unknown()).optional(),
|
|
2201
|
+
"examples": zod39.array(zod39.record(zod39.string(), zod39.unknown())).optional().describe("Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back."),
|
|
2202
|
+
"durationInFrames": zod39.number().gt(componentResponseDurationInFramesExclusiveMin).optional(),
|
|
2203
|
+
"manifest": ComponentManifestV2.optional().describe("The stored runtime manifest (assets, graphics API, alpha policy) of an org-INSTALLED component: the same object the create/update body takes, so a manifest read back here can be written back unchanged. Built-in defaults have no stored manifest and omit it. Its `version` is always 2 (the contract version), unlike the entry's semver `version`."),
|
|
2204
|
+
"id": zod39.string().describe("The entry's id: a `primitiveId` for a built-in, a `componentId` for an installed component."),
|
|
2205
|
+
"source": zod39.enum(["default", "installed"]).describe("'default' = built-in primitive (place by primitiveId); 'installed' = org-authored component (place by componentId)."),
|
|
2206
|
+
"kind": zod39.enum(["component", "transition", "scene"]).describe("RENDER kind (component | transition | scene). NOT the ClipSource variant \u2014 see `placement` for how to author it on the timeline."),
|
|
2207
|
+
"version": zod39.string().describe("The ENTRY's version: a semver string ('0.0.0' until an authored component is versioned). Distinct from `manifest.version`, which is the runtime contract version and is always the literal 2."),
|
|
2208
|
+
"propDefaults": zod39.record(zod39.string(), zod39.unknown()).optional(),
|
|
2209
|
+
"textParam": zod39.string().nullish().describe("The param field that carries this primitive's primary text; null = no single text slot."),
|
|
2210
|
+
"subtextParam": zod39.string().nullish().describe("The param field for secondary text (subtitle/byline); null = none."),
|
|
2204
2211
|
"format": SceneFormat.optional(),
|
|
2205
|
-
"
|
|
2206
|
-
"
|
|
2207
|
-
"
|
|
2208
|
-
"
|
|
2209
|
-
"
|
|
2210
|
-
"
|
|
2211
|
-
"
|
|
2212
|
-
"
|
|
2213
|
-
"
|
|
2214
|
-
"
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
"param": zod40.string(),
|
|
2218
|
-
"brandToken": zod40.string()
|
|
2212
|
+
"intent": zod39.string().optional().describe("Selection signal: a verb naming what this primitive accomplishes (e.g. 'product-trailer'). Match it to the beat you are authoring."),
|
|
2213
|
+
"useWhen": zod39.string().optional().describe("When to use this \u2014 AND when not to. The negative guidance is load-bearing; read it before picking."),
|
|
2214
|
+
"pairsWith": zod39.array(zod39.string()).optional().describe("Authoring guidance: ids of primitives that COMPOSE well with this one in the same edit."),
|
|
2215
|
+
"avoidWith": zod39.array(zod39.string()).optional().describe("Authoring guidance: ids of primitives that CONFLICT with this one \u2014 do not place together."),
|
|
2216
|
+
"tags": zod39.array(zod39.string()).optional().describe("Free-text search keywords."),
|
|
2217
|
+
"mood": zod39.array(zod39.string()).optional().describe("Vibe/tone tags (e.g. 'cinematic', 'minimal'). Filter to match the edit's mood."),
|
|
2218
|
+
"tier": zod39.enum(["recommended", "standard", "niche"]).optional().describe("Quality/applicability RANKING (a preference, not a flag). Prefer 'recommended'; reach for 'niche' only when its specific use-case is exactly the beat."),
|
|
2219
|
+
"useCase": zod39.array(zod39.enum(["intro", "outro", "full-scene", "title-over-footage", "transition", "background", "grade", "emphasis", "explainer", "social-cut"])).optional().describe("The edit ROLE(s) this primitive fills \u2014 the dimension to filter by for a beat (e.g. 'intro', 'title-over-footage', 'grade')."),
|
|
2220
|
+
"fixedCopy": zod39.array(zod39.string()).optional().describe("On-screen strings this primitive BAKES \u2014 the read-side counterpart to propSchema. These literals render REGARDLESS of params (no param can change them); fork the source via get_component_source to edit them. Use this to see at author time what fixed copy (someone-else's marketing text, faux-code, faux-data) will appear before you render."),
|
|
2221
|
+
"brandBindings": zod39.array(zod39.strictObject({
|
|
2222
|
+
"param": zod39.string(),
|
|
2223
|
+
"brandToken": zod39.string()
|
|
2219
2224
|
})).optional().describe("Params that can follow the project brand kit. Each {param, brandToken} says: set `param` to `brandToken` (a `$brand:` ref, e.g. '$brand:colors.accent') to track the brand instead of a literal. See the list response's `brandTokens` for the full ref vocabulary. Omitted when nothing is brand-bound."),
|
|
2220
2225
|
"placement": ComponentPlacement.describe("How to author this entry as a ClipSource via apply_composition: the exact ClipSource `kind` + the id field to key it by. Built-ins place as {kind:'overlay'|'effect', primitiveId}; installed components place as {kind:'component', componentId}. A kind:'scene' primitive has no 'scene' ClipSource \u2014 it is placed as {kind:'overlay', primitiveId}."),
|
|
2221
|
-
"warnings":
|
|
2226
|
+
"warnings": zod39.array(zod39.string()).optional().describe("Non-blocking save-time advisories \u2014 the create/update SUCCEEDED. Currently: a `fontFamily` string literal referencing a NON-vendored font (a bare CSS generic like 'serif', or an unknown named family like 'Arial') whose LIVE-lane pixels vary by render host \u2014 re-author with a vendored family or 'Georgia'. Omitted when there is nothing to flag; only present on the create/update responses.")
|
|
2222
2227
|
}).describe("Component catalog entry per \xA7Components.");
|
|
2223
2228
|
|
|
2224
2229
|
// ../sdk/src/generated/zod/models/sfxCatalogEntry.zod.ts
|
|
2225
|
-
import * as
|
|
2226
|
-
var SfxCatalogEntry =
|
|
2227
|
-
"soundId":
|
|
2228
|
-
"family":
|
|
2229
|
-
"envelopeClass":
|
|
2230
|
-
"intensity":
|
|
2231
|
-
"durationSec":
|
|
2232
|
-
"description":
|
|
2233
|
-
"attribution":
|
|
2230
|
+
import * as zod40 from "zod";
|
|
2231
|
+
var SfxCatalogEntry = zod40.strictObject({
|
|
2232
|
+
"soundId": zod40.string().describe("Stable sound-pack item id."),
|
|
2233
|
+
"family": zod40.enum(["tick", "pop", "impact", "confirm", "error", "whoosh", "riser"]).describe("Editorial family the compose sfx pass binds by."),
|
|
2234
|
+
"envelopeClass": zod40.enum(["transient", "sweep", "ambient"]).describe("Coarse envelope shape \u2014 the browse grouping."),
|
|
2235
|
+
"intensity": zod40.enum(["subtle", "standard", "strong"]),
|
|
2236
|
+
"durationSec": zod40.number().describe("Duration of the mastered asset (seconds)."),
|
|
2237
|
+
"description": zod40.string().describe("One-line human-legible caption."),
|
|
2238
|
+
"attribution": zod40.string().describe("CC0 provenance string.")
|
|
2234
2239
|
});
|
|
2235
2240
|
|
|
2236
2241
|
// ../sdk/src/generated/zod/models/componentListResponse.zod.ts
|
|
2237
|
-
var ComponentListResponse =
|
|
2238
|
-
"data":
|
|
2242
|
+
var ComponentListResponse = zod41.strictObject({
|
|
2243
|
+
"data": zod41.array(ComponentResponse),
|
|
2239
2244
|
"pagination": PaginationMeta,
|
|
2240
|
-
"brandTokens":
|
|
2241
|
-
"sfx":
|
|
2242
|
-
"audio":
|
|
2245
|
+
"brandTokens": zod41.array(zod41.string()).optional().describe("Catalog-level reference: the valid `$brand:` token refs a param value may carry (e.g. accentColor: \"$brand:colors.accent\"). Colors + fonts are the common bindings; the full design-token vocabulary is listed. Derived from the brand kit resolver so it can't drift. See each entry's `brandBindings` for which params are brand-bound by default."),
|
|
2246
|
+
"sfx": zod41.array(SfxCatalogEntry).optional().describe("Catalog-level reference: the curated CC0 SFX pack (closed, versioned). The compose sfx pass places these deterministically; this is the pack-only structural inventory to pick a `soundId` by family. Present on the first page only."),
|
|
2247
|
+
"audio": zod41.array(AudioPaletteEntry).optional().describe(`The UNIFIED org sound palette (audio-substrate Phase 2): the curated packs (SFX + music beds) unioned with THIS org's own uploads/imports (source:"org") and generated audio (source:"generated"), one uniform entry shape carrying role + envelopeClass + provenance + license; music entries carry bpm. Prefer an org sound when it fits \u2014 an org that uploads its product's real UI sounds hears ITS product. Present on the first page only.`)
|
|
2243
2248
|
});
|
|
2244
2249
|
|
|
2250
|
+
// ../sdk/src/generated/zod/models/componentPatchRequest.zod.ts
|
|
2251
|
+
import * as zod42 from "zod";
|
|
2252
|
+
var componentPatchRequestComponentIdMax = 200;
|
|
2253
|
+
var componentPatchRequestNameMax = 200;
|
|
2254
|
+
var componentPatchRequestDescriptionMax = 2e3;
|
|
2255
|
+
var componentPatchRequestEjectedFromMax = 200;
|
|
2256
|
+
var componentPatchRequestDurationInFramesExclusiveMin = 0;
|
|
2257
|
+
var ComponentPatchRequest = zod42.strictObject({
|
|
2258
|
+
"componentId": zod42.string().min(1).max(componentPatchRequestComponentIdMax).optional().describe("Caller-chosen stable component id. On create it names the new component. On PUT/PATCH it is optional and, when present, must equal the id in the path; a mismatch is a 400 naming both."),
|
|
2259
|
+
"tsxSource": zod42.string().min(1).optional(),
|
|
2260
|
+
"name": zod42.string().min(1).max(componentPatchRequestNameMax).optional(),
|
|
2261
|
+
"description": zod42.string().max(componentPatchRequestDescriptionMax).optional(),
|
|
2262
|
+
"category": zod42.enum(["text", "effects", "transitions", "layouts", "backgrounds", "ui-blocks", "scenes"]).optional(),
|
|
2263
|
+
"propSchema": zod42.record(zod42.string(), zod42.unknown()).optional(),
|
|
2264
|
+
"origin": zod42.enum(["customer-owned", "server-native"]).optional(),
|
|
2265
|
+
"ejectedFrom": zod42.string().max(componentPatchRequestEjectedFromMax).optional(),
|
|
2266
|
+
"tokens": zod42.record(zod42.string(), zod42.unknown()).optional(),
|
|
2267
|
+
"examples": zod42.array(zod42.record(zod42.string(), zod42.unknown())).optional().describe("Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back."),
|
|
2268
|
+
"durationInFrames": zod42.number().gt(componentPatchRequestDurationInFramesExclusiveMin).optional(),
|
|
2269
|
+
"manifest": ComponentManifestV2.optional()
|
|
2270
|
+
}).describe("PATCH /components/:id body, RFC 7396 merge: a field you omit is left exactly as it was. Org/user are server-resolved; never accepted from the body.");
|
|
2271
|
+
|
|
2245
2272
|
// ../sdk/src/generated/zod/models/componentPreviewImageResult.zod.ts
|
|
2246
2273
|
import * as zod43 from "zod";
|
|
2247
2274
|
var ComponentPreviewImageResult = zod43.strictObject({
|
|
@@ -2272,28 +2299,34 @@ var ComponentPreviewJobResult = zod45.union([ComponentPreviewImageResult, Compon
|
|
|
2272
2299
|
|
|
2273
2300
|
// ../sdk/src/generated/zod/models/componentSourceResponse.zod.ts
|
|
2274
2301
|
import * as zod46 from "zod";
|
|
2302
|
+
var componentSourceResponseNameMax = 200;
|
|
2303
|
+
var componentSourceResponseDescriptionMax = 2e3;
|
|
2304
|
+
var componentSourceResponseEjectedFromMax = 200;
|
|
2305
|
+
var componentSourceResponseDurationInFramesExclusiveMin = 0;
|
|
2275
2306
|
var ComponentSourceResponse = zod46.strictObject({
|
|
2276
|
-
"
|
|
2277
|
-
"name": zod46.string(),
|
|
2278
|
-
"description": zod46.string(),
|
|
2279
|
-
"source": zod46.enum(["default", "installed"]),
|
|
2280
|
-
"tsxSource": zod46.string(),
|
|
2307
|
+
"tsxSource": zod46.string().min(1),
|
|
2308
|
+
"name": zod46.string().min(1).max(componentSourceResponseNameMax),
|
|
2309
|
+
"description": zod46.string().max(componentSourceResponseDescriptionMax),
|
|
2281
2310
|
"propSchema": zod46.record(zod46.string(), zod46.unknown()),
|
|
2282
2311
|
"origin": zod46.enum(["customer-owned", "server-native"]).optional(),
|
|
2283
|
-
"ejectedFrom": zod46.string().optional(),
|
|
2312
|
+
"ejectedFrom": zod46.string().max(componentSourceResponseEjectedFromMax).optional(),
|
|
2284
2313
|
"tokens": zod46.record(zod46.string(), zod46.unknown()).optional(),
|
|
2285
|
-
"examples": zod46.array(zod46.record(zod46.string(), zod46.unknown())).optional(),
|
|
2286
|
-
"durationInFrames": zod46.number().optional(),
|
|
2287
|
-
"manifest": ComponentManifestV2
|
|
2314
|
+
"examples": zod46.array(zod46.record(zod46.string(), zod46.unknown())).optional().describe("Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back."),
|
|
2315
|
+
"durationInFrames": zod46.number().gt(componentSourceResponseDurationInFramesExclusiveMin).optional(),
|
|
2316
|
+
"manifest": ComponentManifestV2,
|
|
2317
|
+
"id": zod46.string(),
|
|
2318
|
+
"source": zod46.enum(["default", "installed"])
|
|
2288
2319
|
}).describe("Installed component SOURCE (TSX) + ownership provenance per \xA7Components.");
|
|
2289
2320
|
|
|
2290
2321
|
// ../sdk/src/generated/zod/models/componentUpdateRequest.zod.ts
|
|
2291
2322
|
import * as zod47 from "zod";
|
|
2323
|
+
var componentUpdateRequestComponentIdMax = 200;
|
|
2292
2324
|
var componentUpdateRequestNameMax = 200;
|
|
2293
2325
|
var componentUpdateRequestDescriptionMax = 2e3;
|
|
2294
2326
|
var componentUpdateRequestEjectedFromMax = 200;
|
|
2295
2327
|
var componentUpdateRequestDurationInFramesExclusiveMin = 0;
|
|
2296
2328
|
var ComponentUpdateRequest = zod47.strictObject({
|
|
2329
|
+
"componentId": zod47.string().min(1).max(componentUpdateRequestComponentIdMax).optional().describe("Caller-chosen stable component id. On create it names the new component. On PUT/PATCH it is optional and, when present, must equal the id in the path; a mismatch is a 400 naming both."),
|
|
2297
2330
|
"tsxSource": zod47.string().min(1).optional(),
|
|
2298
2331
|
"name": zod47.string().min(1).max(componentUpdateRequestNameMax).optional(),
|
|
2299
2332
|
"description": zod47.string().max(componentUpdateRequestDescriptionMax).optional(),
|
|
@@ -2302,10 +2335,10 @@ var ComponentUpdateRequest = zod47.strictObject({
|
|
|
2302
2335
|
"origin": zod47.enum(["customer-owned", "server-native"]).optional(),
|
|
2303
2336
|
"ejectedFrom": zod47.string().max(componentUpdateRequestEjectedFromMax).optional(),
|
|
2304
2337
|
"tokens": zod47.record(zod47.string(), zod47.unknown()).optional(),
|
|
2305
|
-
"examples": zod47.array(zod47.record(zod47.string(), zod47.unknown())).optional(),
|
|
2338
|
+
"examples": zod47.array(zod47.record(zod47.string(), zod47.unknown())).optional().describe("Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back."),
|
|
2306
2339
|
"durationInFrames": zod47.number().gt(componentUpdateRequestDurationInFramesExclusiveMin).optional(),
|
|
2307
2340
|
"manifest": ComponentManifestV2.optional()
|
|
2308
|
-
}).describe("PUT /components/:id body. Org/user are server-resolved; never accepted from the body.");
|
|
2341
|
+
}).describe("PUT /components/:id body: every writable field, all optional; an omitted field is carried forward. Org/user are server-resolved; never accepted from the body.");
|
|
2309
2342
|
|
|
2310
2343
|
// ../sdk/src/generated/zod/models/composeCreateRequest.zod.ts
|
|
2311
2344
|
import * as zod48 from "zod";
|
|
@@ -6904,6 +6937,7 @@ var ErrorEnvelope = zod84.strictObject({
|
|
|
6904
6937
|
"error": zod84.strictObject({
|
|
6905
6938
|
"code": zod84.string().describe("Stable machine-readable error code per \xA7Error Model."),
|
|
6906
6939
|
"message": zod84.string().describe("Human-readable message."),
|
|
6940
|
+
"contract": zod84.string().describe("Contract version that produced this verdict. If it differs between two calls, the rules changed underneath you, not your request."),
|
|
6907
6941
|
"details": zod84.record(zod84.string(), zod84.unknown()).optional().describe("Optional context (currentEtag, projectIds, retryAfter, \u2026).")
|
|
6908
6942
|
}).describe("Standard API error envelope.")
|
|
6909
6943
|
}).describe("Error envelope used by every non-2xx response.");
|
|
@@ -8715,6 +8749,11 @@ var UpdateComponentParams = zod218.object({
|
|
|
8715
8749
|
});
|
|
8716
8750
|
var UpdateComponentBody = ComponentUpdateRequest;
|
|
8717
8751
|
var UpdateComponentResponse = ComponentResponse;
|
|
8752
|
+
var PatchComponentParams = zod218.object({
|
|
8753
|
+
"id": zod218.string()
|
|
8754
|
+
});
|
|
8755
|
+
var PatchComponentBody = ComponentPatchRequest;
|
|
8756
|
+
var PatchComponentResponse = ComponentResponse;
|
|
8718
8757
|
var GetComponentParams = zod218.object({
|
|
8719
8758
|
"id": zod218.string()
|
|
8720
8759
|
});
|
|
@@ -9275,7 +9314,7 @@ var GENERATED_OPERATIONS = [
|
|
|
9275
9314
|
{ operationId: "createBrandKit", toolName: "cueframe_api_createBrandKit", title: "Create Brand Kit", method: "POST", pathTemplate: "/v1/brand-kits", pathParams: [], queryParams: [], bodyKey: "createBrandKitBody", description: 'Create (or upsert) a brand kit \u2014 Create or upsert a brand kit. Gated on the `brand_kits` boolean entitlement, which the FREE plan grants \u2014 brand-first authoring is deliberately never paywalled \u2014 so this is available to every account and costs no credits. A plan without it returns 402 billing_required (`details.featureId: "brand_kits"`). Discover the gate WITHOUT a failed round-trip via GET /v1/me \u2014 its `entitlements.brand_kits.included` tells you up front. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.', annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": ["string", "null"] }, "tagline": { "type": ["string", "null"] }, "colors": { "type": "object" }, "extraColors": { "type": "array" }, "fonts": { "type": "object" }, "voiceGuidelines": { "type": ["string", "null"] }, "captions": { "type": "object" }, "motion": { "type": "object" }, "logo": { "type": "object" }, "intro": { "type": "object" }, "outro": { "type": "object" }, "watermark": { "type": "object" }, "spacing": { "type": "object" }, "sizing": { "type": "object" }, "audio": { "type": "object" }, "exemplarKeys": { "type": "array" }, "contactSheetKey": { "type": "string" }, "motifs": { "type": "array" }, "styleRubric": { "type": "string" }, "density": { "type": "object" }, "inspiration": { "type": "object" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" } }, "additionalProperties": true } },
|
|
9276
9315
|
{ operationId: "createBrief", toolName: "cueframe_api_createBrief", title: "Create Brief", method: "POST", pathTemplate: "/v1/briefs", pathParams: [], queryParams: [], bodyKey: "createBriefBody", description: "Create a brief (the persisted intent the Director composes from) \u2014 Persist the video's intent \u2014 goal/audience/format/tone/CTA, beats with optional moment pinning ({mediaId, startSec, endSec}), captions (style + emphasis phrases), seeded graphics (carried VERBATIM as locked clips), exclusions (hard negatives the Director must never author), and gate config (holdAt / autoApprove). Then compose it with POST /projects/:id/compose {briefId} \u2014 every field is honored or the compose is refused loudly naming the field. The response carries the brief-time quote (compose + estimated render) to relay BEFORE any metered call. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "kind": { "type": "string", "description": "authored = create_brief; clip = minted by suggest_briefs from an AI clip suggestion.", "enum": ["authored", "clip"] }, "sourceSuggestionId": { "type": "string", "description": "kind:'clip' provenance \u2014 the suggestion this Brief was minted from." }, "name": { "type": "string" }, "goal": { "type": "string", "description": "What the video must accomplish." }, "audience": { "type": "string" }, "platform": { "type": "string" }, "format": { "type": "object", "description": "Output-format spec per \xA7Format." }, "durationSec": { "type": "number", "description": "Target output duration. HONOR-OR-REFUSE: compose validates it against the beat-source window (\xB11.5s) and refuses a brief it cannot honor." }, "tone": { "type": "string" }, "cta": { "type": "string" }, "locale": { "type": "string", "description": "Output language (BCP-47 tag, e.g. 'es-419'): ALL on-screen copy + captions." }, "hook": { "type": "string" }, "caption": { "type": "string" }, "beats": { "type": "array" }, "mustIncludes": { "type": "array" }, "references": { "type": "array" }, "captions": { "type": "object" }, "motionStyle": { "type": "object" }, "seededGraphics": { "type": "array", "description": "Client-authored graphic clips the Director must carry VERBATIM: seeded into the design loop's base composition as LOCKED clips (never re-authored, never discarded)." }, "exclusions": { "type": "array" }, "gates": { "type": "object" }, "audio": { "type": "object" }, "quote": { "type": "object" }, "createdAt": { "type": "number" }, "updatedAt": { "type": "number" } }, "additionalProperties": true } },
|
|
9277
9316
|
{ operationId: "createCheckout", toolName: "cueframe_api_createCheckout", title: "Create Checkout", method: "POST", pathTemplate: "/v1/billing/checkout", pathParams: [], queryParams: [], bodyKey: "createCheckoutBody", description: 'Start a hosted Stripe checkout for a plan/interval \u2014 Body `{ plan, interval }` \u2192 returns a hosted Stripe checkout `url` to open in a browser to complete payment. Upgrades the CURRENT org (server-resolved from your key/identity, NEVER the body). Always a hosted URL \u2014 an existing saved card is NEVER charged without the human confirming on Stripe. `interval:"year"` selects the annual plan. Discover valid combos with GET /v1/billing/plans. Requires `billing:write`. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.', annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "url": { "type": "string", "description": "Hosted Stripe checkout URL to open in a browser to complete payment. Always present on success \u2014 an existing saved card is never charged without confirming here." }, "plan": { "type": "string" }, "interval": { "type": "string" }, "productId": { "type": "string", "description": "Resolved billing catalog product id." } }, "additionalProperties": true } },
|
|
9278
|
-
{ operationId: "createComponent", toolName: "cueframe_api_createComponent", title: "Create Component", method: "POST", pathTemplate: "/v1/components", pathParams: [], queryParams: [], bodyKey: "createComponentBody", description: "Author (create) a component \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "
|
|
9317
|
+
{ operationId: "createComponent", toolName: "cueframe_api_createComponent", title: "Create Component", method: "POST", pathTemplate: "/v1/components", pathParams: [], queryParams: [], bodyKey: "createComponentBody", description: "Author (create) a component \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "category": { "type": "string", "enum": ["text", "effects", "transitions", "layouts", "backgrounds", "ui-blocks", "scenes"] }, "propSchema": { "type": "object" }, "origin": { "type": "string", "enum": ["customer-owned", "server-native"] }, "ejectedFrom": { "type": "string" }, "tokens": { "type": "object" }, "examples": { "type": "array", "description": "Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back." }, "durationInFrames": { "type": "number" }, "manifest": { "type": "object" }, "id": { "type": "string", "description": "The entry's id: a `primitiveId` for a built-in, a `componentId` for an installed component." }, "source": { "type": "string", "description": "'default' = built-in primitive (place by primitiveId); 'installed' = org-authored component (place by componentId).", "enum": ["default", "installed"] }, "kind": { "type": "string", "description": "RENDER kind (component | transition | scene). NOT the ClipSource variant \u2014 see `placement` for how to author it on the timeline.", "enum": ["component", "transition", "scene"] }, "version": { "type": "string", "description": "The ENTRY's version: a semver string ('0.0.0' until an authored component is versioned). Distinct from `manifest.version`, which is the runtime contract version and is always the literal 2." }, "propDefaults": { "type": "object" }, "textParam": { "type": ["string", "null"], "description": "The param field that carries this primitive's primary text; null = no single text slot." }, "subtextParam": { "type": ["string", "null"], "description": "The param field for secondary text (subtitle/byline); null = none." }, "format": { "type": "object" }, "intent": { "type": "string", "description": "Selection signal: a verb naming what this primitive accomplishes (e.g. 'product-trailer'). Match it to the beat you are authoring." }, "useWhen": { "type": "string", "description": "When to use this \u2014 AND when not to. The negative guidance is load-bearing; read it before picking." }, "pairsWith": { "type": "array", "description": "Authoring guidance: ids of primitives that COMPOSE well with this one in the same edit." }, "avoidWith": { "type": "array", "description": "Authoring guidance: ids of primitives that CONFLICT with this one \u2014 do not place together." }, "tags": { "type": "array", "description": "Free-text search keywords." }, "mood": { "type": "array", "description": "Vibe/tone tags (e.g. 'cinematic', 'minimal'). Filter to match the edit's mood." }, "tier": { "type": "string", "description": "Quality/applicability RANKING (a preference, not a flag). Prefer 'recommended'; reach for 'niche' only when its specific use-case is exactly the beat.", "enum": ["recommended", "standard", "niche"] }, "useCase": { "type": "array", "description": "The edit ROLE(s) this primitive fills \u2014 the dimension to filter by for a beat (e.g. 'intro', 'title-over-footage', 'grade')." }, "fixedCopy": { "type": "array", "description": "On-screen strings this primitive BAKES \u2014 the read-side counterpart to propSchema. These literals render REGARDLESS of params (no param can change them); fork the source via get_component_source to edit them. Use this to see at author time what fixed copy (someone-else's marketing text, faux-code, faux-data) will appear before you render." }, "brandBindings": { "type": "array", "description": "Params that can follow the project brand kit. Each {param, brandToken} says: set `param` to `brandToken` (a `$brand:` ref, e.g. '$brand:colors.accent') to track the brand instead of a literal. See the list response's `brandTokens` for the full ref vocabulary. Omitted when nothing is brand-bound." }, "placement": { "type": "object" }, "warnings": { "type": "array", "description": "Non-blocking save-time advisories \u2014 the create/update SUCCEEDED. Currently: a `fontFamily` string literal referencing a NON-vendored font (a bare CSS generic like 'serif', or an unknown named family like 'Arial') whose LIVE-lane pixels vary by render host \u2014 re-author with a vendored family or 'Georgia'. Omitted when there is nothing to flag; only present on the create/update responses." } }, "additionalProperties": true } },
|
|
9279
9318
|
{ operationId: "createCritic", toolName: "cueframe_api_createCritic", title: "Create Critic", method: "POST", pathTemplate: "/v1/critics", pathParams: [], queryParams: [], bodyKey: "createCriticBody", description: "Register a compose critic \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "criticId": { "type": "string" }, "tier": { "type": "string", "enum": ["rules", "rubric", "evaluator"] }, "secret": { "type": "string", "description": "evaluator tier: Standard-Webhooks signing secret, returned ONCE." } }, "additionalProperties": true } },
|
|
9280
9319
|
{ operationId: "createExemplarUploads", toolName: "cueframe_api_createExemplarUploads", title: "Create Exemplar Uploads", method: "POST", pathTemplate: "/v1/brand-kits/exemplar-uploads", pathParams: [], queryParams: [], bodyKey: "createExemplarUploadsBody", description: "Reserve presigned PUT slots for inspiration exemplar frames \u2014 Returns presigned PUT URLs under this org's `brand-inspiration/\u2026` prefix \u2014 the only namespace the brand-kit upsert accepts `exemplarKeys` from. PUT each curated reference frame (\u2264720px jpeg recommended \u2014 the frames become vision input downstream), then upsert the kit with the returned keys. This is the ingest door for agent-driven kit extraction (the `extracting-brand-kits` skill on GET /skills). \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "batchId": { "type": "string" }, "uploads": { "type": "array" }, "contactSheetUpload": { "type": "object" }, "expiresAt": { "type": "string" } }, "additionalProperties": true } },
|
|
9281
9320
|
{ operationId: "createFcpxmlExport", toolName: "cueframe_api_createFcpxmlExport", title: "Create Fcpxml Export", method: "POST", pathTemplate: "/v1/projects/{id}/exports/fcpxml", pathParams: ["id"], queryParams: [], bodyKey: "createFcpxmlExportBody", description: "Create a Final Cut Pro export \u2014 Export the project as a Final Cut Pro XML (FCPXML) timeline \u2014 eject the agent-authored edit into a professional NLE for human finishing, preserving clips, trims, and timeline structure. Async: poll GET /projects/:id/exports/:exportId for the download URL. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "format": { "type": "string", "enum": ["fcpxml", "premiere"] }, "status": { "type": "string", "enum": ["queued", "trimming", "building", "uploading", "complete", "error", "cancelled"] }, "progress": { "type": "number", "description": "Fractional progress 0..1 across the trim/build/upload pipeline. Reaches 1 only on `complete`." }, "outputUrl": { "type": ["string", "null"] }, "outputExpiresAt": { "type": ["string", "null"] }, "outputSizeBytes": { "type": ["number", "null"] }, "outputDurationSec": { "type": ["number", "null"] }, "error": { "description": "Set when status is `error`; null otherwise. The phase field localizes the failure to trim / build / upload / trigger." }, "trimCacheHit": { "type": ["boolean", "null"] }, "clipSuggestionId": { "type": ["string", "null"] }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" } }, "additionalProperties": true } },
|
|
@@ -9304,8 +9343,8 @@ var GENERATED_OPERATIONS = [
|
|
|
9304
9343
|
{ operationId: "getBrandKitExemplars", toolName: "cueframe_api_getBrandKitExemplars", title: "Get Brand Kit Exemplars", method: "POST", pathTemplate: "/v1/brand-kits/{id}/exemplars", pathParams: ["id"], queryParams: [], bodyKey: "getBrandKitExemplarsBody", description: "Presign a brand kit's inspiration exemplar frames \u2014 Returns short-lived URLs for the kit's exemplar frames (the pixels the maker and judge condition on). Filter to one motif's evidence frames with `motifId`. Vision-budget-bounded consumers should keep `limit` small (default 6). \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "exemplars": { "type": "array" }, "contactSheetUrl": { "type": "string" } }, "additionalProperties": true } },
|
|
9305
9344
|
{ operationId: "getBrief", toolName: "cueframe_api_getBrief", title: "Get Brief", method: "GET", pathTemplate: "/v1/briefs/{id}", pathParams: ["id"], queryParams: [], bodyKey: null, description: "Get a brief by id \u2014 Required permission: projects:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "kind": { "type": "string", "description": "authored = create_brief; clip = minted by suggest_briefs from an AI clip suggestion.", "enum": ["authored", "clip"] }, "sourceSuggestionId": { "type": "string", "description": "kind:'clip' provenance \u2014 the suggestion this Brief was minted from." }, "name": { "type": "string" }, "goal": { "type": "string", "description": "What the video must accomplish." }, "audience": { "type": "string" }, "platform": { "type": "string" }, "format": { "type": "object", "description": "Output-format spec per \xA7Format." }, "durationSec": { "type": "number", "description": "Target output duration. HONOR-OR-REFUSE: compose validates it against the beat-source window (\xB11.5s) and refuses a brief it cannot honor." }, "tone": { "type": "string" }, "cta": { "type": "string" }, "locale": { "type": "string", "description": "Output language (BCP-47 tag, e.g. 'es-419'): ALL on-screen copy + captions." }, "hook": { "type": "string" }, "caption": { "type": "string" }, "beats": { "type": "array" }, "mustIncludes": { "type": "array" }, "references": { "type": "array" }, "captions": { "type": "object" }, "motionStyle": { "type": "object" }, "seededGraphics": { "type": "array", "description": "Client-authored graphic clips the Director must carry VERBATIM: seeded into the design loop's base composition as LOCKED clips (never re-authored, never discarded)." }, "exclusions": { "type": "array" }, "gates": { "type": "object" }, "audio": { "type": "object" }, "quote": { "type": "object" }, "createdAt": { "type": "number" }, "updatedAt": { "type": "number" } }, "additionalProperties": true } },
|
|
9306
9345
|
{ operationId: "getCheckpoint", toolName: "cueframe_api_getCheckpoint", title: "Get Checkpoint", method: "GET", pathTemplate: "/v1/checkpoints/{id}", pathParams: ["id"], queryParams: [], bodyKey: null, description: "Get a checkpoint packet \u2014 The full approval packet: the stage artifact under review, presigned storyboard/eval stills, critic verdicts (incl. lock_violation entries), the money triple {thisStep, jobSpendSoFar, estimatedJourneyTotal}, and the recorded decision once resolved. Answer an `awaiting` packet with POST /v1/checkpoints/{id}/resume. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "composeJobId": { "type": "string" }, "briefId": { "type": "string" }, "kind": { "type": "string", "enum": ["gate", "score"] }, "stage": { "type": "string", "enum": ["content", "layout", "motion"] }, "version": { "type": "integer" }, "status": { "type": "string", "enum": ["awaiting", "approved", "revised", "abandoned", "expired", "superseded"] }, "artifact": { "description": "The stage artifact under review: the locked ComposePlan at content; the composition wire shape at layout/motion; the judged composition snapshot on kind:'score'." }, "stillUrls": { "type": "array", "description": "Presigned storyboard/eval stills \u2014 the packet's visual evidence (may be GC'd by the retention sweep after the job goes terminal; the decision record is immortal)." }, "criticVerdicts": { "description": "Per-criterion scores + critique from the design loop / judge, incl. lock_violation entries." }, "quote": { "type": "object" }, "revisionCycle": { "type": "integer", "description": "Revise cycles this gate has consumed. The brief quote states the included count (revisionCyclesIncluded); beyond it, resume(revise) is refused with a typed error." }, "decision": { "description": "The recorded decision {decision, comments?, globalNote?, decidedAt} once resolved." }, "reviewMode": { "type": "string", "description": "How this packet is decided (from the Brief's gates). 'hosted' = the review PAGE captures the decision; absent/'agent' = the decision flows back through the driving agent.", "enum": ["agent", "hosted"] }, "reviewUrl": { "type": "string", "description": "Hosted review-page URL (present when reviewMode is 'hosted') \u2014 a human decides from this link, no account or agent session; the recorded decision rides the SAME resume rail, and the agent learns of it via checkpoint webhooks / wait_job." }, "createdAt": { "type": "number" }, "updatedAt": { "type": "number" } }, "additionalProperties": true } },
|
|
9307
|
-
{ operationId: "getComponent", toolName: "cueframe_api_getComponent", title: "Get Component", method: "GET", pathTemplate: "/v1/components/{id}", pathParams: ["id"], queryParams: [], bodyKey: null, description: "Get a component entry \u2014 Required permission: projects:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "
|
|
9308
|
-
{ operationId: "getComponentSource", toolName: "cueframe_api_getComponentSource", title: "Get Component Source", method: "GET", pathTemplate: "/v1/components/{id}/source", pathParams: ["id"], queryParams: [], bodyKey: null, description: "Get a component's source \u2014 Required permission: projects:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "
|
|
9346
|
+
{ operationId: "getComponent", toolName: "cueframe_api_getComponent", title: "Get Component", method: "GET", pathTemplate: "/v1/components/{id}", pathParams: ["id"], queryParams: [], bodyKey: null, description: "Get a component entry \u2014 Required permission: projects:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "category": { "type": "string", "enum": ["text", "effects", "transitions", "layouts", "backgrounds", "ui-blocks", "scenes"] }, "propSchema": { "type": "object" }, "origin": { "type": "string", "enum": ["customer-owned", "server-native"] }, "ejectedFrom": { "type": "string" }, "tokens": { "type": "object" }, "examples": { "type": "array", "description": "Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back." }, "durationInFrames": { "type": "number" }, "manifest": { "type": "object" }, "id": { "type": "string", "description": "The entry's id: a `primitiveId` for a built-in, a `componentId` for an installed component." }, "source": { "type": "string", "description": "'default' = built-in primitive (place by primitiveId); 'installed' = org-authored component (place by componentId).", "enum": ["default", "installed"] }, "kind": { "type": "string", "description": "RENDER kind (component | transition | scene). NOT the ClipSource variant \u2014 see `placement` for how to author it on the timeline.", "enum": ["component", "transition", "scene"] }, "version": { "type": "string", "description": "The ENTRY's version: a semver string ('0.0.0' until an authored component is versioned). Distinct from `manifest.version`, which is the runtime contract version and is always the literal 2." }, "propDefaults": { "type": "object" }, "textParam": { "type": ["string", "null"], "description": "The param field that carries this primitive's primary text; null = no single text slot." }, "subtextParam": { "type": ["string", "null"], "description": "The param field for secondary text (subtitle/byline); null = none." }, "format": { "type": "object" }, "intent": { "type": "string", "description": "Selection signal: a verb naming what this primitive accomplishes (e.g. 'product-trailer'). Match it to the beat you are authoring." }, "useWhen": { "type": "string", "description": "When to use this \u2014 AND when not to. The negative guidance is load-bearing; read it before picking." }, "pairsWith": { "type": "array", "description": "Authoring guidance: ids of primitives that COMPOSE well with this one in the same edit." }, "avoidWith": { "type": "array", "description": "Authoring guidance: ids of primitives that CONFLICT with this one \u2014 do not place together." }, "tags": { "type": "array", "description": "Free-text search keywords." }, "mood": { "type": "array", "description": "Vibe/tone tags (e.g. 'cinematic', 'minimal'). Filter to match the edit's mood." }, "tier": { "type": "string", "description": "Quality/applicability RANKING (a preference, not a flag). Prefer 'recommended'; reach for 'niche' only when its specific use-case is exactly the beat.", "enum": ["recommended", "standard", "niche"] }, "useCase": { "type": "array", "description": "The edit ROLE(s) this primitive fills \u2014 the dimension to filter by for a beat (e.g. 'intro', 'title-over-footage', 'grade')." }, "fixedCopy": { "type": "array", "description": "On-screen strings this primitive BAKES \u2014 the read-side counterpart to propSchema. These literals render REGARDLESS of params (no param can change them); fork the source via get_component_source to edit them. Use this to see at author time what fixed copy (someone-else's marketing text, faux-code, faux-data) will appear before you render." }, "brandBindings": { "type": "array", "description": "Params that can follow the project brand kit. Each {param, brandToken} says: set `param` to `brandToken` (a `$brand:` ref, e.g. '$brand:colors.accent') to track the brand instead of a literal. See the list response's `brandTokens` for the full ref vocabulary. Omitted when nothing is brand-bound." }, "placement": { "type": "object" }, "warnings": { "type": "array", "description": "Non-blocking save-time advisories \u2014 the create/update SUCCEEDED. Currently: a `fontFamily` string literal referencing a NON-vendored font (a bare CSS generic like 'serif', or an unknown named family like 'Arial') whose LIVE-lane pixels vary by render host \u2014 re-author with a vendored family or 'Georgia'. Omitted when there is nothing to flag; only present on the create/update responses." } }, "additionalProperties": true } },
|
|
9347
|
+
{ operationId: "getComponentSource", toolName: "cueframe_api_getComponentSource", title: "Get Component Source", method: "GET", pathTemplate: "/v1/components/{id}/source", pathParams: ["id"], queryParams: [], bodyKey: null, description: "Get a component's source \u2014 Required permission: projects:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "tsxSource": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "propSchema": { "type": "object" }, "origin": { "type": "string", "enum": ["customer-owned", "server-native"] }, "ejectedFrom": { "type": "string" }, "tokens": { "type": "object" }, "examples": { "type": "array", "description": "Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back." }, "durationInFrames": { "type": "number" }, "manifest": { "type": "object" }, "id": { "type": "string" }, "source": { "type": "string", "enum": ["default", "installed"] } }, "additionalProperties": true } },
|
|
9309
9348
|
{ operationId: "getComposeJob", toolName: "cueframe_api_getComposeJob", title: "Get Compose Job", method: "GET", pathTemplate: "/v1/projects/{id}/compose/jobs/{composeJobId}", pathParams: ["id", "composeJobId"], queryParams: [], bodyKey: null, description: "Fetch a compose job's full ensemble state \u2014 Required permission: projects:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "composeJobId": { "type": "string" }, "projectId": { "type": "string" }, "status": { "type": "string", "enum": ["queued", "running", "awaiting_input", "complete", "failed", "cancelled"] }, "error": { "type": ["string", "null"] }, "request": { "type": "object" }, "candidates": { "type": "array" }, "winner": {}, "listUsd": { "type": "number" }, "startedAt": { "type": "number" }, "completedAt": { "type": ["number", "null"] }, "advisoryResult": { "type": "object", "description": "The advisory envelope returned by a completed consult job (on ComposeJobDetailResponse.advisoryResult)." }, "checkpoint": { "type": "object" } }, "additionalProperties": true } },
|
|
9310
9349
|
{ operationId: "getComposeSessionComposition", toolName: "cueframe_api_getComposeSessionComposition", title: "Get Compose Session Composition", method: "GET", pathTemplate: "/v1/projects/{id}/compose-session/{sessionId}/composition", pathParams: ["id", "sessionId"], queryParams: [], bodyKey: null, description: "Read the session's scratch composition \u2014 Pure read: returns the composition currently held in the session's SCRATCH (what the author LLM has been editing over this session), NOT the project's active composition. The Director ensemble reads this back per candidate and returns it as the authored composition \u2014 the winner is saved downstream, so a candidate never commits its scratch to active. 404 when the session is unknown/foreign or has never written a scratch. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "composition": {} }, "additionalProperties": true } },
|
|
9311
9350
|
{ operationId: "getComposition", toolName: "cueframe_api_getComposition", title: "Get Composition", method: "GET", pathTemplate: "/v1/projects/{id}/composition", pathParams: ["id"], queryParams: [{ "name": "compositionId", "required": false, "description": "Read a SPECIFIC composition instead of the project's active one. Omit it and the active composition is returned. Pairs with `composition_id` on the apply op: an edit you can make to a second composition is one you can read back.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }], bodyKey: null, description: "Get a project's composition \u2014 Required permission: projects:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "v": { "type": "number" }, "format": { "type": "object" }, "tracks": { "type": "array" }, "markers": { "type": "array" }, "captions": { "type": "object" }, "license": { "type": "object" }, "accessibility": { "type": "object" } }, "additionalProperties": true } },
|
|
@@ -9348,6 +9387,7 @@ var GENERATED_OPERATIONS = [
|
|
|
9348
9387
|
{ operationId: "listWebhooks", toolName: "cueframe_api_listWebhooks", title: "List Webhooks", method: "GET", pathTemplate: "/v1/webhooks", pathParams: [], queryParams: [{ "name": "limit", "required": false, "description": "Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "minimum": 1, "maximum": 100 } }, { "name": "after", "required": false, "description": "Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }], bodyKey: null, description: "List webhook endpoints \u2014 Required permission: webhooks:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "data": { "type": "array" }, "pagination": { "type": "object", "description": "Cursor pagination metadata." } }, "additionalProperties": true } },
|
|
9349
9388
|
{ operationId: "newComposition", toolName: "cueframe_api_newComposition", title: "New Composition", method: "POST", pathTemplate: "/v1/projects/{id}/compositions", pathParams: ["id"], queryParams: [], bodyKey: "newCompositionBody", description: "Create a new composition (video) in a project \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
9350
9389
|
{ operationId: "openComposeSession", toolName: "cueframe_api_openComposeSession", title: "Open Compose Session", method: "POST", pathTemplate: "/v1/projects/{id}/compose-session", pathParams: ["id"], queryParams: [], bodyKey: "openComposeSessionBody", description: "Open an isolated scratch composition \u2014 Mint isolated scratch state for project authoring. This returns immediately and starts no sandbox or render provider; use /preview-frame-jobs and /score-composition for durable preview and verification work. The scratch closes automatically after its idle TTL or explicitly via DELETE. Optionally seed it from a supplied composition (seedComposition); a bodyless open derives from the project's active composition. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "sessionId": { "type": "string" } }, "additionalProperties": true } },
|
|
9390
|
+
{ operationId: "patchComponent", toolName: "cueframe_api_patchComponent", title: "Patch Component", method: "PATCH", pathTemplate: "/v1/components/{id}", pathParams: ["id"], queryParams: [], bodyKey: "patchComponentBody", description: "Patch an authored component \u2014 RFC 7396 merge patch: send only the fields you are changing. Every field you omit keeps the value it already had. Identical in effect to PUT, which merges the same way. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "category": { "type": "string", "enum": ["text", "effects", "transitions", "layouts", "backgrounds", "ui-blocks", "scenes"] }, "propSchema": { "type": "object" }, "origin": { "type": "string", "enum": ["customer-owned", "server-native"] }, "ejectedFrom": { "type": "string" }, "tokens": { "type": "object" }, "examples": { "type": "array", "description": "Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back." }, "durationInFrames": { "type": "number" }, "manifest": { "type": "object" }, "id": { "type": "string", "description": "The entry's id: a `primitiveId` for a built-in, a `componentId` for an installed component." }, "source": { "type": "string", "description": "'default' = built-in primitive (place by primitiveId); 'installed' = org-authored component (place by componentId).", "enum": ["default", "installed"] }, "kind": { "type": "string", "description": "RENDER kind (component | transition | scene). NOT the ClipSource variant \u2014 see `placement` for how to author it on the timeline.", "enum": ["component", "transition", "scene"] }, "version": { "type": "string", "description": "The ENTRY's version: a semver string ('0.0.0' until an authored component is versioned). Distinct from `manifest.version`, which is the runtime contract version and is always the literal 2." }, "propDefaults": { "type": "object" }, "textParam": { "type": ["string", "null"], "description": "The param field that carries this primitive's primary text; null = no single text slot." }, "subtextParam": { "type": ["string", "null"], "description": "The param field for secondary text (subtitle/byline); null = none." }, "format": { "type": "object" }, "intent": { "type": "string", "description": "Selection signal: a verb naming what this primitive accomplishes (e.g. 'product-trailer'). Match it to the beat you are authoring." }, "useWhen": { "type": "string", "description": "When to use this \u2014 AND when not to. The negative guidance is load-bearing; read it before picking." }, "pairsWith": { "type": "array", "description": "Authoring guidance: ids of primitives that COMPOSE well with this one in the same edit." }, "avoidWith": { "type": "array", "description": "Authoring guidance: ids of primitives that CONFLICT with this one \u2014 do not place together." }, "tags": { "type": "array", "description": "Free-text search keywords." }, "mood": { "type": "array", "description": "Vibe/tone tags (e.g. 'cinematic', 'minimal'). Filter to match the edit's mood." }, "tier": { "type": "string", "description": "Quality/applicability RANKING (a preference, not a flag). Prefer 'recommended'; reach for 'niche' only when its specific use-case is exactly the beat.", "enum": ["recommended", "standard", "niche"] }, "useCase": { "type": "array", "description": "The edit ROLE(s) this primitive fills \u2014 the dimension to filter by for a beat (e.g. 'intro', 'title-over-footage', 'grade')." }, "fixedCopy": { "type": "array", "description": "On-screen strings this primitive BAKES \u2014 the read-side counterpart to propSchema. These literals render REGARDLESS of params (no param can change them); fork the source via get_component_source to edit them. Use this to see at author time what fixed copy (someone-else's marketing text, faux-code, faux-data) will appear before you render." }, "brandBindings": { "type": "array", "description": "Params that can follow the project brand kit. Each {param, brandToken} says: set `param` to `brandToken` (a `$brand:` ref, e.g. '$brand:colors.accent') to track the brand instead of a literal. See the list response's `brandTokens` for the full ref vocabulary. Omitted when nothing is brand-bound." }, "placement": { "type": "object" }, "warnings": { "type": "array", "description": "Non-blocking save-time advisories \u2014 the create/update SUCCEEDED. Currently: a `fontFamily` string literal referencing a NON-vendored font (a bare CSS generic like 'serif', or an unknown named family like 'Arial') whose LIVE-lane pixels vary by render host \u2014 re-author with a vendored family or 'Georgia'. Omitted when there is nothing to flag; only present on the create/update responses." } }, "additionalProperties": true } },
|
|
9351
9391
|
{ operationId: "patchProject", toolName: "cueframe_api_patchProject", title: "Patch Project", method: "PATCH", pathTemplate: "/v1/projects/{id}", pathParams: ["id"], queryParams: [], bodyKey: "patchProjectBody", description: "Update a project \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": ["string", "null"] }, "format": {}, "brandKitId": { "type": ["string", "null"] }, "activeCompositionId": { "type": ["string", "null"] }, "composition": { "type": "object", "description": "Summary of a project's stored composition." }, "lastRender": { "description": "Most recent render for a project, if any." }, "webUrl": { "type": ["string", "null"], "description": "A browser URL that opens THIS project, or null when CueFrame exposes no web view for a project. Null today: the console serves account surfaces (keys, usage, billing) and has no per-project page, so there is no link to give. Do NOT synthesise one \u2014 a guessed console path 404s. Show the user rendered output (create_render \u2192 outputUrl) or a preview still instead. This field becoming non-null is the signal that a real project view exists." }, "createdAt": { "type": "string" } }, "additionalProperties": true } },
|
|
9352
9392
|
{ operationId: "patchWebhook", toolName: "cueframe_api_patchWebhook", title: "Patch Webhook", method: "PATCH", pathTemplate: "/v1/webhooks/{id}", pathParams: ["id"], queryParams: [], bodyKey: "patchWebhookBody", description: "Update a webhook endpoint \u2014 Required permission: webhooks:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": true }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "url": { "type": "string" }, "events": { "type": "array" }, "settleMs": { "type": "integer" }, "enabled": { "type": "boolean" }, "verificationStatus": { "type": "string", "description": "pending = callback URL has not echoed the ownership challenge (receives no events); verified = ownership proven.", "enum": ["pending", "verified"] }, "createdAt": { "type": "string" }, "lastDeliveredAt": { "type": ["string", "null"] }, "lastFailedAt": { "type": ["string", "null"] }, "consecutiveFailures": { "type": "integer" } }, "additionalProperties": true } },
|
|
9353
9393
|
{ operationId: "previewClip", toolName: "cueframe_api_previewClip", title: "Preview Clip", method: "POST", pathTemplate: "/v1/projects/{id}/preview-clip", pathParams: ["id"], queryParams: [], bodyKey: "previewClipBody", description: "Render a scoped motion preview of the composition \u2014 A cheap, watchable MP4 of ONLY [fromSec, toSec) of the composition at preview quality (capped resolution, lighter encode). The way to judge motion \u2014 a cut, a transition, a component's animation \u2014 with real fidelity BEFORE paying for a full render. Async: returns a render job; wait_job(kind='render') or webhook render.completed for the URL. Meters the capture feature, never an exports credit. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "status": { "type": "string", "enum": ["queued", "pending", "rendering", "complete", "error", "cancelled"] }, "progress": { "type": "object", "description": "Non-terminal render progress; phase is one of the worker's emitted stages." }, "outputUrl": { "type": ["string", "null"] }, "outputExpiresAt": { "type": ["string", "null"] }, "error": { "type": ["string", "null"], "description": "Human-readable failure message. Pair with `errorCode` for a stable, machine-readable code an agent runner can branch on." }, "errorCode": { "type": ["string", "null"], "description": "Stable, machine-readable error code (e.g. `render_pipeline_unavailable`, `render_route_missing`, `render_pipeline_failed`). Null when status is not `error` or unavailable for an older render." }, "errorDetails": { "description": "Structured failure context \u2014 `{ targetUrl?, upstreamStatus?, upstreamCode?, attemptedAt? }`. Surfaced so agent runners can distinguish operator-config issues from upstream-down vs route-missing without parsing `error`." }, "category": { "description": "Failure taxonomy when status is `error`; null otherwise. `authoring` = deterministic defect in YOUR composition/request \u2014 fix it, retrying is futile; `transient` = temporary pipeline/infra failure \u2014 safe to retry_render; `internal` = unexpected server fault \u2014 retry once then escalate. Mirrors the render.failed webhook's `category`." }, "retryable": { "type": ["boolean", "null"], "description": "Whether re-attempting the SAME render can succeed (status `error`); null otherwise. true \u2192 call retry_render. false \u2192 deterministic (category authoring/internal); fix the composition first \u2014 retry_render alone reproduces it. Mirrors the render.failed webhook's `retryable`." }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string", "description": "ISO-8601 timestamp of the render's most recent progress update. Compute staleness = now \u2212 updatedAt to distinguish a wedged render from a slow one and decide whether to wait, cancel, or retry." }, "listUsd": { "type": "number", "description": "A2 money stamp: the metered event's LIST price (USD), stamped at the success terminal (exports for deliverable renders, compose_capture for A8 previews). A plan allowance may zero the actual invoice line \u2014 this is the list price, never a Stripe charge. Absent while running, on failure, and for x402 orgs (on-chain receipts). Mirrors the get_usage ledger." }, "warnings": { "type": "array", "description": "Non-fatal advisories surfaced at render-CREATE (omitted when none, and on GET \u2014 create-time only)." } }, "additionalProperties": true } },
|
|
@@ -9374,7 +9414,7 @@ var GENERATED_OPERATIONS = [
|
|
|
9374
9414
|
{ operationId: "triggerMuxJob", toolName: "cueframe_api_triggerMuxJob", title: "Trigger Mux Job", method: "POST", pathTemplate: "/v1/sessions/{id}/mux-job", pathParams: ["id"], queryParams: [], bodyKey: null, description: "Trigger mux-audio-onto-video workflow \u2014 Required permission: sessions:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "jobId": { "type": "string" }, "status": { "type": "string" }, "muxedItems": {}, "error": { "type": ["string", "null"] }, "startedAt": { "type": ["string", "null"] }, "completedAt": { "type": ["string", "null"] } }, "additionalProperties": true } },
|
|
9375
9415
|
{ operationId: "triggerSubjectDetection", toolName: "cueframe_api_triggerSubjectDetection", title: "Trigger Subject Detection", method: "POST", pathTemplate: "/v1/media/{id}/detect-subjects", pathParams: ["id"], queryParams: [{ "name": "detector", "required": false, "description": "Which detector to run. Defaults to `face`; an unknown value is refused, never defaulted.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string", "enum": ["face", "person"] } }], bodyKey: null, description: "Trigger standalone subject/face detection \u2014 Required permission: media:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "factId": { "type": "string", "description": "Opaque identifier for the derived fact." }, "status": { "type": "string", "description": "State of the fact right now. `ready` with `alreadyExisted` means the detection was already computed and is available immediately.", "enum": ["pending", "ready", "failed"] }, "quotedUsd": { "type": "number", "description": "The server's price for this detection, in USD, quoted from the source duration. Zero is charged when `alreadyExisted` is true." }, "alreadyExisted": { "type": "boolean", "description": "True when this exact detection was already pending or ready. Nothing was dispatched and nothing will be charged \u2014 the same fact is served twice for one price." } }, "additionalProperties": true } },
|
|
9376
9416
|
{ operationId: "updateBrief", toolName: "cueframe_api_updateBrief", title: "Update Brief", method: "PATCH", pathTemplate: "/v1/briefs/{id}", pathParams: ["id"], queryParams: [], bodyKey: "updateBriefBody", description: "Edit a brief \u2014 Partial update. While an ACTIVE compose job references this brief the edit is refused (409 conflict) \u2014 finish, resume, or abandon the job first; the Director never has its input edited out from under it. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "kind": { "type": "string", "description": "authored = create_brief; clip = minted by suggest_briefs from an AI clip suggestion.", "enum": ["authored", "clip"] }, "sourceSuggestionId": { "type": "string", "description": "kind:'clip' provenance \u2014 the suggestion this Brief was minted from." }, "name": { "type": "string" }, "goal": { "type": "string", "description": "What the video must accomplish." }, "audience": { "type": "string" }, "platform": { "type": "string" }, "format": { "type": "object", "description": "Output-format spec per \xA7Format." }, "durationSec": { "type": "number", "description": "Target output duration. HONOR-OR-REFUSE: compose validates it against the beat-source window (\xB11.5s) and refuses a brief it cannot honor." }, "tone": { "type": "string" }, "cta": { "type": "string" }, "locale": { "type": "string", "description": "Output language (BCP-47 tag, e.g. 'es-419'): ALL on-screen copy + captions." }, "hook": { "type": "string" }, "caption": { "type": "string" }, "beats": { "type": "array" }, "mustIncludes": { "type": "array" }, "references": { "type": "array" }, "captions": { "type": "object" }, "motionStyle": { "type": "object" }, "seededGraphics": { "type": "array", "description": "Client-authored graphic clips the Director must carry VERBATIM: seeded into the design loop's base composition as LOCKED clips (never re-authored, never discarded)." }, "exclusions": { "type": "array" }, "gates": { "type": "object" }, "audio": { "type": "object" }, "quote": { "type": "object" }, "createdAt": { "type": "number" }, "updatedAt": { "type": "number" } }, "additionalProperties": true } },
|
|
9377
|
-
{ operationId: "updateComponent", toolName: "cueframe_api_updateComponent", title: "Update Component", method: "PUT", pathTemplate: "/v1/components/{id}", pathParams: ["id"], queryParams: [], bodyKey: "updateComponentBody", description: "Update an authored component \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "
|
|
9417
|
+
{ operationId: "updateComponent", toolName: "cueframe_api_updateComponent", title: "Update Component", method: "PUT", pathTemplate: "/v1/components/{id}", pathParams: ["id"], queryParams: [], bodyKey: "updateComponentBody", description: "Update an authored component \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "category": { "type": "string", "enum": ["text", "effects", "transitions", "layouts", "backgrounds", "ui-blocks", "scenes"] }, "propSchema": { "type": "object" }, "origin": { "type": "string", "enum": ["customer-owned", "server-native"] }, "ejectedFrom": { "type": "string" }, "tokens": { "type": "object" }, "examples": { "type": "array", "description": "Usage examples, as authored. A built-in primitive projects {name, mood?, params?, description?}; an authored component's examples are whatever it wrote, which is why the item is open. One shape for both directions: what you write here is what you read back." }, "durationInFrames": { "type": "number" }, "manifest": { "type": "object" }, "id": { "type": "string", "description": "The entry's id: a `primitiveId` for a built-in, a `componentId` for an installed component." }, "source": { "type": "string", "description": "'default' = built-in primitive (place by primitiveId); 'installed' = org-authored component (place by componentId).", "enum": ["default", "installed"] }, "kind": { "type": "string", "description": "RENDER kind (component | transition | scene). NOT the ClipSource variant \u2014 see `placement` for how to author it on the timeline.", "enum": ["component", "transition", "scene"] }, "version": { "type": "string", "description": "The ENTRY's version: a semver string ('0.0.0' until an authored component is versioned). Distinct from `manifest.version`, which is the runtime contract version and is always the literal 2." }, "propDefaults": { "type": "object" }, "textParam": { "type": ["string", "null"], "description": "The param field that carries this primitive's primary text; null = no single text slot." }, "subtextParam": { "type": ["string", "null"], "description": "The param field for secondary text (subtitle/byline); null = none." }, "format": { "type": "object" }, "intent": { "type": "string", "description": "Selection signal: a verb naming what this primitive accomplishes (e.g. 'product-trailer'). Match it to the beat you are authoring." }, "useWhen": { "type": "string", "description": "When to use this \u2014 AND when not to. The negative guidance is load-bearing; read it before picking." }, "pairsWith": { "type": "array", "description": "Authoring guidance: ids of primitives that COMPOSE well with this one in the same edit." }, "avoidWith": { "type": "array", "description": "Authoring guidance: ids of primitives that CONFLICT with this one \u2014 do not place together." }, "tags": { "type": "array", "description": "Free-text search keywords." }, "mood": { "type": "array", "description": "Vibe/tone tags (e.g. 'cinematic', 'minimal'). Filter to match the edit's mood." }, "tier": { "type": "string", "description": "Quality/applicability RANKING (a preference, not a flag). Prefer 'recommended'; reach for 'niche' only when its specific use-case is exactly the beat.", "enum": ["recommended", "standard", "niche"] }, "useCase": { "type": "array", "description": "The edit ROLE(s) this primitive fills \u2014 the dimension to filter by for a beat (e.g. 'intro', 'title-over-footage', 'grade')." }, "fixedCopy": { "type": "array", "description": "On-screen strings this primitive BAKES \u2014 the read-side counterpart to propSchema. These literals render REGARDLESS of params (no param can change them); fork the source via get_component_source to edit them. Use this to see at author time what fixed copy (someone-else's marketing text, faux-code, faux-data) will appear before you render." }, "brandBindings": { "type": "array", "description": "Params that can follow the project brand kit. Each {param, brandToken} says: set `param` to `brandToken` (a `$brand:` ref, e.g. '$brand:colors.accent') to track the brand instead of a literal. See the list response's `brandTokens` for the full ref vocabulary. Omitted when nothing is brand-bound." }, "placement": { "type": "object" }, "warnings": { "type": "array", "description": "Non-blocking save-time advisories \u2014 the create/update SUCCEEDED. Currently: a `fontFamily` string literal referencing a NON-vendored font (a bare CSS generic like 'serif', or an unknown named family like 'Arial') whose LIVE-lane pixels vary by render host \u2014 re-author with a vendored family or 'Georgia'. Omitted when there is nothing to flag; only present on the create/update responses." } }, "additionalProperties": true } },
|
|
9378
9418
|
{ operationId: "validateComposition", toolName: "cueframe_api_validateComposition", title: "Validate Composition", method: "POST", pathTemplate: "/v1/composition/validate", pathParams: [], queryParams: [], bodyKey: "validateCompositionBody", description: "Validate a composition body without saving it (dry-run) \u2014 Dry-run the FULL save-time authoring guard set against a Composition body WITHOUT persisting it and without a project. Runs the same pure, DB-free guards saveComposition enforces \u2014 wire shape, primitive membership (unknown_primitive / custom_missing_sourcecode), required-param shape (invalid_primitive_params), clip\u2194track family (clip_source_track_mismatch), reframe coverage (reframe_coverage_gap), and font admission (font_not_reproducible: a caption/param face that is neither bundled nor sealed in a brand font asset) \u2014 and returns ONE shape, `200 { valid, errors[] }`, for BOTH wire-shape and deep-invariant failures (no 400-vs-200 split). `valid:false` lists every authoring error (sanitized envelopes) to fix before save/render. The ONLY checks NOT run here are the two DB-bound ones \u2014 trim-bounds (media duration) and image/asset-on-video-track (media kind) \u2014 which can only be caught at save/render. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "contract": { "type": "string", "description": "The contract this verdict was computed against (the kernel version the deployment runs). If it differs between two calls, the validator changed, not your composition." }, "valid": { "type": "boolean" }, "errors": { "type": "array" }, "advisories": { "type": "array", "description": "Deterministic, render-free QUALITY floors (the SAME named defects the Director's in-loop verify and score_composition surface: static-hold, caption-spine, sfx-density, sfx-speech-collision, bed-coverage, audio-role). NON-blocking \u2014 they never flip `valid` (an editorially-weak composition still renders); fix them for quality, not to save. Empty when the composition is clean or the wire shape failed (they need a parsed composition)." }, "warnings": { "type": "array", "description": "Non-blocking render-fidelity warnings detected before enqueue, including unavailable font families." }, "quote": { "type": "object", "description": "The A2 money triple for the commodity lane: validate is free; estimatedJourneyTotalUsd is the render price to finish from a valid composition \u2014 relay it BEFORE create_render." } }, "additionalProperties": true } },
|
|
9379
9419
|
{ operationId: "verifyWebhook", toolName: "cueframe_api_verifyWebhook", title: "Verify Webhook", method: "POST", pathTemplate: "/v1/webhooks/{id}/verify", pathParams: ["id"], queryParams: [], bodyKey: null, description: 'Re-run webhook ownership verification \u2014 Re-send the signed `webhook.verify` ownership challenge to a PENDING webhook\'s url and, if the endpoint now echoes `data.token` in a 2xx, flip it active \u2014 IN PLACE (id + secret preserved; no delete/recreate). Use it to recover after fixing a receiver that failed the challenge at create time. An already-verified webhook returns `status:"active"` unchanged (idempotent). Returns the same `{ status, verification? }` shape as create. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.', annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": true }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "status": { "type": "string", "description": "active = ownership verified + receiving events; pending = challenge not echoed.", "enum": ["active", "pending"] }, "verification": { "type": "object", "description": "Present only when the re-challenge did not verify; `reason` names why (see WebhookCreateResponse.verification)." } }, "additionalProperties": true } },
|
|
9380
9420
|
{ operationId: "whoami", toolName: "cueframe_api_whoami", title: "Whoami", method: "GET", pathTemplate: "/v1/whoami", pathParams: [], queryParams: [], bodyKey: null, description: "Return the caller identity + permissions \u2014 Echoes the `orgId`, `permissions`, and key metadata derived from the Authorization header (or x402 payment). Useful for SDKs to confirm which org a key is bound to and what permissions it carries. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false }, outputSchema: { "type": "object", "properties": { "orgId": { "type": "string" }, "permissions": { "type": "object" }, "keyId": { "type": "string" }, "keyName": { "type": "string" } }, "additionalProperties": true } }
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
} from "./chunk-EXY4JJPH.js";
|
|
10
10
|
import {
|
|
11
11
|
assertComponentImportsAllowed
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-K66NLMGX.js";
|
|
13
13
|
import {
|
|
14
14
|
assertComponentBrowserHardware,
|
|
15
15
|
componentBrowserBackend,
|
|
16
16
|
componentBrowserOptions,
|
|
17
17
|
readGpuAttestation
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-JWMWVP64.js";
|
|
19
19
|
import {
|
|
20
20
|
ComponentCapturePageRasterAttestationV1,
|
|
21
21
|
ComponentGraphicsApiV2,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
ComponentStillPngContainerFactsV1,
|
|
26
26
|
ComponentStillSessionAttestationV1,
|
|
27
27
|
ComponentStillSessionHostAttestationV1
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-EC6VFQE6.js";
|
|
29
29
|
import {
|
|
30
30
|
parseSceneShotSpecV2
|
|
31
31
|
} from "./chunk-CL5Y6V6K.js";
|