@nodaro/prompts 1.51.0 → 1.52.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 CHANGED
@@ -10,7 +10,7 @@ require('./chunk-4GKTOVFM.cjs');
10
10
  var chunkXUZXBY75_cjs = require('./chunk-XUZXBY75.cjs');
11
11
  var chunkUXDKZVNN_cjs = require('./chunk-UXDKZVNN.cjs');
12
12
  var chunkSZU4MZ36_cjs = require('./chunk-SZU4MZ36.cjs');
13
- var chunkRPGJTLLF_cjs = require('./chunk-RPGJTLLF.cjs');
13
+ var chunkXRCK3BCF_cjs = require('./chunk-XRCK3BCF.cjs');
14
14
  var chunkNAFD6MGH_cjs = require('./chunk-NAFD6MGH.cjs');
15
15
  var chunk2NJTFCKQ_cjs = require('./chunk-2NJTFCKQ.cjs');
16
16
  require('./chunk-TUHVGM6V.cjs');
@@ -574,183 +574,183 @@ Object.defineProperty(exports, "computePackSidecarCoverage", {
574
574
  });
575
575
  Object.defineProperty(exports, "AD_CREATIVE_ANALYSIS_FIELDS", {
576
576
  enumerable: true,
577
- get: function () { return chunkRPGJTLLF_cjs.AD_CREATIVE_ANALYSIS_FIELDS; }
577
+ get: function () { return chunkXRCK3BCF_cjs.AD_CREATIVE_ANALYSIS_FIELDS; }
578
578
  });
579
579
  Object.defineProperty(exports, "AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT", {
580
580
  enumerable: true,
581
- get: function () { return chunkRPGJTLLF_cjs.AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT; }
581
+ get: function () { return chunkXRCK3BCF_cjs.AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT; }
582
582
  });
583
583
  Object.defineProperty(exports, "AUDIO_WIZARD_CATEGORIES", {
584
584
  enumerable: true,
585
- get: function () { return chunkRPGJTLLF_cjs.AUDIO_WIZARD_CATEGORIES; }
585
+ get: function () { return chunkXRCK3BCF_cjs.AUDIO_WIZARD_CATEGORIES; }
586
586
  });
587
587
  Object.defineProperty(exports, "DEFAULT_OWN_MOTION", {
588
588
  enumerable: true,
589
- get: function () { return chunkRPGJTLLF_cjs.DEFAULT_OWN_MOTION; }
589
+ get: function () { return chunkXRCK3BCF_cjs.DEFAULT_OWN_MOTION; }
590
590
  });
591
591
  Object.defineProperty(exports, "IMAGE_REFERENCE_PROMPT_DOCTRINE", {
592
592
  enumerable: true,
593
- get: function () { return chunkRPGJTLLF_cjs.IMAGE_REFERENCE_PROMPT_DOCTRINE; }
593
+ get: function () { return chunkXRCK3BCF_cjs.IMAGE_REFERENCE_PROMPT_DOCTRINE; }
594
594
  });
595
595
  Object.defineProperty(exports, "IMAGE_WIZARD_CATEGORIES", {
596
596
  enumerable: true,
597
- get: function () { return chunkRPGJTLLF_cjs.IMAGE_WIZARD_CATEGORIES; }
597
+ get: function () { return chunkXRCK3BCF_cjs.IMAGE_WIZARD_CATEGORIES; }
598
598
  });
599
599
  Object.defineProperty(exports, "LLM_CHAT_WIZARD_CATEGORIES", {
600
600
  enumerable: true,
601
- get: function () { return chunkRPGJTLLF_cjs.LLM_CHAT_WIZARD_CATEGORIES; }
601
+ get: function () { return chunkXRCK3BCF_cjs.LLM_CHAT_WIZARD_CATEGORIES; }
602
602
  });
603
603
  Object.defineProperty(exports, "MUSIC_WIZARD_CATEGORIES", {
604
604
  enumerable: true,
605
- get: function () { return chunkRPGJTLLF_cjs.MUSIC_WIZARD_CATEGORIES; }
605
+ get: function () { return chunkXRCK3BCF_cjs.MUSIC_WIZARD_CATEGORIES; }
606
606
  });
607
607
  Object.defineProperty(exports, "OWN_MOTION_NODE_TYPES", {
608
608
  enumerable: true,
609
- get: function () { return chunkRPGJTLLF_cjs.OWN_MOTION_NODE_TYPES; }
609
+ get: function () { return chunkXRCK3BCF_cjs.OWN_MOTION_NODE_TYPES; }
610
610
  });
611
611
  Object.defineProperty(exports, "POST_CONTENT_ANALYSIS_SYSTEM_PROMPT", {
612
612
  enumerable: true,
613
- get: function () { return chunkRPGJTLLF_cjs.POST_CONTENT_ANALYSIS_SYSTEM_PROMPT; }
613
+ get: function () { return chunkXRCK3BCF_cjs.POST_CONTENT_ANALYSIS_SYSTEM_PROMPT; }
614
614
  });
615
615
  Object.defineProperty(exports, "PROVIDER_CAPABILITIES", {
616
616
  enumerable: true,
617
- get: function () { return chunkRPGJTLLF_cjs.PROVIDER_CAPABILITIES; }
617
+ get: function () { return chunkXRCK3BCF_cjs.PROVIDER_CAPABILITIES; }
618
618
  });
619
619
  Object.defineProperty(exports, "PROVIDER_PROMPT_DOCTRINES", {
620
620
  enumerable: true,
621
- get: function () { return chunkRPGJTLLF_cjs.PROVIDER_PROMPT_DOCTRINES; }
621
+ get: function () { return chunkXRCK3BCF_cjs.PROVIDER_PROMPT_DOCTRINES; }
622
622
  });
623
623
  Object.defineProperty(exports, "REFERENCE_IMAGE_ROLES", {
624
624
  enumerable: true,
625
- get: function () { return chunkRPGJTLLF_cjs.REFERENCE_IMAGE_ROLES; }
625
+ get: function () { return chunkXRCK3BCF_cjs.REFERENCE_IMAGE_ROLES; }
626
626
  });
627
627
  Object.defineProperty(exports, "SCENE3D_FIGURE_REFERENCE_RULE", {
628
628
  enumerable: true,
629
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_FIGURE_REFERENCE_RULE; }
629
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_FIGURE_REFERENCE_RULE; }
630
630
  });
631
631
  Object.defineProperty(exports, "SCENE3D_FREE_PLATE_SLOTS", {
632
632
  enumerable: true,
633
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_FREE_PLATE_SLOTS; }
633
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_FREE_PLATE_SLOTS; }
634
634
  });
635
635
  Object.defineProperty(exports, "SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE", {
636
636
  enumerable: true,
637
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE; }
637
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE; }
638
638
  });
639
639
  Object.defineProperty(exports, "SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE", {
640
640
  enumerable: true,
641
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE; }
641
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE; }
642
642
  });
643
643
  Object.defineProperty(exports, "SCENE3D_LAYOUT_SCOPING_FOR", {
644
644
  enumerable: true,
645
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_LAYOUT_SCOPING_FOR; }
645
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_LAYOUT_SCOPING_FOR; }
646
646
  });
647
647
  Object.defineProperty(exports, "SCENE3D_LAYOUT_SCOPING_IGNORE", {
648
648
  enumerable: true,
649
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_LAYOUT_SCOPING_IGNORE; }
649
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_LAYOUT_SCOPING_IGNORE; }
650
650
  });
651
651
  Object.defineProperty(exports, "SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE", {
652
652
  enumerable: true,
653
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE; }
653
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE; }
654
654
  });
655
655
  Object.defineProperty(exports, "SCENE3D_LAYOUT_SCOPING_MARKER", {
656
656
  enumerable: true,
657
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_LAYOUT_SCOPING_MARKER; }
657
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_LAYOUT_SCOPING_MARKER; }
658
658
  });
659
659
  Object.defineProperty(exports, "SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE", {
660
660
  enumerable: true,
661
- get: function () { return chunkRPGJTLLF_cjs.SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE; }
661
+ get: function () { return chunkXRCK3BCF_cjs.SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE; }
662
662
  });
663
663
  Object.defineProperty(exports, "TEXT_WIZARD_CATEGORIES", {
664
664
  enumerable: true,
665
- get: function () { return chunkRPGJTLLF_cjs.TEXT_WIZARD_CATEGORIES; }
665
+ get: function () { return chunkXRCK3BCF_cjs.TEXT_WIZARD_CATEGORIES; }
666
666
  });
667
667
  Object.defineProperty(exports, "VIDEO_WIZARD_CATEGORIES", {
668
668
  enumerable: true,
669
- get: function () { return chunkRPGJTLLF_cjs.VIDEO_WIZARD_CATEGORIES; }
669
+ get: function () { return chunkXRCK3BCF_cjs.VIDEO_WIZARD_CATEGORIES; }
670
670
  });
671
671
  Object.defineProperty(exports, "appendScene3DStillScopingLines", {
672
672
  enumerable: true,
673
- get: function () { return chunkRPGJTLLF_cjs.appendScene3DStillScopingLines; }
673
+ get: function () { return chunkXRCK3BCF_cjs.appendScene3DStillScopingLines; }
674
674
  });
675
675
  Object.defineProperty(exports, "buildAdCreativeAnalysisUserText", {
676
676
  enumerable: true,
677
- get: function () { return chunkRPGJTLLF_cjs.buildAdCreativeAnalysisUserText; }
677
+ get: function () { return chunkXRCK3BCF_cjs.buildAdCreativeAnalysisUserText; }
678
678
  });
679
679
  Object.defineProperty(exports, "buildCharacterPrompt", {
680
680
  enumerable: true,
681
- get: function () { return chunkRPGJTLLF_cjs.buildCharacterPrompt; }
681
+ get: function () { return chunkXRCK3BCF_cjs.buildCharacterPrompt; }
682
682
  });
683
683
  Object.defineProperty(exports, "buildCreaturePrompt", {
684
684
  enumerable: true,
685
- get: function () { return chunkRPGJTLLF_cjs.buildCreaturePrompt; }
685
+ get: function () { return chunkXRCK3BCF_cjs.buildCreaturePrompt; }
686
686
  });
687
687
  Object.defineProperty(exports, "buildFaceTemplateInputs", {
688
688
  enumerable: true,
689
- get: function () { return chunkRPGJTLLF_cjs.buildFaceTemplateInputs; }
689
+ get: function () { return chunkXRCK3BCF_cjs.buildFaceTemplateInputs; }
690
690
  });
691
691
  Object.defineProperty(exports, "buildLocationMotionPrompt", {
692
692
  enumerable: true,
693
- get: function () { return chunkRPGJTLLF_cjs.buildLocationMotionPrompt; }
693
+ get: function () { return chunkXRCK3BCF_cjs.buildLocationMotionPrompt; }
694
694
  });
695
695
  Object.defineProperty(exports, "buildLocationPrompt", {
696
696
  enumerable: true,
697
- get: function () { return chunkRPGJTLLF_cjs.buildLocationPrompt; }
697
+ get: function () { return chunkXRCK3BCF_cjs.buildLocationPrompt; }
698
698
  });
699
699
  Object.defineProperty(exports, "buildLocationRefinePrompt", {
700
700
  enumerable: true,
701
- get: function () { return chunkRPGJTLLF_cjs.buildLocationRefinePrompt; }
701
+ get: function () { return chunkXRCK3BCF_cjs.buildLocationRefinePrompt; }
702
702
  });
703
703
  Object.defineProperty(exports, "buildMotionPrompt", {
704
704
  enumerable: true,
705
- get: function () { return chunkRPGJTLLF_cjs.buildMotionPrompt; }
705
+ get: function () { return chunkXRCK3BCF_cjs.buildMotionPrompt; }
706
706
  });
707
707
  Object.defineProperty(exports, "buildObjectMotionPrompt", {
708
708
  enumerable: true,
709
- get: function () { return chunkRPGJTLLF_cjs.buildObjectMotionPrompt; }
709
+ get: function () { return chunkXRCK3BCF_cjs.buildObjectMotionPrompt; }
710
710
  });
711
711
  Object.defineProperty(exports, "buildObjectPrompt", {
712
712
  enumerable: true,
713
- get: function () { return chunkRPGJTLLF_cjs.buildObjectPrompt; }
713
+ get: function () { return chunkXRCK3BCF_cjs.buildObjectPrompt; }
714
714
  });
715
715
  Object.defineProperty(exports, "buildScene3DLayoutScopingLine", {
716
716
  enumerable: true,
717
- get: function () { return chunkRPGJTLLF_cjs.buildScene3DLayoutScopingLine; }
717
+ get: function () { return chunkXRCK3BCF_cjs.buildScene3DLayoutScopingLine; }
718
718
  });
719
719
  Object.defineProperty(exports, "buildScene3DUnreferencedFiguresWarning", {
720
720
  enumerable: true,
721
- get: function () { return chunkRPGJTLLF_cjs.buildScene3DUnreferencedFiguresWarning; }
721
+ get: function () { return chunkXRCK3BCF_cjs.buildScene3DUnreferencedFiguresWarning; }
722
722
  });
723
723
  Object.defineProperty(exports, "getCategoriesForNodeType", {
724
724
  enumerable: true,
725
- get: function () { return chunkRPGJTLLF_cjs.getCategoriesForNodeType; }
725
+ get: function () { return chunkXRCK3BCF_cjs.getCategoriesForNodeType; }
726
726
  });
727
727
  Object.defineProperty(exports, "getPromptDoctrine", {
728
728
  enumerable: true,
729
- get: function () { return chunkRPGJTLLF_cjs.getPromptDoctrine; }
729
+ get: function () { return chunkXRCK3BCF_cjs.getPromptDoctrine; }
730
730
  });
731
731
  Object.defineProperty(exports, "getPromptTips", {
732
732
  enumerable: true,
733
- get: function () { return chunkRPGJTLLF_cjs.getPromptTips; }
733
+ get: function () { return chunkXRCK3BCF_cjs.getPromptTips; }
734
734
  });
735
735
  Object.defineProperty(exports, "hasScene3DLayoutScopingLine", {
736
736
  enumerable: true,
737
- get: function () { return chunkRPGJTLLF_cjs.hasScene3DLayoutScopingLine; }
737
+ get: function () { return chunkXRCK3BCF_cjs.hasScene3DLayoutScopingLine; }
738
738
  });
739
739
  Object.defineProperty(exports, "isWizardSupported", {
740
740
  enumerable: true,
741
- get: function () { return chunkRPGJTLLF_cjs.isWizardSupported; }
741
+ get: function () { return chunkXRCK3BCF_cjs.isWizardSupported; }
742
742
  });
743
743
  Object.defineProperty(exports, "ownMotionHint", {
744
744
  enumerable: true,
745
- get: function () { return chunkRPGJTLLF_cjs.ownMotionHint; }
745
+ get: function () { return chunkXRCK3BCF_cjs.ownMotionHint; }
746
746
  });
747
747
  Object.defineProperty(exports, "renderScene3DLayoutScopingLine", {
748
748
  enumerable: true,
749
- get: function () { return chunkRPGJTLLF_cjs.renderScene3DLayoutScopingLine; }
749
+ get: function () { return chunkXRCK3BCF_cjs.renderScene3DLayoutScopingLine; }
750
750
  });
751
751
  Object.defineProperty(exports, "scene3DLayoutVideoCaptions", {
752
752
  enumerable: true,
753
- get: function () { return chunkRPGJTLLF_cjs.scene3DLayoutVideoCaptions; }
753
+ get: function () { return chunkXRCK3BCF_cjs.scene3DLayoutVideoCaptions; }
754
754
  });
755
755
  Object.defineProperty(exports, "CINEMATIC_LOOK_TAIL", {
756
756
  enumerable: true,
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ import './chunk-GILUVQQJ.js';
8
8
  export { keepableDirectionHints } from './chunk-JZOPMVGY.js';
9
9
  export { PROMPT_HINT_SEPARATOR, joinPromptHints } from './chunk-35UHMDGS.js';
10
10
  export { computePackSidecarCoverage } from './chunk-FDOG7BNB.js';
11
- export { AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AUDIO_WIZARD_CATEGORIES, DEFAULT_OWN_MOTION, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, LLM_CHAT_WIZARD_CATEGORIES, MUSIC_WIZARD_CATEGORIES, OWN_MOTION_NODE_TYPES, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, TEXT_WIZARD_CATEGORIES, VIDEO_WIZARD_CATEGORIES, appendScene3DStillScopingLines, buildAdCreativeAnalysisUserText, buildCharacterPrompt, buildCreaturePrompt, buildFaceTemplateInputs, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMotionPrompt, buildObjectMotionPrompt, buildObjectPrompt, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, getCategoriesForNodeType, getPromptDoctrine, getPromptTips, hasScene3DLayoutScopingLine, isWizardSupported, ownMotionHint, renderScene3DLayoutScopingLine, scene3DLayoutVideoCaptions } from './chunk-T4TZY5ST.js';
11
+ export { AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AUDIO_WIZARD_CATEGORIES, DEFAULT_OWN_MOTION, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, LLM_CHAT_WIZARD_CATEGORIES, MUSIC_WIZARD_CATEGORIES, OWN_MOTION_NODE_TYPES, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, TEXT_WIZARD_CATEGORIES, VIDEO_WIZARD_CATEGORIES, appendScene3DStillScopingLines, buildAdCreativeAnalysisUserText, buildCharacterPrompt, buildCreaturePrompt, buildFaceTemplateInputs, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMotionPrompt, buildObjectMotionPrompt, buildObjectPrompt, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, getCategoriesForNodeType, getPromptDoctrine, getPromptTips, hasScene3DLayoutScopingLine, isWizardSupported, ownMotionHint, renderScene3DLayoutScopingLine, scene3DLayoutVideoCaptions } from './chunk-PHCYQWJP.js';
12
12
  export { CINEMATIC_LOOK_TAIL, FILM_STILL_PREFIX, NEUTRAL_PERSON, REALISM_FINISH, REALISM_PASS_INSTRUCTION, REALISM_SKIN, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, SCENE_FRAME_RULE, filmStillPrefix, realismEmptyHands, realismViewpoint, referenceRulesBlock } from './chunk-T64D26P4.js';
13
13
  export { DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, applyTemplate, buildIdentityLockLine, characterLockToRefLock, collectIdentityLockClause, getIdentityLockClause, hasUpstreamCharacter, resolveTemplate, toIdentityLockMode, withForcedIdentityLock } from './chunk-BQWIPLLR.js';
14
14
  import './chunk-ADMHDFHB.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodaro/prompts",
3
- "version": "1.51.0",
3
+ "version": "1.52.0",
4
4
  "description": "Nodaro's prompt-engineering layer — person/picker catalogs with prompt hints, identity-lock clauses, entity prompt builders, brand presets, and prompt/reference assembly shared by the Nodaro platform and SDK.",
5
5
  "type": "module",
6
6
  "license": "FSL-1.1-Apache-2.0",
@@ -70,7 +70,7 @@
70
70
  "test": "vitest run"
71
71
  },
72
72
  "dependencies": {
73
- "@nodaro/shared": "^3.56.0"
73
+ "@nodaro/shared": "^3.57.0"
74
74
  },
75
75
  "devDependencies": {
76
76
  "tsup": "^8.5.0",
@@ -273,6 +273,7 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
273
273
  "ltx-2.3-fast": "Lightricks LTX 2.3 Fast — text/image→video, 6–20s, up to 4K",
274
274
  "gemini-omni-video": "Google Gemini Omni — multimodal video with native audio, 4–10s, up to 4K.",
275
275
  "gemini-omni-flash": "Google Gemini Omni Flash — faster, cheaper Omni tier; multimodal video with native audio, 4–10s, up to 4K.",
276
+ "gemini-omni-flash-1-2": "Google Gemini Omni Flash 1.2 — video with native audio, 3–15s, 360p to 4K; text, up to 6 reference images, exact first and last frames, or a video edit.",
276
277
  "wan-3": "Wan 3.0 — multimodal refs (10 images / 5 videos / 5 audio) or first+last frame, native audio, 2–30s, 480p/720p/1080p",
277
278
  "wan-3-prime": "Wan 3.0 Prime — high-speed Wan 3.0 tier; same surface, faster turnaround at a higher rate",
278
279
  "vidu-q4": "Vidu Q4 — start frame or up to 15 reference images + 3 MP3 audio refs, native audio, 3–16s, 540p–4K (image required)",
@@ -311,6 +312,7 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
311
312
  "ltx-2.3-fast": "Lightricks LTX 2.3 Fast — start/end frame i2v, 6–20s, up to 4K",
312
313
  "gemini-omni-video": "Google Gemini Omni — multimodal video with native audio, 4–10s, up to 4K.",
313
314
  "gemini-omni-flash": "Google Gemini Omni Flash — faster, cheaper Omni tier; multimodal video with native audio, 4–10s, up to 4K.",
315
+ "gemini-omni-flash-1-2": "Google Gemini Omni Flash 1.2 — video with native audio, 3–15s, 360p to 4K; text, up to 6 reference images, exact first and last frames, or a video edit.",
314
316
  "wan-3": "Wan 3.0 — multimodal refs (10 images / 5 videos / 5 audio) or first+last frame, native audio, 2–30s, 480p/720p/1080p",
315
317
  "wan-3-prime": "Wan 3.0 Prime — high-speed Wan 3.0 tier; same surface, faster turnaround at a higher rate",
316
318
  "vidu-q4": "Vidu Q4 — animate a start frame, or direct up to 15 reference images + 3 MP3 audio refs; native audio, 3–16s, 540p–4K",
@@ -268,6 +268,34 @@ Source: KIE gemini-omni-video market contract (parameters + live behavior probed
268
268
  aspect-ratio hard-reject, see providers/kie/video.ts). Captured 2026-08-09.`,
269
269
  }
270
270
 
271
+ const GEMINI_OMNI_12_DOCTRINE: ProviderPromptDoctrine = {
272
+ providers: ["gemini-omni-flash-1-2"],
273
+ heading: "Gemini Omni Flash 1.2 (gemini-omni-flash-1-2)",
274
+ tips: [
275
+ "Google video with native sound: text-to-video, frames, reference images and video-edit through one prompt surface. Every second from 3 to 15; 360p, 720p, 1080p or 4K.",
276
+ "Structure like the platform default: subject → action → scene → lighting → camera → style. Quote dialogue lines to have them spoken; describe SFX and ambience plainly.",
277
+ "Only a start frame (and an end frame) wired: they are sent as exact first and last frames. With reference images wired too, frames join the image list after your references and are named in the prompt.",
278
+ "Up to 6 reference images: bind them by ordinal ('the woman from @image_1'). No character or voice references on this model. Video-edit: describe the change; the output follows the source clip, up to 15s.",
279
+ ],
280
+ doctrine: `Prompt structure (no public Google prompt guide exists for this endpoint — the API
281
+ contract is the doctrine source):
282
+ subject → action → scene/environment → lighting → camera movement → style → constraints.
283
+
284
+ **Modes (picked from the wired inputs)**
285
+ - Nothing visual → text-to-video.
286
+ - Start frame alone, or start + end frame → exact frames. First + last holds up to 10s; past that the two frames go by the reference route below.
287
+ - Reference images wired → your images come FIRST, in your order (\`@image_1\`, \`@image_2\`, …), up to 6. A wired start or end frame is appended after them and the platform names it in the prompt as the opening or closing frame.
288
+ - Source video wired → video-edit: describe the CHANGE, not a full re-description. The output follows the source clip, which is cut to 15s at most. Up to 5 images may ride beside it.
289
+
290
+ **Audio (native)**
291
+ - Audio is generated with the clip. Quote dialogue to have it spoken; describe SFX and ambience plainly. State exclusions ("no music") or a bed may be invented.
292
+
293
+ **Duration & tiers**
294
+ - Any whole second from 3 to 15. 360p is for drafts; 720p and 1080p are close in price; 4K only when the deliverable needs it.
295
+
296
+ Source: KIE google/gemini-omni-flash-1-2 market contract. Captured 2026-11-09.`,
297
+ }
298
+
271
299
  const GROK_IMAGINE_DOCTRINE: ProviderPromptDoctrine = {
272
300
  providers: ["grok-i2v", "grok-imagine-video-1.5"],
273
301
  heading: "Grok Imagine (grok-i2v, grok-imagine-video-1.5)",
@@ -521,6 +549,7 @@ export const PROVIDER_PROMPT_DOCTRINES: readonly ProviderPromptDoctrine[] = [
521
549
  MINIMAX_H3_DOCTRINE,
522
550
  VEO_31_DOCTRINE,
523
551
  GEMINI_OMNI_DOCTRINE,
552
+ GEMINI_OMNI_12_DOCTRINE,
524
553
  GROK_IMAGINE_DOCTRINE,
525
554
  WAN_DOCTRINE,
526
555
  WAN_3_DOCTRINE,