@contractspec/lib.contracts-spec 2.3.0 → 2.5.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/integrations/index.js +379 -53
- package/dist/integrations/providers/deepgram.d.ts +3 -0
- package/dist/integrations/providers/deepgram.js +129 -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 +122 -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 +46 -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 +126 -0
- package/dist/integrations/providers/openai-realtime.d.ts +3 -0
- package/dist/integrations/providers/openai-realtime.js +127 -0
- package/dist/integrations/providers/registry.js +192 -33
- 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/integrations/index.js +379 -53
- package/dist/node/integrations/providers/deepgram.js +129 -0
- package/dist/node/integrations/providers/elevenlabs.js +6 -3
- package/dist/node/integrations/providers/fal-image.js +122 -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 +46 -0
- package/dist/node/integrations/providers/index.js +380 -54
- package/dist/node/integrations/providers/openai-image.js +126 -0
- package/dist/node/integrations/providers/openai-realtime.js +127 -0
- package/dist/node/integrations/providers/registry.js +192 -33
- package/dist/node/integrations/providers/voice-video-sync.js +0 -0
- package/dist/node/translations/i18n-factory.js +229 -0
- package/dist/node/translations/index.js +64 -4
- package/dist/translations/i18n-factory.d.ts +90 -0
- package/dist/translations/i18n-factory.js +229 -0
- package/dist/translations/index.d.ts +1 -0
- package/dist/translations/index.js +64 -4
- package/package.json +88 -4
|
@@ -44,8 +44,166 @@ function makeIntegrationSpecKey(meta) {
|
|
|
44
44
|
return integrationKey(meta);
|
|
45
45
|
}
|
|
46
46
|
var defineIntegration = (spec) => spec;
|
|
47
|
-
// src/integrations/providers/
|
|
47
|
+
// src/integrations/providers/image.ts
|
|
48
|
+
var IMAGE_PRESETS = {
|
|
49
|
+
ogImage: { width: 1200, height: 630 },
|
|
50
|
+
twitterCard: { width: 1200, height: 675 },
|
|
51
|
+
instagramSquare: { width: 1080, height: 1080 },
|
|
52
|
+
instagramStory: { width: 1080, height: 1920 },
|
|
53
|
+
blogHero: { width: 1920, height: 1080 },
|
|
54
|
+
thumbnail: { width: 640, height: 360 },
|
|
55
|
+
favicon: { width: 512, height: 512 },
|
|
56
|
+
emailHeader: { width: 600, height: 200 },
|
|
57
|
+
illustration: { width: 1024, height: 1024 }
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// src/integrations/providers/fal-image.ts
|
|
48
61
|
import { StabilityEnum } from "@contractspec/lib.contracts-spec/ownership";
|
|
62
|
+
var falImageIntegrationSpec = defineIntegration({
|
|
63
|
+
meta: {
|
|
64
|
+
key: "ai-image.fal",
|
|
65
|
+
version: "1.0.0",
|
|
66
|
+
category: "ai-image",
|
|
67
|
+
title: "Fal Image Generation",
|
|
68
|
+
description: "Fal integration for AI image generation using Flux and Stable Diffusion models.",
|
|
69
|
+
domain: "ai",
|
|
70
|
+
owners: ["platform.ai"],
|
|
71
|
+
tags: ["image", "generation", "flux", "stable-diffusion"],
|
|
72
|
+
stability: StabilityEnum.Experimental
|
|
73
|
+
},
|
|
74
|
+
supportedModes: ["byok"],
|
|
75
|
+
capabilities: {
|
|
76
|
+
provides: [{ key: "ai.image.generation", version: "1.0.0" }]
|
|
77
|
+
},
|
|
78
|
+
configSchema: {
|
|
79
|
+
schema: {
|
|
80
|
+
type: "object",
|
|
81
|
+
properties: {
|
|
82
|
+
modelId: {
|
|
83
|
+
type: "string",
|
|
84
|
+
description: "Fal model endpoint (e.g. fal-ai/flux/dev)."
|
|
85
|
+
},
|
|
86
|
+
defaultFormat: {
|
|
87
|
+
type: "string",
|
|
88
|
+
enum: ["png", "jpg", "webp"]
|
|
89
|
+
},
|
|
90
|
+
defaultGuidanceScale: {
|
|
91
|
+
type: "number",
|
|
92
|
+
minimum: 1,
|
|
93
|
+
maximum: 20
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
example: {
|
|
98
|
+
modelId: "fal-ai/flux/dev",
|
|
99
|
+
defaultFormat: "png",
|
|
100
|
+
defaultGuidanceScale: 7.5
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
secretSchema: {
|
|
104
|
+
schema: {
|
|
105
|
+
type: "object",
|
|
106
|
+
required: ["apiKey"],
|
|
107
|
+
properties: {
|
|
108
|
+
apiKey: {
|
|
109
|
+
type: "string",
|
|
110
|
+
description: "Fal API key (FAL_KEY)."
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
example: {
|
|
115
|
+
apiKey: "key-id:key-secret"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
healthCheck: {
|
|
119
|
+
method: "custom",
|
|
120
|
+
timeoutMs: 7000
|
|
121
|
+
},
|
|
122
|
+
docsUrl: "https://fal.ai/models",
|
|
123
|
+
byokSetup: {
|
|
124
|
+
setupInstructions: "Create a Fal API key and ensure image generation model access is enabled."
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
function registerFalImageIntegration(registry) {
|
|
128
|
+
return registry.register(falImageIntegrationSpec);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// src/integrations/providers/openai-image.ts
|
|
132
|
+
import { StabilityEnum as StabilityEnum2 } from "@contractspec/lib.contracts-spec/ownership";
|
|
133
|
+
var openaiImageIntegrationSpec = defineIntegration({
|
|
134
|
+
meta: {
|
|
135
|
+
key: "ai-image.openai",
|
|
136
|
+
version: "1.0.0",
|
|
137
|
+
category: "ai-image",
|
|
138
|
+
title: "OpenAI Image Generation",
|
|
139
|
+
description: "OpenAI integration for AI image generation using DALL-E and gpt-image models.",
|
|
140
|
+
domain: "ai",
|
|
141
|
+
owners: ["platform.ai"],
|
|
142
|
+
tags: ["image", "generation", "dall-e", "gpt-image"],
|
|
143
|
+
stability: StabilityEnum2.Experimental
|
|
144
|
+
},
|
|
145
|
+
supportedModes: ["managed", "byok"],
|
|
146
|
+
capabilities: {
|
|
147
|
+
provides: [{ key: "ai.image.generation", version: "1.0.0" }]
|
|
148
|
+
},
|
|
149
|
+
configSchema: {
|
|
150
|
+
schema: {
|
|
151
|
+
type: "object",
|
|
152
|
+
properties: {
|
|
153
|
+
model: {
|
|
154
|
+
type: "string",
|
|
155
|
+
description: "OpenAI image model identifier (e.g. dall-e-3, gpt-image-1)."
|
|
156
|
+
},
|
|
157
|
+
defaultSize: {
|
|
158
|
+
type: "string",
|
|
159
|
+
enum: ["1024x1024", "1024x1792", "1792x1024"]
|
|
160
|
+
},
|
|
161
|
+
defaultQuality: {
|
|
162
|
+
type: "string",
|
|
163
|
+
enum: ["standard", "hd"]
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
example: {
|
|
168
|
+
model: "dall-e-3",
|
|
169
|
+
defaultSize: "1024x1024",
|
|
170
|
+
defaultQuality: "standard"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
secretSchema: {
|
|
174
|
+
schema: {
|
|
175
|
+
type: "object",
|
|
176
|
+
required: ["apiKey"],
|
|
177
|
+
properties: {
|
|
178
|
+
apiKey: {
|
|
179
|
+
type: "string",
|
|
180
|
+
description: "OpenAI API key with image generation permissions."
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
example: {
|
|
185
|
+
apiKey: "sk-***"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
healthCheck: {
|
|
189
|
+
method: "custom",
|
|
190
|
+
timeoutMs: 5000
|
|
191
|
+
},
|
|
192
|
+
docsUrl: "https://platform.openai.com/docs/guides/images",
|
|
193
|
+
constraints: {
|
|
194
|
+
rateLimit: {
|
|
195
|
+
rpm: 50
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
byokSetup: {
|
|
199
|
+
setupInstructions: "Create an OpenAI API key with image generation access enabled."
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
function registerOpenaiImageIntegration(registry) {
|
|
203
|
+
return registry.register(openaiImageIntegrationSpec);
|
|
204
|
+
}
|
|
205
|
+
// src/integrations/providers/stripe.ts
|
|
206
|
+
import { StabilityEnum as StabilityEnum3 } from "@contractspec/lib.contracts-spec/ownership";
|
|
49
207
|
var stripeIntegrationSpec = defineIntegration({
|
|
50
208
|
meta: {
|
|
51
209
|
key: "payments.stripe",
|
|
@@ -56,7 +214,7 @@ var stripeIntegrationSpec = defineIntegration({
|
|
|
56
214
|
domain: "payments",
|
|
57
215
|
owners: ["platform.payments"],
|
|
58
216
|
tags: ["payments", "psp"],
|
|
59
|
-
stability:
|
|
217
|
+
stability: StabilityEnum3.Stable
|
|
60
218
|
},
|
|
61
219
|
supportedModes: ["managed", "byok"],
|
|
62
220
|
capabilities: {
|
|
@@ -129,7 +287,7 @@ function registerStripeIntegration(registry) {
|
|
|
129
287
|
}
|
|
130
288
|
|
|
131
289
|
// src/integrations/providers/postmark.ts
|
|
132
|
-
import { StabilityEnum as
|
|
290
|
+
import { StabilityEnum as StabilityEnum4 } from "@contractspec/lib.contracts-spec/ownership";
|
|
133
291
|
var postmarkIntegrationSpec = defineIntegration({
|
|
134
292
|
meta: {
|
|
135
293
|
key: "email.postmark",
|
|
@@ -140,7 +298,7 @@ var postmarkIntegrationSpec = defineIntegration({
|
|
|
140
298
|
domain: "communications",
|
|
141
299
|
owners: ["platform.messaging"],
|
|
142
300
|
tags: ["email", "transactional"],
|
|
143
|
-
stability:
|
|
301
|
+
stability: StabilityEnum4.Stable
|
|
144
302
|
},
|
|
145
303
|
supportedModes: ["managed", "byok"],
|
|
146
304
|
capabilities: {
|
|
@@ -206,7 +364,7 @@ function registerPostmarkIntegration(registry) {
|
|
|
206
364
|
}
|
|
207
365
|
|
|
208
366
|
// src/integrations/providers/qdrant.ts
|
|
209
|
-
import { StabilityEnum as
|
|
367
|
+
import { StabilityEnum as StabilityEnum5 } from "@contractspec/lib.contracts-spec/ownership";
|
|
210
368
|
var qdrantIntegrationSpec = defineIntegration({
|
|
211
369
|
meta: {
|
|
212
370
|
key: "vectordb.qdrant",
|
|
@@ -217,7 +375,7 @@ var qdrantIntegrationSpec = defineIntegration({
|
|
|
217
375
|
domain: "ai",
|
|
218
376
|
owners: ["platform.ai"],
|
|
219
377
|
tags: ["vector-db", "search"],
|
|
220
|
-
stability:
|
|
378
|
+
stability: StabilityEnum5.Experimental
|
|
221
379
|
},
|
|
222
380
|
supportedModes: ["managed", "byok"],
|
|
223
381
|
capabilities: {
|
|
@@ -286,7 +444,7 @@ function registerQdrantIntegration(registry) {
|
|
|
286
444
|
}
|
|
287
445
|
|
|
288
446
|
// src/integrations/providers/supabase-vector.ts
|
|
289
|
-
import { StabilityEnum as
|
|
447
|
+
import { StabilityEnum as StabilityEnum6 } from "@contractspec/lib.contracts-spec/ownership";
|
|
290
448
|
var supabaseVectorIntegrationSpec = defineIntegration({
|
|
291
449
|
meta: {
|
|
292
450
|
key: "vectordb.supabase",
|
|
@@ -297,7 +455,7 @@ var supabaseVectorIntegrationSpec = defineIntegration({
|
|
|
297
455
|
domain: "ai",
|
|
298
456
|
owners: ["platform.ai"],
|
|
299
457
|
tags: ["vector-db", "supabase", "pgvector"],
|
|
300
|
-
stability:
|
|
458
|
+
stability: StabilityEnum6.Beta
|
|
301
459
|
},
|
|
302
460
|
supportedModes: ["managed", "byok"],
|
|
303
461
|
capabilities: {
|
|
@@ -372,7 +530,7 @@ function registerSupabaseVectorIntegration(registry) {
|
|
|
372
530
|
}
|
|
373
531
|
|
|
374
532
|
// src/integrations/providers/supabase-postgres.ts
|
|
375
|
-
import { StabilityEnum as
|
|
533
|
+
import { StabilityEnum as StabilityEnum7 } from "@contractspec/lib.contracts-spec/ownership";
|
|
376
534
|
var supabasePostgresIntegrationSpec = defineIntegration({
|
|
377
535
|
meta: {
|
|
378
536
|
key: "database.supabase",
|
|
@@ -383,7 +541,7 @@ var supabasePostgresIntegrationSpec = defineIntegration({
|
|
|
383
541
|
domain: "infrastructure",
|
|
384
542
|
owners: ["platform.infrastructure"],
|
|
385
543
|
tags: ["database", "postgres", "supabase"],
|
|
386
|
-
stability:
|
|
544
|
+
stability: StabilityEnum7.Beta
|
|
387
545
|
},
|
|
388
546
|
supportedModes: ["managed", "byok"],
|
|
389
547
|
capabilities: {
|
|
@@ -438,7 +596,7 @@ function registerSupabasePostgresIntegration(registry) {
|
|
|
438
596
|
}
|
|
439
597
|
|
|
440
598
|
// src/integrations/providers/mistral.ts
|
|
441
|
-
import { StabilityEnum as
|
|
599
|
+
import { StabilityEnum as StabilityEnum8 } from "@contractspec/lib.contracts-spec/ownership";
|
|
442
600
|
var mistralIntegrationSpec = defineIntegration({
|
|
443
601
|
meta: {
|
|
444
602
|
key: "ai-llm.mistral",
|
|
@@ -449,7 +607,7 @@ var mistralIntegrationSpec = defineIntegration({
|
|
|
449
607
|
domain: "ai",
|
|
450
608
|
owners: ["platform.ai"],
|
|
451
609
|
tags: ["ai", "llm", "embeddings"],
|
|
452
|
-
stability:
|
|
610
|
+
stability: StabilityEnum8.Experimental
|
|
453
611
|
},
|
|
454
612
|
supportedModes: ["managed", "byok"],
|
|
455
613
|
capabilities: {
|
|
@@ -511,22 +669,25 @@ function registerMistralIntegration(registry) {
|
|
|
511
669
|
}
|
|
512
670
|
|
|
513
671
|
// src/integrations/providers/elevenlabs.ts
|
|
514
|
-
import { StabilityEnum as
|
|
672
|
+
import { StabilityEnum as StabilityEnum9 } from "@contractspec/lib.contracts-spec/ownership";
|
|
515
673
|
var elevenLabsIntegrationSpec = defineIntegration({
|
|
516
674
|
meta: {
|
|
517
675
|
key: "ai-voice.elevenlabs",
|
|
518
676
|
version: "1.0.0",
|
|
519
|
-
category: "ai-voice",
|
|
677
|
+
category: "ai-voice-tts",
|
|
520
678
|
title: "ElevenLabs Text-to-Speech",
|
|
521
679
|
description: "ElevenLabs integration for neural voice synthesis and voice catalog access.",
|
|
522
680
|
domain: "ai",
|
|
523
681
|
owners: ["platform.ai"],
|
|
524
|
-
tags: ["voice", "tts"],
|
|
525
|
-
stability:
|
|
682
|
+
tags: ["voice", "tts", "stt"],
|
|
683
|
+
stability: StabilityEnum9.Beta
|
|
526
684
|
},
|
|
527
685
|
supportedModes: ["managed", "byok"],
|
|
528
686
|
capabilities: {
|
|
529
|
-
provides: [
|
|
687
|
+
provides: [
|
|
688
|
+
{ key: "ai.voice.tts", version: "1.0.0" },
|
|
689
|
+
{ key: "ai.voice.stt", version: "1.0.0" }
|
|
690
|
+
]
|
|
530
691
|
},
|
|
531
692
|
configSchema: {
|
|
532
693
|
schema: {
|
|
@@ -576,22 +737,22 @@ function registerElevenLabsIntegration(registry) {
|
|
|
576
737
|
}
|
|
577
738
|
|
|
578
739
|
// src/integrations/providers/gradium.ts
|
|
579
|
-
import { StabilityEnum as
|
|
740
|
+
import { StabilityEnum as StabilityEnum10 } from "@contractspec/lib.contracts-spec/ownership";
|
|
580
741
|
var gradiumIntegrationSpec = defineIntegration({
|
|
581
742
|
meta: {
|
|
582
743
|
key: "ai-voice.gradium",
|
|
583
744
|
version: "1.0.0",
|
|
584
|
-
category: "ai-voice",
|
|
745
|
+
category: "ai-voice-tts",
|
|
585
746
|
title: "Gradium Text-to-Speech",
|
|
586
747
|
description: "Gradium integration for low-latency voice synthesis and voice catalog access.",
|
|
587
748
|
domain: "ai",
|
|
588
749
|
owners: ["platform.ai"],
|
|
589
750
|
tags: ["voice", "tts", "realtime"],
|
|
590
|
-
stability:
|
|
751
|
+
stability: StabilityEnum10.Experimental
|
|
591
752
|
},
|
|
592
753
|
supportedModes: ["byok"],
|
|
593
754
|
capabilities: {
|
|
594
|
-
provides: [{ key: "ai.voice.
|
|
755
|
+
provides: [{ key: "ai.voice.tts", version: "1.0.0" }]
|
|
595
756
|
},
|
|
596
757
|
configSchema: {
|
|
597
758
|
schema: {
|
|
@@ -665,22 +826,22 @@ function registerGradiumIntegration(registry) {
|
|
|
665
826
|
}
|
|
666
827
|
|
|
667
828
|
// src/integrations/providers/fal.ts
|
|
668
|
-
import { StabilityEnum as
|
|
829
|
+
import { StabilityEnum as StabilityEnum11 } from "@contractspec/lib.contracts-spec/ownership";
|
|
669
830
|
var falIntegrationSpec = defineIntegration({
|
|
670
831
|
meta: {
|
|
671
832
|
key: "ai-voice.fal",
|
|
672
833
|
version: "1.0.0",
|
|
673
|
-
category: "ai-voice",
|
|
834
|
+
category: "ai-voice-tts",
|
|
674
835
|
title: "Fal Chatterbox Text-to-Speech",
|
|
675
836
|
description: "Fal integration for voice synthesis using Chatterbox text-to-speech models.",
|
|
676
837
|
domain: "ai",
|
|
677
838
|
owners: ["platform.ai"],
|
|
678
839
|
tags: ["voice", "tts", "chatterbox"],
|
|
679
|
-
stability:
|
|
840
|
+
stability: StabilityEnum11.Experimental
|
|
680
841
|
},
|
|
681
842
|
supportedModes: ["byok"],
|
|
682
843
|
capabilities: {
|
|
683
|
-
provides: [{ key: "ai.voice.
|
|
844
|
+
provides: [{ key: "ai.voice.tts", version: "1.0.0" }]
|
|
684
845
|
},
|
|
685
846
|
configSchema: {
|
|
686
847
|
schema: {
|
|
@@ -755,8 +916,162 @@ function registerFalIntegration(registry) {
|
|
|
755
916
|
return registry.register(falIntegrationSpec);
|
|
756
917
|
}
|
|
757
918
|
|
|
919
|
+
// src/integrations/providers/deepgram.ts
|
|
920
|
+
import { StabilityEnum as StabilityEnum12 } from "@contractspec/lib.contracts-spec/ownership";
|
|
921
|
+
var deepgramIntegrationSpec = defineIntegration({
|
|
922
|
+
meta: {
|
|
923
|
+
key: "ai-voice-stt.deepgram",
|
|
924
|
+
version: "1.0.0",
|
|
925
|
+
category: "ai-voice-stt",
|
|
926
|
+
title: "Deepgram Speech-to-Text",
|
|
927
|
+
description: "Deepgram integration for real-time and batch speech-to-text transcription with speaker diarization.",
|
|
928
|
+
domain: "ai",
|
|
929
|
+
owners: ["platform.ai"],
|
|
930
|
+
tags: ["voice", "stt", "transcription", "diarization"],
|
|
931
|
+
stability: StabilityEnum12.Experimental
|
|
932
|
+
},
|
|
933
|
+
supportedModes: ["byok"],
|
|
934
|
+
capabilities: {
|
|
935
|
+
provides: [
|
|
936
|
+
{ key: "ai.voice.stt", version: "1.0.0" },
|
|
937
|
+
{ key: "ai.voice.conversational", version: "1.0.0" }
|
|
938
|
+
]
|
|
939
|
+
},
|
|
940
|
+
configSchema: {
|
|
941
|
+
schema: {
|
|
942
|
+
type: "object",
|
|
943
|
+
properties: {
|
|
944
|
+
model: {
|
|
945
|
+
type: "string",
|
|
946
|
+
description: "Deepgram model to use (e.g. nova-3, nova-2, enhanced)."
|
|
947
|
+
},
|
|
948
|
+
language: {
|
|
949
|
+
type: "string",
|
|
950
|
+
description: "Default language code for transcription (e.g. en-US)."
|
|
951
|
+
},
|
|
952
|
+
enableDiarization: {
|
|
953
|
+
type: "boolean",
|
|
954
|
+
description: "Enable speaker diarization by default."
|
|
955
|
+
},
|
|
956
|
+
enableSmartFormat: {
|
|
957
|
+
type: "boolean",
|
|
958
|
+
description: "Enable smart formatting (punctuation, capitalization)."
|
|
959
|
+
}
|
|
960
|
+
}
|
|
961
|
+
},
|
|
962
|
+
example: {
|
|
963
|
+
model: "nova-3",
|
|
964
|
+
language: "en-US",
|
|
965
|
+
enableDiarization: true,
|
|
966
|
+
enableSmartFormat: true
|
|
967
|
+
}
|
|
968
|
+
},
|
|
969
|
+
secretSchema: {
|
|
970
|
+
schema: {
|
|
971
|
+
type: "object",
|
|
972
|
+
required: ["apiKey"],
|
|
973
|
+
properties: {
|
|
974
|
+
apiKey: {
|
|
975
|
+
type: "string",
|
|
976
|
+
description: "Deepgram API key with transcription permissions."
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
},
|
|
980
|
+
example: {
|
|
981
|
+
apiKey: "dg_***"
|
|
982
|
+
}
|
|
983
|
+
},
|
|
984
|
+
healthCheck: {
|
|
985
|
+
method: "custom",
|
|
986
|
+
timeoutMs: 5000
|
|
987
|
+
},
|
|
988
|
+
docsUrl: "https://developers.deepgram.com/docs",
|
|
989
|
+
byokSetup: {
|
|
990
|
+
setupInstructions: "Create a Deepgram API key with speech-to-text permissions and store it in your secret provider."
|
|
991
|
+
}
|
|
992
|
+
});
|
|
993
|
+
function registerDeepgramIntegration(registry) {
|
|
994
|
+
return registry.register(deepgramIntegrationSpec);
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
// src/integrations/providers/openai-realtime.ts
|
|
998
|
+
import { StabilityEnum as StabilityEnum13 } from "@contractspec/lib.contracts-spec/ownership";
|
|
999
|
+
var openaiRealtimeIntegrationSpec = defineIntegration({
|
|
1000
|
+
meta: {
|
|
1001
|
+
key: "ai-voice-conv.openai",
|
|
1002
|
+
version: "1.0.0",
|
|
1003
|
+
category: "ai-voice-conversational",
|
|
1004
|
+
title: "OpenAI Realtime Voice",
|
|
1005
|
+
description: "OpenAI Realtime API integration for bidirectional conversational voice with GPT models.",
|
|
1006
|
+
domain: "ai",
|
|
1007
|
+
owners: ["platform.ai"],
|
|
1008
|
+
tags: ["voice", "conversational", "realtime", "openai"],
|
|
1009
|
+
stability: StabilityEnum13.Experimental
|
|
1010
|
+
},
|
|
1011
|
+
supportedModes: ["byok"],
|
|
1012
|
+
capabilities: {
|
|
1013
|
+
provides: [{ key: "ai.voice.conversational", version: "1.0.0" }]
|
|
1014
|
+
},
|
|
1015
|
+
configSchema: {
|
|
1016
|
+
schema: {
|
|
1017
|
+
type: "object",
|
|
1018
|
+
properties: {
|
|
1019
|
+
model: {
|
|
1020
|
+
type: "string",
|
|
1021
|
+
description: "OpenAI model for realtime conversations (e.g. gpt-4o-realtime-preview)."
|
|
1022
|
+
},
|
|
1023
|
+
defaultVoice: {
|
|
1024
|
+
type: "string",
|
|
1025
|
+
description: "Default voice for agent responses (e.g. alloy, echo, shimmer)."
|
|
1026
|
+
},
|
|
1027
|
+
turnDetection: {
|
|
1028
|
+
type: "string",
|
|
1029
|
+
enum: ["server_vad", "push_to_talk"],
|
|
1030
|
+
description: "Turn detection strategy."
|
|
1031
|
+
},
|
|
1032
|
+
maxSessionDurationSeconds: {
|
|
1033
|
+
type: "number",
|
|
1034
|
+
description: "Maximum session duration in seconds."
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
},
|
|
1038
|
+
example: {
|
|
1039
|
+
model: "gpt-4o-realtime-preview",
|
|
1040
|
+
defaultVoice: "alloy",
|
|
1041
|
+
turnDetection: "server_vad",
|
|
1042
|
+
maxSessionDurationSeconds: 600
|
|
1043
|
+
}
|
|
1044
|
+
},
|
|
1045
|
+
secretSchema: {
|
|
1046
|
+
schema: {
|
|
1047
|
+
type: "object",
|
|
1048
|
+
required: ["apiKey"],
|
|
1049
|
+
properties: {
|
|
1050
|
+
apiKey: {
|
|
1051
|
+
type: "string",
|
|
1052
|
+
description: "OpenAI API key with realtime API access."
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
example: {
|
|
1057
|
+
apiKey: "sk-***"
|
|
1058
|
+
}
|
|
1059
|
+
},
|
|
1060
|
+
healthCheck: {
|
|
1061
|
+
method: "custom",
|
|
1062
|
+
timeoutMs: 5000
|
|
1063
|
+
},
|
|
1064
|
+
docsUrl: "https://platform.openai.com/docs/guides/realtime",
|
|
1065
|
+
byokSetup: {
|
|
1066
|
+
setupInstructions: "Create an OpenAI API key with Realtime API access enabled and store it in your secret provider."
|
|
1067
|
+
}
|
|
1068
|
+
});
|
|
1069
|
+
function registerOpenaiRealtimeIntegration(registry) {
|
|
1070
|
+
return registry.register(openaiRealtimeIntegrationSpec);
|
|
1071
|
+
}
|
|
1072
|
+
|
|
758
1073
|
// src/integrations/providers/gmail.ts
|
|
759
|
-
import { StabilityEnum as
|
|
1074
|
+
import { StabilityEnum as StabilityEnum14 } from "@contractspec/lib.contracts-spec/ownership";
|
|
760
1075
|
var gmailIntegrationSpec = defineIntegration({
|
|
761
1076
|
meta: {
|
|
762
1077
|
key: "email.gmail",
|
|
@@ -767,7 +1082,7 @@ var gmailIntegrationSpec = defineIntegration({
|
|
|
767
1082
|
domain: "communications",
|
|
768
1083
|
owners: ["platform.messaging"],
|
|
769
1084
|
tags: ["email", "gmail"],
|
|
770
|
-
stability:
|
|
1085
|
+
stability: StabilityEnum14.Beta
|
|
771
1086
|
},
|
|
772
1087
|
supportedModes: ["managed", "byok"],
|
|
773
1088
|
capabilities: {
|
|
@@ -844,7 +1159,7 @@ function registerGmailIntegration(registry) {
|
|
|
844
1159
|
}
|
|
845
1160
|
|
|
846
1161
|
// src/integrations/providers/google-calendar.ts
|
|
847
|
-
import { StabilityEnum as
|
|
1162
|
+
import { StabilityEnum as StabilityEnum15 } from "@contractspec/lib.contracts-spec/ownership";
|
|
848
1163
|
var googleCalendarIntegrationSpec = defineIntegration({
|
|
849
1164
|
meta: {
|
|
850
1165
|
key: "calendar.google",
|
|
@@ -855,7 +1170,7 @@ var googleCalendarIntegrationSpec = defineIntegration({
|
|
|
855
1170
|
domain: "productivity",
|
|
856
1171
|
owners: ["platform.messaging"],
|
|
857
1172
|
tags: ["calendar", "google"],
|
|
858
|
-
stability:
|
|
1173
|
+
stability: StabilityEnum15.Beta
|
|
859
1174
|
},
|
|
860
1175
|
supportedModes: ["managed", "byok"],
|
|
861
1176
|
capabilities: {
|
|
@@ -915,7 +1230,7 @@ function registerGoogleCalendarIntegration(registry) {
|
|
|
915
1230
|
}
|
|
916
1231
|
|
|
917
1232
|
// src/integrations/providers/twilio-sms.ts
|
|
918
|
-
import { StabilityEnum as
|
|
1233
|
+
import { StabilityEnum as StabilityEnum16 } from "@contractspec/lib.contracts-spec/ownership";
|
|
919
1234
|
var twilioSmsIntegrationSpec = defineIntegration({
|
|
920
1235
|
meta: {
|
|
921
1236
|
key: "sms.twilio",
|
|
@@ -926,7 +1241,7 @@ var twilioSmsIntegrationSpec = defineIntegration({
|
|
|
926
1241
|
domain: "communications",
|
|
927
1242
|
owners: ["platform.messaging"],
|
|
928
1243
|
tags: ["sms", "messaging"],
|
|
929
|
-
stability:
|
|
1244
|
+
stability: StabilityEnum16.Stable
|
|
930
1245
|
},
|
|
931
1246
|
supportedModes: ["managed", "byok"],
|
|
932
1247
|
capabilities: {
|
|
@@ -985,7 +1300,7 @@ function registerTwilioSmsIntegration(registry) {
|
|
|
985
1300
|
}
|
|
986
1301
|
|
|
987
1302
|
// src/integrations/providers/gcs-storage.ts
|
|
988
|
-
import { StabilityEnum as
|
|
1303
|
+
import { StabilityEnum as StabilityEnum17 } from "@contractspec/lib.contracts-spec/ownership";
|
|
989
1304
|
var gcsStorageIntegrationSpec = defineIntegration({
|
|
990
1305
|
meta: {
|
|
991
1306
|
key: "storage.gcs",
|
|
@@ -996,7 +1311,7 @@ var gcsStorageIntegrationSpec = defineIntegration({
|
|
|
996
1311
|
domain: "infrastructure",
|
|
997
1312
|
owners: ["platform.infrastructure"],
|
|
998
1313
|
tags: ["storage", "gcs", "google-cloud"],
|
|
999
|
-
stability:
|
|
1314
|
+
stability: StabilityEnum17.Beta
|
|
1000
1315
|
},
|
|
1001
1316
|
supportedModes: ["managed", "byok"],
|
|
1002
1317
|
capabilities: {
|
|
@@ -1061,7 +1376,7 @@ function registerGcsStorageIntegration(registry) {
|
|
|
1061
1376
|
}
|
|
1062
1377
|
|
|
1063
1378
|
// src/integrations/providers/powens.ts
|
|
1064
|
-
import { StabilityEnum as
|
|
1379
|
+
import { StabilityEnum as StabilityEnum18 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1065
1380
|
var powensIntegrationSpec = defineIntegration({
|
|
1066
1381
|
meta: {
|
|
1067
1382
|
key: "openbanking.powens",
|
|
@@ -1072,7 +1387,7 @@ var powensIntegrationSpec = defineIntegration({
|
|
|
1072
1387
|
domain: "finance",
|
|
1073
1388
|
owners: ["platform.finance"],
|
|
1074
1389
|
tags: ["open-banking", "powens", "finance"],
|
|
1075
|
-
stability:
|
|
1390
|
+
stability: StabilityEnum18.Experimental
|
|
1076
1391
|
},
|
|
1077
1392
|
supportedModes: ["byok"],
|
|
1078
1393
|
capabilities: {
|
|
@@ -1164,7 +1479,7 @@ function registerPowensIntegration(registry) {
|
|
|
1164
1479
|
}
|
|
1165
1480
|
|
|
1166
1481
|
// src/integrations/providers/posthog.ts
|
|
1167
|
-
import { StabilityEnum as
|
|
1482
|
+
import { StabilityEnum as StabilityEnum19 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1168
1483
|
var posthogIntegrationSpec = defineIntegration({
|
|
1169
1484
|
meta: {
|
|
1170
1485
|
key: "analytics.posthog",
|
|
@@ -1175,7 +1490,7 @@ var posthogIntegrationSpec = defineIntegration({
|
|
|
1175
1490
|
domain: "analytics",
|
|
1176
1491
|
owners: ["@platform.integrations"],
|
|
1177
1492
|
tags: ["analytics", "posthog", "llm", "ai"],
|
|
1178
|
-
stability:
|
|
1493
|
+
stability: StabilityEnum19.Beta
|
|
1179
1494
|
},
|
|
1180
1495
|
supportedModes: ["managed", "byok"],
|
|
1181
1496
|
capabilities: {
|
|
@@ -1249,7 +1564,7 @@ function registerPosthogIntegration(registry) {
|
|
|
1249
1564
|
}
|
|
1250
1565
|
|
|
1251
1566
|
// src/integrations/providers/posthog-llm-telemetry.ts
|
|
1252
|
-
import { StabilityEnum as
|
|
1567
|
+
import { StabilityEnum as StabilityEnum20 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1253
1568
|
var posthogLLMTelemetrySpec = {
|
|
1254
1569
|
meta: {
|
|
1255
1570
|
key: "analytics.posthog.llm",
|
|
@@ -1259,7 +1574,7 @@ var posthogLLMTelemetrySpec = {
|
|
|
1259
1574
|
domain: "analytics",
|
|
1260
1575
|
owners: ["@platform.integrations"],
|
|
1261
1576
|
tags: ["analytics", "posthog", "llm", "ai", "telemetry"],
|
|
1262
|
-
stability:
|
|
1577
|
+
stability: StabilityEnum20.Beta
|
|
1263
1578
|
},
|
|
1264
1579
|
events: [
|
|
1265
1580
|
{
|
|
@@ -1418,7 +1733,7 @@ function redactPostHogLLMTelemetryPayload(payload) {
|
|
|
1418
1733
|
}
|
|
1419
1734
|
|
|
1420
1735
|
// src/integrations/providers/linear.ts
|
|
1421
|
-
import { StabilityEnum as
|
|
1736
|
+
import { StabilityEnum as StabilityEnum21 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1422
1737
|
var linearIntegrationSpec = defineIntegration({
|
|
1423
1738
|
meta: {
|
|
1424
1739
|
key: "project-management.linear",
|
|
@@ -1429,7 +1744,7 @@ var linearIntegrationSpec = defineIntegration({
|
|
|
1429
1744
|
domain: "productivity",
|
|
1430
1745
|
owners: ["@platform.integrations"],
|
|
1431
1746
|
tags: ["project-management", "linear"],
|
|
1432
|
-
stability:
|
|
1747
|
+
stability: StabilityEnum21.Beta
|
|
1433
1748
|
},
|
|
1434
1749
|
supportedModes: ["managed", "byok"],
|
|
1435
1750
|
capabilities: {
|
|
@@ -1504,7 +1819,7 @@ function registerLinearIntegration(registry) {
|
|
|
1504
1819
|
}
|
|
1505
1820
|
|
|
1506
1821
|
// src/integrations/providers/jira.ts
|
|
1507
|
-
import { StabilityEnum as
|
|
1822
|
+
import { StabilityEnum as StabilityEnum22 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1508
1823
|
var jiraIntegrationSpec = defineIntegration({
|
|
1509
1824
|
meta: {
|
|
1510
1825
|
key: "project-management.jira",
|
|
@@ -1515,7 +1830,7 @@ var jiraIntegrationSpec = defineIntegration({
|
|
|
1515
1830
|
domain: "productivity",
|
|
1516
1831
|
owners: ["@platform.integrations"],
|
|
1517
1832
|
tags: ["project-management", "jira"],
|
|
1518
|
-
stability:
|
|
1833
|
+
stability: StabilityEnum22.Beta
|
|
1519
1834
|
},
|
|
1520
1835
|
supportedModes: ["managed", "byok"],
|
|
1521
1836
|
capabilities: {
|
|
@@ -1591,7 +1906,7 @@ function registerJiraIntegration(registry) {
|
|
|
1591
1906
|
}
|
|
1592
1907
|
|
|
1593
1908
|
// src/integrations/providers/notion.ts
|
|
1594
|
-
import { StabilityEnum as
|
|
1909
|
+
import { StabilityEnum as StabilityEnum23 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1595
1910
|
var notionIntegrationSpec = defineIntegration({
|
|
1596
1911
|
meta: {
|
|
1597
1912
|
key: "project-management.notion",
|
|
@@ -1602,7 +1917,7 @@ var notionIntegrationSpec = defineIntegration({
|
|
|
1602
1917
|
domain: "productivity",
|
|
1603
1918
|
owners: ["@platform.integrations"],
|
|
1604
1919
|
tags: ["project-management", "notion"],
|
|
1605
|
-
stability:
|
|
1920
|
+
stability: StabilityEnum23.Beta
|
|
1606
1921
|
},
|
|
1607
1922
|
supportedModes: ["managed", "byok"],
|
|
1608
1923
|
capabilities: {
|
|
@@ -1683,7 +1998,7 @@ function registerNotionIntegration(registry) {
|
|
|
1683
1998
|
}
|
|
1684
1999
|
|
|
1685
2000
|
// src/integrations/providers/granola.ts
|
|
1686
|
-
import { StabilityEnum as
|
|
2001
|
+
import { StabilityEnum as StabilityEnum24 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1687
2002
|
var granolaIntegrationSpec = defineIntegration({
|
|
1688
2003
|
meta: {
|
|
1689
2004
|
key: "meeting-recorder.granola",
|
|
@@ -1694,7 +2009,7 @@ var granolaIntegrationSpec = defineIntegration({
|
|
|
1694
2009
|
domain: "productivity",
|
|
1695
2010
|
owners: ["platform.integrations"],
|
|
1696
2011
|
tags: ["meeting-recorder", "granola", "transcripts"],
|
|
1697
|
-
stability:
|
|
2012
|
+
stability: StabilityEnum24.Experimental
|
|
1698
2013
|
},
|
|
1699
2014
|
supportedModes: ["byok"],
|
|
1700
2015
|
capabilities: {
|
|
@@ -1769,7 +2084,7 @@ function registerGranolaIntegration(registry) {
|
|
|
1769
2084
|
}
|
|
1770
2085
|
|
|
1771
2086
|
// src/integrations/providers/tldv.ts
|
|
1772
|
-
import { StabilityEnum as
|
|
2087
|
+
import { StabilityEnum as StabilityEnum25 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1773
2088
|
var tldvIntegrationSpec = defineIntegration({
|
|
1774
2089
|
meta: {
|
|
1775
2090
|
key: "meeting-recorder.tldv",
|
|
@@ -1780,7 +2095,7 @@ var tldvIntegrationSpec = defineIntegration({
|
|
|
1780
2095
|
domain: "productivity",
|
|
1781
2096
|
owners: ["platform.integrations"],
|
|
1782
2097
|
tags: ["meeting-recorder", "tldv", "transcripts"],
|
|
1783
|
-
stability:
|
|
2098
|
+
stability: StabilityEnum25.Experimental
|
|
1784
2099
|
},
|
|
1785
2100
|
supportedModes: ["byok"],
|
|
1786
2101
|
capabilities: {
|
|
@@ -1854,7 +2169,7 @@ function registerTldvIntegration(registry) {
|
|
|
1854
2169
|
}
|
|
1855
2170
|
|
|
1856
2171
|
// src/integrations/providers/fireflies.ts
|
|
1857
|
-
import { StabilityEnum as
|
|
2172
|
+
import { StabilityEnum as StabilityEnum26 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1858
2173
|
var firefliesIntegrationSpec = defineIntegration({
|
|
1859
2174
|
meta: {
|
|
1860
2175
|
key: "meeting-recorder.fireflies",
|
|
@@ -1865,7 +2180,7 @@ var firefliesIntegrationSpec = defineIntegration({
|
|
|
1865
2180
|
domain: "productivity",
|
|
1866
2181
|
owners: ["platform.integrations"],
|
|
1867
2182
|
tags: ["meeting-recorder", "fireflies", "transcripts"],
|
|
1868
|
-
stability:
|
|
2183
|
+
stability: StabilityEnum26.Experimental
|
|
1869
2184
|
},
|
|
1870
2185
|
supportedModes: ["byok"],
|
|
1871
2186
|
capabilities: {
|
|
@@ -1939,7 +2254,7 @@ function registerFirefliesIntegration(registry) {
|
|
|
1939
2254
|
}
|
|
1940
2255
|
|
|
1941
2256
|
// src/integrations/providers/fathom.ts
|
|
1942
|
-
import { StabilityEnum as
|
|
2257
|
+
import { StabilityEnum as StabilityEnum27 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1943
2258
|
var fathomIntegrationSpec = defineIntegration({
|
|
1944
2259
|
meta: {
|
|
1945
2260
|
key: "meeting-recorder.fathom",
|
|
@@ -1950,7 +2265,7 @@ var fathomIntegrationSpec = defineIntegration({
|
|
|
1950
2265
|
domain: "productivity",
|
|
1951
2266
|
owners: ["platform.integrations"],
|
|
1952
2267
|
tags: ["meeting-recorder", "fathom", "transcripts"],
|
|
1953
|
-
stability:
|
|
2268
|
+
stability: StabilityEnum27.Experimental
|
|
1954
2269
|
},
|
|
1955
2270
|
supportedModes: ["byok"],
|
|
1956
2271
|
capabilities: {
|
|
@@ -2067,6 +2382,8 @@ function createDefaultIntegrationSpecRegistry() {
|
|
|
2067
2382
|
registerTldvIntegration(registry);
|
|
2068
2383
|
registerFirefliesIntegration(registry);
|
|
2069
2384
|
registerFathomIntegration(registry);
|
|
2385
|
+
registerDeepgramIntegration(registry);
|
|
2386
|
+
registerOpenaiRealtimeIntegration(registry);
|
|
2070
2387
|
return registry;
|
|
2071
2388
|
}
|
|
2072
2389
|
// src/integrations/openbanking/models.ts
|
|
@@ -3219,6 +3536,8 @@ export {
|
|
|
3219
3536
|
registerPowensIntegration,
|
|
3220
3537
|
registerPostmarkIntegration,
|
|
3221
3538
|
registerPosthogIntegration,
|
|
3539
|
+
registerOpenaiRealtimeIntegration,
|
|
3540
|
+
registerOpenaiImageIntegration,
|
|
3222
3541
|
registerOpenBankingContracts,
|
|
3223
3542
|
registerNotionIntegration,
|
|
3224
3543
|
registerMistralIntegration,
|
|
@@ -3233,7 +3552,9 @@ export {
|
|
|
3233
3552
|
registerFirefliesIntegration,
|
|
3234
3553
|
registerFathomIntegration,
|
|
3235
3554
|
registerFalIntegration,
|
|
3555
|
+
registerFalImageIntegration,
|
|
3236
3556
|
registerElevenLabsIntegration,
|
|
3557
|
+
registerDeepgramIntegration,
|
|
3237
3558
|
redactPostHogLLMTelemetryPayload,
|
|
3238
3559
|
redactOpenBankingTelemetryPayload,
|
|
3239
3560
|
redactMeetingRecorderTelemetryPayload,
|
|
@@ -3242,6 +3563,8 @@ export {
|
|
|
3242
3563
|
postmarkIntegrationSpec,
|
|
3243
3564
|
posthogLLMTelemetrySpec,
|
|
3244
3565
|
posthogIntegrationSpec,
|
|
3566
|
+
openaiRealtimeIntegrationSpec,
|
|
3567
|
+
openaiImageIntegrationSpec,
|
|
3245
3568
|
notionIntegrationSpec,
|
|
3246
3569
|
mistralIntegrationSpec,
|
|
3247
3570
|
makeIntegrationSpecKey,
|
|
@@ -3255,9 +3578,11 @@ export {
|
|
|
3255
3578
|
firefliesIntegrationSpec,
|
|
3256
3579
|
fathomIntegrationSpec,
|
|
3257
3580
|
falIntegrationSpec,
|
|
3581
|
+
falImageIntegrationSpec,
|
|
3258
3582
|
ensurePrimaryOpenBankingIntegration,
|
|
3259
3583
|
elevenLabsIntegrationSpec,
|
|
3260
3584
|
defineIntegration,
|
|
3585
|
+
deepgramIntegrationSpec,
|
|
3261
3586
|
createDefaultIntegrationSpecRegistry,
|
|
3262
3587
|
assertPrimaryOpenBankingReady,
|
|
3263
3588
|
POSTHOG_LLM_TELEMETRY_EVENTS,
|
|
@@ -3287,6 +3612,7 @@ export {
|
|
|
3287
3612
|
MEETING_RECORDER_TELEMETRY_EVENTS,
|
|
3288
3613
|
MEETING_RECORDER_PII_FIELDS,
|
|
3289
3614
|
IntegrationSpecRegistry,
|
|
3615
|
+
IMAGE_PRESETS,
|
|
3290
3616
|
BankTransactionRecord,
|
|
3291
3617
|
BankAccountRecord,
|
|
3292
3618
|
AccountBalanceRecord
|