@contractspec/lib.contracts-integrations 2.4.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/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
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/integrations/spec.ts
|
|
3
|
+
import { SpecContractRegistry } from "@contractspec/lib.contracts-spec/registry";
|
|
4
|
+
var integrationKey = (meta) => `${meta.key}.v${meta.version}`;
|
|
5
|
+
|
|
6
|
+
class IntegrationSpecRegistry extends SpecContractRegistry {
|
|
7
|
+
constructor(items) {
|
|
8
|
+
super("integration", items);
|
|
9
|
+
}
|
|
10
|
+
getByCategory(category) {
|
|
11
|
+
return this.list().filter((spec) => spec.meta.category === category);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function makeIntegrationSpecKey(meta) {
|
|
15
|
+
return integrationKey(meta);
|
|
16
|
+
}
|
|
17
|
+
var defineIntegration = (spec) => spec;
|
|
18
|
+
|
|
19
|
+
// src/integrations/providers/openai-image.ts
|
|
20
|
+
import { StabilityEnum } from "@contractspec/lib.contracts-spec/ownership";
|
|
21
|
+
var openaiImageIntegrationSpec = defineIntegration({
|
|
22
|
+
meta: {
|
|
23
|
+
key: "ai-image.openai",
|
|
24
|
+
version: "1.0.0",
|
|
25
|
+
category: "ai-image",
|
|
26
|
+
title: "OpenAI Image Generation",
|
|
27
|
+
description: "OpenAI integration for AI image generation using DALL-E and gpt-image models.",
|
|
28
|
+
domain: "ai",
|
|
29
|
+
owners: ["platform.ai"],
|
|
30
|
+
tags: ["image", "generation", "dall-e", "gpt-image"],
|
|
31
|
+
stability: StabilityEnum.Experimental
|
|
32
|
+
},
|
|
33
|
+
supportedModes: ["managed", "byok"],
|
|
34
|
+
capabilities: {
|
|
35
|
+
provides: [{ key: "ai.image.generation", version: "1.0.0" }]
|
|
36
|
+
},
|
|
37
|
+
configSchema: {
|
|
38
|
+
schema: {
|
|
39
|
+
type: "object",
|
|
40
|
+
properties: {
|
|
41
|
+
model: {
|
|
42
|
+
type: "string",
|
|
43
|
+
description: "OpenAI image model identifier (e.g. dall-e-3, gpt-image-1)."
|
|
44
|
+
},
|
|
45
|
+
defaultSize: {
|
|
46
|
+
type: "string",
|
|
47
|
+
enum: ["1024x1024", "1024x1792", "1792x1024"]
|
|
48
|
+
},
|
|
49
|
+
defaultQuality: {
|
|
50
|
+
type: "string",
|
|
51
|
+
enum: ["standard", "hd"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
example: {
|
|
56
|
+
model: "dall-e-3",
|
|
57
|
+
defaultSize: "1024x1024",
|
|
58
|
+
defaultQuality: "standard"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
secretSchema: {
|
|
62
|
+
schema: {
|
|
63
|
+
type: "object",
|
|
64
|
+
required: ["apiKey"],
|
|
65
|
+
properties: {
|
|
66
|
+
apiKey: {
|
|
67
|
+
type: "string",
|
|
68
|
+
description: "OpenAI API key with image generation permissions."
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
example: {
|
|
73
|
+
apiKey: "sk-***"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
healthCheck: {
|
|
77
|
+
method: "custom",
|
|
78
|
+
timeoutMs: 5000
|
|
79
|
+
},
|
|
80
|
+
docsUrl: "https://platform.openai.com/docs/guides/images",
|
|
81
|
+
constraints: {
|
|
82
|
+
rateLimit: {
|
|
83
|
+
rpm: 50
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
byokSetup: {
|
|
87
|
+
setupInstructions: "Create an OpenAI API key with image generation access enabled."
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
function registerOpenaiImageIntegration(registry) {
|
|
91
|
+
return registry.register(openaiImageIntegrationSpec);
|
|
92
|
+
}
|
|
93
|
+
export {
|
|
94
|
+
registerOpenaiImageIntegration,
|
|
95
|
+
openaiImageIntegrationSpec
|
|
96
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/integrations/spec.ts
|
|
3
|
+
import { SpecContractRegistry } from "@contractspec/lib.contracts-spec/registry";
|
|
4
|
+
var integrationKey = (meta) => `${meta.key}.v${meta.version}`;
|
|
5
|
+
|
|
6
|
+
class IntegrationSpecRegistry extends SpecContractRegistry {
|
|
7
|
+
constructor(items) {
|
|
8
|
+
super("integration", items);
|
|
9
|
+
}
|
|
10
|
+
getByCategory(category) {
|
|
11
|
+
return this.list().filter((spec) => spec.meta.category === category);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function makeIntegrationSpecKey(meta) {
|
|
15
|
+
return integrationKey(meta);
|
|
16
|
+
}
|
|
17
|
+
var defineIntegration = (spec) => spec;
|
|
18
|
+
|
|
19
|
+
// src/integrations/providers/openai-realtime.ts
|
|
20
|
+
import { StabilityEnum } from "@contractspec/lib.contracts-spec/ownership";
|
|
21
|
+
var openaiRealtimeIntegrationSpec = defineIntegration({
|
|
22
|
+
meta: {
|
|
23
|
+
key: "ai-voice-conv.openai",
|
|
24
|
+
version: "1.0.0",
|
|
25
|
+
category: "ai-voice-conversational",
|
|
26
|
+
title: "OpenAI Realtime Voice",
|
|
27
|
+
description: "OpenAI Realtime API integration for bidirectional conversational voice with GPT models.",
|
|
28
|
+
domain: "ai",
|
|
29
|
+
owners: ["platform.ai"],
|
|
30
|
+
tags: ["voice", "conversational", "realtime", "openai"],
|
|
31
|
+
stability: StabilityEnum.Experimental
|
|
32
|
+
},
|
|
33
|
+
supportedModes: ["byok"],
|
|
34
|
+
capabilities: {
|
|
35
|
+
provides: [{ key: "ai.voice.conversational", version: "1.0.0" }]
|
|
36
|
+
},
|
|
37
|
+
configSchema: {
|
|
38
|
+
schema: {
|
|
39
|
+
type: "object",
|
|
40
|
+
properties: {
|
|
41
|
+
model: {
|
|
42
|
+
type: "string",
|
|
43
|
+
description: "OpenAI model for realtime conversations (e.g. gpt-4o-realtime-preview)."
|
|
44
|
+
},
|
|
45
|
+
defaultVoice: {
|
|
46
|
+
type: "string",
|
|
47
|
+
description: "Default voice for agent responses (e.g. alloy, echo, shimmer)."
|
|
48
|
+
},
|
|
49
|
+
turnDetection: {
|
|
50
|
+
type: "string",
|
|
51
|
+
enum: ["server_vad", "push_to_talk"],
|
|
52
|
+
description: "Turn detection strategy."
|
|
53
|
+
},
|
|
54
|
+
maxSessionDurationSeconds: {
|
|
55
|
+
type: "number",
|
|
56
|
+
description: "Maximum session duration in seconds."
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
example: {
|
|
61
|
+
model: "gpt-4o-realtime-preview",
|
|
62
|
+
defaultVoice: "alloy",
|
|
63
|
+
turnDetection: "server_vad",
|
|
64
|
+
maxSessionDurationSeconds: 600
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
secretSchema: {
|
|
68
|
+
schema: {
|
|
69
|
+
type: "object",
|
|
70
|
+
required: ["apiKey"],
|
|
71
|
+
properties: {
|
|
72
|
+
apiKey: {
|
|
73
|
+
type: "string",
|
|
74
|
+
description: "OpenAI API key with realtime API access."
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
example: {
|
|
79
|
+
apiKey: "sk-***"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
healthCheck: {
|
|
83
|
+
method: "custom",
|
|
84
|
+
timeoutMs: 5000
|
|
85
|
+
},
|
|
86
|
+
docsUrl: "https://platform.openai.com/docs/guides/realtime",
|
|
87
|
+
byokSetup: {
|
|
88
|
+
setupInstructions: "Create an OpenAI API key with Realtime API access enabled and store it in your secret provider."
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
function registerOpenaiRealtimeIntegration(registry) {
|
|
92
|
+
return registry.register(openaiRealtimeIntegrationSpec);
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
registerOpenaiRealtimeIntegration,
|
|
96
|
+
openaiRealtimeIntegrationSpec
|
|
97
|
+
};
|
|
@@ -488,17 +488,20 @@ var elevenLabsIntegrationSpec = defineIntegration({
|
|
|
488
488
|
meta: {
|
|
489
489
|
key: "ai-voice.elevenlabs",
|
|
490
490
|
version: "1.0.0",
|
|
491
|
-
category: "ai-voice",
|
|
491
|
+
category: "ai-voice-tts",
|
|
492
492
|
title: "ElevenLabs Text-to-Speech",
|
|
493
493
|
description: "ElevenLabs integration for neural voice synthesis and voice catalog access.",
|
|
494
494
|
domain: "ai",
|
|
495
495
|
owners: ["platform.ai"],
|
|
496
|
-
tags: ["voice", "tts"],
|
|
496
|
+
tags: ["voice", "tts", "stt"],
|
|
497
497
|
stability: StabilityEnum7.Beta
|
|
498
498
|
},
|
|
499
499
|
supportedModes: ["managed", "byok"],
|
|
500
500
|
capabilities: {
|
|
501
|
-
provides: [
|
|
501
|
+
provides: [
|
|
502
|
+
{ key: "ai.voice.tts", version: "1.0.0" },
|
|
503
|
+
{ key: "ai.voice.stt", version: "1.0.0" }
|
|
504
|
+
]
|
|
502
505
|
},
|
|
503
506
|
configSchema: {
|
|
504
507
|
schema: {
|
|
@@ -553,7 +556,7 @@ var gradiumIntegrationSpec = defineIntegration({
|
|
|
553
556
|
meta: {
|
|
554
557
|
key: "ai-voice.gradium",
|
|
555
558
|
version: "1.0.0",
|
|
556
|
-
category: "ai-voice",
|
|
559
|
+
category: "ai-voice-tts",
|
|
557
560
|
title: "Gradium Text-to-Speech",
|
|
558
561
|
description: "Gradium integration for low-latency voice synthesis and voice catalog access.",
|
|
559
562
|
domain: "ai",
|
|
@@ -563,7 +566,7 @@ var gradiumIntegrationSpec = defineIntegration({
|
|
|
563
566
|
},
|
|
564
567
|
supportedModes: ["byok"],
|
|
565
568
|
capabilities: {
|
|
566
|
-
provides: [{ key: "ai.voice.
|
|
569
|
+
provides: [{ key: "ai.voice.tts", version: "1.0.0" }]
|
|
567
570
|
},
|
|
568
571
|
configSchema: {
|
|
569
572
|
schema: {
|
|
@@ -642,7 +645,7 @@ var falIntegrationSpec = defineIntegration({
|
|
|
642
645
|
meta: {
|
|
643
646
|
key: "ai-voice.fal",
|
|
644
647
|
version: "1.0.0",
|
|
645
|
-
category: "ai-voice",
|
|
648
|
+
category: "ai-voice-tts",
|
|
646
649
|
title: "Fal Chatterbox Text-to-Speech",
|
|
647
650
|
description: "Fal integration for voice synthesis using Chatterbox text-to-speech models.",
|
|
648
651
|
domain: "ai",
|
|
@@ -652,7 +655,7 @@ var falIntegrationSpec = defineIntegration({
|
|
|
652
655
|
},
|
|
653
656
|
supportedModes: ["byok"],
|
|
654
657
|
capabilities: {
|
|
655
|
-
provides: [{ key: "ai.voice.
|
|
658
|
+
provides: [{ key: "ai.voice.tts", version: "1.0.0" }]
|
|
656
659
|
},
|
|
657
660
|
configSchema: {
|
|
658
661
|
schema: {
|
|
@@ -727,8 +730,162 @@ function registerFalIntegration(registry) {
|
|
|
727
730
|
return registry.register(falIntegrationSpec);
|
|
728
731
|
}
|
|
729
732
|
|
|
730
|
-
// src/integrations/providers/
|
|
733
|
+
// src/integrations/providers/deepgram.ts
|
|
731
734
|
import { StabilityEnum as StabilityEnum10 } from "@contractspec/lib.contracts-spec/ownership";
|
|
735
|
+
var deepgramIntegrationSpec = defineIntegration({
|
|
736
|
+
meta: {
|
|
737
|
+
key: "ai-voice-stt.deepgram",
|
|
738
|
+
version: "1.0.0",
|
|
739
|
+
category: "ai-voice-stt",
|
|
740
|
+
title: "Deepgram Speech-to-Text",
|
|
741
|
+
description: "Deepgram integration for real-time and batch speech-to-text transcription with speaker diarization.",
|
|
742
|
+
domain: "ai",
|
|
743
|
+
owners: ["platform.ai"],
|
|
744
|
+
tags: ["voice", "stt", "transcription", "diarization"],
|
|
745
|
+
stability: StabilityEnum10.Experimental
|
|
746
|
+
},
|
|
747
|
+
supportedModes: ["byok"],
|
|
748
|
+
capabilities: {
|
|
749
|
+
provides: [
|
|
750
|
+
{ key: "ai.voice.stt", version: "1.0.0" },
|
|
751
|
+
{ key: "ai.voice.conversational", version: "1.0.0" }
|
|
752
|
+
]
|
|
753
|
+
},
|
|
754
|
+
configSchema: {
|
|
755
|
+
schema: {
|
|
756
|
+
type: "object",
|
|
757
|
+
properties: {
|
|
758
|
+
model: {
|
|
759
|
+
type: "string",
|
|
760
|
+
description: "Deepgram model to use (e.g. nova-3, nova-2, enhanced)."
|
|
761
|
+
},
|
|
762
|
+
language: {
|
|
763
|
+
type: "string",
|
|
764
|
+
description: "Default language code for transcription (e.g. en-US)."
|
|
765
|
+
},
|
|
766
|
+
enableDiarization: {
|
|
767
|
+
type: "boolean",
|
|
768
|
+
description: "Enable speaker diarization by default."
|
|
769
|
+
},
|
|
770
|
+
enableSmartFormat: {
|
|
771
|
+
type: "boolean",
|
|
772
|
+
description: "Enable smart formatting (punctuation, capitalization)."
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
example: {
|
|
777
|
+
model: "nova-3",
|
|
778
|
+
language: "en-US",
|
|
779
|
+
enableDiarization: true,
|
|
780
|
+
enableSmartFormat: true
|
|
781
|
+
}
|
|
782
|
+
},
|
|
783
|
+
secretSchema: {
|
|
784
|
+
schema: {
|
|
785
|
+
type: "object",
|
|
786
|
+
required: ["apiKey"],
|
|
787
|
+
properties: {
|
|
788
|
+
apiKey: {
|
|
789
|
+
type: "string",
|
|
790
|
+
description: "Deepgram API key with transcription permissions."
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
},
|
|
794
|
+
example: {
|
|
795
|
+
apiKey: "dg_***"
|
|
796
|
+
}
|
|
797
|
+
},
|
|
798
|
+
healthCheck: {
|
|
799
|
+
method: "custom",
|
|
800
|
+
timeoutMs: 5000
|
|
801
|
+
},
|
|
802
|
+
docsUrl: "https://developers.deepgram.com/docs",
|
|
803
|
+
byokSetup: {
|
|
804
|
+
setupInstructions: "Create a Deepgram API key with speech-to-text permissions and store it in your secret provider."
|
|
805
|
+
}
|
|
806
|
+
});
|
|
807
|
+
function registerDeepgramIntegration(registry) {
|
|
808
|
+
return registry.register(deepgramIntegrationSpec);
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
// src/integrations/providers/openai-realtime.ts
|
|
812
|
+
import { StabilityEnum as StabilityEnum11 } from "@contractspec/lib.contracts-spec/ownership";
|
|
813
|
+
var openaiRealtimeIntegrationSpec = defineIntegration({
|
|
814
|
+
meta: {
|
|
815
|
+
key: "ai-voice-conv.openai",
|
|
816
|
+
version: "1.0.0",
|
|
817
|
+
category: "ai-voice-conversational",
|
|
818
|
+
title: "OpenAI Realtime Voice",
|
|
819
|
+
description: "OpenAI Realtime API integration for bidirectional conversational voice with GPT models.",
|
|
820
|
+
domain: "ai",
|
|
821
|
+
owners: ["platform.ai"],
|
|
822
|
+
tags: ["voice", "conversational", "realtime", "openai"],
|
|
823
|
+
stability: StabilityEnum11.Experimental
|
|
824
|
+
},
|
|
825
|
+
supportedModes: ["byok"],
|
|
826
|
+
capabilities: {
|
|
827
|
+
provides: [{ key: "ai.voice.conversational", version: "1.0.0" }]
|
|
828
|
+
},
|
|
829
|
+
configSchema: {
|
|
830
|
+
schema: {
|
|
831
|
+
type: "object",
|
|
832
|
+
properties: {
|
|
833
|
+
model: {
|
|
834
|
+
type: "string",
|
|
835
|
+
description: "OpenAI model for realtime conversations (e.g. gpt-4o-realtime-preview)."
|
|
836
|
+
},
|
|
837
|
+
defaultVoice: {
|
|
838
|
+
type: "string",
|
|
839
|
+
description: "Default voice for agent responses (e.g. alloy, echo, shimmer)."
|
|
840
|
+
},
|
|
841
|
+
turnDetection: {
|
|
842
|
+
type: "string",
|
|
843
|
+
enum: ["server_vad", "push_to_talk"],
|
|
844
|
+
description: "Turn detection strategy."
|
|
845
|
+
},
|
|
846
|
+
maxSessionDurationSeconds: {
|
|
847
|
+
type: "number",
|
|
848
|
+
description: "Maximum session duration in seconds."
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
},
|
|
852
|
+
example: {
|
|
853
|
+
model: "gpt-4o-realtime-preview",
|
|
854
|
+
defaultVoice: "alloy",
|
|
855
|
+
turnDetection: "server_vad",
|
|
856
|
+
maxSessionDurationSeconds: 600
|
|
857
|
+
}
|
|
858
|
+
},
|
|
859
|
+
secretSchema: {
|
|
860
|
+
schema: {
|
|
861
|
+
type: "object",
|
|
862
|
+
required: ["apiKey"],
|
|
863
|
+
properties: {
|
|
864
|
+
apiKey: {
|
|
865
|
+
type: "string",
|
|
866
|
+
description: "OpenAI API key with realtime API access."
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
},
|
|
870
|
+
example: {
|
|
871
|
+
apiKey: "sk-***"
|
|
872
|
+
}
|
|
873
|
+
},
|
|
874
|
+
healthCheck: {
|
|
875
|
+
method: "custom",
|
|
876
|
+
timeoutMs: 5000
|
|
877
|
+
},
|
|
878
|
+
docsUrl: "https://platform.openai.com/docs/guides/realtime",
|
|
879
|
+
byokSetup: {
|
|
880
|
+
setupInstructions: "Create an OpenAI API key with Realtime API access enabled and store it in your secret provider."
|
|
881
|
+
}
|
|
882
|
+
});
|
|
883
|
+
function registerOpenaiRealtimeIntegration(registry) {
|
|
884
|
+
return registry.register(openaiRealtimeIntegrationSpec);
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
// src/integrations/providers/gmail.ts
|
|
888
|
+
import { StabilityEnum as StabilityEnum12 } from "@contractspec/lib.contracts-spec/ownership";
|
|
732
889
|
var gmailIntegrationSpec = defineIntegration({
|
|
733
890
|
meta: {
|
|
734
891
|
key: "email.gmail",
|
|
@@ -739,7 +896,7 @@ var gmailIntegrationSpec = defineIntegration({
|
|
|
739
896
|
domain: "communications",
|
|
740
897
|
owners: ["platform.messaging"],
|
|
741
898
|
tags: ["email", "gmail"],
|
|
742
|
-
stability:
|
|
899
|
+
stability: StabilityEnum12.Beta
|
|
743
900
|
},
|
|
744
901
|
supportedModes: ["managed", "byok"],
|
|
745
902
|
capabilities: {
|
|
@@ -816,7 +973,7 @@ function registerGmailIntegration(registry) {
|
|
|
816
973
|
}
|
|
817
974
|
|
|
818
975
|
// src/integrations/providers/google-calendar.ts
|
|
819
|
-
import { StabilityEnum as
|
|
976
|
+
import { StabilityEnum as StabilityEnum13 } from "@contractspec/lib.contracts-spec/ownership";
|
|
820
977
|
var googleCalendarIntegrationSpec = defineIntegration({
|
|
821
978
|
meta: {
|
|
822
979
|
key: "calendar.google",
|
|
@@ -827,7 +984,7 @@ var googleCalendarIntegrationSpec = defineIntegration({
|
|
|
827
984
|
domain: "productivity",
|
|
828
985
|
owners: ["platform.messaging"],
|
|
829
986
|
tags: ["calendar", "google"],
|
|
830
|
-
stability:
|
|
987
|
+
stability: StabilityEnum13.Beta
|
|
831
988
|
},
|
|
832
989
|
supportedModes: ["managed", "byok"],
|
|
833
990
|
capabilities: {
|
|
@@ -887,7 +1044,7 @@ function registerGoogleCalendarIntegration(registry) {
|
|
|
887
1044
|
}
|
|
888
1045
|
|
|
889
1046
|
// src/integrations/providers/twilio-sms.ts
|
|
890
|
-
import { StabilityEnum as
|
|
1047
|
+
import { StabilityEnum as StabilityEnum14 } from "@contractspec/lib.contracts-spec/ownership";
|
|
891
1048
|
var twilioSmsIntegrationSpec = defineIntegration({
|
|
892
1049
|
meta: {
|
|
893
1050
|
key: "sms.twilio",
|
|
@@ -898,7 +1055,7 @@ var twilioSmsIntegrationSpec = defineIntegration({
|
|
|
898
1055
|
domain: "communications",
|
|
899
1056
|
owners: ["platform.messaging"],
|
|
900
1057
|
tags: ["sms", "messaging"],
|
|
901
|
-
stability:
|
|
1058
|
+
stability: StabilityEnum14.Stable
|
|
902
1059
|
},
|
|
903
1060
|
supportedModes: ["managed", "byok"],
|
|
904
1061
|
capabilities: {
|
|
@@ -957,7 +1114,7 @@ function registerTwilioSmsIntegration(registry) {
|
|
|
957
1114
|
}
|
|
958
1115
|
|
|
959
1116
|
// src/integrations/providers/gcs-storage.ts
|
|
960
|
-
import { StabilityEnum as
|
|
1117
|
+
import { StabilityEnum as StabilityEnum15 } from "@contractspec/lib.contracts-spec/ownership";
|
|
961
1118
|
var gcsStorageIntegrationSpec = defineIntegration({
|
|
962
1119
|
meta: {
|
|
963
1120
|
key: "storage.gcs",
|
|
@@ -968,7 +1125,7 @@ var gcsStorageIntegrationSpec = defineIntegration({
|
|
|
968
1125
|
domain: "infrastructure",
|
|
969
1126
|
owners: ["platform.infrastructure"],
|
|
970
1127
|
tags: ["storage", "gcs", "google-cloud"],
|
|
971
|
-
stability:
|
|
1128
|
+
stability: StabilityEnum15.Beta
|
|
972
1129
|
},
|
|
973
1130
|
supportedModes: ["managed", "byok"],
|
|
974
1131
|
capabilities: {
|
|
@@ -1033,7 +1190,7 @@ function registerGcsStorageIntegration(registry) {
|
|
|
1033
1190
|
}
|
|
1034
1191
|
|
|
1035
1192
|
// src/integrations/providers/powens.ts
|
|
1036
|
-
import { StabilityEnum as
|
|
1193
|
+
import { StabilityEnum as StabilityEnum16 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1037
1194
|
var powensIntegrationSpec = defineIntegration({
|
|
1038
1195
|
meta: {
|
|
1039
1196
|
key: "openbanking.powens",
|
|
@@ -1044,7 +1201,7 @@ var powensIntegrationSpec = defineIntegration({
|
|
|
1044
1201
|
domain: "finance",
|
|
1045
1202
|
owners: ["platform.finance"],
|
|
1046
1203
|
tags: ["open-banking", "powens", "finance"],
|
|
1047
|
-
stability:
|
|
1204
|
+
stability: StabilityEnum16.Experimental
|
|
1048
1205
|
},
|
|
1049
1206
|
supportedModes: ["byok"],
|
|
1050
1207
|
capabilities: {
|
|
@@ -1136,7 +1293,7 @@ function registerPowensIntegration(registry) {
|
|
|
1136
1293
|
}
|
|
1137
1294
|
|
|
1138
1295
|
// src/integrations/providers/posthog.ts
|
|
1139
|
-
import { StabilityEnum as
|
|
1296
|
+
import { StabilityEnum as StabilityEnum17 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1140
1297
|
var posthogIntegrationSpec = defineIntegration({
|
|
1141
1298
|
meta: {
|
|
1142
1299
|
key: "analytics.posthog",
|
|
@@ -1147,7 +1304,7 @@ var posthogIntegrationSpec = defineIntegration({
|
|
|
1147
1304
|
domain: "analytics",
|
|
1148
1305
|
owners: ["@platform.integrations"],
|
|
1149
1306
|
tags: ["analytics", "posthog", "llm", "ai"],
|
|
1150
|
-
stability:
|
|
1307
|
+
stability: StabilityEnum17.Beta
|
|
1151
1308
|
},
|
|
1152
1309
|
supportedModes: ["managed", "byok"],
|
|
1153
1310
|
capabilities: {
|
|
@@ -1221,7 +1378,7 @@ function registerPosthogIntegration(registry) {
|
|
|
1221
1378
|
}
|
|
1222
1379
|
|
|
1223
1380
|
// src/integrations/providers/linear.ts
|
|
1224
|
-
import { StabilityEnum as
|
|
1381
|
+
import { StabilityEnum as StabilityEnum18 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1225
1382
|
var linearIntegrationSpec = defineIntegration({
|
|
1226
1383
|
meta: {
|
|
1227
1384
|
key: "project-management.linear",
|
|
@@ -1232,7 +1389,7 @@ var linearIntegrationSpec = defineIntegration({
|
|
|
1232
1389
|
domain: "productivity",
|
|
1233
1390
|
owners: ["@platform.integrations"],
|
|
1234
1391
|
tags: ["project-management", "linear"],
|
|
1235
|
-
stability:
|
|
1392
|
+
stability: StabilityEnum18.Beta
|
|
1236
1393
|
},
|
|
1237
1394
|
supportedModes: ["managed", "byok"],
|
|
1238
1395
|
capabilities: {
|
|
@@ -1307,7 +1464,7 @@ function registerLinearIntegration(registry) {
|
|
|
1307
1464
|
}
|
|
1308
1465
|
|
|
1309
1466
|
// src/integrations/providers/jira.ts
|
|
1310
|
-
import { StabilityEnum as
|
|
1467
|
+
import { StabilityEnum as StabilityEnum19 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1311
1468
|
var jiraIntegrationSpec = defineIntegration({
|
|
1312
1469
|
meta: {
|
|
1313
1470
|
key: "project-management.jira",
|
|
@@ -1318,7 +1475,7 @@ var jiraIntegrationSpec = defineIntegration({
|
|
|
1318
1475
|
domain: "productivity",
|
|
1319
1476
|
owners: ["@platform.integrations"],
|
|
1320
1477
|
tags: ["project-management", "jira"],
|
|
1321
|
-
stability:
|
|
1478
|
+
stability: StabilityEnum19.Beta
|
|
1322
1479
|
},
|
|
1323
1480
|
supportedModes: ["managed", "byok"],
|
|
1324
1481
|
capabilities: {
|
|
@@ -1394,7 +1551,7 @@ function registerJiraIntegration(registry) {
|
|
|
1394
1551
|
}
|
|
1395
1552
|
|
|
1396
1553
|
// src/integrations/providers/notion.ts
|
|
1397
|
-
import { StabilityEnum as
|
|
1554
|
+
import { StabilityEnum as StabilityEnum20 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1398
1555
|
var notionIntegrationSpec = defineIntegration({
|
|
1399
1556
|
meta: {
|
|
1400
1557
|
key: "project-management.notion",
|
|
@@ -1405,7 +1562,7 @@ var notionIntegrationSpec = defineIntegration({
|
|
|
1405
1562
|
domain: "productivity",
|
|
1406
1563
|
owners: ["@platform.integrations"],
|
|
1407
1564
|
tags: ["project-management", "notion"],
|
|
1408
|
-
stability:
|
|
1565
|
+
stability: StabilityEnum20.Beta
|
|
1409
1566
|
},
|
|
1410
1567
|
supportedModes: ["managed", "byok"],
|
|
1411
1568
|
capabilities: {
|
|
@@ -1486,7 +1643,7 @@ function registerNotionIntegration(registry) {
|
|
|
1486
1643
|
}
|
|
1487
1644
|
|
|
1488
1645
|
// src/integrations/providers/granola.ts
|
|
1489
|
-
import { StabilityEnum as
|
|
1646
|
+
import { StabilityEnum as StabilityEnum21 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1490
1647
|
var granolaIntegrationSpec = defineIntegration({
|
|
1491
1648
|
meta: {
|
|
1492
1649
|
key: "meeting-recorder.granola",
|
|
@@ -1497,7 +1654,7 @@ var granolaIntegrationSpec = defineIntegration({
|
|
|
1497
1654
|
domain: "productivity",
|
|
1498
1655
|
owners: ["platform.integrations"],
|
|
1499
1656
|
tags: ["meeting-recorder", "granola", "transcripts"],
|
|
1500
|
-
stability:
|
|
1657
|
+
stability: StabilityEnum21.Experimental
|
|
1501
1658
|
},
|
|
1502
1659
|
supportedModes: ["byok"],
|
|
1503
1660
|
capabilities: {
|
|
@@ -1572,7 +1729,7 @@ function registerGranolaIntegration(registry) {
|
|
|
1572
1729
|
}
|
|
1573
1730
|
|
|
1574
1731
|
// src/integrations/providers/tldv.ts
|
|
1575
|
-
import { StabilityEnum as
|
|
1732
|
+
import { StabilityEnum as StabilityEnum22 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1576
1733
|
var tldvIntegrationSpec = defineIntegration({
|
|
1577
1734
|
meta: {
|
|
1578
1735
|
key: "meeting-recorder.tldv",
|
|
@@ -1583,7 +1740,7 @@ var tldvIntegrationSpec = defineIntegration({
|
|
|
1583
1740
|
domain: "productivity",
|
|
1584
1741
|
owners: ["platform.integrations"],
|
|
1585
1742
|
tags: ["meeting-recorder", "tldv", "transcripts"],
|
|
1586
|
-
stability:
|
|
1743
|
+
stability: StabilityEnum22.Experimental
|
|
1587
1744
|
},
|
|
1588
1745
|
supportedModes: ["byok"],
|
|
1589
1746
|
capabilities: {
|
|
@@ -1657,7 +1814,7 @@ function registerTldvIntegration(registry) {
|
|
|
1657
1814
|
}
|
|
1658
1815
|
|
|
1659
1816
|
// src/integrations/providers/fireflies.ts
|
|
1660
|
-
import { StabilityEnum as
|
|
1817
|
+
import { StabilityEnum as StabilityEnum23 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1661
1818
|
var firefliesIntegrationSpec = defineIntegration({
|
|
1662
1819
|
meta: {
|
|
1663
1820
|
key: "meeting-recorder.fireflies",
|
|
@@ -1668,7 +1825,7 @@ var firefliesIntegrationSpec = defineIntegration({
|
|
|
1668
1825
|
domain: "productivity",
|
|
1669
1826
|
owners: ["platform.integrations"],
|
|
1670
1827
|
tags: ["meeting-recorder", "fireflies", "transcripts"],
|
|
1671
|
-
stability:
|
|
1828
|
+
stability: StabilityEnum23.Experimental
|
|
1672
1829
|
},
|
|
1673
1830
|
supportedModes: ["byok"],
|
|
1674
1831
|
capabilities: {
|
|
@@ -1742,7 +1899,7 @@ function registerFirefliesIntegration(registry) {
|
|
|
1742
1899
|
}
|
|
1743
1900
|
|
|
1744
1901
|
// src/integrations/providers/fathom.ts
|
|
1745
|
-
import { StabilityEnum as
|
|
1902
|
+
import { StabilityEnum as StabilityEnum24 } from "@contractspec/lib.contracts-spec/ownership";
|
|
1746
1903
|
var fathomIntegrationSpec = defineIntegration({
|
|
1747
1904
|
meta: {
|
|
1748
1905
|
key: "meeting-recorder.fathom",
|
|
@@ -1753,7 +1910,7 @@ var fathomIntegrationSpec = defineIntegration({
|
|
|
1753
1910
|
domain: "productivity",
|
|
1754
1911
|
owners: ["platform.integrations"],
|
|
1755
1912
|
tags: ["meeting-recorder", "fathom", "transcripts"],
|
|
1756
|
-
stability:
|
|
1913
|
+
stability: StabilityEnum24.Experimental
|
|
1757
1914
|
},
|
|
1758
1915
|
supportedModes: ["byok"],
|
|
1759
1916
|
capabilities: {
|
|
@@ -1871,6 +2028,8 @@ function createDefaultIntegrationSpecRegistry() {
|
|
|
1871
2028
|
registerTldvIntegration(registry);
|
|
1872
2029
|
registerFirefliesIntegration(registry);
|
|
1873
2030
|
registerFathomIntegration(registry);
|
|
2031
|
+
registerDeepgramIntegration(registry);
|
|
2032
|
+
registerOpenaiRealtimeIntegration(registry);
|
|
1874
2033
|
return registry;
|
|
1875
2034
|
}
|
|
1876
2035
|
export {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VoiceTimingMap } from './voice-video-sync';
|
|
1
2
|
export interface VideoFormatLandscape {
|
|
2
3
|
type: 'landscape';
|
|
3
4
|
width: 1920;
|
|
@@ -100,6 +101,15 @@ export interface VideoProject {
|
|
|
100
101
|
};
|
|
101
102
|
/** Metadata for the rendered file */
|
|
102
103
|
metadata?: VideoProjectMetadata;
|
|
104
|
+
/** VTT subtitles generated from voice narration */
|
|
105
|
+
subtitles?: string;
|
|
106
|
+
/** Voice timing map for per-scene audio sync */
|
|
107
|
+
voiceTimingMap?: VoiceTimingMap;
|
|
108
|
+
/** Generated thumbnail image */
|
|
109
|
+
thumbnail?: {
|
|
110
|
+
prompt: string;
|
|
111
|
+
imageUrl?: string;
|
|
112
|
+
};
|
|
103
113
|
}
|
|
104
114
|
export interface VideoProjectMetadata {
|
|
105
115
|
title?: string;
|