@contractspec/lib.contracts-integrations 2.4.0 → 2.6.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.js +381 -55
- package/dist/integrations/index.js +379 -53
- package/dist/integrations/providers/deepgram.d.ts +3 -0
- package/dist/integrations/providers/deepgram.js +99 -0
- package/dist/integrations/providers/elevenlabs.js +6 -3
- package/dist/integrations/providers/fal-image.d.ts +3 -0
- package/dist/integrations/providers/fal-image.js +92 -0
- package/dist/integrations/providers/fal.js +2 -2
- package/dist/integrations/providers/gradium.js +2 -2
- package/dist/integrations/providers/image.d.ts +85 -0
- package/dist/integrations/providers/image.js +16 -0
- package/dist/integrations/providers/index.d.ts +6 -0
- package/dist/integrations/providers/index.js +380 -54
- package/dist/integrations/providers/openai-image.d.ts +3 -0
- package/dist/integrations/providers/openai-image.js +96 -0
- package/dist/integrations/providers/openai-realtime.d.ts +3 -0
- package/dist/integrations/providers/openai-realtime.js +97 -0
- package/dist/integrations/providers/registry.js +192 -33
- package/dist/integrations/providers/video.d.ts +10 -0
- package/dist/integrations/providers/voice-video-sync.d.ts +29 -0
- package/dist/integrations/providers/voice-video-sync.js +1 -0
- package/dist/integrations/providers/voice.d.ts +149 -12
- package/dist/integrations/spec.d.ts +1 -1
- package/dist/node/index.js +381 -55
- package/dist/node/integrations/index.js +379 -53
- package/dist/node/integrations/providers/deepgram.js +98 -0
- package/dist/node/integrations/providers/elevenlabs.js +6 -3
- package/dist/node/integrations/providers/fal-image.js +91 -0
- package/dist/node/integrations/providers/fal.js +2 -2
- package/dist/node/integrations/providers/gradium.js +2 -2
- package/dist/node/integrations/providers/image.js +15 -0
- package/dist/node/integrations/providers/index.js +380 -54
- package/dist/node/integrations/providers/openai-image.js +95 -0
- package/dist/node/integrations/providers/openai-realtime.js +96 -0
- package/dist/node/integrations/providers/registry.js +192 -33
- package/dist/node/integrations/providers/voice-video-sync.js +0 -0
- package/package.json +77 -5
|
@@ -14,8 +14,166 @@ function makeIntegrationSpecKey(meta) {
|
|
|
14
14
|
return integrationKey(meta);
|
|
15
15
|
}
|
|
16
16
|
var defineIntegration = (spec) => spec;
|
|
17
|
-
// src/integrations/providers/
|
|
17
|
+
// src/integrations/providers/image.ts
|
|
18
|
+
var IMAGE_PRESETS = {
|
|
19
|
+
ogImage: { width: 1200, height: 630 },
|
|
20
|
+
twitterCard: { width: 1200, height: 675 },
|
|
21
|
+
instagramSquare: { width: 1080, height: 1080 },
|
|
22
|
+
instagramStory: { width: 1080, height: 1920 },
|
|
23
|
+
blogHero: { width: 1920, height: 1080 },
|
|
24
|
+
thumbnail: { width: 640, height: 360 },
|
|
25
|
+
favicon: { width: 512, height: 512 },
|
|
26
|
+
emailHeader: { width: 600, height: 200 },
|
|
27
|
+
illustration: { width: 1024, height: 1024 }
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// src/integrations/providers/fal-image.ts
|
|
18
31
|
import { StabilityEnum } from "@contractspec/lib.contracts-spec/ownership";
|
|
32
|
+
var falImageIntegrationSpec = defineIntegration({
|
|
33
|
+
meta: {
|
|
34
|
+
key: "ai-image.fal",
|
|
35
|
+
version: "1.0.0",
|
|
36
|
+
category: "ai-image",
|
|
37
|
+
title: "Fal Image Generation",
|
|
38
|
+
description: "Fal integration for AI image generation using Flux and Stable Diffusion models.",
|
|
39
|
+
domain: "ai",
|
|
40
|
+
owners: ["platform.ai"],
|
|
41
|
+
tags: ["image", "generation", "flux", "stable-diffusion"],
|
|
42
|
+
stability: StabilityEnum.Experimental
|
|
43
|
+
},
|
|
44
|
+
supportedModes: ["byok"],
|
|
45
|
+
capabilities: {
|
|
46
|
+
provides: [{ key: "ai.image.generation", version: "1.0.0" }]
|
|
47
|
+
},
|
|
48
|
+
configSchema: {
|
|
49
|
+
schema: {
|
|
50
|
+
type: "object",
|
|
51
|
+
properties: {
|
|
52
|
+
modelId: {
|
|
53
|
+
type: "string",
|
|
54
|
+
description: "Fal model endpoint (e.g. fal-ai/flux/dev)."
|
|
55
|
+
},
|
|
56
|
+
defaultFormat: {
|
|
57
|
+
type: "string",
|
|
58
|
+
enum: ["png", "jpg", "webp"]
|
|
59
|
+
},
|
|
60
|
+
defaultGuidanceScale: {
|
|
61
|
+
type: "number",
|
|
62
|
+
minimum: 1,
|
|
63
|
+
maximum: 20
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
example: {
|
|
68
|
+
modelId: "fal-ai/flux/dev",
|
|
69
|
+
defaultFormat: "png",
|
|
70
|
+
defaultGuidanceScale: 7.5
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
secretSchema: {
|
|
74
|
+
schema: {
|
|
75
|
+
type: "object",
|
|
76
|
+
required: ["apiKey"],
|
|
77
|
+
properties: {
|
|
78
|
+
apiKey: {
|
|
79
|
+
type: "string",
|
|
80
|
+
description: "Fal API key (FAL_KEY)."
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
example: {
|
|
85
|
+
apiKey: "key-id:key-secret"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
healthCheck: {
|
|
89
|
+
method: "custom",
|
|
90
|
+
timeoutMs: 7000
|
|
91
|
+
},
|
|
92
|
+
docsUrl: "https://fal.ai/models",
|
|
93
|
+
byokSetup: {
|
|
94
|
+
setupInstructions: "Create a Fal API key and ensure image generation model access is enabled."
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
function registerFalImageIntegration(registry) {
|
|
98
|
+
return registry.register(falImageIntegrationSpec);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// src/integrations/providers/openai-image.ts
|
|
102
|
+
import { StabilityEnum as StabilityEnum2 } from "@contractspec/lib.contracts-spec/ownership";
|
|
103
|
+
var openaiImageIntegrationSpec = defineIntegration({
|
|
104
|
+
meta: {
|
|
105
|
+
key: "ai-image.openai",
|
|
106
|
+
version: "1.0.0",
|
|
107
|
+
category: "ai-image",
|
|
108
|
+
title: "OpenAI Image Generation",
|
|
109
|
+
description: "OpenAI integration for AI image generation using DALL-E and gpt-image models.",
|
|
110
|
+
domain: "ai",
|
|
111
|
+
owners: ["platform.ai"],
|
|
112
|
+
tags: ["image", "generation", "dall-e", "gpt-image"],
|
|
113
|
+
stability: StabilityEnum2.Experimental
|
|
114
|
+
},
|
|
115
|
+
supportedModes: ["managed", "byok"],
|
|
116
|
+
capabilities: {
|
|
117
|
+
provides: [{ key: "ai.image.generation", version: "1.0.0" }]
|
|
118
|
+
},
|
|
119
|
+
configSchema: {
|
|
120
|
+
schema: {
|
|
121
|
+
type: "object",
|
|
122
|
+
properties: {
|
|
123
|
+
model: {
|
|
124
|
+
type: "string",
|
|
125
|
+
description: "OpenAI image model identifier (e.g. dall-e-3, gpt-image-1)."
|
|
126
|
+
},
|
|
127
|
+
defaultSize: {
|
|
128
|
+
type: "string",
|
|
129
|
+
enum: ["1024x1024", "1024x1792", "1792x1024"]
|
|
130
|
+
},
|
|
131
|
+
defaultQuality: {
|
|
132
|
+
type: "string",
|
|
133
|
+
enum: ["standard", "hd"]
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
example: {
|
|
138
|
+
model: "dall-e-3",
|
|
139
|
+
defaultSize: "1024x1024",
|
|
140
|
+
defaultQuality: "standard"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
secretSchema: {
|
|
144
|
+
schema: {
|
|
145
|
+
type: "object",
|
|
146
|
+
required: ["apiKey"],
|
|
147
|
+
properties: {
|
|
148
|
+
apiKey: {
|
|
149
|
+
type: "string",
|
|
150
|
+
description: "OpenAI API key with image generation permissions."
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
example: {
|
|
155
|
+
apiKey: "sk-***"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
healthCheck: {
|
|
159
|
+
method: "custom",
|
|
160
|
+
timeoutMs: 5000
|
|
161
|
+
},
|
|
162
|
+
docsUrl: "https://platform.openai.com/docs/guides/images",
|
|
163
|
+
constraints: {
|
|
164
|
+
rateLimit: {
|
|
165
|
+
rpm: 50
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
byokSetup: {
|
|
169
|
+
setupInstructions: "Create an OpenAI API key with image generation access enabled."
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
function registerOpenaiImageIntegration(registry) {
|
|
173
|
+
return registry.register(openaiImageIntegrationSpec);
|
|
174
|
+
}
|
|
175
|
+
// src/integrations/providers/stripe.ts
|
|
176
|
+
import { StabilityEnum as StabilityEnum3 } from "@contractspec/lib.contracts-spec/ownership";
|
|
19
177
|
var stripeIntegrationSpec = defineIntegration({
|
|
20
178
|
meta: {
|
|
21
179
|
key: "payments.stripe",
|
|
@@ -26,7 +184,7 @@ var stripeIntegrationSpec = defineIntegration({
|
|
|
26
184
|
domain: "payments",
|
|
27
185
|
owners: ["platform.payments"],
|
|
28
186
|
tags: ["payments", "psp"],
|
|
29
|
-
stability:
|
|
187
|
+
stability: StabilityEnum3.Stable
|
|
30
188
|
},
|
|
31
189
|
supportedModes: ["managed", "byok"],
|
|
32
190
|
capabilities: {
|
|
@@ -99,7 +257,7 @@ function registerStripeIntegration(registry) {
|
|
|
99
257
|
}
|
|
100
258
|
|
|
101
259
|
// src/integrations/providers/postmark.ts
|
|
102
|
-
import { StabilityEnum as
|
|
260
|
+
import { StabilityEnum as StabilityEnum4 } from "@contractspec/lib.contracts-spec/ownership";
|
|
103
261
|
var postmarkIntegrationSpec = defineIntegration({
|
|
104
262
|
meta: {
|
|
105
263
|
key: "email.postmark",
|
|
@@ -110,7 +268,7 @@ var postmarkIntegrationSpec = defineIntegration({
|
|
|
110
268
|
domain: "communications",
|
|
111
269
|
owners: ["platform.messaging"],
|
|
112
270
|
tags: ["email", "transactional"],
|
|
113
|
-
stability:
|
|
271
|
+
stability: StabilityEnum4.Stable
|
|
114
272
|
},
|
|
115
273
|
supportedModes: ["managed", "byok"],
|
|
116
274
|
capabilities: {
|
|
@@ -176,7 +334,7 @@ function registerPostmarkIntegration(registry) {
|
|
|
176
334
|
}
|
|
177
335
|
|
|
178
336
|
// src/integrations/providers/qdrant.ts
|
|
179
|
-
import { StabilityEnum as
|
|
337
|
+
import { StabilityEnum as StabilityEnum5 } from "@contractspec/lib.contracts-spec/ownership";
|
|
180
338
|
var qdrantIntegrationSpec = defineIntegration({
|
|
181
339
|
meta: {
|
|
182
340
|
key: "vectordb.qdrant",
|
|
@@ -187,7 +345,7 @@ var qdrantIntegrationSpec = defineIntegration({
|
|
|
187
345
|
domain: "ai",
|
|
188
346
|
owners: ["platform.ai"],
|
|
189
347
|
tags: ["vector-db", "search"],
|
|
190
|
-
stability:
|
|
348
|
+
stability: StabilityEnum5.Experimental
|
|
191
349
|
},
|
|
192
350
|
supportedModes: ["managed", "byok"],
|
|
193
351
|
capabilities: {
|
|
@@ -256,7 +414,7 @@ function registerQdrantIntegration(registry) {
|
|
|
256
414
|
}
|
|
257
415
|
|
|
258
416
|
// src/integrations/providers/supabase-vector.ts
|
|
259
|
-
import { StabilityEnum as
|
|
417
|
+
import { StabilityEnum as StabilityEnum6 } from "@contractspec/lib.contracts-spec/ownership";
|
|
260
418
|
var supabaseVectorIntegrationSpec = defineIntegration({
|
|
261
419
|
meta: {
|
|
262
420
|
key: "vectordb.supabase",
|
|
@@ -267,7 +425,7 @@ var supabaseVectorIntegrationSpec = defineIntegration({
|
|
|
267
425
|
domain: "ai",
|
|
268
426
|
owners: ["platform.ai"],
|
|
269
427
|
tags: ["vector-db", "supabase", "pgvector"],
|
|
270
|
-
stability:
|
|
428
|
+
stability: StabilityEnum6.Beta
|
|
271
429
|
},
|
|
272
430
|
supportedModes: ["managed", "byok"],
|
|
273
431
|
capabilities: {
|
|
@@ -342,7 +500,7 @@ function registerSupabaseVectorIntegration(registry) {
|
|
|
342
500
|
}
|
|
343
501
|
|
|
344
502
|
// src/integrations/providers/supabase-postgres.ts
|
|
345
|
-
import { StabilityEnum as
|
|
503
|
+
import { StabilityEnum as StabilityEnum7 } from "@contractspec/lib.contracts-spec/ownership";
|
|
346
504
|
var supabasePostgresIntegrationSpec = defineIntegration({
|
|
347
505
|
meta: {
|
|
348
506
|
key: "database.supabase",
|
|
@@ -353,7 +511,7 @@ var supabasePostgresIntegrationSpec = defineIntegration({
|
|
|
353
511
|
domain: "infrastructure",
|
|
354
512
|
owners: ["platform.infrastructure"],
|
|
355
513
|
tags: ["database", "postgres", "supabase"],
|
|
356
|
-
stability:
|
|
514
|
+
stability: StabilityEnum7.Beta
|
|
357
515
|
},
|
|
358
516
|
supportedModes: ["managed", "byok"],
|
|
359
517
|
capabilities: {
|
|
@@ -408,7 +566,7 @@ function registerSupabasePostgresIntegration(registry) {
|
|
|
408
566
|
}
|
|
409
567
|
|
|
410
568
|
// src/integrations/providers/mistral.ts
|
|
411
|
-
import { StabilityEnum as
|
|
569
|
+
import { StabilityEnum as StabilityEnum8 } from "@contractspec/lib.contracts-spec/ownership";
|
|
412
570
|
var mistralIntegrationSpec = defineIntegration({
|
|
413
571
|
meta: {
|
|
414
572
|
key: "ai-llm.mistral",
|
|
@@ -419,7 +577,7 @@ var mistralIntegrationSpec = defineIntegration({
|
|
|
419
577
|
domain: "ai",
|
|
420
578
|
owners: ["platform.ai"],
|
|
421
579
|
tags: ["ai", "llm", "embeddings"],
|
|
422
|
-
stability:
|
|
580
|
+
stability: StabilityEnum8.Experimental
|
|
423
581
|
},
|
|
424
582
|
supportedModes: ["managed", "byok"],
|
|
425
583
|
capabilities: {
|
|
@@ -481,22 +639,25 @@ function registerMistralIntegration(registry) {
|
|
|
481
639
|
}
|
|
482
640
|
|
|
483
641
|
// src/integrations/providers/elevenlabs.ts
|
|
484
|
-
import { StabilityEnum as
|
|
642
|
+
import { StabilityEnum as StabilityEnum9 } from "@contractspec/lib.contracts-spec/ownership";
|
|
485
643
|
var elevenLabsIntegrationSpec = defineIntegration({
|
|
486
644
|
meta: {
|
|
487
645
|
key: "ai-voice.elevenlabs",
|
|
488
646
|
version: "1.0.0",
|
|
489
|
-
category: "ai-voice",
|
|
647
|
+
category: "ai-voice-tts",
|
|
490
648
|
title: "ElevenLabs Text-to-Speech",
|
|
491
649
|
description: "ElevenLabs integration for neural voice synthesis and voice catalog access.",
|
|
492
650
|
domain: "ai",
|
|
493
651
|
owners: ["platform.ai"],
|
|
494
|
-
tags: ["voice", "tts"],
|
|
495
|
-
stability:
|
|
652
|
+
tags: ["voice", "tts", "stt"],
|
|
653
|
+
stability: StabilityEnum9.Beta
|
|
496
654
|
},
|
|
497
655
|
supportedModes: ["managed", "byok"],
|
|
498
656
|
capabilities: {
|
|
499
|
-
provides: [
|
|
657
|
+
provides: [
|
|
658
|
+
{ key: "ai.voice.tts", version: "1.0.0" },
|
|
659
|
+
{ key: "ai.voice.stt", version: "1.0.0" }
|
|
660
|
+
]
|
|
500
661
|
},
|
|
501
662
|
configSchema: {
|
|
502
663
|
schema: {
|
|
@@ -546,22 +707,22 @@ function registerElevenLabsIntegration(registry) {
|
|
|
546
707
|
}
|
|
547
708
|
|
|
548
709
|
// src/integrations/providers/gradium.ts
|
|
549
|
-
import { StabilityEnum as
|
|
710
|
+
import { StabilityEnum as StabilityEnum10 } from "@contractspec/lib.contracts-spec/ownership";
|
|
550
711
|
var gradiumIntegrationSpec = defineIntegration({
|
|
551
712
|
meta: {
|
|
552
713
|
key: "ai-voice.gradium",
|
|
553
714
|
version: "1.0.0",
|
|
554
|
-
category: "ai-voice",
|
|
715
|
+
category: "ai-voice-tts",
|
|
555
716
|
title: "Gradium Text-to-Speech",
|
|
556
717
|
description: "Gradium integration for low-latency voice synthesis and voice catalog access.",
|
|
557
718
|
domain: "ai",
|
|
558
719
|
owners: ["platform.ai"],
|
|
559
720
|
tags: ["voice", "tts", "realtime"],
|
|
560
|
-
stability:
|
|
721
|
+
stability: StabilityEnum10.Experimental
|
|
561
722
|
},
|
|
562
723
|
supportedModes: ["byok"],
|
|
563
724
|
capabilities: {
|
|
564
|
-
provides: [{ key: "ai.voice.
|
|
725
|
+
provides: [{ key: "ai.voice.tts", version: "1.0.0" }]
|
|
565
726
|
},
|
|
566
727
|
configSchema: {
|
|
567
728
|
schema: {
|
|
@@ -635,22 +796,22 @@ function registerGradiumIntegration(registry) {
|
|
|
635
796
|
}
|
|
636
797
|
|
|
637
798
|
// src/integrations/providers/fal.ts
|
|
638
|
-
import { StabilityEnum as
|
|
799
|
+
import { StabilityEnum as StabilityEnum11 } from "@contractspec/lib.contracts-spec/ownership";
|
|
639
800
|
var falIntegrationSpec = defineIntegration({
|
|
640
801
|
meta: {
|
|
641
802
|
key: "ai-voice.fal",
|
|
642
803
|
version: "1.0.0",
|
|
643
|
-
category: "ai-voice",
|
|
804
|
+
category: "ai-voice-tts",
|
|
644
805
|
title: "Fal Chatterbox Text-to-Speech",
|
|
645
806
|
description: "Fal integration for voice synthesis using Chatterbox text-to-speech models.",
|
|
646
807
|
domain: "ai",
|
|
647
808
|
owners: ["platform.ai"],
|
|
648
809
|
tags: ["voice", "tts", "chatterbox"],
|
|
649
|
-
stability:
|
|
810
|
+
stability: StabilityEnum11.Experimental
|
|
650
811
|
},
|
|
651
812
|
supportedModes: ["byok"],
|
|
652
813
|
capabilities: {
|
|
653
|
-
provides: [{ key: "ai.voice.
|
|
814
|
+
provides: [{ key: "ai.voice.tts", version: "1.0.0" }]
|
|
654
815
|
},
|
|
655
816
|
configSchema: {
|
|
656
817
|
schema: {
|
|
@@ -725,8 +886,162 @@ function registerFalIntegration(registry) {
|
|
|
725
886
|
return registry.register(falIntegrationSpec);
|
|
726
887
|
}
|
|
727
888
|
|
|
889
|
+
// src/integrations/providers/deepgram.ts
|
|
890
|
+
import { StabilityEnum as StabilityEnum12 } from "@contractspec/lib.contracts-spec/ownership";
|
|
891
|
+
var deepgramIntegrationSpec = defineIntegration({
|
|
892
|
+
meta: {
|
|
893
|
+
key: "ai-voice-stt.deepgram",
|
|
894
|
+
version: "1.0.0",
|
|
895
|
+
category: "ai-voice-stt",
|
|
896
|
+
title: "Deepgram Speech-to-Text",
|
|
897
|
+
description: "Deepgram integration for real-time and batch speech-to-text transcription with speaker diarization.",
|
|
898
|
+
domain: "ai",
|
|
899
|
+
owners: ["platform.ai"],
|
|
900
|
+
tags: ["voice", "stt", "transcription", "diarization"],
|
|
901
|
+
stability: StabilityEnum12.Experimental
|
|
902
|
+
},
|
|
903
|
+
supportedModes: ["byok"],
|
|
904
|
+
capabilities: {
|
|
905
|
+
provides: [
|
|
906
|
+
{ key: "ai.voice.stt", version: "1.0.0" },
|
|
907
|
+
{ key: "ai.voice.conversational", version: "1.0.0" }
|
|
908
|
+
]
|
|
909
|
+
},
|
|
910
|
+
configSchema: {
|
|
911
|
+
schema: {
|
|
912
|
+
type: "object",
|
|
913
|
+
properties: {
|
|
914
|
+
model: {
|
|
915
|
+
type: "string",
|
|
916
|
+
description: "Deepgram model to use (e.g. nova-3, nova-2, enhanced)."
|
|
917
|
+
},
|
|
918
|
+
language: {
|
|
919
|
+
type: "string",
|
|
920
|
+
description: "Default language code for transcription (e.g. en-US)."
|
|
921
|
+
},
|
|
922
|
+
enableDiarization: {
|
|
923
|
+
type: "boolean",
|
|
924
|
+
description: "Enable speaker diarization by default."
|
|
925
|
+
},
|
|
926
|
+
enableSmartFormat: {
|
|
927
|
+
type: "boolean",
|
|
928
|
+
description: "Enable smart formatting (punctuation, capitalization)."
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
},
|
|
932
|
+
example: {
|
|
933
|
+
model: "nova-3",
|
|
934
|
+
language: "en-US",
|
|
935
|
+
enableDiarization: true,
|
|
936
|
+
enableSmartFormat: true
|
|
937
|
+
}
|
|
938
|
+
},
|
|
939
|
+
secretSchema: {
|
|
940
|
+
schema: {
|
|
941
|
+
type: "object",
|
|
942
|
+
required: ["apiKey"],
|
|
943
|
+
properties: {
|
|
944
|
+
apiKey: {
|
|
945
|
+
type: "string",
|
|
946
|
+
description: "Deepgram API key with transcription permissions."
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
},
|
|
950
|
+
example: {
|
|
951
|
+
apiKey: "dg_***"
|
|
952
|
+
}
|
|
953
|
+
},
|
|
954
|
+
healthCheck: {
|
|
955
|
+
method: "custom",
|
|
956
|
+
timeoutMs: 5000
|
|
957
|
+
},
|
|
958
|
+
docsUrl: "https://developers.deepgram.com/docs",
|
|
959
|
+
byokSetup: {
|
|
960
|
+
setupInstructions: "Create a Deepgram API key with speech-to-text permissions and store it in your secret provider."
|
|
961
|
+
}
|
|
962
|
+
});
|
|
963
|
+
function registerDeepgramIntegration(registry) {
|
|
964
|
+
return registry.register(deepgramIntegrationSpec);
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
// src/integrations/providers/openai-realtime.ts
|
|
968
|
+
import { StabilityEnum as StabilityEnum13 } from "@contractspec/lib.contracts-spec/ownership";
|
|
969
|
+
var openaiRealtimeIntegrationSpec = defineIntegration({
|
|
970
|
+
meta: {
|
|
971
|
+
key: "ai-voice-conv.openai",
|
|
972
|
+
version: "1.0.0",
|
|
973
|
+
category: "ai-voice-conversational",
|
|
974
|
+
title: "OpenAI Realtime Voice",
|
|
975
|
+
description: "OpenAI Realtime API integration for bidirectional conversational voice with GPT models.",
|
|
976
|
+
domain: "ai",
|
|
977
|
+
owners: ["platform.ai"],
|
|
978
|
+
tags: ["voice", "conversational", "realtime", "openai"],
|
|
979
|
+
stability: StabilityEnum13.Experimental
|
|
980
|
+
},
|
|
981
|
+
supportedModes: ["byok"],
|
|
982
|
+
capabilities: {
|
|
983
|
+
provides: [{ key: "ai.voice.conversational", version: "1.0.0" }]
|
|
984
|
+
},
|
|
985
|
+
configSchema: {
|
|
986
|
+
schema: {
|
|
987
|
+
type: "object",
|
|
988
|
+
properties: {
|
|
989
|
+
model: {
|
|
990
|
+
type: "string",
|
|
991
|
+
description: "OpenAI model for realtime conversations (e.g. gpt-4o-realtime-preview)."
|
|
992
|
+
},
|
|
993
|
+
defaultVoice: {
|
|
994
|
+
type: "string",
|
|
995
|
+
description: "Default voice for agent responses (e.g. alloy, echo, shimmer)."
|
|
996
|
+
},
|
|
997
|
+
turnDetection: {
|
|
998
|
+
type: "string",
|
|
999
|
+
enum: ["server_vad", "push_to_talk"],
|
|
1000
|
+
description: "Turn detection strategy."
|
|
1001
|
+
},
|
|
1002
|
+
maxSessionDurationSeconds: {
|
|
1003
|
+
type: "number",
|
|
1004
|
+
description: "Maximum session duration in seconds."
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
},
|
|
1008
|
+
example: {
|
|
1009
|
+
model: "gpt-4o-realtime-preview",
|
|
1010
|
+
defaultVoice: "alloy",
|
|
1011
|
+
turnDetection: "server_vad",
|
|
1012
|
+
maxSessionDurationSeconds: 600
|
|
1013
|
+
}
|
|
1014
|
+
},
|
|
1015
|
+
secretSchema: {
|
|
1016
|
+
schema: {
|
|
1017
|
+
type: "object",
|
|
1018
|
+
required: ["apiKey"],
|
|
1019
|
+
properties: {
|
|
1020
|
+
apiKey: {
|
|
1021
|
+
type: "string",
|
|
1022
|
+
description: "OpenAI API key with realtime API access."
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
},
|
|
1026
|
+
example: {
|
|
1027
|
+
apiKey: "sk-***"
|
|
1028
|
+
}
|
|
1029
|
+
},
|
|
1030
|
+
healthCheck: {
|
|
1031
|
+
method: "custom",
|
|
1032
|
+
timeoutMs: 5000
|
|
1033
|
+
},
|
|
1034
|
+
docsUrl: "https://platform.openai.com/docs/guides/realtime",
|
|
1035
|
+
byokSetup: {
|
|
1036
|
+
setupInstructions: "Create an OpenAI API key with Realtime API access enabled and store it in your secret provider."
|
|
1037
|
+
}
|
|
1038
|
+
});
|
|
1039
|
+
function registerOpenaiRealtimeIntegration(registry) {
|
|
1040
|
+
return registry.register(openaiRealtimeIntegrationSpec);
|
|
1041
|
+
}
|
|
1042
|
+
|
|
728
1043
|
// src/integrations/providers/gmail.ts
|
|
729
|
-
import { StabilityEnum as
|
|
1044
|
+
import { StabilityEnum as StabilityEnum14 } from "@contractspec/lib.contracts-spec/ownership";
|
|
730
1045
|
var gmailIntegrationSpec = defineIntegration({
|
|
731
1046
|
meta: {
|
|
732
1047
|
key: "email.gmail",
|
|
@@ -737,7 +1052,7 @@ var gmailIntegrationSpec = defineIntegration({
|
|
|
737
1052
|
domain: "communications",
|
|
738
1053
|
owners: ["platform.messaging"],
|
|
739
1054
|
tags: ["email", "gmail"],
|
|
740
|
-
stability:
|
|
1055
|
+
stability: StabilityEnum14.Beta
|
|
741
1056
|
},
|
|
742
1057
|
supportedModes: ["managed", "byok"],
|
|
743
1058
|
capabilities: {
|
|
@@ -814,7 +1129,7 @@ function registerGmailIntegration(registry) {
|
|
|
814
1129
|
}
|
|
815
1130
|
|
|
816
1131
|
// src/integrations/providers/google-calendar.ts
|
|
817
|
-
import { StabilityEnum as
|
|
1132
|
+
import { StabilityEnum as StabilityEnum15 } from "@contractspec/lib.contracts-spec/ownership";
|
|
818
1133
|
var googleCalendarIntegrationSpec = defineIntegration({
|
|
819
1134
|
meta: {
|
|
820
1135
|
key: "calendar.google",
|
|
@@ -825,7 +1140,7 @@ var googleCalendarIntegrationSpec = defineIntegration({
|
|
|
825
1140
|
domain: "productivity",
|
|
826
1141
|
owners: ["platform.messaging"],
|
|
827
1142
|
tags: ["calendar", "google"],
|
|
828
|
-
stability:
|
|
1143
|
+
stability: StabilityEnum15.Beta
|
|
829
1144
|
},
|
|
830
1145
|
supportedModes: ["managed", "byok"],
|
|
831
1146
|
capabilities: {
|
|
@@ -885,7 +1200,7 @@ function registerGoogleCalendarIntegration(registry) {
|
|
|
885
1200
|
}
|
|
886
1201
|
|
|
887
1202
|
// src/integrations/providers/twilio-sms.ts
|
|
888
|
-
import { StabilityEnum as
|
|
1203
|
+
import { StabilityEnum as StabilityEnum16 } from "@contractspec/lib.contracts-spec/ownership";
|
|
889
1204
|
var twilioSmsIntegrationSpec = defineIntegration({
|
|
890
1205
|
meta: {
|
|
891
1206
|
key: "sms.twilio",
|
|
@@ -896,7 +1211,7 @@ var twilioSmsIntegrationSpec = defineIntegration({
|
|
|
896
1211
|
domain: "communications",
|
|
897
1212
|
owners: ["platform.messaging"],
|
|
898
1213
|
tags: ["sms", "messaging"],
|
|
899
|
-
stability:
|
|
1214
|
+
stability: StabilityEnum16.Stable
|
|
900
1215
|
},
|
|
901
1216
|
supportedModes: ["managed", "byok"],
|
|
902
1217
|
capabilities: {
|
|
@@ -955,7 +1270,7 @@ function registerTwilioSmsIntegration(registry) {
|
|
|
955
1270
|
}
|
|
956
1271
|
|
|
957
1272
|
// src/integrations/providers/gcs-storage.ts
|
|
958
|
-
import { StabilityEnum as
|
|
1273
|
+
import { StabilityEnum as StabilityEnum17 } from "@contractspec/lib.contracts-spec/ownership";
|
|
959
1274
|
var gcsStorageIntegrationSpec = defineIntegration({
|
|
960
1275
|
meta: {
|
|
961
1276
|
key: "storage.gcs",
|
|
@@ -966,7 +1281,7 @@ var gcsStorageIntegrationSpec = defineIntegration({
|
|
|
966
1281
|
domain: "infrastructure",
|
|
967
1282
|
owners: ["platform.infrastructure"],
|
|
968
1283
|
tags: ["storage", "gcs", "google-cloud"],
|
|
969
|
-
stability:
|
|
1284
|
+
stability: StabilityEnum17.Beta
|
|
970
1285
|
},
|
|
971
1286
|
supportedModes: ["managed", "byok"],
|
|
972
1287
|
capabilities: {
|
|
@@ -1031,7 +1346,7 @@ function registerGcsStorageIntegration(registry) {
|
|
|
1031
1346
|
}
|
|
1032
1347
|
|
|
1033
1348
|
// src/integrations/providers/powens.ts
|
|
1034
|
-
import { StabilityEnum as
|
|
1349
|
+
import { StabilityEnum as StabilityEnum18 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1035
1350
|
var powensIntegrationSpec = defineIntegration({
|
|
1036
1351
|
meta: {
|
|
1037
1352
|
key: "openbanking.powens",
|
|
@@ -1042,7 +1357,7 @@ var powensIntegrationSpec = defineIntegration({
|
|
|
1042
1357
|
domain: "finance",
|
|
1043
1358
|
owners: ["platform.finance"],
|
|
1044
1359
|
tags: ["open-banking", "powens", "finance"],
|
|
1045
|
-
stability:
|
|
1360
|
+
stability: StabilityEnum18.Experimental
|
|
1046
1361
|
},
|
|
1047
1362
|
supportedModes: ["byok"],
|
|
1048
1363
|
capabilities: {
|
|
@@ -1134,7 +1449,7 @@ function registerPowensIntegration(registry) {
|
|
|
1134
1449
|
}
|
|
1135
1450
|
|
|
1136
1451
|
// src/integrations/providers/posthog.ts
|
|
1137
|
-
import { StabilityEnum as
|
|
1452
|
+
import { StabilityEnum as StabilityEnum19 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1138
1453
|
var posthogIntegrationSpec = defineIntegration({
|
|
1139
1454
|
meta: {
|
|
1140
1455
|
key: "analytics.posthog",
|
|
@@ -1145,7 +1460,7 @@ var posthogIntegrationSpec = defineIntegration({
|
|
|
1145
1460
|
domain: "analytics",
|
|
1146
1461
|
owners: ["@platform.integrations"],
|
|
1147
1462
|
tags: ["analytics", "posthog", "llm", "ai"],
|
|
1148
|
-
stability:
|
|
1463
|
+
stability: StabilityEnum19.Beta
|
|
1149
1464
|
},
|
|
1150
1465
|
supportedModes: ["managed", "byok"],
|
|
1151
1466
|
capabilities: {
|
|
@@ -1219,7 +1534,7 @@ function registerPosthogIntegration(registry) {
|
|
|
1219
1534
|
}
|
|
1220
1535
|
|
|
1221
1536
|
// src/integrations/providers/posthog-llm-telemetry.ts
|
|
1222
|
-
import { StabilityEnum as
|
|
1537
|
+
import { StabilityEnum as StabilityEnum20 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1223
1538
|
var posthogLLMTelemetrySpec = {
|
|
1224
1539
|
meta: {
|
|
1225
1540
|
key: "analytics.posthog.llm",
|
|
@@ -1229,7 +1544,7 @@ var posthogLLMTelemetrySpec = {
|
|
|
1229
1544
|
domain: "analytics",
|
|
1230
1545
|
owners: ["@platform.integrations"],
|
|
1231
1546
|
tags: ["analytics", "posthog", "llm", "ai", "telemetry"],
|
|
1232
|
-
stability:
|
|
1547
|
+
stability: StabilityEnum20.Beta
|
|
1233
1548
|
},
|
|
1234
1549
|
events: [
|
|
1235
1550
|
{
|
|
@@ -1388,7 +1703,7 @@ function redactPostHogLLMTelemetryPayload(payload) {
|
|
|
1388
1703
|
}
|
|
1389
1704
|
|
|
1390
1705
|
// src/integrations/providers/linear.ts
|
|
1391
|
-
import { StabilityEnum as
|
|
1706
|
+
import { StabilityEnum as StabilityEnum21 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1392
1707
|
var linearIntegrationSpec = defineIntegration({
|
|
1393
1708
|
meta: {
|
|
1394
1709
|
key: "project-management.linear",
|
|
@@ -1399,7 +1714,7 @@ var linearIntegrationSpec = defineIntegration({
|
|
|
1399
1714
|
domain: "productivity",
|
|
1400
1715
|
owners: ["@platform.integrations"],
|
|
1401
1716
|
tags: ["project-management", "linear"],
|
|
1402
|
-
stability:
|
|
1717
|
+
stability: StabilityEnum21.Beta
|
|
1403
1718
|
},
|
|
1404
1719
|
supportedModes: ["managed", "byok"],
|
|
1405
1720
|
capabilities: {
|
|
@@ -1474,7 +1789,7 @@ function registerLinearIntegration(registry) {
|
|
|
1474
1789
|
}
|
|
1475
1790
|
|
|
1476
1791
|
// src/integrations/providers/jira.ts
|
|
1477
|
-
import { StabilityEnum as
|
|
1792
|
+
import { StabilityEnum as StabilityEnum22 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1478
1793
|
var jiraIntegrationSpec = defineIntegration({
|
|
1479
1794
|
meta: {
|
|
1480
1795
|
key: "project-management.jira",
|
|
@@ -1485,7 +1800,7 @@ var jiraIntegrationSpec = defineIntegration({
|
|
|
1485
1800
|
domain: "productivity",
|
|
1486
1801
|
owners: ["@platform.integrations"],
|
|
1487
1802
|
tags: ["project-management", "jira"],
|
|
1488
|
-
stability:
|
|
1803
|
+
stability: StabilityEnum22.Beta
|
|
1489
1804
|
},
|
|
1490
1805
|
supportedModes: ["managed", "byok"],
|
|
1491
1806
|
capabilities: {
|
|
@@ -1561,7 +1876,7 @@ function registerJiraIntegration(registry) {
|
|
|
1561
1876
|
}
|
|
1562
1877
|
|
|
1563
1878
|
// src/integrations/providers/notion.ts
|
|
1564
|
-
import { StabilityEnum as
|
|
1879
|
+
import { StabilityEnum as StabilityEnum23 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1565
1880
|
var notionIntegrationSpec = defineIntegration({
|
|
1566
1881
|
meta: {
|
|
1567
1882
|
key: "project-management.notion",
|
|
@@ -1572,7 +1887,7 @@ var notionIntegrationSpec = defineIntegration({
|
|
|
1572
1887
|
domain: "productivity",
|
|
1573
1888
|
owners: ["@platform.integrations"],
|
|
1574
1889
|
tags: ["project-management", "notion"],
|
|
1575
|
-
stability:
|
|
1890
|
+
stability: StabilityEnum23.Beta
|
|
1576
1891
|
},
|
|
1577
1892
|
supportedModes: ["managed", "byok"],
|
|
1578
1893
|
capabilities: {
|
|
@@ -1660,7 +1975,7 @@ var VIDEO_FORMATS = {
|
|
|
1660
1975
|
};
|
|
1661
1976
|
|
|
1662
1977
|
// src/integrations/providers/granola.ts
|
|
1663
|
-
import { StabilityEnum as
|
|
1978
|
+
import { StabilityEnum as StabilityEnum24 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1664
1979
|
var granolaIntegrationSpec = defineIntegration({
|
|
1665
1980
|
meta: {
|
|
1666
1981
|
key: "meeting-recorder.granola",
|
|
@@ -1671,7 +1986,7 @@ var granolaIntegrationSpec = defineIntegration({
|
|
|
1671
1986
|
domain: "productivity",
|
|
1672
1987
|
owners: ["platform.integrations"],
|
|
1673
1988
|
tags: ["meeting-recorder", "granola", "transcripts"],
|
|
1674
|
-
stability:
|
|
1989
|
+
stability: StabilityEnum24.Experimental
|
|
1675
1990
|
},
|
|
1676
1991
|
supportedModes: ["byok"],
|
|
1677
1992
|
capabilities: {
|
|
@@ -1746,7 +2061,7 @@ function registerGranolaIntegration(registry) {
|
|
|
1746
2061
|
}
|
|
1747
2062
|
|
|
1748
2063
|
// src/integrations/providers/tldv.ts
|
|
1749
|
-
import { StabilityEnum as
|
|
2064
|
+
import { StabilityEnum as StabilityEnum25 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1750
2065
|
var tldvIntegrationSpec = defineIntegration({
|
|
1751
2066
|
meta: {
|
|
1752
2067
|
key: "meeting-recorder.tldv",
|
|
@@ -1757,7 +2072,7 @@ var tldvIntegrationSpec = defineIntegration({
|
|
|
1757
2072
|
domain: "productivity",
|
|
1758
2073
|
owners: ["platform.integrations"],
|
|
1759
2074
|
tags: ["meeting-recorder", "tldv", "transcripts"],
|
|
1760
|
-
stability:
|
|
2075
|
+
stability: StabilityEnum25.Experimental
|
|
1761
2076
|
},
|
|
1762
2077
|
supportedModes: ["byok"],
|
|
1763
2078
|
capabilities: {
|
|
@@ -1831,7 +2146,7 @@ function registerTldvIntegration(registry) {
|
|
|
1831
2146
|
}
|
|
1832
2147
|
|
|
1833
2148
|
// src/integrations/providers/fireflies.ts
|
|
1834
|
-
import { StabilityEnum as
|
|
2149
|
+
import { StabilityEnum as StabilityEnum26 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1835
2150
|
var firefliesIntegrationSpec = defineIntegration({
|
|
1836
2151
|
meta: {
|
|
1837
2152
|
key: "meeting-recorder.fireflies",
|
|
@@ -1842,7 +2157,7 @@ var firefliesIntegrationSpec = defineIntegration({
|
|
|
1842
2157
|
domain: "productivity",
|
|
1843
2158
|
owners: ["platform.integrations"],
|
|
1844
2159
|
tags: ["meeting-recorder", "fireflies", "transcripts"],
|
|
1845
|
-
stability:
|
|
2160
|
+
stability: StabilityEnum26.Experimental
|
|
1846
2161
|
},
|
|
1847
2162
|
supportedModes: ["byok"],
|
|
1848
2163
|
capabilities: {
|
|
@@ -1916,7 +2231,7 @@ function registerFirefliesIntegration(registry) {
|
|
|
1916
2231
|
}
|
|
1917
2232
|
|
|
1918
2233
|
// src/integrations/providers/fathom.ts
|
|
1919
|
-
import { StabilityEnum as
|
|
2234
|
+
import { StabilityEnum as StabilityEnum27 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1920
2235
|
var fathomIntegrationSpec = defineIntegration({
|
|
1921
2236
|
meta: {
|
|
1922
2237
|
key: "meeting-recorder.fathom",
|
|
@@ -1927,7 +2242,7 @@ var fathomIntegrationSpec = defineIntegration({
|
|
|
1927
2242
|
domain: "productivity",
|
|
1928
2243
|
owners: ["platform.integrations"],
|
|
1929
2244
|
tags: ["meeting-recorder", "fathom", "transcripts"],
|
|
1930
|
-
stability:
|
|
2245
|
+
stability: StabilityEnum27.Experimental
|
|
1931
2246
|
},
|
|
1932
2247
|
supportedModes: ["byok"],
|
|
1933
2248
|
capabilities: {
|
|
@@ -2044,6 +2359,8 @@ function createDefaultIntegrationSpecRegistry() {
|
|
|
2044
2359
|
registerTldvIntegration(registry);
|
|
2045
2360
|
registerFirefliesIntegration(registry);
|
|
2046
2361
|
registerFathomIntegration(registry);
|
|
2362
|
+
registerDeepgramIntegration(registry);
|
|
2363
|
+
registerOpenaiRealtimeIntegration(registry);
|
|
2047
2364
|
return registry;
|
|
2048
2365
|
}
|
|
2049
2366
|
export {
|
|
@@ -2061,6 +2378,8 @@ export {
|
|
|
2061
2378
|
registerPowensIntegration,
|
|
2062
2379
|
registerPostmarkIntegration,
|
|
2063
2380
|
registerPosthogIntegration,
|
|
2381
|
+
registerOpenaiRealtimeIntegration,
|
|
2382
|
+
registerOpenaiImageIntegration,
|
|
2064
2383
|
registerNotionIntegration,
|
|
2065
2384
|
registerMistralIntegration,
|
|
2066
2385
|
registerLinearIntegration,
|
|
@@ -2073,13 +2392,17 @@ export {
|
|
|
2073
2392
|
registerFirefliesIntegration,
|
|
2074
2393
|
registerFathomIntegration,
|
|
2075
2394
|
registerFalIntegration,
|
|
2395
|
+
registerFalImageIntegration,
|
|
2076
2396
|
registerElevenLabsIntegration,
|
|
2397
|
+
registerDeepgramIntegration,
|
|
2077
2398
|
redactPostHogLLMTelemetryPayload,
|
|
2078
2399
|
qdrantIntegrationSpec,
|
|
2079
2400
|
powensIntegrationSpec,
|
|
2080
2401
|
postmarkIntegrationSpec,
|
|
2081
2402
|
posthogLLMTelemetrySpec,
|
|
2082
2403
|
posthogIntegrationSpec,
|
|
2404
|
+
openaiRealtimeIntegrationSpec,
|
|
2405
|
+
openaiImageIntegrationSpec,
|
|
2083
2406
|
notionIntegrationSpec,
|
|
2084
2407
|
mistralIntegrationSpec,
|
|
2085
2408
|
linearIntegrationSpec,
|
|
@@ -2092,10 +2415,13 @@ export {
|
|
|
2092
2415
|
firefliesIntegrationSpec,
|
|
2093
2416
|
fathomIntegrationSpec,
|
|
2094
2417
|
falIntegrationSpec,
|
|
2418
|
+
falImageIntegrationSpec,
|
|
2095
2419
|
elevenLabsIntegrationSpec,
|
|
2420
|
+
deepgramIntegrationSpec,
|
|
2096
2421
|
createDefaultIntegrationSpecRegistry,
|
|
2097
2422
|
VIDEO_FORMATS,
|
|
2098
2423
|
POSTHOG_LLM_TELEMETRY_EVENTS,
|
|
2099
2424
|
POSTHOG_LLM_PII_FIELDS,
|
|
2100
|
-
POSTHOG_EVALUATION_TEMPLATES
|
|
2425
|
+
POSTHOG_EVALUATION_TEMPLATES,
|
|
2426
|
+
IMAGE_PRESETS
|
|
2101
2427
|
};
|