@sogni-ai/sogni-intelligence-client 4.19.1 → 4.20.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/contracts/data/gatingPolicies.d.ts.map +1 -1
- package/dist/contracts/data/gatingPolicies.js +7 -4
- package/dist/contracts/data/gatingPolicies.js.map +1 -1
- package/dist/contracts/data/promptContracts.d.ts.map +1 -1
- package/dist/contracts/data/promptContracts.js +49 -27
- package/dist/contracts/data/promptContracts.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +2 -0
- package/dist/media/index.js.map +1 -1
- package/dist/media/personaCharacterSheet.d.ts +80 -0
- package/dist/media/personaCharacterSheet.d.ts.map +1 -0
- package/dist/media/personaCharacterSheet.js +177 -0
- package/dist/media/personaCharacterSheet.js.map +1 -0
- package/dist/media/personaReferences.d.ts +70 -0
- package/dist/media/personaReferences.d.ts.map +1 -0
- package/dist/media/personaReferences.js +206 -0
- package/dist/media/personaReferences.js.map +1 -0
- package/dist/public-skill-runtime/index.js +1 -1
- package/dist/public-skill-runtime/index.js.map +1 -1
- package/dist/tools/definitions/animate-photo/definition.js +2 -2
- package/dist/tools/definitions/animate-photo/definition.js.map +1 -1
- package/dist/tools/definitions/generate-speech/definition.js +4 -4
- 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/shared/seedancePolicyErrors.d.ts.map +1 -1
- package/dist/tools/shared/seedancePolicyErrors.js +62 -10
- package/dist/tools/shared/seedancePolicyErrors.js.map +1 -1
- package/dist-esm/contracts/data/gatingPolicies.js +7 -4
- package/dist-esm/contracts/data/gatingPolicies.js.map +1 -1
- package/dist-esm/contracts/data/promptContracts.js +49 -27
- package/dist-esm/contracts/data/promptContracts.js.map +1 -1
- package/dist-esm/media/index.js +2 -0
- package/dist-esm/media/index.js.map +1 -1
- package/dist-esm/media/personaCharacterSheet.js +166 -0
- package/dist-esm/media/personaCharacterSheet.js.map +1 -0
- package/dist-esm/media/personaReferences.js +187 -0
- package/dist-esm/media/personaReferences.js.map +1 -0
- package/dist-esm/public-skill-runtime/index.js +1 -1
- package/dist-esm/public-skill-runtime/index.js.map +1 -1
- package/dist-esm/tools/definitions/animate-photo/definition.js +2 -2
- package/dist-esm/tools/definitions/animate-photo/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-speech/definition.js +4 -4
- 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/shared/seedancePolicyErrors.js +62 -10
- package/dist-esm/tools/shared/seedancePolicyErrors.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personaCharacterSheet.js","sourceRoot":"","sources":["../../src/media/personaCharacterSheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export type PersonaReferenceRole = 'portrait' | 'front' | 'profile' | 'back' | 'expression' | 'sheet' | 'voice' | 'voice-video';
|
|
2
|
+
export type PersonaVoiceRole = Extract<PersonaReferenceRole, 'voice' | 'voice-video'>;
|
|
3
|
+
export declare const PERSONA_VIEW_ROLES: readonly ["sheet", "portrait", "front", "profile", "back", "expression"];
|
|
4
|
+
export interface PersonaReferenceFileLike {
|
|
5
|
+
type: string;
|
|
6
|
+
filename?: string;
|
|
7
|
+
personaId?: string;
|
|
8
|
+
personaName?: string;
|
|
9
|
+
personaRole?: PersonaReferenceRole;
|
|
10
|
+
personaPrimary?: boolean;
|
|
11
|
+
voiceTranscript?: string;
|
|
12
|
+
duration?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function personaSlug(name: string): string;
|
|
15
|
+
export declare function personaRoleLabel(role: PersonaReferenceRole | undefined): string;
|
|
16
|
+
export declare function personaMainImageFilename(name: string): string;
|
|
17
|
+
export declare function personaViewFilename(name: string, role: PersonaReferenceRole, mimeType?: string): string;
|
|
18
|
+
export declare function personaVoiceFilename(name: string, role: PersonaVoiceRole): string;
|
|
19
|
+
export interface ParsedPersonaFilename {
|
|
20
|
+
kind: 'image' | 'voice';
|
|
21
|
+
slug: string;
|
|
22
|
+
role?: PersonaReferenceRole;
|
|
23
|
+
}
|
|
24
|
+
export declare function parsePersonaFilename(filename: string | undefined, kind: 'image' | 'voice'): ParsedPersonaFilename | null;
|
|
25
|
+
export declare function isPersonaFile(file: Pick<PersonaReferenceFileLike, 'filename' | 'personaId'>): boolean;
|
|
26
|
+
export declare function isPersonaPrimaryImage(file: PersonaReferenceFileLike): boolean;
|
|
27
|
+
export declare function isPersonaExtraView(file: PersonaReferenceFileLike): boolean;
|
|
28
|
+
export declare function isPersonaVoiceFile(file: PersonaReferenceFileLike): boolean;
|
|
29
|
+
export type PersonaReferenceSource<T> = T & {
|
|
30
|
+
role: PersonaReferenceRole;
|
|
31
|
+
kind: 'image' | 'audio';
|
|
32
|
+
mimeType?: string;
|
|
33
|
+
isIdentity?: boolean;
|
|
34
|
+
};
|
|
35
|
+
export interface PersonaReferenceSet<T> {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
voiceTranscript?: string;
|
|
39
|
+
references: ReadonlyArray<PersonaReferenceSource<T>>;
|
|
40
|
+
}
|
|
41
|
+
export type PersonaUpload<T> = Omit<T, 'role' | 'kind' | 'isIdentity'> & {
|
|
42
|
+
type: 'image' | 'audio';
|
|
43
|
+
filename: string;
|
|
44
|
+
personaId: string;
|
|
45
|
+
personaName: string;
|
|
46
|
+
personaRole: PersonaReferenceRole;
|
|
47
|
+
personaPrimary?: true;
|
|
48
|
+
voiceTranscript?: string;
|
|
49
|
+
};
|
|
50
|
+
export interface OrderedPersonaUploads<T> {
|
|
51
|
+
primaries: PersonaUpload<T>[];
|
|
52
|
+
extraViews: PersonaUpload<T>[];
|
|
53
|
+
voices: PersonaUpload<T>[];
|
|
54
|
+
}
|
|
55
|
+
export declare function orderPersonaUploads<T>(personas: ReadonlyArray<PersonaReferenceSet<T>>): OrderedPersonaUploads<T>;
|
|
56
|
+
export declare function withPersonaUploads<U extends PersonaReferenceFileLike, T>(uploads: readonly U[], personas: ReadonlyArray<PersonaReferenceSet<T>>, include?: {
|
|
57
|
+
images: boolean;
|
|
58
|
+
voices: boolean;
|
|
59
|
+
}): Array<U | PersonaUpload<T>>;
|
|
60
|
+
export declare function defaultReferenceImageOrdinals(imageUploads: readonly PersonaReferenceFileLike[], room: number, excluded?: ReadonlySet<number>): number[];
|
|
61
|
+
export declare function findPersonaVoiceReference<T extends PersonaReferenceFileLike>(uploads: readonly T[], personaName: string | undefined, purpose: 'video' | 'speech'): T | null;
|
|
62
|
+
export declare function preferFullPersonaRecording<T extends PersonaReferenceFileLike>(clip: T, uploads: readonly T[]): T;
|
|
63
|
+
export declare function describePersonaReferences<T extends PersonaReferenceFileLike>(uploads: readonly T[]): string[];
|
|
64
|
+
export interface SavedPersonaFact {
|
|
65
|
+
name: string;
|
|
66
|
+
relationship: string;
|
|
67
|
+
nicknames?: string[];
|
|
68
|
+
hasVoice?: boolean;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=personaReferences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personaReferences.d.ts","sourceRoot":"","sources":["../../src/media/personaReferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PERSONA_VIEW_ROLES = void 0;
|
|
4
|
+
exports.personaSlug = personaSlug;
|
|
5
|
+
exports.personaRoleLabel = personaRoleLabel;
|
|
6
|
+
exports.personaMainImageFilename = personaMainImageFilename;
|
|
7
|
+
exports.personaViewFilename = personaViewFilename;
|
|
8
|
+
exports.personaVoiceFilename = personaVoiceFilename;
|
|
9
|
+
exports.parsePersonaFilename = parsePersonaFilename;
|
|
10
|
+
exports.isPersonaFile = isPersonaFile;
|
|
11
|
+
exports.isPersonaPrimaryImage = isPersonaPrimaryImage;
|
|
12
|
+
exports.isPersonaExtraView = isPersonaExtraView;
|
|
13
|
+
exports.isPersonaVoiceFile = isPersonaVoiceFile;
|
|
14
|
+
exports.orderPersonaUploads = orderPersonaUploads;
|
|
15
|
+
exports.withPersonaUploads = withPersonaUploads;
|
|
16
|
+
exports.defaultReferenceImageOrdinals = defaultReferenceImageOrdinals;
|
|
17
|
+
exports.findPersonaVoiceReference = findPersonaVoiceReference;
|
|
18
|
+
exports.preferFullPersonaRecording = preferFullPersonaRecording;
|
|
19
|
+
exports.describePersonaReferences = describePersonaReferences;
|
|
20
|
+
exports.PERSONA_VIEW_ROLES = ['sheet', 'portrait', 'front', 'profile', 'back', 'expression'];
|
|
21
|
+
const ROLE_LABELS = {
|
|
22
|
+
portrait: 'identity portrait',
|
|
23
|
+
front: 'full body, front',
|
|
24
|
+
profile: 'side profile',
|
|
25
|
+
back: 'back view',
|
|
26
|
+
expression: 'expression close-up',
|
|
27
|
+
sheet: 'character sheet',
|
|
28
|
+
voice: 'voice recording',
|
|
29
|
+
'voice-video': 'video voice excerpt',
|
|
30
|
+
};
|
|
31
|
+
const VIEW_ROLE_PATTERN = exports.PERSONA_VIEW_ROLES.join('|');
|
|
32
|
+
const PERSONA_IMAGE_FILENAME = new RegExp(`^persona-(?!voiceclip-|voice-video-)(.+?)(?:\\.(${VIEW_ROLE_PATTERN}))?(?:\\.[^.]+)?$`, 'i');
|
|
33
|
+
const PERSONA_VOICE_FILENAME = /^persona-(voiceclip|voice-video)-(.+)$/i;
|
|
34
|
+
function personaSlug(name) {
|
|
35
|
+
return name.trim().toLowerCase().replace(/\s+/g, '-') || 'persona';
|
|
36
|
+
}
|
|
37
|
+
function personaRoleLabel(role) {
|
|
38
|
+
return role ? ROLE_LABELS[role] : 'reference';
|
|
39
|
+
}
|
|
40
|
+
function imageExtension(mimeType) {
|
|
41
|
+
if (mimeType === 'image/png')
|
|
42
|
+
return 'png';
|
|
43
|
+
if (mimeType === 'image/webp')
|
|
44
|
+
return 'webp';
|
|
45
|
+
return 'jpg';
|
|
46
|
+
}
|
|
47
|
+
function personaMainImageFilename(name) {
|
|
48
|
+
return `persona-${personaSlug(name)}.jpg`;
|
|
49
|
+
}
|
|
50
|
+
function personaViewFilename(name, role, mimeType) {
|
|
51
|
+
return `persona-${personaSlug(name)}.${role}.${imageExtension(mimeType)}`;
|
|
52
|
+
}
|
|
53
|
+
function personaVoiceFilename(name, role) {
|
|
54
|
+
return role === 'voice' ? `persona-voiceclip-${personaSlug(name)}` : `persona-voice-video-${personaSlug(name)}`;
|
|
55
|
+
}
|
|
56
|
+
function parsePersonaFilename(filename, kind) {
|
|
57
|
+
if (!filename)
|
|
58
|
+
return null;
|
|
59
|
+
if (kind === 'voice') {
|
|
60
|
+
const match = filename.match(PERSONA_VOICE_FILENAME);
|
|
61
|
+
if (!match)
|
|
62
|
+
return null;
|
|
63
|
+
return { kind, slug: match[2].trim().toLowerCase(), role: match[1].toLowerCase() === 'voiceclip' ? 'voice' : 'voice-video' };
|
|
64
|
+
}
|
|
65
|
+
const match = filename.match(PERSONA_IMAGE_FILENAME);
|
|
66
|
+
if (!match?.[1])
|
|
67
|
+
return null;
|
|
68
|
+
return {
|
|
69
|
+
kind,
|
|
70
|
+
slug: match[1].trim().toLowerCase(),
|
|
71
|
+
...(match[2] ? { role: match[2].toLowerCase() } : {}),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function isPersonaFile(file) {
|
|
75
|
+
return !!file.personaId || (file.filename?.startsWith('persona-') ?? false);
|
|
76
|
+
}
|
|
77
|
+
function isPersonaPrimaryImage(file) {
|
|
78
|
+
if (file.type !== 'image' || !isPersonaFile(file))
|
|
79
|
+
return false;
|
|
80
|
+
if (file.personaRole)
|
|
81
|
+
return file.personaPrimary === true;
|
|
82
|
+
return !parsePersonaFilename(file.filename, 'image')?.role;
|
|
83
|
+
}
|
|
84
|
+
function isPersonaExtraView(file) {
|
|
85
|
+
if (file.type !== 'image' || !isPersonaFile(file))
|
|
86
|
+
return false;
|
|
87
|
+
if (file.personaRole)
|
|
88
|
+
return file.personaPrimary !== true;
|
|
89
|
+
return !!parsePersonaFilename(file.filename, 'image')?.role;
|
|
90
|
+
}
|
|
91
|
+
function isPersonaVoiceFile(file) {
|
|
92
|
+
return file.type === 'audio' && isPersonaFile(file);
|
|
93
|
+
}
|
|
94
|
+
function mainImage(images) {
|
|
95
|
+
return images.find((image) => image.isIdentity)
|
|
96
|
+
?? images.find((image) => image.role === 'portrait')
|
|
97
|
+
?? images[0];
|
|
98
|
+
}
|
|
99
|
+
function toUpload(source, persona, filename, extra) {
|
|
100
|
+
const { role, kind, isIdentity: _isIdentity, ...payload } = source;
|
|
101
|
+
return {
|
|
102
|
+
...payload,
|
|
103
|
+
type: kind,
|
|
104
|
+
filename,
|
|
105
|
+
personaId: persona.id,
|
|
106
|
+
personaName: persona.name,
|
|
107
|
+
personaRole: role,
|
|
108
|
+
...extra,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function orderPersonaUploads(personas) {
|
|
112
|
+
const ordered = { primaries: [], extraViews: [], voices: [] };
|
|
113
|
+
for (const persona of personas) {
|
|
114
|
+
const images = persona.references.filter((ref) => ref.kind === 'image');
|
|
115
|
+
const main = mainImage(images);
|
|
116
|
+
if (main)
|
|
117
|
+
ordered.primaries.push(toUpload(main, persona, personaMainImageFilename(persona.name), { personaPrimary: true }));
|
|
118
|
+
for (const role of exports.PERSONA_VIEW_ROLES) {
|
|
119
|
+
const view = images.find((image) => image.role === role && image !== main);
|
|
120
|
+
if (view)
|
|
121
|
+
ordered.extraViews.push(toUpload(view, persona, personaViewFilename(persona.name, role, view.mimeType), {}));
|
|
122
|
+
}
|
|
123
|
+
for (const role of ['voice', 'voice-video']) {
|
|
124
|
+
const audio = persona.references.find((ref) => ref.kind === 'audio' && ref.role === role);
|
|
125
|
+
if (!audio)
|
|
126
|
+
continue;
|
|
127
|
+
ordered.voices.push(toUpload(audio, persona, personaVoiceFilename(persona.name, role), role === 'voice' && persona.voiceTranscript ? { voiceTranscript: persona.voiceTranscript } : {}));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return ordered;
|
|
131
|
+
}
|
|
132
|
+
function withPersonaUploads(uploads, personas, include = { images: true, voices: true }) {
|
|
133
|
+
const ordered = orderPersonaUploads(personas);
|
|
134
|
+
return [
|
|
135
|
+
...uploads.filter((file) => !isPersonaFile(file)),
|
|
136
|
+
...(include.images ? [...ordered.primaries, ...ordered.extraViews] : []),
|
|
137
|
+
...(include.voices ? ordered.voices : []),
|
|
138
|
+
];
|
|
139
|
+
}
|
|
140
|
+
function defaultReferenceImageOrdinals(imageUploads, room, excluded = new Set()) {
|
|
141
|
+
const entries = imageUploads
|
|
142
|
+
.map((file, ordinal) => ({ file, ordinal }))
|
|
143
|
+
.filter(({ ordinal }) => !excluded.has(ordinal));
|
|
144
|
+
const userCount = entries.filter(({ file }) => !isPersonaFile(file)).length;
|
|
145
|
+
const primaries = entries.filter(({ file }) => isPersonaPrimaryImage(file));
|
|
146
|
+
const queues = new Map();
|
|
147
|
+
for (const entry of entries) {
|
|
148
|
+
if (!isPersonaExtraView(entry.file))
|
|
149
|
+
continue;
|
|
150
|
+
const key = entry.file.personaId ?? entry.file.personaName ?? parsePersonaFilename(entry.file.filename, 'image')?.slug ?? '';
|
|
151
|
+
queues.set(key, [...(queues.get(key) ?? []), entry]);
|
|
152
|
+
}
|
|
153
|
+
const views = [];
|
|
154
|
+
const pending = [...queues.values()];
|
|
155
|
+
while (pending.some((queue) => queue.length > 0)) {
|
|
156
|
+
for (const queue of pending) {
|
|
157
|
+
const next = queue.shift();
|
|
158
|
+
if (next)
|
|
159
|
+
views.push(next);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const chosen = new Set([...primaries, ...views].slice(0, Math.max(0, room - userCount)).map(({ ordinal }) => ordinal));
|
|
163
|
+
return entries
|
|
164
|
+
.filter(({ file, ordinal }) => !isPersonaFile(file) || chosen.has(ordinal))
|
|
165
|
+
.map(({ ordinal }) => ordinal);
|
|
166
|
+
}
|
|
167
|
+
function findPersonaVoiceReference(uploads, personaName, purpose) {
|
|
168
|
+
const name = personaName?.trim().toLowerCase();
|
|
169
|
+
if (!name)
|
|
170
|
+
return null;
|
|
171
|
+
const slug = personaSlug(name);
|
|
172
|
+
const voices = uploads.filter((file) => isPersonaVoiceFile(file)
|
|
173
|
+
&& (file.personaName?.trim().toLowerCase() === name
|
|
174
|
+
|| parsePersonaFilename(file.filename, 'voice')?.slug === slug));
|
|
175
|
+
const isExcerpt = (file) => (file.personaRole ?? parsePersonaFilename(file.filename, 'voice')?.role) === 'voice-video';
|
|
176
|
+
return voices.find((file) => (purpose === 'video') === isExcerpt(file)) ?? voices[0] ?? null;
|
|
177
|
+
}
|
|
178
|
+
function preferFullPersonaRecording(clip, uploads) {
|
|
179
|
+
const role = clip.personaRole ?? parsePersonaFilename(clip.filename, 'voice')?.role;
|
|
180
|
+
if (role !== 'voice-video')
|
|
181
|
+
return clip;
|
|
182
|
+
const name = clip.personaName ?? parsePersonaFilename(clip.filename, 'voice')?.slug;
|
|
183
|
+
return findPersonaVoiceReference(uploads, name, 'speech') ?? clip;
|
|
184
|
+
}
|
|
185
|
+
function uploadIndexWithinType(uploads, file) {
|
|
186
|
+
const position = uploads.filter((candidate) => candidate.type === file.type).indexOf(file);
|
|
187
|
+
return position < 0 ? 0 : -(position + 1);
|
|
188
|
+
}
|
|
189
|
+
function describePersonaReferences(uploads) {
|
|
190
|
+
const byPersona = new Map();
|
|
191
|
+
for (const file of uploads) {
|
|
192
|
+
if (!isPersonaFile(file) || !file.personaName)
|
|
193
|
+
continue;
|
|
194
|
+
byPersona.set(file.personaName, [...(byPersona.get(file.personaName) ?? []), file]);
|
|
195
|
+
}
|
|
196
|
+
return [...byPersona.entries()].map(([name, files]) => `${name}: ${files.map((file) => {
|
|
197
|
+
const index = uploadIndexWithinType(uploads, file);
|
|
198
|
+
if (file.type === 'audio') {
|
|
199
|
+
const seconds = file.duration ? `, ${Math.round(file.duration)}s` : '';
|
|
200
|
+
const transcript = file.voiceTranscript ? ', transcript saved' : '';
|
|
201
|
+
return `${personaRoleLabel(file.personaRole)} audio ${index}${seconds}${transcript}`;
|
|
202
|
+
}
|
|
203
|
+
return `${file.personaPrimary ? 'main identity' : personaRoleLabel(file.personaRole)} image ${index}`;
|
|
204
|
+
}).join('; ')}`);
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=personaReferences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personaReferences.js","sourceRoot":"","sources":["../../src/media/personaReferences.ts"],"names":[],"mappings":";;;AAoEA,kCAEC;AAED,4CAEC;AASD,4DAEC;AAGD,kDAEC;AAGD,oDAEC;AASD,oDAcC;AAED,sCAEC;AAGD,sDAIC;AAGD,gDAIC;AAED,gDAEC;AAkED,kDAkBC;AAGD,gDAWC;AAYD,sEA4BC;AAOD,8DAaC;AAGD,gEAKC;AAYD,8DAeC;AAzSY,QAAA,kBAAkB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAoD,CAAC;AAErJ,MAAM,WAAW,GAAyC;IACxD,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,qBAAqB;IACjC,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,iBAAiB;IACxB,aAAa,EAAE,qBAAqB;CACrC,CAAC;AAiBF,MAAM,iBAAiB,GAAG,0BAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,mDAAmD,iBAAiB,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACxI,MAAM,sBAAsB,GAAG,yCAAyC,CAAC;AAEzE,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC;AACrE,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAsC;IACrE,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,QAA4B;IAClD,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,QAAQ,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,SAAgB,wBAAwB,CAAC,IAAY;IACnD,OAAO,WAAW,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5C,CAAC;AAGD,SAAgB,mBAAmB,CAAC,IAAY,EAAE,IAA0B,EAAE,QAAiB;IAC7F,OAAO,WAAW,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5E,CAAC;AAGD,SAAgB,oBAAoB,CAAC,IAAY,EAAE,IAAsB;IACvE,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;AAClH,CAAC;AASD,SAAgB,oBAAoB,CAAC,QAA4B,EAAE,IAAuB;IACxF,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC/H,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,IAA8D;IAC1F,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC;AAC9E,CAAC;AAGD,SAAgB,qBAAqB,CAAC,IAA8B;IAClE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IAC1D,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC;AAC7D,CAAC;AAGD,SAAgB,kBAAkB,CAAC,IAA8B;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IAC1D,OAAO,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC;AAC9D,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAA8B;IAC/D,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAsCD,SAAS,SAAS,CAAI,MAAgD;IACpE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;WAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;WACjD,MAAM,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CACf,MAAiC,EACjC,OAA+B,EAC/B,QAAgB,EAChB,KAA0D;IAE1D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;IACnE,OAAO;QACL,GAAI,OAAmD;QACvD,IAAI,EAAE,IAAI;QACV,QAAQ;QACR,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,WAAW,EAAE,IAAI;QACjB,GAAG,KAAK;KACT,CAAC;AACJ,CAAC;AAMD,SAAgB,mBAAmB,CAAI,QAA+C;IACpF,MAAM,OAAO,GAA6B,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,IAAI;YAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5H,KAAK,MAAM,IAAI,IAAI,0BAAkB,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;YAC3E,IAAI,IAAI;gBAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACzH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,aAAa,CAAU,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC1F,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EACnF,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,SAAgB,kBAAkB,CAChC,OAAqB,EACrB,QAA+C,EAC/C,UAAgD,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAE9E,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO;QACL,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAYD,SAAgB,6BAA6B,CAC3C,YAAiD,EACjD,IAAY,EACZ,WAAgC,IAAI,GAAG,EAAE;IAEzC,MAAM,OAAO,GAAG,YAAY;SACzB,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;SAC3C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAC7H,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACvH,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC1E,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAOD,SAAgB,yBAAyB,CACvC,OAAqB,EACrB,WAA+B,EAC/B,OAA2B;IAE3B,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;WAC3D,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI;eAC9C,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,CAAC,IAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,aAAa,CAAC;IAC1H,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/F,CAAC;AAGD,SAAgB,0BAA0B,CAAqC,IAAO,EAAE,OAAqB;IAC3G,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC;IACpF,IAAI,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC;IACpF,OAAO,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC;AACpE,CAAC;AAMD,SAAS,qBAAqB,CAAqC,OAAqB,EAAE,IAAO;IAC/F,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3F,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAGD,SAAgB,yBAAyB,CAAqC,OAAqB;IACjG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAe,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,SAAS;QACxD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpF,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,GAAG,OAAO,GAAG,UAAU,EAAE,CAAC;QACvF,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,EAAE,CAAC;IACxG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC"}
|
|
@@ -808,7 +808,7 @@ exports.VIDEO_GENERATION_SKILL = {
|
|
|
808
808
|
description: 'Text-to-video synthesis with LTX, Wan, Seedance, HappyHorse, and MiniMax H3, including Seedance 2.5 Uncensored, Seedance 2.0 Mini Uncensored and Wan 3.0 Enhanced through MuleRouter. Use when the user wants a new video clip generated from a prompt or loose reference set.',
|
|
809
809
|
toolNames: ['generate_video'],
|
|
810
810
|
constraints: [
|
|
811
|
-
'For My Personas video requests, default to image_editing first to produce a conditioned scene image before animation
|
|
811
|
+
'For My Personas video requests on MiniMax H3 reference-to-video, Seedance or Wan 3, pass the resolved persona reference images straight to generate_video as references, each clip with its own, and bind each persona to its images with the model\'s tokens. On other video models, default to image_editing first to produce a conditioned scene image before animation; use direct video only when the user explicitly asks to animate an existing persona image/reference or no source image is available for a voice-only request.',
|
|
812
812
|
'Seedance 2.5 Uncensored uses selector seedance2-5-uncensored (Sogni model id seedance-2-5-uncensored): the same modes, 480p/720p/1080p, 4-30 seconds at 24 fps, reference limits, MOV and last-frame options as seedance2-5. Use it only when the user asks for Seedance 2.5 Uncensored, Seedance Uncensored, or Seedance Spicy, and never swap it for seedance2-5. Each account must accept a one-time likeness and consent agreement in the Sogni app first; error 4103 means it has not, so tell the user to accept it there and do not retry.',
|
|
813
813
|
'Every regular Seedance model (seedance2-5, seedance2, seedance2-mini) takes photos and clips of real people once the account has accepted that same one-time likeness agreement, and never requires it otherwise. When one of them refuses an input because it may contain a real person, first offer the agreement (the user accepts it once in the Sogni app at the link the refusal names, e.g. https://app.sogni.ai/account/model-consents/seedance-2-5) and, after the user says they accepted it, retry the same request on the same model at its regular price; then offer the Uncensored model the refusal suggests, then MiniMax H3. When the context says the user has an active Sogni Unlimited plan, offer MiniMax H3 first instead (it is included with Unlimited), then the agreement and the same-model retry, then the Uncensored model.',
|
|
814
814
|
'Seedance 2.0 Mini Uncensored uses selector seedance2-mini-uncensored (Sogni model id seedance-2-0-mini-uncensored): the same modes, 480p/720p, 4-15 seconds at 24 fps and reference limits as seedance2-mini. Use it only when the user asks for Seedance 2.0 Mini Uncensored, Seedance Mini Uncensored, or Seedance Mini Spicy, and never swap it for seedance2-mini or seedance2-5-uncensored. It shares the Seedance 2.5 Uncensored likeness and consent agreement, so error 4103 means the account has not accepted it: tell the user to accept it in the Sogni app and do not retry.',
|