@cueframe/kernel 0.0.1 → 0.1.0
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/account-model/testing/conversationStoreContract.d.ts +1 -1
- package/dist/_members/authoring/providers/resourceApi.d.ts +1 -1
- package/dist/_members/authoring/transpileComponent.d.ts +1 -1
- package/dist/_members/cloud-import/CloudImportService.d.ts +35 -0
- package/dist/_members/cloud-import/ImportProvider.d.ts +73 -0
- package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +27 -0
- package/dist/_members/cloud-import/chunk-XKO6ZSWI.js +162 -0
- package/dist/_members/cloud-import/chunk-XKO6ZSWI.js.map +1 -0
- package/dist/_members/cloud-import/cloudConfig.d.ts +23 -0
- package/dist/_members/cloud-import/index.d.ts +9 -0
- package/dist/_members/cloud-import/index.js +241 -0
- package/dist/_members/cloud-import/index.js.map +1 -0
- package/dist/_members/cloud-import/multipartUpload.d.ts +12 -0
- package/dist/_members/cloud-import/multipartUpload.js +7 -0
- package/dist/_members/cloud-import/multipartUpload.js.map +1 -0
- package/dist/_members/composition/ops/compositionOps.d.ts +1 -1
- package/dist/_members/composition/ops/types.d.ts +1 -1
- package/dist/_members/composition/timeline/placement.d.ts +1 -1
- package/dist/_members/composition/validators/composition.d.ts +1 -1
- package/dist/_members/composition-ops/index.d.ts +1 -1
- package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
- package/dist/_members/convex-api/api.d.ts +5 -0
- package/dist/_members/convex-api/dataModel.d.ts +6 -0
- package/dist/_members/core/render/exportSettings.d.ts +1 -1
- package/dist/_members/mcp/curation.d.ts +1 -1
- package/dist/_members/plane/conformance.d.ts +1 -1
- package/dist/_members/render-harness/localRender.d.ts +1 -1
- package/dist/animate.js +828 -79187
- package/dist/authoring/build-tools.js +8 -11
- package/dist/authoring/context.js +5 -5
- package/dist/authoring/models.js +1 -2
- package/dist/authoring/prompts.js +1 -1
- package/dist/authoring/tools.js +7 -7
- package/dist/authoring/transpileComponent.js +3 -2220
- package/dist/authoring.js +27 -29
- package/dist/brand-derivation.js +1 -1
- package/dist/chunk-6IU2UQI5.js +107 -0
- package/dist/{chunk-N67PDTKQ.js → chunk-ABL557OT.js} +1 -1
- package/dist/{chunk-DSNG6WLU.js → chunk-AYVJXDLB.js} +1 -4
- package/dist/{chunk-G3PBH53P.js → chunk-COYMZ76S.js} +1 -1
- package/dist/chunk-DSMLHYJ4.js +82 -0
- package/dist/{chunk-BRKJKB33.js → chunk-FYZVH3MC.js} +1 -1
- package/dist/{chunk-MVEE6HEC.js → chunk-GA23TRNR.js} +5 -7
- package/dist/{chunk-OIRUO5P7.js → chunk-GEA7E2FL.js} +1 -1
- package/dist/chunk-HCCBDJLW.js +68 -0
- package/dist/{chunk-QLAQHR3L.js → chunk-IBYQG46O.js} +1 -1
- package/dist/chunk-JQMPHKLU.js +126 -0
- package/dist/{chunk-ELLSET2N.js → chunk-LM4WDUQJ.js} +3 -6
- package/dist/{chunk-UEI3NLNK.js → chunk-MHOQTPOB.js} +1 -4
- package/dist/{chunk-ATAF24QG.js → chunk-MXFAADCQ.js} +1 -1
- package/dist/{chunk-TULRCY6U.js → chunk-NFEGPWGS.js} +1 -1
- package/dist/{chunk-MC5DLSEV.js → chunk-ODL7GQJG.js} +14 -14
- package/dist/{chunk-WZTTZHNR.js → chunk-OLFOPQCA.js} +12 -9
- package/dist/{chunk-P43IE4WB.js → chunk-P727GZVO.js} +2 -4
- package/dist/{chunk-S3P5BFFL.js → chunk-PMY24FUD.js} +2 -4
- package/dist/chunk-RF7U3SCL.js +606 -0
- package/dist/{chunk-JD77Y2WM.js → chunk-SW336CJP.js} +1 -4
- package/dist/{chunk-M3I5LMAB.js → chunk-UY4SWJVE.js} +1 -1
- package/dist/{chunk-52AHXNKM.js → chunk-VOO5FQSS.js} +5 -5
- package/dist/{chunk-NV4I6GJV.js → chunk-XWKZB5U5.js} +4 -4
- package/dist/{chunk-6QJ3V3VS.js → chunk-YX2GSJK7.js} +1 -1
- package/dist/{chunk-5I7VDCAC.js → chunk-ZB3C3HM7.js} +1 -1
- package/dist/chunk-ZT7MHRQU.js +104 -0
- package/dist/cloud-import/multipart.d.ts +1 -0
- package/dist/cloud-import/multipart.js +8 -0
- package/dist/cloud-import.d.ts +1 -0
- package/dist/cloud-import.js +234 -0
- package/dist/compose/renderer.js +18 -21
- package/dist/compose.js +18 -21
- package/dist/composition/graphics-plan.js +3 -3
- package/dist/composition/ops.js +4 -4
- package/dist/composition/primitive-catalog.js +1 -1
- package/dist/composition/projection.js +3 -3
- package/dist/composition/validators.js +2 -2
- package/dist/composition-ops.js +12 -12
- package/dist/composition.js +5 -5
- package/dist/{context-CEAKQ5T7.js → context-OKX3HHFS.js} +5 -5
- package/dist/convex-api/dataModel.d.ts +1 -0
- package/dist/convex-api/dataModel.js +0 -0
- package/dist/convex-api.d.ts +1 -0
- package/dist/convex-api.js +8 -0
- package/dist/core/render.js +2 -2
- package/dist/core.js +2 -2
- package/dist/mcp/adapter.js +1 -5
- package/dist/mcp/server.js +1 -2
- package/dist/mcp.js +2 -95
- package/dist/media-model/media-kind.js +9 -98
- package/dist/nle-export/xml.js +5 -22799
- package/dist/nle-export.js +18 -21
- package/dist/primitives/backgrounds.js +2 -3
- package/dist/primitives/captions.js +4 -243
- package/dist/primitives/effects.js +2 -3
- package/dist/primitives/hero-text.js +2 -3
- package/dist/primitives/layouts.js +2 -3
- package/dist/primitives/lib/index.js +8 -10
- package/dist/primitives/lib/preview.js +1 -2
- package/dist/primitives/lib/schema.js +1 -2
- package/dist/primitives/lib/text/fitText.js +1 -2
- package/dist/primitives/lib.js +8 -10
- package/dist/primitives/scenes.js +1 -2
- package/dist/primitives/text.js +2 -3
- package/dist/primitives/ui-blocks.js +4 -5
- package/dist/primitives.js +19 -21
- package/package.json +123 -13
- package/dist/TextureLoader-UQOFUSAP.js +0 -422
- package/dist/VideoTexture-AQWSPIJG.js +0 -62
- package/dist/chunk-7GISRVON.js +0 -14176
- package/dist/chunk-DIBOJJMU.js +0 -16838
- package/dist/chunk-EAUSEGB7.js +0 -420
- package/dist/chunk-FUWJOVVK.js +0 -3633
- package/dist/chunk-G75E7YA4.js +0 -11883
- package/dist/chunk-JCZQT7K3.js +0 -3266
- package/dist/chunk-KF5ETMKB.js +0 -544
- package/dist/chunk-NDKERSXY.js +0 -1296
- package/dist/chunk-V43Y7IE4.js +0 -3621
- package/dist/chunk-VIVQHIGZ.js +0 -4319
- package/dist/chunk-YA3OR2KK.js +0 -249
- package/dist/hls-HD4C5G6W.js +0 -33000
- package/dist/token-RGFIT24D.js +0 -69
- package/dist/token-util-GPLSGYVO.js +0 -5
- package/dist/vision_bundle-5Y376MAR.js +0 -4084
- package/dist/{chunk-6CMVBTTP.js → chunk-YIOY2XEO.js} +4 -4
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Composition
|
|
3
|
-
} from "./chunk-ATAF24QG.js";
|
|
4
1
|
import {
|
|
5
2
|
expandToLinkGroup
|
|
6
3
|
} from "./chunk-KYRDKK2D.js";
|
|
4
|
+
import {
|
|
5
|
+
Composition
|
|
6
|
+
} from "./chunk-MXFAADCQ.js";
|
|
7
7
|
|
|
8
8
|
// ../composition/src/ops/compositionOps.ts
|
|
9
9
|
function findOrCreateTrackByKind(composition, kind) {
|
|
@@ -771,7 +771,7 @@ function createCompositionOps(get, set) {
|
|
|
771
771
|
//
|
|
772
772
|
// Capability parity: the cloud agent must be able to do everything the
|
|
773
773
|
// editor can (these were previously editor-only, in
|
|
774
|
-
//
|
|
774
|
+
// apps/studio/src/store/compositionStore/compositionOps.ts). They are pure
|
|
775
775
|
// `set` mutations over `composition.tracks` + the selection fields already
|
|
776
776
|
// on `CompositionOpsState`, so they live in core unchanged. The agent's
|
|
777
777
|
// tool layer can now surface them; the editor keeps calling the same names.
|
|
@@ -14236,7 +14236,7 @@ var PRIMITIVE_META = [
|
|
|
14236
14236
|
"type": "log"
|
|
14237
14237
|
},
|
|
14238
14238
|
{
|
|
14239
|
-
"text": "\u2713 Created components/
|
|
14239
|
+
"text": "\u2713 Created components/apps/studio/typewriter.tsx",
|
|
14240
14240
|
"type": "success"
|
|
14241
14241
|
},
|
|
14242
14242
|
{
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// ../authoring/src/models/modelFactory.ts
|
|
2
|
+
import { createAnthropic } from "@ai-sdk/anthropic";
|
|
3
|
+
import { createOpenAI } from "@ai-sdk/openai";
|
|
4
|
+
function withRequestTimeout(inner, ms) {
|
|
5
|
+
return async (input, init) => {
|
|
6
|
+
const timeout = AbortSignal.timeout(ms);
|
|
7
|
+
const signal = init?.signal ? AbortSignal.any([init.signal, timeout]) : timeout;
|
|
8
|
+
let timer;
|
|
9
|
+
const bound = new Promise((_res, rej) => {
|
|
10
|
+
timer = setTimeout(
|
|
11
|
+
() => rej(new Error(`llm_request_timeout: model HTTP request exceeded ${ms}ms (hung gateway call?)`)),
|
|
12
|
+
ms
|
|
13
|
+
);
|
|
14
|
+
});
|
|
15
|
+
try {
|
|
16
|
+
return await Promise.race([inner(input, { ...init, signal }), bound]);
|
|
17
|
+
} catch (err) {
|
|
18
|
+
if (timeout.aborted && !(init?.signal?.aborted ?? false)) {
|
|
19
|
+
throw new Error(`llm_request_timeout: model HTTP request exceeded ${ms}ms (hung gateway call?)`);
|
|
20
|
+
}
|
|
21
|
+
throw err;
|
|
22
|
+
} finally {
|
|
23
|
+
if (timer) clearTimeout(timer);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function makeLangfuseFetch(meta) {
|
|
28
|
+
const traceId = meta.traceId ?? crypto.randomUUID();
|
|
29
|
+
return async (input, init) => {
|
|
30
|
+
const originalBody = init?.body;
|
|
31
|
+
if (typeof originalBody !== "string") {
|
|
32
|
+
return fetch(input, init);
|
|
33
|
+
}
|
|
34
|
+
const body = JSON.parse(originalBody);
|
|
35
|
+
const fields = {
|
|
36
|
+
trace_id: traceId,
|
|
37
|
+
trace_name: meta.traceName,
|
|
38
|
+
generation_name: meta.generationName ?? "llm_call",
|
|
39
|
+
session_id: meta.sessionId,
|
|
40
|
+
trace_user_id: meta.userId,
|
|
41
|
+
tags: meta.tags,
|
|
42
|
+
version: meta.version,
|
|
43
|
+
...meta.redactContent ? { turn_off_message_logging: true } : {}
|
|
44
|
+
};
|
|
45
|
+
body.metadata = { ...body.metadata ?? {}, ...fields };
|
|
46
|
+
body.litellm_metadata = { ...body.litellm_metadata ?? {}, ...fields, user: meta.userId };
|
|
47
|
+
return fetch(input, { ...init, body: JSON.stringify(body) });
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function buildModel(settings, langfuse) {
|
|
51
|
+
const provider = settings.provider;
|
|
52
|
+
switch (provider) {
|
|
53
|
+
case "anthropic": {
|
|
54
|
+
if (!settings.apiKey) throw new Error("Anthropic API key not configured.");
|
|
55
|
+
const anthropic = createAnthropic({
|
|
56
|
+
apiKey: settings.apiKey,
|
|
57
|
+
...settings.baseUrl ? { baseURL: settings.baseUrl } : {}
|
|
58
|
+
});
|
|
59
|
+
const id = settings.modelId || "claude-sonnet-4-6";
|
|
60
|
+
return { model: anthropic(id), providerName: "anthropic", modelId: id };
|
|
61
|
+
}
|
|
62
|
+
case "openai": {
|
|
63
|
+
if (!settings.apiKey) throw new Error("OpenAI API key not configured.");
|
|
64
|
+
const openai = createOpenAI({ apiKey: settings.apiKey });
|
|
65
|
+
const id = settings.modelId || "gpt-4o";
|
|
66
|
+
return { model: openai(id), providerName: "openai", modelId: id };
|
|
67
|
+
}
|
|
68
|
+
case "ollama": {
|
|
69
|
+
const baseUrl = settings.baseUrl || "http://localhost:11434/v1";
|
|
70
|
+
const openai = createOpenAI({ apiKey: "ollama", baseURL: baseUrl });
|
|
71
|
+
const id = settings.modelId || "llama3.1";
|
|
72
|
+
return { model: openai(id), providerName: "ollama", modelId: id };
|
|
73
|
+
}
|
|
74
|
+
case "gateway": {
|
|
75
|
+
if (!settings.gatewayUrl || !settings.gatewayKey) throw new Error("Gateway not configured.");
|
|
76
|
+
const baseFetch = langfuse ? makeLangfuseFetch(langfuse) : fetch;
|
|
77
|
+
const anthropic = createAnthropic({
|
|
78
|
+
apiKey: settings.gatewayKey,
|
|
79
|
+
baseURL: settings.gatewayUrl + "/anthropic/v1",
|
|
80
|
+
fetch: settings.requestTimeoutMs ? withRequestTimeout(baseFetch, settings.requestTimeoutMs) : langfuse ? baseFetch : void 0
|
|
81
|
+
});
|
|
82
|
+
const id = settings.modelId || "claude-sonnet-4-6";
|
|
83
|
+
return { model: anthropic(id), providerName: "gateway", modelId: id };
|
|
84
|
+
}
|
|
85
|
+
default:
|
|
86
|
+
throw new Error(`Unknown provider: ${provider}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function buildFastModel(settings, langfuse) {
|
|
90
|
+
return buildModel(
|
|
91
|
+
{
|
|
92
|
+
...settings,
|
|
93
|
+
modelId: settings.fastModelId ?? "claude-haiku-4-5-20251001"
|
|
94
|
+
},
|
|
95
|
+
langfuse
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export {
|
|
100
|
+
withRequestTimeout,
|
|
101
|
+
makeLangfuseFetch,
|
|
102
|
+
buildModel,
|
|
103
|
+
buildFastModel
|
|
104
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../_members/cloud-import/multipartUpload.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./_members/cloud-import/index.js";
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import {
|
|
2
|
+
multipartUpload
|
|
3
|
+
} from "./chunk-HCCBDJLW.js";
|
|
4
|
+
import "./chunk-6IU2UQI5.js";
|
|
5
|
+
import "./chunk-2ESYSVXG.js";
|
|
6
|
+
|
|
7
|
+
// ../cloud-import/src/ImportProvider.tsx
|
|
8
|
+
import { createContext, useContext, useState, useEffect, useCallback, useRef } from "react";
|
|
9
|
+
import { UppyContextProvider } from "@uppy/react";
|
|
10
|
+
|
|
11
|
+
// ../cloud-import/src/CloudImportService.ts
|
|
12
|
+
import Uppy from "@uppy/core";
|
|
13
|
+
import AwsS3 from "@uppy/aws-s3";
|
|
14
|
+
|
|
15
|
+
// ../cloud-import/src/MediaItemPreprocessor.ts
|
|
16
|
+
import { BasePlugin } from "@uppy/core";
|
|
17
|
+
var MediaItemPreprocessor = class _MediaItemPreprocessor extends BasePlugin {
|
|
18
|
+
static pluginId = "MediaItemPreprocessor";
|
|
19
|
+
createFn = null;
|
|
20
|
+
preprocessBound;
|
|
21
|
+
constructor(uppy, opts) {
|
|
22
|
+
super(uppy, opts ?? {});
|
|
23
|
+
this.id = _MediaItemPreprocessor.pluginId;
|
|
24
|
+
this.type = "preprocessor";
|
|
25
|
+
this.preprocessBound = this.preprocess.bind(this);
|
|
26
|
+
}
|
|
27
|
+
/** Inject the creation function (called from ImportProvider). */
|
|
28
|
+
setCreateFn(fn) {
|
|
29
|
+
this.createFn = fn;
|
|
30
|
+
}
|
|
31
|
+
install() {
|
|
32
|
+
this.uppy.addPreProcessor(this.preprocessBound);
|
|
33
|
+
}
|
|
34
|
+
uninstall() {
|
|
35
|
+
this.uppy.removePreProcessor(this.preprocessBound);
|
|
36
|
+
}
|
|
37
|
+
async preprocess(fileIDs) {
|
|
38
|
+
if (!this.createFn) return;
|
|
39
|
+
for (const fileID of fileIDs) {
|
|
40
|
+
const file = this.uppy.getFile(fileID);
|
|
41
|
+
if (!file) continue;
|
|
42
|
+
if (file.meta.convexMediaItemId) continue;
|
|
43
|
+
this.uppy.emit("preprocess-progress", file, {
|
|
44
|
+
mode: "indeterminate",
|
|
45
|
+
message: "Preparing upload\u2026"
|
|
46
|
+
});
|
|
47
|
+
try {
|
|
48
|
+
const mediaItemId = await this.createFn({
|
|
49
|
+
name: file.name ?? "unknown",
|
|
50
|
+
size: file.size ?? 0,
|
|
51
|
+
mimeType: file.type ?? "video/mp4"
|
|
52
|
+
});
|
|
53
|
+
this.uppy.setFileMeta(fileID, { convexMediaItemId: mediaItemId });
|
|
54
|
+
} catch (err) {
|
|
55
|
+
this.uppy.log(`[MediaItemPreprocessor] Failed for ${fileID}: ${err}`, "error");
|
|
56
|
+
}
|
|
57
|
+
this.uppy.emit("preprocess-complete", file);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// ../cloud-import/src/CloudImportService.ts
|
|
63
|
+
var CloudImportService = class {
|
|
64
|
+
uppy = null;
|
|
65
|
+
config = null;
|
|
66
|
+
/** Lazy-init: create Uppy + plugins on first use. */
|
|
67
|
+
init(config) {
|
|
68
|
+
if (this.uppy) return this.uppy;
|
|
69
|
+
this.config = config;
|
|
70
|
+
const signingUrl = this.config.uploadSigningUrl.replace(/\/$/, "");
|
|
71
|
+
this.uppy = new Uppy({
|
|
72
|
+
id: "cloud-import",
|
|
73
|
+
restrictions: {
|
|
74
|
+
allowedFileTypes: ["video/*", "audio/*"]
|
|
75
|
+
}
|
|
76
|
+
}).use(AwsS3, {
|
|
77
|
+
// Upload-signing Worker implements the S3 multipart endpoints at /s3/multipart/*
|
|
78
|
+
endpoint: signingUrl,
|
|
79
|
+
shouldUseMultipart: true,
|
|
80
|
+
// Cap concurrent multipart part uploads. Unbounded concurrency
|
|
81
|
+
// saturates the browser network stack and the signing Worker on
|
|
82
|
+
// large files; 3 keeps throughput high without melting either.
|
|
83
|
+
limit: 3,
|
|
84
|
+
// Exponential-ish backoff for failed part/signing requests. Uppy
|
|
85
|
+
// retries the same operation on each delay — keeps transient
|
|
86
|
+
// network blips from failing an entire upload.
|
|
87
|
+
retryDelays: [1e3, 3e3, 5e3, 1e4]
|
|
88
|
+
}).use(MediaItemPreprocessor);
|
|
89
|
+
return this.uppy;
|
|
90
|
+
}
|
|
91
|
+
/** Get the Uppy instance (must call init() first). */
|
|
92
|
+
getUppy() {
|
|
93
|
+
if (!this.uppy) throw new Error("CloudImportService not initialized \u2014 call init() first");
|
|
94
|
+
return this.uppy;
|
|
95
|
+
}
|
|
96
|
+
/** Get the MediaItemPreprocessor plugin. */
|
|
97
|
+
getPreprocessor() {
|
|
98
|
+
return this.getUppy().getPlugin(MediaItemPreprocessor.pluginId);
|
|
99
|
+
}
|
|
100
|
+
/** Update upload metadata (uploadToken, userId, projectId). */
|
|
101
|
+
setMeta(meta) {
|
|
102
|
+
this.uppy?.setMeta(meta);
|
|
103
|
+
if (meta.uploadToken) {
|
|
104
|
+
const plugin = this.uppy?.getPlugin("AwsS3Multipart");
|
|
105
|
+
if (plugin) {
|
|
106
|
+
plugin.setOptions({ headers: { "uppy-auth-token": meta.uploadToken } });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
var cloudImportService = new CloudImportService();
|
|
112
|
+
|
|
113
|
+
// ../cloud-import/src/ImportProvider.tsx
|
|
114
|
+
var ImportContext = createContext(null);
|
|
115
|
+
function ImportProvider({
|
|
116
|
+
children,
|
|
117
|
+
available,
|
|
118
|
+
dialogSlot,
|
|
119
|
+
uploadSigningUrl,
|
|
120
|
+
getUploadMeta,
|
|
121
|
+
createMediaItem,
|
|
122
|
+
onUploadComplete,
|
|
123
|
+
onError
|
|
124
|
+
}) {
|
|
125
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
126
|
+
const onCompleteRef = useRef(onUploadComplete);
|
|
127
|
+
const onErrorRef = useRef(onError);
|
|
128
|
+
onCompleteRef.current = onUploadComplete;
|
|
129
|
+
onErrorRef.current = onError;
|
|
130
|
+
const [uppy] = useState(() => cloudImportService.init({ uploadSigningUrl }));
|
|
131
|
+
useEffect(() => {
|
|
132
|
+
const handleComplete = (result) => {
|
|
133
|
+
const successful = result?.successful ?? [];
|
|
134
|
+
if (successful.length > 0 && onCompleteRef.current) {
|
|
135
|
+
onCompleteRef.current(
|
|
136
|
+
successful.map((file) => ({
|
|
137
|
+
uploadURL: file.response?.uploadURL ?? "",
|
|
138
|
+
fileName: file.name ?? "unknown",
|
|
139
|
+
fileSize: file.size ?? 0
|
|
140
|
+
}))
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
const handleError = (error) => {
|
|
145
|
+
onErrorRef.current?.(error instanceof Error ? error : new Error(String(error)));
|
|
146
|
+
};
|
|
147
|
+
uppy.on("complete", handleComplete);
|
|
148
|
+
uppy.on("error", handleError);
|
|
149
|
+
return () => {
|
|
150
|
+
uppy.off("complete", handleComplete);
|
|
151
|
+
uppy.off("error", handleError);
|
|
152
|
+
};
|
|
153
|
+
}, [uppy]);
|
|
154
|
+
useEffect(() => {
|
|
155
|
+
try {
|
|
156
|
+
const preprocessor = cloudImportService.getPreprocessor();
|
|
157
|
+
preprocessor.setCreateFn(createMediaItem ?? null);
|
|
158
|
+
} catch {
|
|
159
|
+
}
|
|
160
|
+
}, [createMediaItem]);
|
|
161
|
+
const openModal = useCallback(async () => {
|
|
162
|
+
if (getUploadMeta) {
|
|
163
|
+
try {
|
|
164
|
+
const meta = await getUploadMeta();
|
|
165
|
+
cloudImportService.setMeta(meta);
|
|
166
|
+
} catch (err) {
|
|
167
|
+
console.error("[Import] Failed to get upload metadata:", err);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
setIsOpen(true);
|
|
172
|
+
}, [getUploadMeta]);
|
|
173
|
+
const closeModal = useCallback(() => {
|
|
174
|
+
setIsOpen(false);
|
|
175
|
+
}, []);
|
|
176
|
+
return /* @__PURE__ */ React.createElement(ImportContext, { value: { openModal, closeModal, isOpen, uppy, available } }, /* @__PURE__ */ React.createElement(UppyContextProvider, { uppy }, children, dialogSlot));
|
|
177
|
+
}
|
|
178
|
+
function useImport() {
|
|
179
|
+
const ctx = useContext(ImportContext);
|
|
180
|
+
if (!ctx) throw new Error("useImport must be used within <ImportProvider>");
|
|
181
|
+
return ctx;
|
|
182
|
+
}
|
|
183
|
+
function useImportIfAvailable() {
|
|
184
|
+
const ctx = useContext(ImportContext);
|
|
185
|
+
return ctx?.available ? ctx : null;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// ../cloud-import/src/cloudConfig.ts
|
|
189
|
+
var ENVIRONMENTS = {
|
|
190
|
+
dev: {
|
|
191
|
+
convexUrl: "https://api-dev.cueframe.ai",
|
|
192
|
+
uploadSigningUrl: "http://localhost:8787"
|
|
193
|
+
},
|
|
194
|
+
staging: {
|
|
195
|
+
convexUrl: "https://api-dev.cueframe.ai",
|
|
196
|
+
uploadSigningUrl: "https://upload-signing.cueframelabs.workers.dev"
|
|
197
|
+
},
|
|
198
|
+
production: {
|
|
199
|
+
convexUrl: "https://api.cueframe.ai",
|
|
200
|
+
uploadSigningUrl: "https://upload.cueframe.ai"
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
function detectEnvironment(convexUrl) {
|
|
204
|
+
if (!convexUrl) return "dev";
|
|
205
|
+
if (/\b(api-dev|data-dev)\.cueframe\.ai/.test(convexUrl)) return "staging";
|
|
206
|
+
if (/\b(api|data)\.cueframe\.ai/.test(convexUrl)) return "production";
|
|
207
|
+
if (/\bexample-dev\.convex\.(cloud|site)/.test(convexUrl)) return "staging";
|
|
208
|
+
if (/\bexample-prod\.convex\.(cloud|site)/.test(convexUrl)) return "production";
|
|
209
|
+
return "dev";
|
|
210
|
+
}
|
|
211
|
+
function getEndpoints(convexUrl) {
|
|
212
|
+
const env = detectEnvironment(convexUrl);
|
|
213
|
+
return ENVIRONMENTS[env];
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// ../cloud-import/src/index.ts
|
|
217
|
+
import {
|
|
218
|
+
useDropzone,
|
|
219
|
+
useUppyState,
|
|
220
|
+
useUppyEvent
|
|
221
|
+
} from "@uppy/react";
|
|
222
|
+
export {
|
|
223
|
+
ENVIRONMENTS,
|
|
224
|
+
ImportProvider,
|
|
225
|
+
cloudImportService,
|
|
226
|
+
detectEnvironment,
|
|
227
|
+
getEndpoints,
|
|
228
|
+
multipartUpload,
|
|
229
|
+
useDropzone,
|
|
230
|
+
useImport,
|
|
231
|
+
useImportIfAvailable,
|
|
232
|
+
useUppyEvent,
|
|
233
|
+
useUppyState
|
|
234
|
+
};
|
package/dist/compose/renderer.js
CHANGED
|
@@ -1,38 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolvePrimitive
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-ODL7GQJG.js";
|
|
4
4
|
import "../chunk-H5LMJKZU.js";
|
|
5
|
-
import "../chunk-FUWJOVVK.js";
|
|
6
|
-
import "../chunk-UEI3NLNK.js";
|
|
7
5
|
import "../chunk-GULDS3VE.js";
|
|
8
6
|
import "../chunk-7DHP4ESU.js";
|
|
9
7
|
import "../chunk-MFHXCHRI.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-JD77Y2WM.js";
|
|
14
|
-
import "../chunk-EAUSEGB7.js";
|
|
15
|
-
import "../chunk-WZTTZHNR.js";
|
|
8
|
+
import "../chunk-JQMPHKLU.js";
|
|
9
|
+
import "../chunk-MHOQTPOB.js";
|
|
10
|
+
import "../chunk-OLFOPQCA.js";
|
|
16
11
|
import "../chunk-DLF4WVSE.js";
|
|
17
12
|
import "../chunk-U4V4FZGE.js";
|
|
18
13
|
import "../chunk-AWT3P5ZN.js";
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-ZSZABOE5.js";
|
|
22
|
-
import "../chunk-BDMTUEEZ.js";
|
|
23
|
-
import "../chunk-EMGFZ3PR.js";
|
|
24
|
-
import "../chunk-S3P5BFFL.js";
|
|
25
|
-
import "../chunk-ZFEXATWN.js";
|
|
14
|
+
import "../chunk-GA23TRNR.js";
|
|
15
|
+
import "../chunk-PMY24FUD.js";
|
|
26
16
|
import {
|
|
27
17
|
Grain,
|
|
28
18
|
Vignette
|
|
29
|
-
} from "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
19
|
+
} from "../chunk-ABL557OT.js";
|
|
20
|
+
import "../chunk-P727GZVO.js";
|
|
21
|
+
import "../chunk-BDMTUEEZ.js";
|
|
22
|
+
import "../chunk-EMGFZ3PR.js";
|
|
23
|
+
import "../chunk-ZFEXATWN.js";
|
|
24
|
+
import "../chunk-YX2GSJK7.js";
|
|
25
|
+
import "../chunk-AYVJXDLB.js";
|
|
26
|
+
import "../chunk-SW336CJP.js";
|
|
27
|
+
import "../chunk-QGAWDLYX.js";
|
|
28
|
+
import "../chunk-ZSZABOE5.js";
|
|
32
29
|
import "../chunk-CX2IIQ4R.js";
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-JF4JJAFP.js";
|
|
30
|
+
import "../chunk-ZB3C3HM7.js";
|
|
35
31
|
import "../chunk-7PA7FGLD.js";
|
|
32
|
+
import "../chunk-JF4JJAFP.js";
|
|
36
33
|
import {
|
|
37
34
|
CueframeError,
|
|
38
35
|
encodeError
|
package/dist/compose.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveTokens,
|
|
3
3
|
sceneToRenderInput
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-COYMZ76S.js";
|
|
5
5
|
import {
|
|
6
6
|
allCatalogs,
|
|
7
7
|
getPrimitiveSubtext,
|
|
@@ -13,46 +13,43 @@ import {
|
|
|
13
13
|
resetPrimitiveOverrides,
|
|
14
14
|
resolvePrimitive,
|
|
15
15
|
resolveTransitionPresentation
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-ODL7GQJG.js";
|
|
17
17
|
import "./chunk-H5LMJKZU.js";
|
|
18
|
-
import "./chunk-FUWJOVVK.js";
|
|
19
|
-
import "./chunk-UEI3NLNK.js";
|
|
20
18
|
import "./chunk-GULDS3VE.js";
|
|
21
19
|
import "./chunk-7DHP4ESU.js";
|
|
22
20
|
import "./chunk-MFHXCHRI.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-JD77Y2WM.js";
|
|
27
|
-
import "./chunk-EAUSEGB7.js";
|
|
28
|
-
import "./chunk-WZTTZHNR.js";
|
|
21
|
+
import "./chunk-JQMPHKLU.js";
|
|
22
|
+
import "./chunk-MHOQTPOB.js";
|
|
23
|
+
import "./chunk-OLFOPQCA.js";
|
|
29
24
|
import "./chunk-DLF4WVSE.js";
|
|
30
25
|
import "./chunk-U4V4FZGE.js";
|
|
31
26
|
import "./chunk-AWT3P5ZN.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-GA23TRNR.js";
|
|
28
|
+
import "./chunk-PMY24FUD.js";
|
|
29
|
+
import "./chunk-ABL557OT.js";
|
|
30
|
+
import "./chunk-P727GZVO.js";
|
|
35
31
|
import "./chunk-BDMTUEEZ.js";
|
|
36
32
|
import "./chunk-EMGFZ3PR.js";
|
|
37
|
-
import "./chunk-S3P5BFFL.js";
|
|
38
33
|
import "./chunk-ZFEXATWN.js";
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-YX2GSJK7.js";
|
|
35
|
+
import "./chunk-AYVJXDLB.js";
|
|
36
|
+
import "./chunk-SW336CJP.js";
|
|
37
|
+
import "./chunk-QGAWDLYX.js";
|
|
38
|
+
import "./chunk-ZSZABOE5.js";
|
|
42
39
|
import "./chunk-CX2IIQ4R.js";
|
|
43
40
|
import {
|
|
44
41
|
getPrimitiveSubtextParam,
|
|
45
42
|
getPrimitiveTextParam,
|
|
46
43
|
listPrimitivesByCategory
|
|
47
|
-
} from "./chunk-
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-6CMVBTTP.js";
|
|
44
|
+
} from "./chunk-ZB3C3HM7.js";
|
|
45
|
+
import "./chunk-YIOY2XEO.js";
|
|
50
46
|
import "./chunk-QH3YI3ND.js";
|
|
51
|
-
import "./chunk-TWQOKKAF.js";
|
|
52
47
|
import "./chunk-JRQVPFLF.js";
|
|
48
|
+
import "./chunk-TWQOKKAF.js";
|
|
53
49
|
import "./chunk-JMURQODM.js";
|
|
54
50
|
import "./chunk-7PA7FGLD.js";
|
|
55
51
|
import "./chunk-KYRDKK2D.js";
|
|
52
|
+
import "./chunk-JF4JJAFP.js";
|
|
56
53
|
import "./chunk-DENF4TPI.js";
|
|
57
54
|
import "./chunk-WREYUH2E.js";
|
|
58
55
|
import "./chunk-37NJ27UU.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
placeInLegalArea,
|
|
3
3
|
resolveBrandRefsDeep
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-FYZVH3MC.js";
|
|
5
|
+
import "../chunk-DSMLHYJ4.js";
|
|
6
6
|
import "../chunk-JF4JJAFP.js";
|
|
7
7
|
import {
|
|
8
8
|
ContentBeat,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
PlanRect,
|
|
27
27
|
StyleRole,
|
|
28
28
|
ZPlane
|
|
29
|
-
} from "../chunk-
|
|
29
|
+
} from "../chunk-MXFAADCQ.js";
|
|
30
30
|
import "../chunk-W35ZMOXB.js";
|
|
31
31
|
import "../chunk-EA6MYCYW.js";
|
|
32
32
|
import "../chunk-WREYUH2E.js";
|
package/dist/composition/ops.js
CHANGED
|
@@ -20,12 +20,12 @@ import {
|
|
|
20
20
|
selectMediaClipAt,
|
|
21
21
|
selectSceneMarkers,
|
|
22
22
|
selectTracksByKind
|
|
23
|
-
} from "../chunk-
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
23
|
+
} from "../chunk-XWKZB5U5.js";
|
|
24
|
+
import "../chunk-KYRDKK2D.js";
|
|
25
|
+
import "../chunk-NFEGPWGS.js";
|
|
26
|
+
import "../chunk-MXFAADCQ.js";
|
|
26
27
|
import "../chunk-W35ZMOXB.js";
|
|
27
28
|
import "../chunk-EA6MYCYW.js";
|
|
28
|
-
import "../chunk-KYRDKK2D.js";
|
|
29
29
|
import "../chunk-WREYUH2E.js";
|
|
30
30
|
import "../chunk-2ESYSVXG.js";
|
|
31
31
|
export {
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
resolveSegmentAt,
|
|
19
19
|
silhouetteKeepOutForWindow,
|
|
20
20
|
sourceRectToOutput
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-GEA7E2FL.js";
|
|
22
22
|
import {
|
|
23
23
|
BRAND_TOKEN_REFS,
|
|
24
24
|
BRAND_TOKEN_ROOT_KEYS,
|
|
@@ -54,10 +54,10 @@ import {
|
|
|
54
54
|
resolveLayoutIntent,
|
|
55
55
|
resolveOverlayRegion,
|
|
56
56
|
unionFaceKeepOutSeries
|
|
57
|
-
} from "../chunk-
|
|
57
|
+
} from "../chunk-FYZVH3MC.js";
|
|
58
58
|
import {
|
|
59
59
|
apcaLc
|
|
60
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-DSMLHYJ4.js";
|
|
61
61
|
import "../chunk-JF4JJAFP.js";
|
|
62
62
|
import "../chunk-37NJ27UU.js";
|
|
63
63
|
import "../chunk-2ESYSVXG.js";
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
WebhookDeliveryStatus,
|
|
49
49
|
WebhookDestination,
|
|
50
50
|
YoutubeDestination
|
|
51
|
-
} from "../chunk-
|
|
51
|
+
} from "../chunk-NFEGPWGS.js";
|
|
52
52
|
import {
|
|
53
53
|
ANIMATABLE_PARAMS,
|
|
54
54
|
AlphaLayerClipSource,
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
TrackContent,
|
|
81
81
|
Transition,
|
|
82
82
|
captionWords
|
|
83
|
-
} from "../chunk-
|
|
83
|
+
} from "../chunk-MXFAADCQ.js";
|
|
84
84
|
import {
|
|
85
85
|
AUTHORED_GRAPHIC_KINDS
|
|
86
86
|
} from "../chunk-W35ZMOXB.js";
|
package/dist/composition-ops.js
CHANGED
|
@@ -3,8 +3,17 @@ import {
|
|
|
3
3
|
findClipById,
|
|
4
4
|
findMarkerById,
|
|
5
5
|
findTrackContainingClipId
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import
|
|
6
|
+
} from "./chunk-XWKZB5U5.js";
|
|
7
|
+
import {
|
|
8
|
+
playableSpans
|
|
9
|
+
} from "./chunk-YIOY2XEO.js";
|
|
10
|
+
import "./chunk-QH3YI3ND.js";
|
|
11
|
+
import "./chunk-JRQVPFLF.js";
|
|
12
|
+
import "./chunk-TWQOKKAF.js";
|
|
13
|
+
import "./chunk-JMURQODM.js";
|
|
14
|
+
import "./chunk-7PA7FGLD.js";
|
|
15
|
+
import "./chunk-KYRDKK2D.js";
|
|
16
|
+
import "./chunk-NFEGPWGS.js";
|
|
8
17
|
import {
|
|
9
18
|
CaptionSegment,
|
|
10
19
|
CaptionStyle,
|
|
@@ -14,20 +23,11 @@ import {
|
|
|
14
23
|
PerClipEffect,
|
|
15
24
|
TimelineClip,
|
|
16
25
|
Track
|
|
17
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-MXFAADCQ.js";
|
|
18
27
|
import "./chunk-W35ZMOXB.js";
|
|
19
28
|
import {
|
|
20
29
|
ReframeSegment
|
|
21
30
|
} from "./chunk-EA6MYCYW.js";
|
|
22
|
-
import {
|
|
23
|
-
playableSpans
|
|
24
|
-
} from "./chunk-6CMVBTTP.js";
|
|
25
|
-
import "./chunk-QH3YI3ND.js";
|
|
26
|
-
import "./chunk-TWQOKKAF.js";
|
|
27
|
-
import "./chunk-JRQVPFLF.js";
|
|
28
|
-
import "./chunk-JMURQODM.js";
|
|
29
|
-
import "./chunk-7PA7FGLD.js";
|
|
30
|
-
import "./chunk-KYRDKK2D.js";
|
|
31
31
|
import "./chunk-DENF4TPI.js";
|
|
32
32
|
import "./chunk-WREYUH2E.js";
|
|
33
33
|
import "./chunk-37NJ27UU.js";
|