@sogni-ai/sogni-intelligence-client 4.1.0 → 4.2.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/agent/intentInput.d.ts +1 -1
- package/dist/agent/intentInput.d.ts.map +1 -1
- package/dist/agent/intentInput.js +1 -0
- package/dist/agent/intentInput.js.map +1 -1
- package/dist/artifacts/graph.d.ts +1 -1
- package/dist/artifacts/graph.d.ts.map +1 -1
- package/dist/artifacts/graph.js +1 -0
- package/dist/artifacts/graph.js.map +1 -1
- package/dist/chatRun/index.d.ts +1 -1
- package/dist/chatRun/index.d.ts.map +1 -1
- package/dist/client/SogniClientWrapper.d.ts.map +1 -1
- package/dist/client/SogniClientWrapper.js +12 -10
- package/dist/client/SogniClientWrapper.js.map +1 -1
- package/dist/contracts/backboneDurableWorkflow.d.ts +1 -1
- package/dist/contracts/backboneDurableWorkflow.d.ts.map +1 -1
- package/dist/contracts/backboneToolCatalog.d.ts +2 -2
- package/dist/contracts/backboneToolCatalog.d.ts.map +1 -1
- package/dist/contracts/backboneToolCatalog.js +3 -0
- package/dist/contracts/backboneToolCatalog.js.map +1 -1
- package/dist/contracts/data/gatingPolicies.d.ts.map +1 -1
- package/dist/contracts/data/gatingPolicies.js +3 -0
- package/dist/contracts/data/gatingPolicies.js.map +1 -1
- package/dist/contracts/data/gatingPoliciesToolSurface.d.ts.map +1 -1
- package/dist/contracts/data/gatingPoliciesToolSurface.js +3 -0
- package/dist/contracts/data/gatingPoliciesToolSurface.js.map +1 -1
- package/dist/contracts/data/promptContracts.d.ts.map +1 -1
- package/dist/contracts/data/promptContracts.js +20 -8
- package/dist/contracts/data/promptContracts.js.map +1 -1
- package/dist/contracts/data/toolCostMetadata.d.ts.map +1 -1
- package/dist/contracts/data/toolCostMetadata.js +3 -0
- package/dist/contracts/data/toolCostMetadata.js.map +1 -1
- package/dist/openai-tools/_manifests.generated.d.ts.map +1 -1
- package/dist/openai-tools/_manifests.generated.js +263 -10
- package/dist/openai-tools/_manifests.generated.js.map +1 -1
- package/dist/openai-tools/generation-tools.json +263 -10
- package/dist/public-skill-runtime/index.d.ts +2 -2
- package/dist/public-skill-runtime/index.d.ts.map +1 -1
- package/dist/public-skill-runtime/index.js +45 -15
- package/dist/public-skill-runtime/index.js.map +1 -1
- package/dist/schemas/agent/intent-input.schema.json +1 -1
- package/dist/schemas/artifacts/artifact-node.schema.json +1 -1
- package/dist/schemas/events/artifact-reference.schema.json +1 -1
- package/dist/schemas/tools/animate_photo.schema.json +1 -1
- package/dist/schemas/tools/edit_image.schema.json +20 -1
- package/dist/schemas/tools/generate_image.schema.json +20 -1
- package/dist/schemas/tools/generate_speech.schema.json +26 -1
- package/dist/schemas/tools/generate_video.schema.json +3 -3
- package/dist/schemas/tools/image_to_3d.schema.json +76 -0
- package/dist/schemas/tools/remove_background.schema.json +24 -0
- package/dist/schemas/tools/segment_image.schema.json +122 -0
- package/dist/schemas/workflows/durable-workflow-run.schema.json +4 -0
- package/dist/tools/definitions/edit-image/definition.js +2 -2
- package/dist/tools/definitions/edit-image/definition.js.map +1 -1
- package/dist/tools/definitions/generate-image/definition.js +1 -1
- package/dist/tools/definitions/generate-image/definition.js.map +1 -1
- package/dist/tools/definitions/generate-speech/definition.d.ts.map +1 -1
- package/dist/tools/definitions/generate-speech/definition.js +4 -0
- package/dist/tools/definitions/generate-speech/definition.js.map +1 -1
- package/dist/tools/definitions/generate-video/definition.js +2 -2
- package/dist/tools/definitions/generate-video/definition.js.map +1 -1
- package/dist/tools/definitions/image-to-3d/definition.d.ts +3 -0
- package/dist/tools/definitions/image-to-3d/definition.d.ts.map +1 -0
- package/dist/tools/definitions/image-to-3d/definition.js +30 -0
- package/dist/tools/definitions/image-to-3d/definition.js.map +1 -0
- package/dist/tools/definitions/index.d.ts +5 -2
- package/dist/tools/definitions/index.d.ts.map +1 -1
- package/dist/tools/definitions/index.js +54 -45
- package/dist/tools/definitions/index.js.map +1 -1
- package/dist/tools/definitions/remove-background/definition.d.ts +3 -0
- package/dist/tools/definitions/remove-background/definition.d.ts.map +1 -0
- package/dist/tools/definitions/remove-background/definition.js +20 -0
- package/dist/tools/definitions/remove-background/definition.js.map +1 -0
- package/dist/tools/definitions/segment-image/definition.d.ts +3 -0
- package/dist/tools/definitions/segment-image/definition.d.ts.map +1 -0
- package/dist/tools/definitions/segment-image/definition.js +27 -0
- package/dist/tools/definitions/segment-image/definition.js.map +1 -0
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/result.d.ts +1 -1
- package/dist/tools/result.d.ts.map +1 -1
- package/dist/tools/shared/loraGuidance.d.ts.map +1 -1
- package/dist/tools/shared/loraGuidance.js +2 -2
- package/dist/tools/shared/loraGuidance.js.map +1 -1
- package/dist/workflows/executor.d.ts.map +1 -1
- package/dist/workflows/executor.js +2 -0
- package/dist/workflows/executor.js.map +1 -1
- package/dist/workflows/types.d.ts +1 -1
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist-esm/agent/intentInput.js +1 -0
- package/dist-esm/agent/intentInput.js.map +1 -1
- package/dist-esm/artifacts/graph.js +1 -0
- package/dist-esm/artifacts/graph.js.map +1 -1
- package/dist-esm/client/SogniClientWrapper.js +12 -10
- package/dist-esm/client/SogniClientWrapper.js.map +1 -1
- package/dist-esm/contracts/backboneToolCatalog.js +3 -0
- package/dist-esm/contracts/backboneToolCatalog.js.map +1 -1
- package/dist-esm/contracts/data/gatingPolicies.js +3 -0
- package/dist-esm/contracts/data/gatingPolicies.js.map +1 -1
- package/dist-esm/contracts/data/gatingPoliciesToolSurface.js +3 -0
- package/dist-esm/contracts/data/gatingPoliciesToolSurface.js.map +1 -1
- package/dist-esm/contracts/data/promptContracts.js +20 -8
- package/dist-esm/contracts/data/promptContracts.js.map +1 -1
- package/dist-esm/contracts/data/toolCostMetadata.js +3 -0
- package/dist-esm/contracts/data/toolCostMetadata.js.map +1 -1
- package/dist-esm/openai-tools/_manifests.generated.js +263 -10
- package/dist-esm/openai-tools/_manifests.generated.js.map +1 -1
- package/dist-esm/openai-tools/generation-tools.json +263 -10
- package/dist-esm/public-skill-runtime/index.js +45 -15
- package/dist-esm/public-skill-runtime/index.js.map +1 -1
- package/dist-esm/schemas/agent/intent-input.schema.json +1 -1
- package/dist-esm/schemas/artifacts/artifact-node.schema.json +1 -1
- package/dist-esm/schemas/events/artifact-reference.schema.json +1 -1
- package/dist-esm/schemas/tools/animate_photo.schema.json +1 -1
- package/dist-esm/schemas/tools/edit_image.schema.json +20 -1
- package/dist-esm/schemas/tools/generate_image.schema.json +20 -1
- package/dist-esm/schemas/tools/generate_speech.schema.json +26 -1
- package/dist-esm/schemas/tools/generate_video.schema.json +3 -3
- package/dist-esm/schemas/tools/image_to_3d.schema.json +76 -0
- package/dist-esm/schemas/tools/remove_background.schema.json +24 -0
- package/dist-esm/schemas/tools/segment_image.schema.json +122 -0
- package/dist-esm/schemas/workflows/durable-workflow-run.schema.json +4 -0
- package/dist-esm/tools/definitions/edit-image/definition.js +2 -2
- package/dist-esm/tools/definitions/edit-image/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-image/definition.js +1 -1
- package/dist-esm/tools/definitions/generate-image/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-speech/definition.js +4 -0
- package/dist-esm/tools/definitions/generate-speech/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-video/definition.js +2 -2
- package/dist-esm/tools/definitions/generate-video/definition.js.map +1 -1
- package/dist-esm/tools/definitions/image-to-3d/definition.js +27 -0
- package/dist-esm/tools/definitions/image-to-3d/definition.js.map +1 -0
- package/dist-esm/tools/definitions/index.js +7 -1
- package/dist-esm/tools/definitions/index.js.map +1 -1
- package/dist-esm/tools/definitions/remove-background/definition.js +17 -0
- package/dist-esm/tools/definitions/remove-background/definition.js.map +1 -0
- package/dist-esm/tools/definitions/segment-image/definition.js +24 -0
- package/dist-esm/tools/definitions/segment-image/definition.js.map +1 -0
- package/dist-esm/tools/index.js +1 -1
- package/dist-esm/tools/index.js.map +1 -1
- package/dist-esm/tools/shared/loraGuidance.js +2 -2
- package/dist-esm/tools/shared/loraGuidance.js.map +1 -1
- package/dist-esm/workflows/executor.js +2 -0
- package/dist-esm/workflows/executor.js.map +1 -1
- package/package.json +4 -4
|
@@ -1004,17 +1004,32 @@ function compactSceneVideoPrompt(project, scene, referenceTag) {
|
|
|
1004
1004
|
lines.push(`Style: ${project.creativeBrief.visualQualityBar}`);
|
|
1005
1005
|
return lines.join('\n');
|
|
1006
1006
|
}
|
|
1007
|
+
function publicSeedanceVideoModelFromInput(input) {
|
|
1008
|
+
const requestedModelId = String(input.options?.requestedModelId ?? '').trim().toLowerCase();
|
|
1009
|
+
if (!requestedModelId || requestedModelId === 'seedance')
|
|
1010
|
+
return 'seedance2-5';
|
|
1011
|
+
const resolved = resolveVideoModelAlias(requestedModelId, 't2v');
|
|
1012
|
+
if (resolved === exports.SEEDANCE_WORKFLOW_MODELS.t2v25)
|
|
1013
|
+
return 'seedance2-5';
|
|
1014
|
+
if (resolved === exports.SEEDANCE_WORKFLOW_MODELS.t2vMini)
|
|
1015
|
+
return 'seedance2-mini';
|
|
1016
|
+
if (resolved === exports.SEEDANCE_WORKFLOW_MODELS.t2v)
|
|
1017
|
+
return 'seedance2';
|
|
1018
|
+
throw new Error(`No Seedance storyboard execution contract is registered for model "${requestedModelId}".`);
|
|
1019
|
+
}
|
|
1007
1020
|
const PUBLIC_SEEDANCE_ADAPTER = {
|
|
1008
1021
|
modelId: 'seedance',
|
|
1009
1022
|
name: 'Seedance 2.x',
|
|
1010
1023
|
supportedStages: ['storyboard_image', 'scene_clip'],
|
|
1011
1024
|
compile(storyboard, input) {
|
|
1025
|
+
const videoModel = publicSeedanceVideoModelFromInput(input);
|
|
1012
1026
|
if (input.stage === 'storyboard_image') {
|
|
1013
1027
|
return {
|
|
1014
1028
|
stage: 'storyboard_image',
|
|
1015
1029
|
prompt: compileStoryboardImagePromptFromProject(storyboard),
|
|
1016
1030
|
args: {
|
|
1017
|
-
videoModel
|
|
1031
|
+
videoModel,
|
|
1032
|
+
...(videoModel === 'seedance2-5' ? { targetResolution: 1080 } : {}),
|
|
1018
1033
|
aspectRatio: storyboard.targetVideoAspectRatio,
|
|
1019
1034
|
skipPromptProcessing: true,
|
|
1020
1035
|
expandPrompt: false,
|
|
@@ -1024,12 +1039,14 @@ const PUBLIC_SEEDANCE_ADAPTER = {
|
|
|
1024
1039
|
if (input.stage === 'scene_clip') {
|
|
1025
1040
|
const scene = requireStoryboardScene('SEEDANCE_ADAPTER', input);
|
|
1026
1041
|
const referenceTag = input.primaryReferenceTag ?? formatModelRef('seedance', 1, 'image');
|
|
1027
|
-
const
|
|
1042
|
+
const maxDuration = videoModel === 'seedance2-5' ? 30 : 15;
|
|
1043
|
+
const duration = Math.max(4, Math.min(maxDuration, Math.round(scene.durationSec ?? 5)));
|
|
1028
1044
|
return {
|
|
1029
1045
|
stage: 'scene_clip',
|
|
1030
1046
|
prompt: compileSeedanceSceneClipPromptFromProject(storyboard, scene, referenceTag),
|
|
1031
1047
|
args: {
|
|
1032
|
-
videoModel
|
|
1048
|
+
videoModel,
|
|
1049
|
+
...(videoModel === 'seedance2-5' ? { targetResolution: 1080 } : {}),
|
|
1033
1050
|
duration,
|
|
1034
1051
|
aspectRatio: storyboard.targetVideoAspectRatio,
|
|
1035
1052
|
skipPromptProcessing: true,
|
|
@@ -1040,7 +1057,7 @@ const PUBLIC_SEEDANCE_ADAPTER = {
|
|
|
1040
1057
|
throw new StoryboardAdapterUnsupportedStageError('seedance', input.stage);
|
|
1041
1058
|
},
|
|
1042
1059
|
getSystemPromptGuidance() {
|
|
1043
|
-
return `SEEDANCE STORYBOARD REFERENCES: If exactly one uploaded image is an ordered storyboard/sequence sheet and the user asks for a Seedance video with only a sparse/casual prompt, use generate_video with referenceImageIndices=[-1], prompt="${exports.SEEDANCE_STORYBOARD_REFERENCE_PROMPT}", videoModel="seedance2", skipPromptProcessing=true, and expandPrompt=false. Also use videoModel="seedance2" when a generated storyboard image becomes the Seedance reference,
|
|
1060
|
+
return `SEEDANCE STORYBOARD REFERENCES: If exactly one uploaded image is an ordered storyboard/sequence sheet and the user asks for a Seedance video with only a sparse/casual prompt, use generate_video with referenceImageIndices=[-1], prompt="${exports.SEEDANCE_STORYBOARD_REFERENCE_PROMPT}", videoModel="seedance2-5", targetResolution=1080, skipPromptProcessing=true, and expandPrompt=false. Also use videoModel="seedance2-5" with targetResolution=1080 when a generated storyboard image becomes the Seedance reference, unless the user explicitly asks for another Seedance model or resolution. Do not use this fallback when the user provides a literal prompt, their own script, shot list, timecoded beats, VO/SFX notes, or other substantive video instructions.`;
|
|
1044
1061
|
},
|
|
1045
1062
|
};
|
|
1046
1063
|
const PUBLIC_GPT_IMAGE_2_GUIDANCE = 'GPT IMAGE 2 ROUTING: When the user asks for a ChatGPT, OpenAI, GPT, GPT-2, GPT Image, or gpt-image-2 image/model, use model="gpt-image-2". An explicit GPT Image 2.5, Sunburst, or Flare request follows GPT IMAGE 2.5 ROUTING instead. Use generate_image for text-to-image requests. If uploaded/reference/persona images must guide identity, likeness, composition, style, or objects, use edit_image with model="gpt-image-2" instead of forcing generate_image.';
|
|
@@ -1243,7 +1260,13 @@ function compileForModel(modelId, storyboard, input) {
|
|
|
1243
1260
|
const adapter = exports.storyboardAdapterRegistry.getAdapter(modelId);
|
|
1244
1261
|
if (!adapter)
|
|
1245
1262
|
throw new Error(`No storyboard adapter registered for model_id "${modelId}".`);
|
|
1246
|
-
return adapter.compile(storyboard,
|
|
1263
|
+
return adapter.compile(storyboard, {
|
|
1264
|
+
...input,
|
|
1265
|
+
options: {
|
|
1266
|
+
...input.options,
|
|
1267
|
+
requestedModelId: modelId,
|
|
1268
|
+
},
|
|
1269
|
+
});
|
|
1247
1270
|
}
|
|
1248
1271
|
const PUBLIC_SEEDANCE_PRIMARY_IMAGE_REF = formatModelRef('seedance', 1, 'image');
|
|
1249
1272
|
exports.SEEDANCE_STORYBOARD_REFERENCE_PROMPT = `Create a full-screen cinematic video from the storyboard in ${PUBLIC_SEEDANCE_PRIMARY_IMAGE_REF}. Treat ${PUBLIC_SEEDANCE_PRIMARY_IMAGE_REF} as the controlling source for shot order and intent, and as a source layout reference: use the thumbnails, timing, Dialogue/VO, Audio/SFX, timecodes, camera/motion notes, transitions, and scene order as instructions, not as a visual board to reproduce. Do not display the storyboard grid, borders, caption bars, storyboard title/footer text, panel numbers, section labels, slide titles, headings, or transcribed narration. Convert the ordered thumbnails into full-screen chronological beats; do not reuse only one or two motifs while skipping panels. When the board has panel titles, captions, section numbers, slide titles, or headings but no formal Dialogue/VO labels, treat those labels as short audio-only narration/voiceover or key-message beats in order unless they are clearly visual-only metadata. Voice each label as its own brief phrase with a pause; do not concatenate labels into run-on sentences and do not speak panel numbers. Show storyboard labels as visible text only when the user explicitly asks for visible text, subtitles, a title card, lower third, signage, or a title/end frame. Preserve the story spine, character/product/reference continuity, and cause-and-effect progression between beats. Treat transitions as motion instructions, not unrelated hard cuts unless the storyboard explicitly asks for hard cuts. Use brand color, lighting, product imagery, and composition instead of invented typography. Keep visible text limited to exact copy the user or storyboard explicitly marks as on-screen text, signage, title text, or end-frame text. Use a music/SFX arc that follows the storyboard audio notes and lands the final beat. Keep unrelated UI, extra logos, microtext, subtitles, and extra scenes out of the frame.`;
|
|
@@ -7171,8 +7194,13 @@ function dimensionsForShortSideAspectRatio(aspectRatio, shortSide) {
|
|
|
7171
7194
|
return { width: 1280, height: 720 };
|
|
7172
7195
|
}
|
|
7173
7196
|
const multiple = 16;
|
|
7174
|
-
const
|
|
7175
|
-
const
|
|
7197
|
+
const exactProviderResolution = shortSide === 1080;
|
|
7198
|
+
const side = exactProviderResolution
|
|
7199
|
+
? shortSide
|
|
7200
|
+
: Math.max(multiple, Math.round(shortSide / multiple) * multiple);
|
|
7201
|
+
const roundLongSide = (value) => exactProviderResolution
|
|
7202
|
+
? Math.max(1, Math.round(value))
|
|
7203
|
+
: Math.max(multiple, Math.round(value / multiple) * multiple);
|
|
7176
7204
|
if (ratioWidth >= ratioHeight) {
|
|
7177
7205
|
return {
|
|
7178
7206
|
width: roundLongSide(side * ratioWidth / ratioHeight),
|
|
@@ -7346,8 +7374,15 @@ function buildStoryboardVideoHostedToolSequenceInput(options) {
|
|
|
7346
7374
|
const defaultImageDimensions = defaultStoryboardImageDimensions(layout);
|
|
7347
7375
|
const imageWidth = options.imageWidth ?? defaultImageDimensions.width;
|
|
7348
7376
|
const imageHeight = options.imageHeight ?? defaultImageDimensions.height;
|
|
7349
|
-
const
|
|
7350
|
-
const
|
|
7377
|
+
const imageModel = options.imageModel ?? 'gpt-image-2.5-sunburst';
|
|
7378
|
+
const imageQuality = options.imageQuality ?? 'high';
|
|
7379
|
+
const imageOutputFormat = options.imageOutputFormat ?? 'png';
|
|
7380
|
+
const videoModel = options.videoModel ?? 'seedance2-5';
|
|
7381
|
+
const videoMaximumDuration = videoModel === 'seedance2-5' ? 30 : 15;
|
|
7382
|
+
const requestedVideoDuration = options.videoDurationSec ?? project.durationSec ?? 5;
|
|
7383
|
+
const videoDuration = Math.max(4, Math.min(videoMaximumDuration, Math.round(requestedVideoDuration)));
|
|
7384
|
+
const videoTargetResolution = options.videoTargetResolution ?? (videoModel === 'seedance2-mini' ? 720 : 1080);
|
|
7385
|
+
const videoDimensions = dimensionsForShortSideAspectRatio(project.targetVideoAspectRatio, videoTargetResolution);
|
|
7351
7386
|
const storyboardImagePrompt = compileVideoStoryboardImagePrompt(compileOptions);
|
|
7352
7387
|
const seedanceVideoPrompt = compileSeedanceStoryboardPromptFromProject(project, {
|
|
7353
7388
|
storyboardImageTag: PUBLIC_SEEDANCE_PRIMARY_IMAGE_REF,
|
|
@@ -7364,10 +7399,6 @@ function buildStoryboardVideoHostedToolSequenceInput(options) {
|
|
|
7364
7399
|
].join(' '));
|
|
7365
7400
|
}
|
|
7366
7401
|
const title = options.title || `${project.title} storyboard video`;
|
|
7367
|
-
const imageModel = options.imageModel ?? 'gpt-image-2';
|
|
7368
|
-
const imageQuality = options.imageQuality ?? 'high';
|
|
7369
|
-
const imageOutputFormat = options.imageOutputFormat ?? 'png';
|
|
7370
|
-
const videoModel = options.videoModel ?? 'seedance2';
|
|
7371
7402
|
const generateAudio = options.generateAudio ?? true;
|
|
7372
7403
|
const input = {
|
|
7373
7404
|
title,
|
|
@@ -7391,8 +7422,7 @@ function buildStoryboardVideoHostedToolSequenceInput(options) {
|
|
|
7391
7422
|
arguments: {
|
|
7392
7423
|
prompt: seedanceVideoPrompt,
|
|
7393
7424
|
videoModel,
|
|
7394
|
-
|
|
7395
|
-
height: videoDimensions.height,
|
|
7425
|
+
targetResolution: videoTargetResolution,
|
|
7396
7426
|
duration: videoDuration,
|
|
7397
7427
|
fps: 24,
|
|
7398
7428
|
numberOfVariations: 1,
|