@gptmarket/temporal-types 0.0.28 → 0.0.30

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gptmarket/temporal-types",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "description": "TypeScript types and workflow registry for GPTMarket Temporal workflows",
5
5
  "main": "index.ts",
6
6
  "types": "index.ts",
package/registry.ts CHANGED
@@ -60,6 +60,82 @@ export interface WorkflowDefinition<TInput = unknown, TOutput = unknown> {
60
60
  // Workflow Definitions
61
61
  // =============================================================================
62
62
 
63
+ export const inspirations_pinterest: WorkflowDefinition<
64
+ Types.InspirationsPinterestInput,
65
+ Types.InspirationsPinterestOutput
66
+ > = {
67
+ id: "inspirations_pinterest",
68
+ name: "Inspirations Pinterest",
69
+ description: "Pinterest Inspiration Image Finder.",
70
+ workflowClass: "InspirationsPinterestWorkflow",
71
+ inputType: "InspirationsPinterestInput",
72
+ outputType: "InspirationsPinterestOutput",
73
+ fields: [
74
+ {
75
+ name: "secret_key",
76
+ type: "text",
77
+ label: "Secret Key",
78
+ description:
79
+ "Secret key for authentication (required when WORKFLOW_SECRET_ENABLED=True)",
80
+ required: false,
81
+ default: null,
82
+ },
83
+ {
84
+ name: "rewrite_enabled",
85
+ type: "checkbox",
86
+ label: "Rewrite Enabled",
87
+ description:
88
+ "Make your content appear as fresh, original uploads. Bypasses duplicate detection and AI content filters on social platforms.",
89
+ required: false,
90
+ default: false,
91
+ },
92
+ {
93
+ name: "rewrite_device",
94
+ type: "select",
95
+ label: "Rewrite Device",
96
+ description:
97
+ "Make media appear as if created on this device. Adds authenticity and helps bypass platform detection. Random device if not specified.",
98
+ required: false,
99
+ default: null,
100
+ options: [
101
+ { value: "iPhone 17 Pro Max", label: "Iphone 17 Pro Max" },
102
+ { value: "iPhone 17 Pro", label: "Iphone 17 Pro" },
103
+ { value: "iPhone 17 Plus", label: "Iphone 17 Plus" },
104
+ { value: "iPhone 17", label: "Iphone 17" },
105
+ { value: "iPhone 16 Pro Max", label: "Iphone 16 Pro Max" },
106
+ { value: "iPhone 16 Pro", label: "Iphone 16 Pro" },
107
+ { value: "iPhone 16 Plus", label: "Iphone 16 Plus" },
108
+ { value: "iPhone 16", label: "Iphone 16" },
109
+ { value: "iPhone 15 Pro Max", label: "Iphone 15 Pro Max" },
110
+ { value: "iPhone 15 Pro", label: "Iphone 15 Pro" },
111
+ { value: "iPhone 15 Plus", label: "Iphone 15 Plus" },
112
+ { value: "iPhone 15", label: "Iphone 15" },
113
+ { value: "iPhone 14 Pro Max", label: "Iphone 14 Pro Max" },
114
+ { value: "iPhone 14 Pro", label: "Iphone 14 Pro" },
115
+ { value: "iPhone 14 Plus", label: "Iphone 14 Plus" },
116
+ { value: "iPhone 14", label: "Iphone 14" },
117
+ { value: "iPhone 13 Pro Max", label: "Iphone 13 Pro Max" },
118
+ { value: "iPhone 13 Pro", label: "Iphone 13 Pro" },
119
+ { value: "iPhone 13", label: "Iphone 13" },
120
+ { value: "iPhone 13 mini", label: "Iphone 13 Mini" },
121
+ {
122
+ value: "Ray-Ban Meta Smart Glasses",
123
+ label: "Ray-Ban Meta Smart Glasses",
124
+ },
125
+ ],
126
+ },
127
+ {
128
+ name: "prompt",
129
+ type: "textarea",
130
+ label: "Prompt",
131
+ description:
132
+ 'What kind of inspiration the user wants (e.g., "landing page design")',
133
+ required: true,
134
+ default: null,
135
+ },
136
+ ],
137
+ };
138
+
63
139
  export const ruby: WorkflowDefinition<Types.RubyInput, Types.RubyOutput> = {
64
140
  id: "ruby",
65
141
  name: "Ruby",
@@ -472,6 +548,39 @@ export const saa_s_loom: WorkflowDefinition<
472
548
  { value: "30", label: "30" },
473
549
  ],
474
550
  },
551
+ {
552
+ name: "product_name",
553
+ type: "text",
554
+ label: "Product Name",
555
+ description:
556
+ 'Name of the product/SaaS being promoted (e.g., "TopYappers")',
557
+ required: false,
558
+ default: null,
559
+ },
560
+ {
561
+ name: "product_url",
562
+ type: "text",
563
+ label: "Product Url",
564
+ description: 'URL of the product website (e.g., "topyappers.com")',
565
+ required: false,
566
+ default: null,
567
+ },
568
+ {
569
+ name: "product_tagline",
570
+ type: "text",
571
+ label: "Product Tagline",
572
+ description: "Product tagline or value proposition",
573
+ required: false,
574
+ default: null,
575
+ },
576
+ {
577
+ name: "company_name",
578
+ type: "text",
579
+ label: "Company Name",
580
+ description: "Company name if different from product name",
581
+ required: false,
582
+ default: null,
583
+ },
475
584
  {
476
585
  name: "include_talking_head",
477
586
  type: "checkbox",
@@ -550,9 +659,9 @@ export const saa_s_loom: WorkflowDefinition<
550
659
  name: "voice_id",
551
660
  type: "text",
552
661
  label: "Voice Id",
553
- description: "ElevenLabs voice ID",
662
+ description: "ElevenLabs voice ID (default: Rachel - US female)",
554
663
  required: false,
555
- default: "JBFqnCBsd6RMkjVDRZzb",
664
+ default: "21m00Tcm4TlvDq8ikWAM",
556
665
  },
557
666
  {
558
667
  name: "voice_stability",
@@ -624,18 +733,31 @@ export const saa_s_loom: WorkflowDefinition<
624
733
  name: "video_model",
625
734
  type: "text",
626
735
  label: "Video Model",
627
- description: "Video model for talking head/broll",
736
+ description: "Video model for b-roll generation",
628
737
  required: false,
629
- default: "kling-v2.6",
738
+ default: "seedance-1.5-pro",
630
739
  hidden: true,
631
740
  },
632
741
  {
633
742
  name: "llm_model",
634
743
  type: "text",
635
744
  label: "Llm Model",
636
- description: "LLM for content generation",
745
+ description: "LLM for content generation (must support vision)",
746
+ required: false,
747
+ default: "gemini/gemini-2.0-flash",
748
+ hidden: true,
749
+ },
750
+ {
751
+ name: "lipsync_model",
752
+ type: "select",
753
+ label: "Lipsync Model",
754
+ description: "Lipsync model: pixverse (quality) or latentsync (cheaper)",
637
755
  required: false,
638
- default: "claude-sonnet",
756
+ default: "pixverse",
757
+ options: [
758
+ { value: "pixverse", label: "Pixverse" },
759
+ { value: "latentsync", label: "Latentsync" },
760
+ ],
639
761
  hidden: true,
640
762
  },
641
763
  {
@@ -2137,6 +2259,7 @@ export const speaking_priest: WorkflowDefinition<
2137
2259
  // =============================================================================
2138
2260
 
2139
2261
  export const workflowRegistry = {
2262
+ inspirations_pinterest,
2140
2263
  ruby,
2141
2264
  saa_s_loom,
2142
2265
  saa_s_video,
@@ -2169,6 +2292,7 @@ export function getWorkflowIds(): WorkflowId[] {
2169
2292
 
2170
2293
  // Type mappings
2171
2294
  export type WorkflowInputMap = {
2295
+ inspirations_pinterest: Types.InspirationsPinterestInput;
2172
2296
  ruby: Types.RubyInput;
2173
2297
  saa_s_loom: Types.SaaSLoomInput;
2174
2298
  saa_s_video: Types.SaaSVideoInput;
@@ -2180,6 +2304,7 @@ export type WorkflowInputMap = {
2180
2304
  };
2181
2305
 
2182
2306
  export type WorkflowOutputMap = {
2307
+ inspirations_pinterest: Types.InspirationsPinterestOutput;
2183
2308
  ruby: Types.RubyOutput;
2184
2309
  saa_s_loom: Types.SaaSLoomOutput;
2185
2310
  saa_s_video: Types.SaaSVideoOutput;
@@ -0,0 +1,70 @@
1
+ {
2
+ "description": "Input for Pinterest inspiration image search.",
3
+ "properties": {
4
+ "secret_key": {
5
+ "anyOf": [
6
+ {
7
+ "type": "string"
8
+ },
9
+ {
10
+ "type": "null"
11
+ }
12
+ ],
13
+ "default": null,
14
+ "description": "Secret key for authentication (required when WORKFLOW_SECRET_ENABLED=True)",
15
+ "title": "Secret Key"
16
+ },
17
+ "rewrite_enabled": {
18
+ "default": false,
19
+ "description": "Make your content appear as fresh, original uploads. Bypasses duplicate detection and AI content filters on social platforms.",
20
+ "title": "Rewrite Enabled",
21
+ "type": "boolean"
22
+ },
23
+ "rewrite_device": {
24
+ "anyOf": [
25
+ {
26
+ "enum": [
27
+ "iPhone 17 Pro Max",
28
+ "iPhone 17 Pro",
29
+ "iPhone 17 Plus",
30
+ "iPhone 17",
31
+ "iPhone 16 Pro Max",
32
+ "iPhone 16 Pro",
33
+ "iPhone 16 Plus",
34
+ "iPhone 16",
35
+ "iPhone 15 Pro Max",
36
+ "iPhone 15 Pro",
37
+ "iPhone 15 Plus",
38
+ "iPhone 15",
39
+ "iPhone 14 Pro Max",
40
+ "iPhone 14 Pro",
41
+ "iPhone 14 Plus",
42
+ "iPhone 14",
43
+ "iPhone 13 Pro Max",
44
+ "iPhone 13 Pro",
45
+ "iPhone 13",
46
+ "iPhone 13 mini",
47
+ "Ray-Ban Meta Smart Glasses"
48
+ ],
49
+ "type": "string"
50
+ },
51
+ {
52
+ "type": "null"
53
+ }
54
+ ],
55
+ "default": null,
56
+ "description": "Make media appear as if created on this device. Adds authenticity and helps bypass platform detection. Random device if not specified.",
57
+ "title": "Rewrite Device"
58
+ },
59
+ "prompt": {
60
+ "description": "What kind of inspiration the user wants (e.g., \"landing page design\")",
61
+ "title": "Prompt",
62
+ "type": "string"
63
+ }
64
+ },
65
+ "required": [
66
+ "prompt"
67
+ ],
68
+ "title": "InspirationsPinterestInput",
69
+ "type": "object"
70
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "$defs": {
3
+ "InspirationImage": {
4
+ "description": "A single Pinterest inspiration image.",
5
+ "properties": {
6
+ "id": {
7
+ "description": "Pin ID",
8
+ "title": "Id",
9
+ "type": "string"
10
+ },
11
+ "title": {
12
+ "anyOf": [
13
+ {
14
+ "type": "string"
15
+ },
16
+ {
17
+ "type": "null"
18
+ }
19
+ ],
20
+ "default": null,
21
+ "description": "Pin title",
22
+ "title": "Title"
23
+ },
24
+ "description": {
25
+ "anyOf": [
26
+ {
27
+ "type": "string"
28
+ },
29
+ {
30
+ "type": "null"
31
+ }
32
+ ],
33
+ "default": null,
34
+ "description": "Pin description",
35
+ "title": "Description"
36
+ },
37
+ "image_url": {
38
+ "description": "Image URL",
39
+ "title": "Image Url",
40
+ "type": "string"
41
+ },
42
+ "aspect_ratio": {
43
+ "description": "Aspect ratio (e.g., 16:9)",
44
+ "title": "Aspect Ratio",
45
+ "type": "string"
46
+ },
47
+ "image_width": {
48
+ "anyOf": [
49
+ {
50
+ "type": "integer"
51
+ },
52
+ {
53
+ "type": "null"
54
+ }
55
+ ],
56
+ "default": null,
57
+ "description": "Image width in pixels",
58
+ "title": "Image Width"
59
+ },
60
+ "image_height": {
61
+ "anyOf": [
62
+ {
63
+ "type": "integer"
64
+ },
65
+ {
66
+ "type": "null"
67
+ }
68
+ ],
69
+ "default": null,
70
+ "description": "Image height in pixels",
71
+ "title": "Image Height"
72
+ }
73
+ },
74
+ "required": [
75
+ "id",
76
+ "image_url",
77
+ "aspect_ratio"
78
+ ],
79
+ "title": "InspirationImage",
80
+ "type": "object"
81
+ }
82
+ },
83
+ "description": "Output from Pinterest inspiration image search.",
84
+ "properties": {
85
+ "images": {
86
+ "description": "List of inspiration images",
87
+ "items": {
88
+ "$ref": "#/$defs/InspirationImage"
89
+ },
90
+ "title": "Images",
91
+ "type": "array"
92
+ },
93
+ "queries_used": {
94
+ "description": "Search queries that were used",
95
+ "items": {
96
+ "type": "string"
97
+ },
98
+ "title": "Queries Used",
99
+ "type": "array"
100
+ },
101
+ "total_scraped": {
102
+ "default": 0,
103
+ "description": "Total pins scraped before filtering",
104
+ "title": "Total Scraped",
105
+ "type": "integer"
106
+ }
107
+ },
108
+ "title": "InspirationsPinterestOutput",
109
+ "type": "object"
110
+ }
@@ -246,6 +246,58 @@
246
246
  "title": "Target Duration",
247
247
  "type": "integer"
248
248
  },
249
+ "product_name": {
250
+ "anyOf": [
251
+ {
252
+ "type": "string"
253
+ },
254
+ {
255
+ "type": "null"
256
+ }
257
+ ],
258
+ "default": null,
259
+ "description": "Name of the product/SaaS being promoted (e.g., \"TopYappers\")",
260
+ "title": "Product Name"
261
+ },
262
+ "product_url": {
263
+ "anyOf": [
264
+ {
265
+ "type": "string"
266
+ },
267
+ {
268
+ "type": "null"
269
+ }
270
+ ],
271
+ "default": null,
272
+ "description": "URL of the product website (e.g., \"topyappers.com\")",
273
+ "title": "Product Url"
274
+ },
275
+ "product_tagline": {
276
+ "anyOf": [
277
+ {
278
+ "type": "string"
279
+ },
280
+ {
281
+ "type": "null"
282
+ }
283
+ ],
284
+ "default": null,
285
+ "description": "Product tagline or value proposition",
286
+ "title": "Product Tagline"
287
+ },
288
+ "company_name": {
289
+ "anyOf": [
290
+ {
291
+ "type": "string"
292
+ },
293
+ {
294
+ "type": "null"
295
+ }
296
+ ],
297
+ "default": null,
298
+ "description": "Company name if different from product name",
299
+ "title": "Company Name"
300
+ },
249
301
  "include_talking_head": {
250
302
  "default": true,
251
303
  "description": "Include talking head overlay. If False, generates voiceover-only video.",
@@ -316,8 +368,8 @@
316
368
  "description": "Centralized theme configuration for all visuals"
317
369
  },
318
370
  "voice_id": {
319
- "default": "JBFqnCBsd6RMkjVDRZzb",
320
- "description": "ElevenLabs voice ID",
371
+ "default": "21m00Tcm4TlvDq8ikWAM",
372
+ "description": "ElevenLabs voice ID (default: Rachel - US female)",
321
373
  "title": "Voice Id",
322
374
  "type": "string"
323
375
  },
@@ -373,17 +425,27 @@
373
425
  "type": "string"
374
426
  },
375
427
  "video_model": {
376
- "default": "kling-v2.6",
377
- "description": "Video model for talking head/broll",
428
+ "default": "seedance-1.5-pro",
429
+ "description": "Video model for b-roll generation",
378
430
  "title": "Video Model",
379
431
  "type": "string"
380
432
  },
381
433
  "llm_model": {
382
- "default": "claude-sonnet",
383
- "description": "LLM for content generation",
434
+ "default": "gemini/gemini-2.0-flash",
435
+ "description": "LLM for content generation (must support vision)",
384
436
  "title": "Llm Model",
385
437
  "type": "string"
386
438
  },
439
+ "lipsync_model": {
440
+ "default": "pixverse",
441
+ "description": "Lipsync model: pixverse (quality) or latentsync (cheaper)",
442
+ "enum": [
443
+ "pixverse",
444
+ "latentsync"
445
+ ],
446
+ "title": "Lipsync Model",
447
+ "type": "string"
448
+ },
387
449
  "longerpost_api_url": {
388
450
  "default": "http://localhost:3000",
389
451
  "description": "LongerPost API URL",
package/types.ts CHANGED
@@ -35,6 +35,56 @@ export interface WorkflowProgress<TResult = unknown> {
35
35
  // Workflow Schemas
36
36
  // =============================================================================
37
37
 
38
+ export interface InspirationsPinterestInput {
39
+ /** Secret key for authentication (required when WORKFLOW_SECRET_ENABLED=True) */
40
+ secret_key?: string | null;
41
+ /** Make your content appear as fresh, original uploads. Bypasses duplicate detection and AI content filters on social platforms. */
42
+ rewrite_enabled?: boolean;
43
+ /** Make media appear as if created on this device. Adds authenticity and helps bypass platform detection. Random device if not specified. */
44
+ rewrite_device?:
45
+ | "iPhone 17 Pro Max"
46
+ | "iPhone 17 Pro"
47
+ | "iPhone 17 Plus"
48
+ | "iPhone 17"
49
+ | "iPhone 16 Pro Max"
50
+ | "iPhone 16 Pro"
51
+ | "iPhone 16 Plus"
52
+ | "iPhone 16"
53
+ | "iPhone 15 Pro Max"
54
+ | "iPhone 15 Pro"
55
+ | "iPhone 15 Plus"
56
+ | "iPhone 15"
57
+ | "iPhone 14 Pro Max"
58
+ | "iPhone 14 Pro"
59
+ | "iPhone 14 Plus"
60
+ | "iPhone 14"
61
+ | "iPhone 13 Pro Max"
62
+ | "iPhone 13 Pro"
63
+ | "iPhone 13"
64
+ | "iPhone 13 mini"
65
+ | "Ray-Ban Meta Smart Glasses"
66
+ | null;
67
+ /** What kind of inspiration the user wants (e.g., "landing page design") */
68
+ prompt: string;
69
+ }
70
+
71
+ export interface InspirationsPinterestOutput {
72
+ /** List of inspiration images */
73
+ images?: {
74
+ id: string;
75
+ title?: string | null;
76
+ description?: string | null;
77
+ image_url: string;
78
+ aspect_ratio: string;
79
+ image_width?: number | null;
80
+ image_height?: number | null;
81
+ }[];
82
+ /** Search queries that were used */
83
+ queries_used?: string[];
84
+ /** Total pins scraped before filtering */
85
+ total_scraped?: number;
86
+ }
87
+
38
88
  export interface RubyInput {
39
89
  /** Secret key for authentication (required when WORKFLOW_SECRET_ENABLED=True) */
40
90
  secret_key?: string | null;
@@ -238,6 +288,14 @@ export interface SaaSLoomInput {
238
288
  target_audience?: string;
239
289
  /** Target video duration in minutes (1, 5, 10, 15, 20, or 30) */
240
290
  target_duration?: 1 | 5 | 10 | 15 | 20 | 30;
291
+ /** Name of the product/SaaS being promoted (e.g., "TopYappers") */
292
+ product_name?: string | null;
293
+ /** URL of the product website (e.g., "topyappers.com") */
294
+ product_url?: string | null;
295
+ /** Product tagline or value proposition */
296
+ product_tagline?: string | null;
297
+ /** Company name if different from product name */
298
+ company_name?: string | null;
241
299
  /** Include talking head overlay. If False, generates voiceover-only video. */
242
300
  include_talking_head?: boolean;
243
301
  /** URL of avatar image. If not provided, will generate one. */
@@ -272,7 +330,7 @@ export interface SaaSLoomInput {
272
330
  presenter_border_color?: string | null;
273
331
  presenter_shadow?: boolean;
274
332
  };
275
- /** ElevenLabs voice ID */
333
+ /** ElevenLabs voice ID (default: Rachel - US female) */
276
334
  voice_id?: string;
277
335
  voice_stability?: number;
278
336
  voice_similarity?: number;
@@ -284,10 +342,12 @@ export interface SaaSLoomInput {
284
342
  fps?: number;
285
343
  /** Image model for avatar/visuals */
286
344
  image_model?: string;
287
- /** Video model for talking head/broll */
345
+ /** Video model for b-roll generation */
288
346
  video_model?: string;
289
- /** LLM for content generation */
347
+ /** LLM for content generation (must support vision) */
290
348
  llm_model?: string;
349
+ /** Lipsync model: pixverse (quality) or latentsync (cheaper) */
350
+ lipsync_model?: "pixverse" | "latentsync";
291
351
  /** LongerPost API URL */
292
352
  longerpost_api_url?: string;
293
353
  /** LongerPost API key */