@nodaro/shared 2.8.0 → 2.10.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/index.cjs +198 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +474 -94
- package/dist/index.d.ts +474 -94
- package/dist/index.js +178 -46
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/llm-models.test.ts +3 -2
- package/src/__tests__/organizations-types.test.ts +61 -0
- package/src/__tests__/producer-types.test.ts +11 -0
- package/src/__tests__/prompt-length-limits.test.ts +7 -3
- package/src/__tests__/seedance2-continuation-ref.test.ts +2 -3
- package/src/__tests__/video-analysis-catalog-sync.test.ts +1 -1
- package/src/__tests__/video-analysis-pricing.test.ts +2 -2
- package/src/__tests__/video-mode-for-inputs.test.ts +74 -0
- package/src/combine-transitions.ts +38 -0
- package/src/credit-estimators/video-utils.ts +1 -1
- package/src/featured-entities.ts +1 -1
- package/src/i18n/types.ts +12 -14
- package/src/index.ts +11 -1
- package/src/llm-models.ts +4 -0
- package/src/model-catalog.ts +19 -0
- package/src/model-constants.ts +52 -7
- package/src/organizations/index.ts +2 -0
- package/src/organizations/types.ts +152 -0
- package/src/organizations/views.ts +220 -0
- package/src/producer-types.ts +6 -0
- package/src/smart-cut-windows.ts +8 -17
- package/src/suno-track-sources.ts +23 -0
- package/src/surround.ts +10 -90
- package/src/video-analysis-pricing.ts +25 -36
- package/src/workflow-export.ts +41 -0
package/dist/index.cjs
CHANGED
|
@@ -742,6 +742,9 @@ var IMAGE_MODELS = {
|
|
|
742
742
|
series: "Grok",
|
|
743
743
|
description: "Grok Imagine Image 2.0 \u2014 expressive, high-contrast t2i. Generations chain into grok-2-segment (free named region masks) and grok-2-edit (region-targeted edits).",
|
|
744
744
|
useCases: ["stylized", "expressive", "general"],
|
|
745
|
+
// Refs auto-route to grok-2-i2i (segment-map → image-edit chain); ONE
|
|
746
|
+
// reference (REF_IMAGE_MAX_LIMITS).
|
|
747
|
+
features: ["reference-image"],
|
|
745
748
|
aspectRatios: GROK_RATIOS,
|
|
746
749
|
pricing: [{ identifier: "grok-2", credits: 10 }]
|
|
747
750
|
},
|
|
@@ -756,6 +759,21 @@ var IMAGE_MODELS = {
|
|
|
756
759
|
useCases: ["edit", "region-edit"],
|
|
757
760
|
pricing: [{ identifier: "grok-2-edit", credits: 10 }]
|
|
758
761
|
},
|
|
762
|
+
// Auto-selected when references are attached to grok-2 (T2I_TO_I2I_VARIANT):
|
|
763
|
+
// the t2i endpoint takes no image, so the FREE segment-map mints a task id
|
|
764
|
+
// from the reference URL and image-edit consumes it. Single reference.
|
|
765
|
+
"grok-2-i2i": {
|
|
766
|
+
id: "grok-2-i2i",
|
|
767
|
+
kind: "image",
|
|
768
|
+
modes: ["i2i"],
|
|
769
|
+
family: "xAI",
|
|
770
|
+
label: "Grok Imagine 2 (reference)",
|
|
771
|
+
series: "Grok",
|
|
772
|
+
description: "grok-2 guided by ONE reference image via the segment-map \u2192 image-edit chain \u2014 preserves the reference's composition while applying the prompt.",
|
|
773
|
+
useCases: ["restyle", "edit", "reference"],
|
|
774
|
+
features: ["reference-image"],
|
|
775
|
+
pricing: [{ identifier: "grok-2-i2i", credits: 10 }]
|
|
776
|
+
},
|
|
759
777
|
"grok-2-segment": {
|
|
760
778
|
id: "grok-2-segment",
|
|
761
779
|
kind: "image",
|
|
@@ -2540,7 +2558,7 @@ function getMaxTtsChars(provider) {
|
|
|
2540
2558
|
}
|
|
2541
2559
|
var SUNO_TITLE_MAX = 80;
|
|
2542
2560
|
function getMaxSunoPromptChars(model, customMode) {
|
|
2543
|
-
if (!customMode) return
|
|
2561
|
+
if (!customMode) return 3e3;
|
|
2544
2562
|
return model === "V4" || model === "V3_5" ? 3e3 : 5e3;
|
|
2545
2563
|
}
|
|
2546
2564
|
function getMaxSunoStyleChars(model) {
|
|
@@ -2599,6 +2617,7 @@ var MODELS_WITH_REFERENCE_IMAGE_SUPPORT = /* @__PURE__ */ new Set([
|
|
|
2599
2617
|
"gpt-image",
|
|
2600
2618
|
"gpt-image-2",
|
|
2601
2619
|
"grok",
|
|
2620
|
+
"grok-2",
|
|
2602
2621
|
"qwen",
|
|
2603
2622
|
"seedream",
|
|
2604
2623
|
"seedream-5-lite",
|
|
@@ -2609,6 +2628,7 @@ var MODELS_WITH_REFERENCE_IMAGE_SUPPORT = /* @__PURE__ */ new Set([
|
|
|
2609
2628
|
"nano-banana-edit",
|
|
2610
2629
|
"gpt-image-i2i",
|
|
2611
2630
|
"gpt-image-2-i2i",
|
|
2631
|
+
"grok-2-i2i",
|
|
2612
2632
|
"flux-i2i",
|
|
2613
2633
|
"flux-pro-i2i",
|
|
2614
2634
|
"flux-kontext",
|
|
@@ -2638,6 +2658,9 @@ var T2I_TO_I2I_VARIANT = {
|
|
|
2638
2658
|
"gpt-image": "gpt-image-i2i",
|
|
2639
2659
|
"gpt-image-2": "gpt-image-2-i2i",
|
|
2640
2660
|
"grok": "grok-i2i",
|
|
2661
|
+
// grok-2's t2i takes NO image input; its "i2i" is the segment-map(image_url)
|
|
2662
|
+
// → image-edit(task_id) chain in the KIE provider (single reference).
|
|
2663
|
+
"grok-2": "grok-2-i2i",
|
|
2641
2664
|
"qwen": "qwen-i2i",
|
|
2642
2665
|
"seedream": "seedream-edit",
|
|
2643
2666
|
"seedream-5-lite": "seedream-5-lite-i2i",
|
|
@@ -2653,6 +2676,8 @@ var REF_IMAGE_MAX_LIMITS = {
|
|
|
2653
2676
|
"nano-banana-2": 4,
|
|
2654
2677
|
"nano-banana-2-lite": 10,
|
|
2655
2678
|
"wan-2.7": 9,
|
|
2679
|
+
// grok-2 reference chain consumes exactly one image (segment-map input).
|
|
2680
|
+
"grok-2-i2i": 1,
|
|
2656
2681
|
// Image-to-image (multi-source array)
|
|
2657
2682
|
"nano-banana-edit": 8,
|
|
2658
2683
|
"gpt-image-i2i": 16,
|
|
@@ -2762,6 +2787,7 @@ var IMAGE_I2I_PROVIDERS = [
|
|
|
2762
2787
|
"flux-pro-i2i",
|
|
2763
2788
|
"gpt-image-i2i",
|
|
2764
2789
|
"gpt-image-2-i2i",
|
|
2790
|
+
"grok-2-i2i",
|
|
2765
2791
|
"ideogram-edit",
|
|
2766
2792
|
"ideogram-remix",
|
|
2767
2793
|
"ideogram-reframe",
|
|
@@ -2922,6 +2948,15 @@ function resolveVideoProviderForMode(provider, mode) {
|
|
|
2922
2948
|
}
|
|
2923
2949
|
return provider;
|
|
2924
2950
|
}
|
|
2951
|
+
function resolveVideoModeForInputs(provider, inputs) {
|
|
2952
|
+
if (inputs.hasStartFrame) return "image-to-video";
|
|
2953
|
+
if (!provider || !inputs.hasImageRefs) return "text-to-video";
|
|
2954
|
+
const i2v = resolveVideoProviderForMode(provider, "image-to-video");
|
|
2955
|
+
const t2v = resolveVideoProviderForMode(provider, "text-to-video");
|
|
2956
|
+
if (i2v === t2v) return "text-to-video";
|
|
2957
|
+
const carriesImageRefs = (id) => (VIDEO_REF_LIMITS_BY_PROVIDER[id]?.images ?? 0) > 0;
|
|
2958
|
+
return carriesImageRefs(i2v) && !carriesImageRefs(t2v) ? "image-to-video" : "text-to-video";
|
|
2959
|
+
}
|
|
2925
2960
|
var VIDEO_GEN_COLLAPSED_T2V_IDS = new Set(
|
|
2926
2961
|
VIDEO_MODE_ALIASES.filter((g) => g.t2v !== g.base).map((g) => g.t2v)
|
|
2927
2962
|
);
|
|
@@ -5146,7 +5181,8 @@ var LLM_FEATURE_DEFAULTS = {
|
|
|
5146
5181
|
"generate-script": "gemini-3.6-flash",
|
|
5147
5182
|
"translate": "gemini-3.6-flash",
|
|
5148
5183
|
"image-critic": "claude-sonnet-4.6",
|
|
5149
|
-
"pick-best-llm": "claude-sonnet-4.6"
|
|
5184
|
+
"pick-best-llm": "claude-sonnet-4.6",
|
|
5185
|
+
"workflow-copilot": "claude-sonnet-5"
|
|
5150
5186
|
};
|
|
5151
5187
|
var LLM_MODALITY_CAPS = {
|
|
5152
5188
|
"gemini-3-flash": { image: true, video: true, audio: true },
|
|
@@ -6925,33 +6961,6 @@ function isTiltDirection(direction) {
|
|
|
6925
6961
|
function defaultCarriedFraction(direction) {
|
|
6926
6962
|
return isTiltDirection(direction) ? TILT_CARRIED_FRACTION : DEFAULT_CARRIED_FRACTION;
|
|
6927
6963
|
}
|
|
6928
|
-
var EDGE = {
|
|
6929
|
-
right: { carried: "left", painted: "right" },
|
|
6930
|
-
left: { carried: "right", painted: "left" },
|
|
6931
|
-
up: { carried: "bottom", painted: "top" },
|
|
6932
|
-
down: { carried: "top", painted: "bottom" }
|
|
6933
|
-
};
|
|
6934
|
-
var TILT_SUBJECT = {
|
|
6935
|
-
up: {
|
|
6936
|
-
word: "up",
|
|
6937
|
-
subject: "the open sky directly overhead \u2014 sky, clouds, or (for an interior) the canopy or ceiling",
|
|
6938
|
-
where: "overhead"
|
|
6939
|
-
},
|
|
6940
|
-
down: {
|
|
6941
|
-
word: "down",
|
|
6942
|
-
subject: "the ground directly below \u2014 terrain, floor, or water surface",
|
|
6943
|
-
where: "below"
|
|
6944
|
-
}
|
|
6945
|
-
};
|
|
6946
|
-
function buildSurroundFillPrompt(direction, userPrompt) {
|
|
6947
|
-
const scene = userPrompt && userPrompt.trim() ? `${userPrompt.trim()}. ` : "";
|
|
6948
|
-
const { carried, painted } = EDGE[direction];
|
|
6949
|
-
if (direction === "up" || direction === "down") {
|
|
6950
|
-
const t2 = TILT_SUBJECT[direction];
|
|
6951
|
-
return `${scene}This is a camera tilted straight ${t2.word} from the same scene. The ${carried} strip holds real, finished pixels from the edge of the horizon view; the ${painted} region is flat gray and MUST be painted as ${t2.subject}. Render what is genuinely ${t2.where} \u2014 do NOT repeat, mirror, or continue the landscape, and do NOT draw a horizon line or distant scenery in the painted region. CRITICAL: keep the ${carried} strip unchanged and match the scene's EXACT lighting, time of day, white balance, and color grade \u2014 the same light as the ${carried} strip; no golden hour, no sunset, no warm relight, no cinematic regrade. Blend smoothly into the ${carried} strip with no visible seam. No people, no text, no labels, no watermarks.`;
|
|
6952
|
-
}
|
|
6953
|
-
return `${scene}This is a partial frame: the ${carried} portion contains real, finished pixels and the ${painted} portion is flat gray that MUST be painted in. Paint ONLY the ${painted} gray region as a natural, seamless continuation of the ${carried} portion \u2014 same scene, same perspective, continuing the horizon, geometry, and content across the boundary with no break. Keep the ${carried} portion completely unchanged. CRITICAL: do NOT change the lighting, exposure, white balance, or time of day. Match the ${carried} portion's EXACT light, color temperature, and contrast across the whole frame \u2014 if it is flat overcast daylight, keep flat overcast daylight. No golden hour, no sunset, no warm relight, no cinematic regrade. The seam between the ${carried} and ${painted} portions must be invisible. No people, no text, no labels, no watermarks.`;
|
|
6954
|
-
}
|
|
6955
6964
|
|
|
6956
6965
|
// src/parameter-node-value.ts
|
|
6957
6966
|
var PARAMETER_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
@@ -9349,18 +9358,18 @@ function isKineticCaptionStyle(style) {
|
|
|
9349
9358
|
|
|
9350
9359
|
// src/i18n/types.ts
|
|
9351
9360
|
var LANGUAGES = [
|
|
9352
|
-
{ id: "en", englishName: "English", nativeName: "English", shortCode: "EN", dir: "ltr"
|
|
9353
|
-
{ id: "es", englishName: "Spanish", nativeName: "Espa\xF1ol", shortCode: "ES", dir: "ltr"
|
|
9354
|
-
{ id: "fr", englishName: "French", nativeName: "Fran\xE7ais", shortCode: "FR", dir: "ltr"
|
|
9355
|
-
{ id: "de", englishName: "German", nativeName: "Deutsch", shortCode: "DE", dir: "ltr"
|
|
9356
|
-
{ id: "pt-BR", englishName: "Portuguese (Brazil)", nativeName: "Portugu\xEAs", shortCode: "PT", dir: "ltr"
|
|
9357
|
-
{ id: "ru", englishName: "Russian", nativeName: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439", shortCode: "RU", dir: "ltr"
|
|
9358
|
-
{ id: "hi", englishName: "Hindi", nativeName: "\u0939\u093F\u0928\u094D\u0926\u0940", shortCode: "HI", dir: "ltr"
|
|
9359
|
-
{ id: "ja", englishName: "Japanese", nativeName: "\u65E5\u672C\u8A9E", shortCode: "JA", dir: "ltr"
|
|
9360
|
-
{ id: "ko", englishName: "Korean", nativeName: "\uD55C\uAD6D\uC5B4", shortCode: "KO", dir: "ltr"
|
|
9361
|
-
{ id: "zh-CN", englishName: "Chinese (Simplified)", nativeName: "\u7B80\u4F53\u4E2D\u6587", shortCode: "ZH", dir: "ltr"
|
|
9362
|
-
{ id: "he", englishName: "Hebrew", nativeName: "\u05E2\u05D1\u05E8\u05D9\u05EA", shortCode: "HE", dir: "rtl"
|
|
9363
|
-
{ id: "ar", englishName: "Arabic", nativeName: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629", shortCode: "AR", dir: "rtl"
|
|
9361
|
+
{ id: "en", englishName: "English", nativeName: "English", shortCode: "EN", dir: "ltr" },
|
|
9362
|
+
{ id: "es", englishName: "Spanish", nativeName: "Espa\xF1ol", shortCode: "ES", dir: "ltr" },
|
|
9363
|
+
{ id: "fr", englishName: "French", nativeName: "Fran\xE7ais", shortCode: "FR", dir: "ltr" },
|
|
9364
|
+
{ id: "de", englishName: "German", nativeName: "Deutsch", shortCode: "DE", dir: "ltr" },
|
|
9365
|
+
{ id: "pt-BR", englishName: "Portuguese (Brazil)", nativeName: "Portugu\xEAs", shortCode: "PT", dir: "ltr" },
|
|
9366
|
+
{ id: "ru", englishName: "Russian", nativeName: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439", shortCode: "RU", dir: "ltr" },
|
|
9367
|
+
{ id: "hi", englishName: "Hindi", nativeName: "\u0939\u093F\u0928\u094D\u0926\u0940", shortCode: "HI", dir: "ltr" },
|
|
9368
|
+
{ id: "ja", englishName: "Japanese", nativeName: "\u65E5\u672C\u8A9E", shortCode: "JA", dir: "ltr" },
|
|
9369
|
+
{ id: "ko", englishName: "Korean", nativeName: "\uD55C\uAD6D\uC5B4", shortCode: "KO", dir: "ltr" },
|
|
9370
|
+
{ id: "zh-CN", englishName: "Chinese (Simplified)", nativeName: "\u7B80\u4F53\u4E2D\u6587", shortCode: "ZH", dir: "ltr" },
|
|
9371
|
+
{ id: "he", englishName: "Hebrew", nativeName: "\u05E2\u05D1\u05E8\u05D9\u05EA", shortCode: "HE", dir: "rtl" },
|
|
9372
|
+
{ id: "ar", englishName: "Arabic", nativeName: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629", shortCode: "AR", dir: "rtl" }
|
|
9364
9373
|
];
|
|
9365
9374
|
LANGUAGES.map((l) => l.id);
|
|
9366
9375
|
var NON_EN_LOCALE_IDS = LANGUAGES.filter((l) => l.id !== "en").map((l) => l.id);
|
|
@@ -11878,6 +11887,26 @@ function resolveXfadeName(id) {
|
|
|
11878
11887
|
}
|
|
11879
11888
|
return entry.xfade;
|
|
11880
11889
|
}
|
|
11890
|
+
var PICKER_TO_COMBINE_TRANSITION = {
|
|
11891
|
+
"none": "cut",
|
|
11892
|
+
"auto": "dissolve",
|
|
11893
|
+
// an explicitly wired "auto" wants A blend — the classic slideshow default
|
|
11894
|
+
"cross-dissolve": "dissolve",
|
|
11895
|
+
"fade-to-black": "dip-to-black",
|
|
11896
|
+
"fade-to-white": "dip-to-white",
|
|
11897
|
+
"iris": "circle-open",
|
|
11898
|
+
"wipe": "wipe-left",
|
|
11899
|
+
"pixelate-reform": "pixelize",
|
|
11900
|
+
"dissolve-to-mist": "hblur",
|
|
11901
|
+
"match-cut": "cut",
|
|
11902
|
+
"smash-cut": "cut",
|
|
11903
|
+
"freeze-frame-jump": "cut"
|
|
11904
|
+
};
|
|
11905
|
+
function resolveSlideshowTransition(value) {
|
|
11906
|
+
if (!value) return "cut";
|
|
11907
|
+
if (COMBINE_TRANSITION_IDS.includes(value)) return value;
|
|
11908
|
+
return PICKER_TO_COMBINE_TRANSITION[value] ?? "cut";
|
|
11909
|
+
}
|
|
11881
11910
|
|
|
11882
11911
|
// src/audio-crossfade-curves.ts
|
|
11883
11912
|
var AUDIO_CROSSFADE_CURVES = [
|
|
@@ -11986,7 +12015,13 @@ var VIDEO_PRODUCER_TYPES = /* @__PURE__ */ new Set([
|
|
|
11986
12015
|
// Cinematic Avatar (HeyGen cinematic_avatar): prompt + 1–3 avatar looks → video.
|
|
11987
12016
|
"cinematic-avatar",
|
|
11988
12017
|
// Assemble Narrated Video: fits N (clip, voice) blocks into one MP4 → video.
|
|
11989
|
-
"assemble-narrated-video"
|
|
12018
|
+
"assemble-narrated-video",
|
|
12019
|
+
// Still to Video: one still image + one audio track → MP4 (local FFmpeg,
|
|
12020
|
+
// no provider). Emits generatedVideoUrl like every other ffmpeg video node.
|
|
12021
|
+
"still-to-video",
|
|
12022
|
+
// Slideshow: 2-100 stills + one optional audio track → MP4 (local FFmpeg,
|
|
12023
|
+
// no provider). Same contract; images arrive via the image-collage lane.
|
|
12024
|
+
"slideshow"
|
|
11990
12025
|
]);
|
|
11991
12026
|
var DYNAMIC_PRODUCER_TYPES = /* @__PURE__ */ new Set([
|
|
11992
12027
|
"list",
|
|
@@ -12055,6 +12090,19 @@ var FAN_OUT_EACH_TYPES = /* @__PURE__ */ new Set([
|
|
|
12055
12090
|
"selector"
|
|
12056
12091
|
]);
|
|
12057
12092
|
|
|
12093
|
+
// src/suno-track-sources.ts
|
|
12094
|
+
var SUNO_TRACK_SOURCE_TYPES = /* @__PURE__ */ new Set([
|
|
12095
|
+
"suno-generate",
|
|
12096
|
+
"suno-cover",
|
|
12097
|
+
"suno-extend",
|
|
12098
|
+
"suno-mashup",
|
|
12099
|
+
"suno-replace-section",
|
|
12100
|
+
"suno-add-instrumental",
|
|
12101
|
+
"suno-add-vocals",
|
|
12102
|
+
"suno-convert-wav",
|
|
12103
|
+
"suno-upload-extend"
|
|
12104
|
+
]);
|
|
12105
|
+
|
|
12058
12106
|
// src/voice-changer-models.ts
|
|
12059
12107
|
var VOICE_CHANGER_MODELS = [
|
|
12060
12108
|
{
|
|
@@ -13299,9 +13347,8 @@ var VIDEO_ANALYSIS_BUCKET_CREDITS = {
|
|
|
13299
13347
|
"video-analysis:mixed:180s": 289,
|
|
13300
13348
|
"video-analysis:mixed:360s": 724,
|
|
13301
13349
|
"video-analysis:mixed:600s": 1169,
|
|
13302
|
-
// SMART — the accuracy tier, and since the 2026-08-03
|
|
13303
|
-
//
|
|
13304
|
-
// fast + 2 pro donor rolls, always refined (`selectionMode` does not apply
|
|
13350
|
+
// SMART — the accuracy tier, and since the 2026-08-03 re-plan a multi-roll
|
|
13351
|
+
// plan like the others, always refined (`selectionMode` does not apply
|
|
13305
13352
|
// here — smart always refines; it never offers a cheaper "choose" path).
|
|
13306
13353
|
// Priced above the economy tiers because it genuinely costs more to run;
|
|
13307
13354
|
// the only tier whose accuracy is validated against a hand-counted edit
|
|
@@ -13365,7 +13412,93 @@ function clampSmartCutWindow(value) {
|
|
|
13365
13412
|
if (n > SMART_CUT_WINDOW_MAX) return SMART_CUT_WINDOW_MAX;
|
|
13366
13413
|
return n;
|
|
13367
13414
|
}
|
|
13415
|
+
var WORKSPACE_HEADER = "X-Nodaro-Workspace";
|
|
13416
|
+
var WORKSPACE_HEADER_LOWER = "x-nodaro-workspace";
|
|
13417
|
+
var ORG_KINDS = ["school", "team"];
|
|
13418
|
+
var ORG_ROLES = ["owner", "admin", "member"];
|
|
13419
|
+
var WORKSPACE_ROLES = ["admin", "member"];
|
|
13420
|
+
var MEMBER_STATUSES = ["active", "suspended"];
|
|
13421
|
+
var ORG_STATUSES = ["pending", "active", "suspended", "deleted"];
|
|
13422
|
+
var COLLABORATOR_ROLES = ["editor", "viewer"];
|
|
13423
|
+
var WORKFLOW_VISIBILITIES = ["private", "workspace"];
|
|
13424
|
+
var ACCESS_LEVELS = ["own", "edit", "view", "none"];
|
|
13425
|
+
var GRANTED_ACCESS = ["view", "edit"];
|
|
13426
|
+
var SUBMISSION_STATUSES = ["submitted", "in_review", "returned", "approved"];
|
|
13427
|
+
var ORG_ERROR_CODES = [
|
|
13428
|
+
"not_a_member",
|
|
13429
|
+
"insufficient_role",
|
|
13430
|
+
"org_not_active",
|
|
13431
|
+
"member_suspended",
|
|
13432
|
+
"workspace_archived",
|
|
13433
|
+
"personal_space_disabled",
|
|
13434
|
+
"token_workspace_mismatch",
|
|
13435
|
+
"run_requires_authenticated_member",
|
|
13436
|
+
"budget_exceeded",
|
|
13437
|
+
"member_cap_exceeded",
|
|
13438
|
+
"model_not_allowed",
|
|
13439
|
+
"invitation_expired",
|
|
13440
|
+
"invitation_revoked",
|
|
13441
|
+
"email_mismatch",
|
|
13442
|
+
"join_code_invalid",
|
|
13443
|
+
"domain_not_allowed",
|
|
13444
|
+
"already_started",
|
|
13445
|
+
"collab_unavailable",
|
|
13446
|
+
// Organization, workspace and membership endpoints.
|
|
13447
|
+
"terms_required",
|
|
13448
|
+
"not_org_member",
|
|
13449
|
+
"already_a_member",
|
|
13450
|
+
"owner_cannot_leave",
|
|
13451
|
+
"has_active_workspaces",
|
|
13452
|
+
// Invitations and join codes.
|
|
13453
|
+
"invitation_not_found",
|
|
13454
|
+
"invitation_accepted",
|
|
13455
|
+
"bulk_invite_cap_exceeded"
|
|
13456
|
+
];
|
|
13457
|
+
var PresetSettingsSchema = zod.z.object({
|
|
13458
|
+
/** What org/workspace admins may do with a member's workflow. */
|
|
13459
|
+
admin_access: zod.z.enum(GRANTED_ACCESS),
|
|
13460
|
+
default_workflow_visibility: zod.z.enum(WORKFLOW_VISIBILITIES),
|
|
13461
|
+
/** What a plain member may do with a `visibility = workspace` workflow. */
|
|
13462
|
+
member_access_to_shared: zod.z.enum(GRANTED_ACCESS),
|
|
13463
|
+
members_can_create_projects: zod.z.boolean(),
|
|
13464
|
+
member_caps_enabled: zod.z.boolean(),
|
|
13465
|
+
/** Whether members keep a personal (non-workspace) space at all. */
|
|
13466
|
+
personal_space_enabled: zod.z.boolean(),
|
|
13467
|
+
/** Whether a workspace admin may invite NEW people into the org. */
|
|
13468
|
+
workspace_admins_can_invite: zod.z.boolean(),
|
|
13469
|
+
/** Whether an editor collaborator may invite further collaborators. */
|
|
13470
|
+
collaborators_can_invite: zod.z.boolean(),
|
|
13471
|
+
/**
|
|
13472
|
+
* When the organization is SUSPENDED, do its content rules still bind its
|
|
13473
|
+
* members?
|
|
13474
|
+
*
|
|
13475
|
+
* Today this governs exactly one rule — `personal_space_enabled` — and that
|
|
13476
|
+
* is not an accident: every other key above governs behaviour INSIDE a
|
|
13477
|
+
* workspace, and a suspended organization grants no workspace context at
|
|
13478
|
+
* all, so those are already moot.
|
|
13479
|
+
*
|
|
13480
|
+
* The name is general because an organization is deciding a principle here,
|
|
13481
|
+
* not one checkbox's fate. Default `false`, which is today's behaviour: a
|
|
13482
|
+
* suspended organization stops binding, and its members work independently
|
|
13483
|
+
* until it resumes. An organization whose reason for disabling the personal
|
|
13484
|
+
* space is contractual — the work made here belongs to the institution —
|
|
13485
|
+
* turns this on, because an unpaid invoice does not void a contract.
|
|
13486
|
+
*/
|
|
13487
|
+
policy_survives_suspension: zod.z.boolean()
|
|
13488
|
+
});
|
|
13489
|
+
var PRESET_SETTING_KEYS = Object.freeze(
|
|
13490
|
+
Object.keys(PresetSettingsSchema.shape)
|
|
13491
|
+
);
|
|
13492
|
+
var WorkspaceSettingsSchema = PresetSettingsSchema.partial();
|
|
13493
|
+
var EMAIL_DOMAIN_PATTERN = /^[a-z0-9-]+(\.[a-z0-9-]+)+$/;
|
|
13494
|
+
var OrgSettingsSchema = PresetSettingsSchema.partial().extend({
|
|
13495
|
+
/** Lower-case domains that join codes / domain auto-join accept. Empty = any. */
|
|
13496
|
+
allowed_email_domains: zod.z.array(zod.z.string().regex(EMAIL_DOMAIN_PATTERN)).optional(),
|
|
13497
|
+
/** Per-org relabelling of the kind vocabulary (./vocabulary.ts). */
|
|
13498
|
+
vocabulary_overrides: zod.z.record(zod.z.string(), zod.z.string()).optional()
|
|
13499
|
+
});
|
|
13368
13500
|
|
|
13501
|
+
exports.ACCESS_LEVELS = ACCESS_LEVELS;
|
|
13369
13502
|
exports.ACTIVE_SCENE_HELPERS = ACTIVE_SCENE_HELPERS;
|
|
13370
13503
|
exports.ADVANCED_MODE_UNAVAILABLE_REASON = ADVANCED_MODE_UNAVAILABLE_REASON;
|
|
13371
13504
|
exports.AGGREGATEABLE_TYPES = AGGREGATEABLE_TYPES;
|
|
@@ -13430,6 +13563,7 @@ exports.CINEMATIC_MIN_DURATION_SEC = CINEMATIC_MIN_DURATION_SEC;
|
|
|
13430
13563
|
exports.CINEMATIC_MIN_LOOKS = CINEMATIC_MIN_LOOKS;
|
|
13431
13564
|
exports.CINEMATIC_PROMPT_MAX = CINEMATIC_PROMPT_MAX;
|
|
13432
13565
|
exports.CINEMATIC_RESERVE_IDS = CINEMATIC_RESERVE_IDS;
|
|
13566
|
+
exports.COLLABORATOR_ROLES = COLLABORATOR_ROLES;
|
|
13433
13567
|
exports.COLLECT_IN_HANDLE = COLLECT_IN_HANDLE;
|
|
13434
13568
|
exports.COMBINE_TRANSITIONS = COMBINE_TRANSITIONS;
|
|
13435
13569
|
exports.COMBINE_TRANSITION_GROUP_LABELS = COMBINE_TRANSITION_GROUP_LABELS;
|
|
@@ -13503,6 +13637,7 @@ exports.FixContinuityInputSchema = FixContinuityInputSchema;
|
|
|
13503
13637
|
exports.FixContinuityResultSchema = FixContinuityResultSchema;
|
|
13504
13638
|
exports.GENERATE_TEXT_DELIMITER = GENERATE_TEXT_DELIMITER;
|
|
13505
13639
|
exports.GLOBAL_MAX_DURATION_SECONDS = GLOBAL_MAX_DURATION_SECONDS;
|
|
13640
|
+
exports.GRANTED_ACCESS = GRANTED_ACCESS;
|
|
13506
13641
|
exports.GROUP_HANDLE_PREFIX = GROUP_HANDLE_PREFIX;
|
|
13507
13642
|
exports.GUIDANCE_SCALE_SUPPORT = GUIDANCE_SCALE_SUPPORT;
|
|
13508
13643
|
exports.GVP_ANCHOR_CHOICES = GVP_ANCHOR_CHOICES;
|
|
@@ -13580,6 +13715,7 @@ exports.MAX_NEGATIVE_PROMPT_CHARS_BY_PROVIDER = MAX_NEGATIVE_PROMPT_CHARS_BY_PRO
|
|
|
13580
13715
|
exports.MAX_PANELS_PER_SHEET = MAX_PANELS_PER_SHEET;
|
|
13581
13716
|
exports.MAX_TTS_CHARS_BY_PROVIDER = MAX_TTS_CHARS_BY_PROVIDER;
|
|
13582
13717
|
exports.MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER = MAX_VIDEO_PROMPT_CHARS_BY_PROVIDER;
|
|
13718
|
+
exports.MEMBER_STATUSES = MEMBER_STATUSES;
|
|
13583
13719
|
exports.MINIMAX_H3_DEFAULT_RESOLUTION = MINIMAX_H3_DEFAULT_RESOLUTION;
|
|
13584
13720
|
exports.MINIMAX_H3_PROVIDERS = MINIMAX_H3_PROVIDERS;
|
|
13585
13721
|
exports.MODELS_WITH_REFERENCE_IMAGE_SUPPORT = MODELS_WITH_REFERENCE_IMAGE_SUPPORT;
|
|
@@ -13612,15 +13748,21 @@ exports.OBJECT_ASSET_VARIANTS = OBJECT_ASSET_VARIANTS;
|
|
|
13612
13748
|
exports.OBJECT_ATTACH_COLUMNS = OBJECT_ATTACH_COLUMNS;
|
|
13613
13749
|
exports.OBJECT_MOTION_PROVIDERS = OBJECT_MOTION_PROVIDERS;
|
|
13614
13750
|
exports.OBJECT_PICKER_NODE_TYPES = OBJECT_PICKER_NODE_TYPES;
|
|
13751
|
+
exports.ORG_ERROR_CODES = ORG_ERROR_CODES;
|
|
13752
|
+
exports.ORG_KINDS = ORG_KINDS;
|
|
13753
|
+
exports.ORG_ROLES = ORG_ROLES;
|
|
13754
|
+
exports.ORG_STATUSES = ORG_STATUSES;
|
|
13615
13755
|
exports.OUTPUT_FIELD_MAP = OUTPUT_FIELD_MAP;
|
|
13616
13756
|
exports.OUTPUT_FORMATS = OUTPUT_FORMATS;
|
|
13617
13757
|
exports.ObjectMetadataSchema = ObjectMetadataSchema;
|
|
13618
13758
|
exports.OptimizeForModelInputSchema = OptimizeForModelInputSchema;
|
|
13619
13759
|
exports.OptimizeForModelResultSchema = OptimizeForModelResultSchema;
|
|
13760
|
+
exports.OrgSettingsSchema = OrgSettingsSchema;
|
|
13620
13761
|
exports.PARAMETER_NODE_TYPES = PARAMETER_NODE_TYPES;
|
|
13621
13762
|
exports.PASSTHROUGH_TYPES = PASSTHROUGH_TYPES;
|
|
13622
13763
|
exports.PAYG_RETENTION_DAYS = PAYG_RETENTION_DAYS;
|
|
13623
13764
|
exports.PER_FORMAT_DURATION_BOUNDS = PER_FORMAT_DURATION_BOUNDS;
|
|
13765
|
+
exports.PICKER_TO_COMBINE_TRANSITION = PICKER_TO_COMBINE_TRANSITION;
|
|
13624
13766
|
exports.PIPELINE_ACTIVATION_MODES = PIPELINE_ACTIVATION_MODES;
|
|
13625
13767
|
exports.PIPELINE_FORMATS = PIPELINE_FORMATS;
|
|
13626
13768
|
exports.PIPELINE_HARD_TIMEOUT_MS = PIPELINE_HARD_TIMEOUT_MS;
|
|
@@ -13639,6 +13781,7 @@ exports.PLATFORM_SPECS = PLATFORM_SPECS;
|
|
|
13639
13781
|
exports.PRESET_APPLY_CLEAR_KEYS = PRESET_APPLY_CLEAR_KEYS;
|
|
13640
13782
|
exports.PRESET_EXCLUDED_KEYS = PRESET_EXCLUDED_KEYS;
|
|
13641
13783
|
exports.PRESET_LABELS = PRESET_LABELS;
|
|
13784
|
+
exports.PRESET_SETTING_KEYS = PRESET_SETTING_KEYS;
|
|
13642
13785
|
exports.PRICING_DEFAULT_DURATION_SEC = PRICING_DEFAULT_DURATION_SEC;
|
|
13643
13786
|
exports.PRICING_DEFAULT_RESOLUTION = PRICING_DEFAULT_RESOLUTION;
|
|
13644
13787
|
exports.PROMPT_HARD_CEILING = PROMPT_HARD_CEILING;
|
|
@@ -13655,6 +13798,7 @@ exports.PipelineStageNameSchema = PipelineStageNameSchema;
|
|
|
13655
13798
|
exports.PipelineStageStatusSchema = PipelineStageStatusSchema;
|
|
13656
13799
|
exports.PipelineStateSchema = PipelineStateSchema;
|
|
13657
13800
|
exports.PipelineStatusSchema = PipelineStatusSchema;
|
|
13801
|
+
exports.PresetSettingsSchema = PresetSettingsSchema;
|
|
13658
13802
|
exports.QA_CHECK_PROVIDERS = QA_CHECK_PROVIDERS;
|
|
13659
13803
|
exports.REDUCE_STRATEGIES = REDUCE_STRATEGIES;
|
|
13660
13804
|
exports.REDUCE_STRATEGY_IDS = REDUCE_STRATEGY_IDS;
|
|
@@ -13705,11 +13849,13 @@ exports.STAGE_PATCH_SCHEMA = STAGE_PATCH_SCHEMA;
|
|
|
13705
13849
|
exports.STATIC_CAPTION_STYLES = STATIC_CAPTION_STYLES;
|
|
13706
13850
|
exports.STRUCTURAL_SECTIONS = STRUCTURAL_SECTIONS;
|
|
13707
13851
|
exports.STRUCTURED_VISION_MODELS = STRUCTURED_VISION_MODELS;
|
|
13852
|
+
exports.SUBMISSION_STATUSES = SUBMISSION_STATUSES;
|
|
13708
13853
|
exports.SUNO_ADD_TRACK_MODELS = SUNO_ADD_TRACK_MODELS;
|
|
13709
13854
|
exports.SUNO_FIELD_HANDLE_FIELDS = SUNO_FIELD_HANDLE_FIELDS;
|
|
13710
13855
|
exports.SUNO_MODELS = SUNO_MODELS;
|
|
13711
13856
|
exports.SUNO_TEXT_MAX = SUNO_TEXT_MAX;
|
|
13712
13857
|
exports.SUNO_TITLE_MAX = SUNO_TITLE_MAX;
|
|
13858
|
+
exports.SUNO_TRACK_SOURCE_TYPES = SUNO_TRACK_SOURCE_TYPES;
|
|
13713
13859
|
exports.SUPPORTED_FONT_NAMES = SUPPORTED_FONT_NAMES;
|
|
13714
13860
|
exports.SURROUND_DIRECTIONS = SURROUND_DIRECTIONS;
|
|
13715
13861
|
exports.SWITCHX_BLOCK_FRAMES = SWITCHX_BLOCK_FRAMES;
|
|
@@ -13804,6 +13950,11 @@ exports.WARDROBE_VARIANTS = WARDROBE_VARIANTS;
|
|
|
13804
13950
|
exports.WEAPONS = WEAPONS;
|
|
13805
13951
|
exports.WEAPON_SUBCATEGORY_LABELS = WEAPON_SUBCATEGORY_LABELS;
|
|
13806
13952
|
exports.WEAPON_SUBCATEGORY_ORDER = WEAPON_SUBCATEGORY_ORDER;
|
|
13953
|
+
exports.WORKFLOW_VISIBILITIES = WORKFLOW_VISIBILITIES;
|
|
13954
|
+
exports.WORKSPACE_HEADER = WORKSPACE_HEADER;
|
|
13955
|
+
exports.WORKSPACE_HEADER_LOWER = WORKSPACE_HEADER_LOWER;
|
|
13956
|
+
exports.WORKSPACE_ROLES = WORKSPACE_ROLES;
|
|
13957
|
+
exports.WorkspaceSettingsSchema = WorkspaceSettingsSchema;
|
|
13807
13958
|
exports.aggregateByType = aggregateByType;
|
|
13808
13959
|
exports.aiAvatarReserveCreditId = aiAvatarReserveCreditId;
|
|
13809
13960
|
exports.analyzedSceneSchema = analyzedSceneSchema;
|
|
@@ -13836,7 +13987,6 @@ exports.buildPanelPrompt = buildPanelPrompt;
|
|
|
13836
13987
|
exports.buildProgressSegments = buildProgressSegments;
|
|
13837
13988
|
exports.buildRangeLabel = buildRangeLabel;
|
|
13838
13989
|
exports.buildScraperCreditId = buildScraperCreditId;
|
|
13839
|
-
exports.buildSurroundFillPrompt = buildSurroundFillPrompt;
|
|
13840
13990
|
exports.buildVideoAnalysisCreditId = buildVideoAnalysisCreditId;
|
|
13841
13991
|
exports.buildVideoAuditCreditId = buildVideoAuditCreditId;
|
|
13842
13992
|
exports.buildVideoCreditModelIdentifier = buildVideoCreditModelIdentifier;
|
|
@@ -14070,10 +14220,12 @@ exports.resolveScraperCreditId = resolveScraperCreditId;
|
|
|
14070
14220
|
exports.resolveSelectorRefs = resolveSelectorRefs;
|
|
14071
14221
|
exports.resolveSeparator = resolveSeparator;
|
|
14072
14222
|
exports.resolveSheetSections = resolveSheetSections;
|
|
14223
|
+
exports.resolveSlideshowTransition = resolveSlideshowTransition;
|
|
14073
14224
|
exports.resolveSourceThroughConnectedList = resolveSourceThroughConnectedList;
|
|
14074
14225
|
exports.resolveStoredTier = resolveStoredTier;
|
|
14075
14226
|
exports.resolveSwitchXCreditId = resolveSwitchXCreditId;
|
|
14076
14227
|
exports.resolveVideoAnalysisModel = resolveVideoAnalysisModel;
|
|
14228
|
+
exports.resolveVideoModeForInputs = resolveVideoModeForInputs;
|
|
14077
14229
|
exports.resolveVideoProviderForMode = resolveVideoProviderForMode;
|
|
14078
14230
|
exports.resolveXfadeName = resolveXfadeName;
|
|
14079
14231
|
exports.rewriteSceneBindings = rewriteSceneBindings;
|