ugcinc 3.2.3 → 3.4.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.
@@ -483,6 +483,60 @@ function getAllNodes() {
483
483
  ],
484
484
  outputs: [],
485
485
  },
486
+ // === Control Flow ===
487
+ {
488
+ type: "for-each",
489
+ label: "For Each",
490
+ description: "Iterate over an array, executing downstream nodes for each item",
491
+ category: "Control Flow",
492
+ nodeCategory: "generator",
493
+ inputs: [
494
+ {
495
+ id: "array",
496
+ type: "object",
497
+ required: true,
498
+ },
499
+ ],
500
+ outputs: [
501
+ {
502
+ id: "item",
503
+ type: "object",
504
+ required: true,
505
+ },
506
+ {
507
+ id: "index",
508
+ type: "text",
509
+ required: false,
510
+ },
511
+ ],
512
+ },
513
+ // === Transcript ===
514
+ {
515
+ type: "transcript",
516
+ label: "Transcribe",
517
+ description: "Transcribe video or audio with timestamps",
518
+ category: "AI Generation",
519
+ nodeCategory: "generator",
520
+ inputs: [
521
+ {
522
+ id: "media",
523
+ type: ["video", "audio"],
524
+ required: true,
525
+ },
526
+ ],
527
+ outputs: [
528
+ {
529
+ id: "text",
530
+ type: "text",
531
+ required: true,
532
+ },
533
+ {
534
+ id: "segments",
535
+ type: "object",
536
+ required: true,
537
+ },
538
+ ],
539
+ },
486
540
  ];
487
541
  }
488
542
  /**
package/dist/types.d.ts CHANGED
@@ -790,7 +790,7 @@ export interface NodeOutputValues {
790
790
  }
791
791
  export interface NodePort {
792
792
  id: string;
793
- type: MediaType | MediaType[];
793
+ type: PortType | PortType[];
794
794
  required: boolean;
795
795
  }
796
796
  /**
@@ -824,7 +824,7 @@ export interface NodeControlConfig {
824
824
  */
825
825
  isInitializer?: boolean;
826
826
  }
827
- export type NodeTypeEnum = 'image' | 'video' | 'audio' | 'social-audio' | 'text' | 'media' | 'video-import' | 'image-template' | 'video-template' | 'image-generation' | 'video-generation' | 'custom-model' | 'text-generation' | 'output' | 'manual-trigger' | 'recurrence' | 'sub-agent' | 'account' | 'post-video' | 'post-slideshow' | 'save-to-media' | 'deduplicate';
827
+ export type NodeTypeEnum = 'image' | 'video' | 'audio' | 'social-audio' | 'text' | 'media' | 'video-import' | 'image-template' | 'video-template' | 'image-generation' | 'video-generation' | 'custom-model' | 'text-generation' | 'output' | 'manual-trigger' | 'recurrence' | 'sub-agent' | 'account' | 'post-video' | 'post-slideshow' | 'save-to-media' | 'deduplicate' | 'for-each' | 'transcript';
828
828
  export interface OutputSchemaProperty {
829
829
  type: 'string' | 'number' | 'boolean' | 'array' | 'object';
830
830
  items?: 'string' | 'number' | 'boolean';
@@ -840,8 +840,16 @@ export interface LLMOutputField {
840
840
  description?: string;
841
841
  /** Output type */
842
842
  type: 'string' | 'number' | 'boolean' | 'array';
843
- /** For array types - the item type */
844
- items?: 'string' | 'number' | 'boolean';
843
+ /** For array types - the item type (including 'object' for arrays of objects) */
844
+ items?: 'string' | 'number' | 'boolean' | 'object';
845
+ /** For array of objects - nested field definitions (max 2 levels of nesting) */
846
+ objectSchema?: LLMOutputField[];
847
+ /** Exact array length constraint */
848
+ length?: number;
849
+ /** Minimum array length constraint */
850
+ minLength?: number;
851
+ /** Maximum array length constraint */
852
+ maxLength?: number;
845
853
  }
846
854
  /**
847
855
  * API Keys configuration for LLM providers (user can bring their own)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugcinc",
3
- "version": "3.2.3",
3
+ "version": "3.4.0",
4
4
  "description": "TypeScript/JavaScript client for the UGC Inc API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",