@contractspec/lib.contracts 1.56.1 → 1.57.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/_virtual/{rolldown_runtime.js → _rolldown/runtime.js} +3 -3
- package/dist/app-config/app-config.contracts.d.ts +50 -50
- package/dist/app-config/events.d.ts +27 -27
- package/dist/app-config/lifecycle-contracts.d.ts +54 -54
- package/dist/app-config/runtime.js +3 -3
- package/dist/app-config/validation.js +3 -3
- package/dist/capabilities/capabilities.js +20 -20
- package/dist/capabilities/context.d.ts +0 -1
- package/dist/capabilities/context.js +1 -1
- package/dist/capabilities/guards.d.ts +0 -1
- package/dist/capabilities/index.d.ts +2 -1
- package/dist/capabilities/index.js +2 -1
- package/dist/capabilities/meeting-recorder.d.ts +10 -0
- package/dist/capabilities/meeting-recorder.js +82 -0
- package/dist/capabilities/validation.d.ts +0 -1
- package/dist/client/react/drivers/rn-reusables.d.ts +0 -1
- package/dist/client/react/drivers/shadcn.d.ts +0 -1
- package/dist/client/react/form-render.js +3 -3
- package/dist/contract-registry/schemas.d.ts +2 -2
- package/dist/data-views/registry.d.ts +0 -1
- package/dist/data-views/spec.d.ts +0 -1
- package/dist/docs/commands/docsPublish.command.d.ts +13 -13
- package/dist/docs/contracts.d.ts +103 -103
- package/dist/docs/events/docsGenerated.event.d.ts +13 -13
- package/dist/docs/events/docsPublished.event.d.ts +15 -15
- package/dist/docs/forms/docsSearch.form.d.ts +4 -4
- package/dist/docs/queries/contractReference.query.d.ts +47 -47
- package/dist/docs/queries/docsIndex.query.d.ts +57 -57
- package/dist/docs/tech/llm/llm-integration.docblock.d.ts +0 -1
- package/dist/docs/tech/mcp-endpoints.docblock.js +5 -0
- package/dist/events.d.ts +0 -1
- package/dist/examples/index.d.ts +0 -1
- package/dist/examples/registry.d.ts +0 -1
- package/dist/examples/schema.d.ts +17 -17
- package/dist/experiments/spec.d.ts +2 -4
- package/dist/features/index.d.ts +0 -1
- package/dist/features/types.d.ts +2 -5
- package/dist/forms/forms.d.ts +1 -2
- package/dist/forms/forms.js +1 -2
- package/dist/index.d.ts +42 -1
- package/dist/index.js +36 -1
- package/dist/install.d.ts +2 -5
- package/dist/integrations/docs/integrations.docblock.js +19 -1
- package/dist/integrations/index.d.ts +26 -1
- package/dist/integrations/index.js +20 -1
- package/dist/integrations/meeting-recorder/contracts/index.d.ts +10 -0
- package/dist/integrations/meeting-recorder/contracts/index.js +12 -0
- package/dist/integrations/meeting-recorder/contracts/meetings.d.ts +458 -0
- package/dist/integrations/meeting-recorder/contracts/meetings.js +149 -0
- package/dist/integrations/meeting-recorder/contracts/transcripts.d.ts +173 -0
- package/dist/integrations/meeting-recorder/contracts/transcripts.js +156 -0
- package/dist/integrations/meeting-recorder/contracts/webhooks.d.ts +92 -0
- package/dist/integrations/meeting-recorder/contracts/webhooks.js +82 -0
- package/dist/integrations/meeting-recorder/meeting-recorder.capability.d.ts +7 -0
- package/dist/integrations/meeting-recorder/meeting-recorder.capability.js +21 -0
- package/dist/integrations/meeting-recorder/meeting-recorder.feature.d.ts +11 -0
- package/dist/integrations/meeting-recorder/meeting-recorder.feature.js +67 -0
- package/dist/integrations/meeting-recorder/models.d.ts +407 -0
- package/dist/integrations/meeting-recorder/models.js +295 -0
- package/dist/integrations/meeting-recorder/telemetry.d.ts +16 -0
- package/dist/integrations/meeting-recorder/telemetry.js +42 -0
- package/dist/integrations/openbanking/contracts/accounts.d.ts +66 -66
- package/dist/integrations/openbanking/contracts/balances.d.ts +34 -34
- package/dist/integrations/openbanking/contracts/transactions.d.ts +48 -48
- package/dist/integrations/openbanking/models.d.ts +55 -55
- package/dist/integrations/operations.d.ts +102 -102
- package/dist/integrations/providers/analytics-reader.d.ts +107 -0
- package/dist/integrations/providers/analytics-reader.js +0 -0
- package/dist/integrations/providers/analytics-writer.d.ts +10 -0
- package/dist/integrations/providers/analytics-writer.js +0 -0
- package/dist/integrations/providers/analytics.d.ts +49 -0
- package/dist/integrations/providers/analytics.js +0 -0
- package/dist/integrations/providers/database.d.ts +15 -0
- package/dist/integrations/providers/database.js +0 -0
- package/dist/integrations/providers/fal.d.ts +8 -0
- package/dist/integrations/providers/fal.js +94 -0
- package/dist/integrations/providers/fathom.d.ts +8 -0
- package/dist/integrations/providers/fathom.js +114 -0
- package/dist/integrations/providers/fireflies.d.ts +8 -0
- package/dist/integrations/providers/fireflies.js +98 -0
- package/dist/integrations/providers/gradium.d.ts +8 -0
- package/dist/integrations/providers/gradium.js +92 -0
- package/dist/integrations/providers/granola.d.ts +8 -0
- package/dist/integrations/providers/granola.js +71 -0
- package/dist/integrations/providers/index.d.ts +19 -1
- package/dist/integrations/providers/index.js +13 -1
- package/dist/integrations/providers/jira.d.ts +8 -0
- package/dist/integrations/providers/jira.js +90 -0
- package/dist/integrations/providers/linear.d.ts +8 -0
- package/dist/integrations/providers/linear.js +85 -0
- package/dist/integrations/providers/meeting-recorder.d.ts +132 -0
- package/dist/integrations/providers/meeting-recorder.js +0 -0
- package/dist/integrations/providers/notion.d.ts +8 -0
- package/dist/integrations/providers/notion.js +91 -0
- package/dist/integrations/providers/posthog.d.ts +8 -0
- package/dist/integrations/providers/posthog.js +107 -0
- package/dist/integrations/providers/project-management.d.ts +35 -0
- package/dist/integrations/providers/project-management.js +0 -0
- package/dist/integrations/providers/registry.d.ts +0 -1
- package/dist/integrations/providers/registry.js +24 -0
- package/dist/integrations/providers/supabase-postgres.d.ts +8 -0
- package/dist/integrations/providers/supabase-postgres.js +73 -0
- package/dist/integrations/providers/supabase-vector.d.ts +8 -0
- package/dist/integrations/providers/supabase-vector.js +93 -0
- package/dist/integrations/providers/tldv.d.ts +8 -0
- package/dist/integrations/providers/tldv.js +98 -0
- package/dist/integrations/runtime.js +0 -1
- package/dist/integrations/spec.d.ts +1 -1
- package/dist/jobs/queue.d.ts +0 -1
- package/dist/knowledge/binding.d.ts +1 -3
- package/dist/knowledge/operations.d.ts +66 -66
- package/dist/llm/exporters.d.ts +0 -1
- package/dist/llm/exporters.js +0 -1
- package/dist/llm/prompts.d.ts +0 -1
- package/dist/llm/types.d.ts +0 -1
- package/dist/onboarding-base.d.ts +29 -29
- package/dist/openapi.d.ts +0 -1
- package/dist/operations/operation.d.ts +19 -43
- package/dist/operations/registry.d.ts +0 -1
- package/dist/operations/registry.js +2 -2
- package/dist/operations/report/getContractVerificationStatus.d.ts +10 -10
- package/dist/ownership.d.ts +41 -88
- package/dist/policy/guards.d.ts +0 -1
- package/dist/policy/guards.js +3 -3
- package/dist/policy/index.d.ts +0 -1
- package/dist/policy/validation.d.ts +0 -1
- package/dist/product-intent/contract-patch-intent.d.ts +103 -0
- package/dist/product-intent/contract-patch-intent.js +33 -0
- package/dist/product-intent/contract-spec-patch.d.ts +89 -0
- package/dist/product-intent/contract-spec-patch.js +27 -0
- package/dist/product-intent/evidence.d.ts +17 -0
- package/dist/product-intent/evidence.js +13 -0
- package/dist/product-intent/findings.d.ts +60 -0
- package/dist/product-intent/findings.js +17 -0
- package/dist/product-intent/impact-report.d.ts +60 -0
- package/dist/product-intent/impact-report.js +27 -0
- package/dist/product-intent/index.d.ts +16 -0
- package/dist/product-intent/index.js +17 -0
- package/dist/product-intent/insights.d.ts +65 -0
- package/dist/product-intent/insights.js +23 -0
- package/dist/product-intent/opportunity-brief.d.ts +195 -0
- package/dist/product-intent/opportunity-brief.js +42 -0
- package/dist/product-intent/problems.d.ts +62 -0
- package/dist/product-intent/problems.js +22 -0
- package/dist/product-intent/registry.d.ts +32 -0
- package/dist/product-intent/registry.js +49 -0
- package/dist/product-intent/runtime.d.ts +103 -0
- package/dist/product-intent/runtime.js +101 -0
- package/dist/product-intent/spec.d.ts +676 -0
- package/dist/product-intent/spec.js +53 -0
- package/dist/product-intent/task-pack.d.ts +101 -0
- package/dist/product-intent/task-pack.js +34 -0
- package/dist/product-intent/tickets.d.ts +70 -0
- package/dist/product-intent/tickets.js +24 -0
- package/dist/product-intent/types.d.ts +12 -0
- package/dist/product-intent/types.js +13 -0
- package/dist/product-intent/ui-wireframe.d.ts +103 -0
- package/dist/product-intent/ui-wireframe.js +33 -0
- package/dist/registry-utils.d.ts +0 -1
- package/dist/registry-utils.js +3 -3
- package/dist/resources.js +1 -1
- package/dist/schema-to-markdown.d.ts +0 -1
- package/dist/server/contracts-adapter-input.js +2 -2
- package/dist/server/graphql-pothos.d.ts +0 -1
- package/dist/server/mcp/createMcpServer.d.ts +0 -1
- package/dist/server/rest-express.d.ts +0 -1
- package/dist/server/rest-generic.js +3 -3
- package/dist/server/rest-next-app.d.ts +0 -1
- package/dist/tests/spec.d.ts +0 -1
- package/dist/translations/registry.d.ts +0 -1
- package/dist/translations/spec.d.ts +0 -1
- package/dist/translations/validation.d.ts +0 -1
- package/dist/types.d.ts +5 -12
- package/dist/versioning/types.d.ts +0 -1
- package/dist/versioning/utils.d.ts +0 -1
- package/dist/workflow/adapters/memory-store.d.ts +0 -1
- package/dist/workflow/context.d.ts +0 -1
- package/dist/workflow/context.js +2 -2
- package/dist/workflow/runner.d.ts +1 -2
- package/dist/workspace-config/contractsrc-schema.d.ts +0 -1
- package/dist/workspace-config/contractsrc-types.d.ts +1 -3
- package/package.json +110 -32
- package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +0 -20
- package/dist/integrations/providers/impls/elevenlabs-voice.js +0 -95
- package/dist/integrations/providers/impls/gcs-storage.d.ts +0 -24
- package/dist/integrations/providers/impls/gcs-storage.js +0 -88
- package/dist/integrations/providers/impls/gmail-inbound.d.ts +0 -26
- package/dist/integrations/providers/impls/gmail-inbound.js +0 -200
- package/dist/integrations/providers/impls/gmail-outbound.d.ts +0 -18
- package/dist/integrations/providers/impls/gmail-outbound.js +0 -105
- package/dist/integrations/providers/impls/google-calendar.d.ts +0 -23
- package/dist/integrations/providers/impls/google-calendar.js +0 -154
- package/dist/integrations/providers/impls/index.d.ts +0 -15
- package/dist/integrations/providers/impls/index.js +0 -16
- package/dist/integrations/providers/impls/mistral-embedding.d.ts +0 -23
- package/dist/integrations/providers/impls/mistral-embedding.js +0 -41
- package/dist/integrations/providers/impls/mistral-llm.d.ts +0 -31
- package/dist/integrations/providers/impls/mistral-llm.js +0 -247
- package/dist/integrations/providers/impls/postmark-email.d.ts +0 -19
- package/dist/integrations/providers/impls/postmark-email.js +0 -55
- package/dist/integrations/providers/impls/powens-client.d.ts +0 -124
- package/dist/integrations/providers/impls/powens-client.js +0 -171
- package/dist/integrations/providers/impls/powens-openbanking.d.ts +0 -27
- package/dist/integrations/providers/impls/powens-openbanking.js +0 -218
- package/dist/integrations/providers/impls/provider-factory.d.ts +0 -26
- package/dist/integrations/providers/impls/provider-factory.js +0 -146
- package/dist/integrations/providers/impls/qdrant-vector.d.ts +0 -24
- package/dist/integrations/providers/impls/qdrant-vector.js +0 -69
- package/dist/integrations/providers/impls/stripe-payments.d.ts +0 -28
- package/dist/integrations/providers/impls/stripe-payments.js +0 -202
- package/dist/integrations/providers/impls/twilio-sms.d.ts +0 -20
- package/dist/integrations/providers/impls/twilio-sms.js +0 -58
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { AnyOperationSpec, OperationSpec } from "../../../operations/operation.js";
|
|
2
|
+
import "../../../operations/index.js";
|
|
3
|
+
import { OperationSpecRegistry } from "../../../operations/registry.js";
|
|
4
|
+
import "../../../index.js";
|
|
5
|
+
import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
|
|
6
|
+
import { SchemaModel } from "@contractspec/lib.schema";
|
|
7
|
+
|
|
8
|
+
//#region src/integrations/meeting-recorder/contracts/transcripts.d.ts
|
|
9
|
+
declare const MeetingRecorderGetTranscript: OperationSpec<SchemaModel<{
|
|
10
|
+
tenantId: {
|
|
11
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
12
|
+
isOptional: false;
|
|
13
|
+
};
|
|
14
|
+
meetingId: {
|
|
15
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
16
|
+
isOptional: false;
|
|
17
|
+
};
|
|
18
|
+
connectionId: {
|
|
19
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
20
|
+
isOptional: true;
|
|
21
|
+
};
|
|
22
|
+
includeSegments: {
|
|
23
|
+
type: _contractspec_lib_schema0.FieldType<boolean, boolean>;
|
|
24
|
+
isOptional: true;
|
|
25
|
+
};
|
|
26
|
+
format: {
|
|
27
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
28
|
+
isOptional: true;
|
|
29
|
+
};
|
|
30
|
+
}>, SchemaModel<{
|
|
31
|
+
id: {
|
|
32
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
33
|
+
isOptional: false;
|
|
34
|
+
};
|
|
35
|
+
meetingId: {
|
|
36
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
37
|
+
isOptional: false;
|
|
38
|
+
};
|
|
39
|
+
tenantId: {
|
|
40
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
41
|
+
isOptional: false;
|
|
42
|
+
};
|
|
43
|
+
connectionId: {
|
|
44
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
45
|
+
isOptional: false;
|
|
46
|
+
};
|
|
47
|
+
externalId: {
|
|
48
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
49
|
+
isOptional: true;
|
|
50
|
+
};
|
|
51
|
+
format: {
|
|
52
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
53
|
+
isOptional: true;
|
|
54
|
+
};
|
|
55
|
+
text: {
|
|
56
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
57
|
+
isOptional: true;
|
|
58
|
+
};
|
|
59
|
+
segments: {
|
|
60
|
+
type: SchemaModel<{
|
|
61
|
+
index: {
|
|
62
|
+
type: _contractspec_lib_schema0.FieldType<number, number>;
|
|
63
|
+
isOptional: true;
|
|
64
|
+
};
|
|
65
|
+
speakerId: {
|
|
66
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
67
|
+
isOptional: true;
|
|
68
|
+
};
|
|
69
|
+
speakerName: {
|
|
70
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
71
|
+
isOptional: true;
|
|
72
|
+
};
|
|
73
|
+
speakerEmail: {
|
|
74
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
75
|
+
isOptional: true;
|
|
76
|
+
};
|
|
77
|
+
text: {
|
|
78
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
79
|
+
isOptional: false;
|
|
80
|
+
};
|
|
81
|
+
startTimeMs: {
|
|
82
|
+
type: _contractspec_lib_schema0.FieldType<number, number>;
|
|
83
|
+
isOptional: true;
|
|
84
|
+
};
|
|
85
|
+
endTimeMs: {
|
|
86
|
+
type: _contractspec_lib_schema0.FieldType<number, number>;
|
|
87
|
+
isOptional: true;
|
|
88
|
+
};
|
|
89
|
+
startTime: {
|
|
90
|
+
type: _contractspec_lib_schema0.FieldType<Date, string>;
|
|
91
|
+
isOptional: true;
|
|
92
|
+
};
|
|
93
|
+
endTime: {
|
|
94
|
+
type: _contractspec_lib_schema0.FieldType<Date, string>;
|
|
95
|
+
isOptional: true;
|
|
96
|
+
};
|
|
97
|
+
confidence: {
|
|
98
|
+
type: _contractspec_lib_schema0.FieldType<number, number>;
|
|
99
|
+
isOptional: true;
|
|
100
|
+
};
|
|
101
|
+
metadata: {
|
|
102
|
+
type: _contractspec_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
|
|
103
|
+
isOptional: true;
|
|
104
|
+
};
|
|
105
|
+
}>;
|
|
106
|
+
isArray: true;
|
|
107
|
+
isOptional: true;
|
|
108
|
+
};
|
|
109
|
+
language: {
|
|
110
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
111
|
+
isOptional: true;
|
|
112
|
+
};
|
|
113
|
+
sourceUrl: {
|
|
114
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
115
|
+
isOptional: true;
|
|
116
|
+
};
|
|
117
|
+
generatedAt: {
|
|
118
|
+
type: _contractspec_lib_schema0.FieldType<Date, string>;
|
|
119
|
+
isOptional: true;
|
|
120
|
+
};
|
|
121
|
+
metadata: {
|
|
122
|
+
type: _contractspec_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
|
|
123
|
+
isOptional: true;
|
|
124
|
+
};
|
|
125
|
+
raw: {
|
|
126
|
+
type: _contractspec_lib_schema0.FieldType<unknown, unknown>;
|
|
127
|
+
isOptional: true;
|
|
128
|
+
};
|
|
129
|
+
}>, undefined>;
|
|
130
|
+
declare const MeetingRecorderSyncTranscript: OperationSpec<SchemaModel<{
|
|
131
|
+
tenantId: {
|
|
132
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
133
|
+
isOptional: false;
|
|
134
|
+
};
|
|
135
|
+
meetingId: {
|
|
136
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
137
|
+
isOptional: false;
|
|
138
|
+
};
|
|
139
|
+
connectionId: {
|
|
140
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
141
|
+
isOptional: true;
|
|
142
|
+
};
|
|
143
|
+
forceRefresh: {
|
|
144
|
+
type: _contractspec_lib_schema0.FieldType<boolean, boolean>;
|
|
145
|
+
isOptional: true;
|
|
146
|
+
};
|
|
147
|
+
triggerWebhooks: {
|
|
148
|
+
type: _contractspec_lib_schema0.FieldType<boolean, boolean>;
|
|
149
|
+
isOptional: true;
|
|
150
|
+
};
|
|
151
|
+
}>, SchemaModel<{
|
|
152
|
+
synced: {
|
|
153
|
+
type: _contractspec_lib_schema0.FieldType<number, number>;
|
|
154
|
+
isOptional: false;
|
|
155
|
+
};
|
|
156
|
+
failed: {
|
|
157
|
+
type: _contractspec_lib_schema0.FieldType<number, number>;
|
|
158
|
+
isOptional: false;
|
|
159
|
+
};
|
|
160
|
+
errors: {
|
|
161
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
162
|
+
isArray: true;
|
|
163
|
+
isOptional: true;
|
|
164
|
+
};
|
|
165
|
+
nextSyncSuggestedAt: {
|
|
166
|
+
type: _contractspec_lib_schema0.FieldType<Date, string>;
|
|
167
|
+
isOptional: true;
|
|
168
|
+
};
|
|
169
|
+
}>, undefined>;
|
|
170
|
+
declare const meetingRecorderTranscriptContracts: Record<string, AnyOperationSpec>;
|
|
171
|
+
declare function registerMeetingRecorderTranscriptContracts(registry: OperationSpecRegistry): OperationSpecRegistry;
|
|
172
|
+
//#endregion
|
|
173
|
+
export { MeetingRecorderGetTranscript, MeetingRecorderSyncTranscript, meetingRecorderTranscriptContracts, registerMeetingRecorderTranscriptContracts };
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { defineCommand, defineQuery } from "../../../operations/operation.js";
|
|
2
|
+
import "../../../operations/index.js";
|
|
3
|
+
import { MeetingTranscriptRecord } from "../models.js";
|
|
4
|
+
import { MEETING_RECORDER_TELEMETRY_EVENTS } from "../telemetry.js";
|
|
5
|
+
import { ScalarTypeEnum, SchemaModel } from "@contractspec/lib.schema";
|
|
6
|
+
|
|
7
|
+
//#region src/integrations/meeting-recorder/contracts/transcripts.ts
|
|
8
|
+
const MeetingRecorderGetTranscriptInput = new SchemaModel({
|
|
9
|
+
name: "MeetingRecorderGetTranscriptInput",
|
|
10
|
+
description: "Parameters for fetching a meeting transcript.",
|
|
11
|
+
fields: {
|
|
12
|
+
tenantId: {
|
|
13
|
+
type: ScalarTypeEnum.ID(),
|
|
14
|
+
isOptional: false
|
|
15
|
+
},
|
|
16
|
+
meetingId: {
|
|
17
|
+
type: ScalarTypeEnum.ID(),
|
|
18
|
+
isOptional: false
|
|
19
|
+
},
|
|
20
|
+
connectionId: {
|
|
21
|
+
type: ScalarTypeEnum.ID(),
|
|
22
|
+
isOptional: true
|
|
23
|
+
},
|
|
24
|
+
includeSegments: {
|
|
25
|
+
type: ScalarTypeEnum.Boolean(),
|
|
26
|
+
isOptional: true
|
|
27
|
+
},
|
|
28
|
+
format: {
|
|
29
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
30
|
+
isOptional: true
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
const MeetingRecorderSyncTranscriptInput = new SchemaModel({
|
|
35
|
+
name: "MeetingRecorderSyncTranscriptInput",
|
|
36
|
+
description: "Command payload to synchronise meeting transcripts.",
|
|
37
|
+
fields: {
|
|
38
|
+
tenantId: {
|
|
39
|
+
type: ScalarTypeEnum.ID(),
|
|
40
|
+
isOptional: false
|
|
41
|
+
},
|
|
42
|
+
meetingId: {
|
|
43
|
+
type: ScalarTypeEnum.ID(),
|
|
44
|
+
isOptional: false
|
|
45
|
+
},
|
|
46
|
+
connectionId: {
|
|
47
|
+
type: ScalarTypeEnum.ID(),
|
|
48
|
+
isOptional: true
|
|
49
|
+
},
|
|
50
|
+
forceRefresh: {
|
|
51
|
+
type: ScalarTypeEnum.Boolean(),
|
|
52
|
+
isOptional: true
|
|
53
|
+
},
|
|
54
|
+
triggerWebhooks: {
|
|
55
|
+
type: ScalarTypeEnum.Boolean(),
|
|
56
|
+
isOptional: true
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
const MeetingRecorderSyncTranscriptOutput = new SchemaModel({
|
|
61
|
+
name: "MeetingRecorderSyncTranscriptOutput",
|
|
62
|
+
description: "Result of a transcript synchronisation run.",
|
|
63
|
+
fields: {
|
|
64
|
+
synced: {
|
|
65
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
66
|
+
isOptional: false
|
|
67
|
+
},
|
|
68
|
+
failed: {
|
|
69
|
+
type: ScalarTypeEnum.Int_unsecure(),
|
|
70
|
+
isOptional: false
|
|
71
|
+
},
|
|
72
|
+
errors: {
|
|
73
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
74
|
+
isArray: true,
|
|
75
|
+
isOptional: true
|
|
76
|
+
},
|
|
77
|
+
nextSyncSuggestedAt: {
|
|
78
|
+
type: ScalarTypeEnum.DateTime(),
|
|
79
|
+
isOptional: true
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
const MeetingRecorderGetTranscript = defineQuery({
|
|
84
|
+
meta: {
|
|
85
|
+
key: "meeting-recorder.transcripts.get",
|
|
86
|
+
version: "1.0.0",
|
|
87
|
+
description: "Fetch the transcript for a specific meeting recording.",
|
|
88
|
+
goal: "Expose meeting transcripts for downstream knowledge and analytics flows.",
|
|
89
|
+
context: "Used by agents and dashboards to access the transcript for a selected meeting.",
|
|
90
|
+
owners: ["@platform.integrations"],
|
|
91
|
+
tags: ["meeting-recorder", "transcripts"],
|
|
92
|
+
stability: "experimental"
|
|
93
|
+
},
|
|
94
|
+
io: {
|
|
95
|
+
input: MeetingRecorderGetTranscriptInput,
|
|
96
|
+
output: MeetingTranscriptRecord
|
|
97
|
+
},
|
|
98
|
+
policy: { auth: "user" }
|
|
99
|
+
});
|
|
100
|
+
const MeetingRecorderSyncTranscript = defineCommand({
|
|
101
|
+
meta: {
|
|
102
|
+
key: "meeting-recorder.transcripts.sync",
|
|
103
|
+
version: "1.0.0",
|
|
104
|
+
description: "Trigger a transcript sync from the meeting recorder provider.",
|
|
105
|
+
goal: "Keep canonical transcripts aligned with external meeting providers.",
|
|
106
|
+
context: "Invoked by scheduled jobs or webhooks when new transcripts are ready.",
|
|
107
|
+
owners: ["@platform.integrations"],
|
|
108
|
+
tags: [
|
|
109
|
+
"meeting-recorder",
|
|
110
|
+
"transcripts",
|
|
111
|
+
"sync"
|
|
112
|
+
],
|
|
113
|
+
stability: "experimental"
|
|
114
|
+
},
|
|
115
|
+
io: {
|
|
116
|
+
input: MeetingRecorderSyncTranscriptInput,
|
|
117
|
+
output: MeetingRecorderSyncTranscriptOutput
|
|
118
|
+
},
|
|
119
|
+
policy: { auth: "admin" },
|
|
120
|
+
telemetry: {
|
|
121
|
+
success: {
|
|
122
|
+
event: { key: MEETING_RECORDER_TELEMETRY_EVENTS.transcriptsSynced },
|
|
123
|
+
properties: ({ input, output }) => {
|
|
124
|
+
const payload = input;
|
|
125
|
+
const result = output;
|
|
126
|
+
return {
|
|
127
|
+
tenantId: payload?.tenantId,
|
|
128
|
+
meetingId: payload?.meetingId,
|
|
129
|
+
synced: result?.synced,
|
|
130
|
+
failed: result?.failed
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
failure: {
|
|
135
|
+
event: { key: MEETING_RECORDER_TELEMETRY_EVENTS.transcriptsSyncFailed },
|
|
136
|
+
properties: ({ input, error }) => {
|
|
137
|
+
const payload = input;
|
|
138
|
+
return {
|
|
139
|
+
tenantId: payload?.tenantId,
|
|
140
|
+
meetingId: payload?.meetingId,
|
|
141
|
+
error: error instanceof Error ? error.message : String(error ?? "unknown")
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
const meetingRecorderTranscriptContracts = {
|
|
148
|
+
MeetingRecorderGetTranscript,
|
|
149
|
+
MeetingRecorderSyncTranscript
|
|
150
|
+
};
|
|
151
|
+
function registerMeetingRecorderTranscriptContracts(registry) {
|
|
152
|
+
return registry.register(MeetingRecorderGetTranscript).register(MeetingRecorderSyncTranscript);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
//#endregion
|
|
156
|
+
export { MeetingRecorderGetTranscript, MeetingRecorderSyncTranscript, meetingRecorderTranscriptContracts, registerMeetingRecorderTranscriptContracts };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { AnyOperationSpec, OperationSpec } from "../../../operations/operation.js";
|
|
2
|
+
import "../../../operations/index.js";
|
|
3
|
+
import { OperationSpecRegistry } from "../../../operations/registry.js";
|
|
4
|
+
import "../../../index.js";
|
|
5
|
+
import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
|
|
6
|
+
import { SchemaModel } from "@contractspec/lib.schema";
|
|
7
|
+
|
|
8
|
+
//#region src/integrations/meeting-recorder/contracts/webhooks.d.ts
|
|
9
|
+
declare const MeetingRecorderWebhookIngest: OperationSpec<SchemaModel<{
|
|
10
|
+
tenantId: {
|
|
11
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
12
|
+
isOptional: false;
|
|
13
|
+
};
|
|
14
|
+
providerKey: {
|
|
15
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
16
|
+
isOptional: false;
|
|
17
|
+
};
|
|
18
|
+
connectionId: {
|
|
19
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
20
|
+
isOptional: true;
|
|
21
|
+
};
|
|
22
|
+
webhookId: {
|
|
23
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
24
|
+
isOptional: true;
|
|
25
|
+
};
|
|
26
|
+
headers: {
|
|
27
|
+
type: _contractspec_lib_schema0.FieldType<unknown, unknown>;
|
|
28
|
+
isOptional: true;
|
|
29
|
+
};
|
|
30
|
+
payload: {
|
|
31
|
+
type: _contractspec_lib_schema0.FieldType<unknown, unknown>;
|
|
32
|
+
isOptional: false;
|
|
33
|
+
};
|
|
34
|
+
receivedAt: {
|
|
35
|
+
type: _contractspec_lib_schema0.FieldType<Date, string>;
|
|
36
|
+
isOptional: true;
|
|
37
|
+
};
|
|
38
|
+
}>, SchemaModel<{
|
|
39
|
+
accepted: {
|
|
40
|
+
type: _contractspec_lib_schema0.FieldType<boolean, boolean>;
|
|
41
|
+
isOptional: false;
|
|
42
|
+
};
|
|
43
|
+
event: {
|
|
44
|
+
type: SchemaModel<{
|
|
45
|
+
id: {
|
|
46
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
47
|
+
isOptional: true;
|
|
48
|
+
};
|
|
49
|
+
providerKey: {
|
|
50
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
51
|
+
isOptional: true;
|
|
52
|
+
};
|
|
53
|
+
eventType: {
|
|
54
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
55
|
+
isOptional: true;
|
|
56
|
+
};
|
|
57
|
+
meetingId: {
|
|
58
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
59
|
+
isOptional: true;
|
|
60
|
+
};
|
|
61
|
+
transcriptId: {
|
|
62
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
63
|
+
isOptional: true;
|
|
64
|
+
};
|
|
65
|
+
recordingId: {
|
|
66
|
+
type: _contractspec_lib_schema0.FieldType<string, string>;
|
|
67
|
+
isOptional: true;
|
|
68
|
+
};
|
|
69
|
+
receivedAt: {
|
|
70
|
+
type: _contractspec_lib_schema0.FieldType<Date, string>;
|
|
71
|
+
isOptional: true;
|
|
72
|
+
};
|
|
73
|
+
verified: {
|
|
74
|
+
type: _contractspec_lib_schema0.FieldType<boolean, boolean>;
|
|
75
|
+
isOptional: true;
|
|
76
|
+
};
|
|
77
|
+
payload: {
|
|
78
|
+
type: _contractspec_lib_schema0.FieldType<unknown, unknown>;
|
|
79
|
+
isOptional: true;
|
|
80
|
+
};
|
|
81
|
+
metadata: {
|
|
82
|
+
type: _contractspec_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
|
|
83
|
+
isOptional: true;
|
|
84
|
+
};
|
|
85
|
+
}>;
|
|
86
|
+
isOptional: true;
|
|
87
|
+
};
|
|
88
|
+
}>, undefined>;
|
|
89
|
+
declare const meetingRecorderWebhookContracts: Record<string, AnyOperationSpec>;
|
|
90
|
+
declare function registerMeetingRecorderWebhookContracts(registry: OperationSpecRegistry): OperationSpecRegistry;
|
|
91
|
+
//#endregion
|
|
92
|
+
export { MeetingRecorderWebhookIngest, meetingRecorderWebhookContracts, registerMeetingRecorderWebhookContracts };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineCommand } from "../../../operations/operation.js";
|
|
2
|
+
import "../../../operations/index.js";
|
|
3
|
+
import { MeetingRecorderWebhookEventRecord } from "../models.js";
|
|
4
|
+
import { ScalarTypeEnum, SchemaModel } from "@contractspec/lib.schema";
|
|
5
|
+
|
|
6
|
+
//#region src/integrations/meeting-recorder/contracts/webhooks.ts
|
|
7
|
+
const MeetingRecorderWebhookIngestInput = new SchemaModel({
|
|
8
|
+
name: "MeetingRecorderWebhookIngestInput",
|
|
9
|
+
description: "Payload for ingesting a meeting recorder webhook event.",
|
|
10
|
+
fields: {
|
|
11
|
+
tenantId: {
|
|
12
|
+
type: ScalarTypeEnum.ID(),
|
|
13
|
+
isOptional: false
|
|
14
|
+
},
|
|
15
|
+
providerKey: {
|
|
16
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
17
|
+
isOptional: false
|
|
18
|
+
},
|
|
19
|
+
connectionId: {
|
|
20
|
+
type: ScalarTypeEnum.ID(),
|
|
21
|
+
isOptional: true
|
|
22
|
+
},
|
|
23
|
+
webhookId: {
|
|
24
|
+
type: ScalarTypeEnum.String_unsecure(),
|
|
25
|
+
isOptional: true
|
|
26
|
+
},
|
|
27
|
+
headers: {
|
|
28
|
+
type: ScalarTypeEnum.JSON(),
|
|
29
|
+
isOptional: true
|
|
30
|
+
},
|
|
31
|
+
payload: {
|
|
32
|
+
type: ScalarTypeEnum.JSON(),
|
|
33
|
+
isOptional: false
|
|
34
|
+
},
|
|
35
|
+
receivedAt: {
|
|
36
|
+
type: ScalarTypeEnum.DateTime(),
|
|
37
|
+
isOptional: true
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const MeetingRecorderWebhookIngestOutput = new SchemaModel({
|
|
42
|
+
name: "MeetingRecorderWebhookIngestOutput",
|
|
43
|
+
description: "Result of processing a meeting recorder webhook.",
|
|
44
|
+
fields: {
|
|
45
|
+
accepted: {
|
|
46
|
+
type: ScalarTypeEnum.Boolean(),
|
|
47
|
+
isOptional: false
|
|
48
|
+
},
|
|
49
|
+
event: {
|
|
50
|
+
type: MeetingRecorderWebhookEventRecord,
|
|
51
|
+
isOptional: true
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
const MeetingRecorderWebhookIngest = defineCommand({
|
|
56
|
+
meta: {
|
|
57
|
+
key: "meeting-recorder.webhooks.ingest",
|
|
58
|
+
version: "1.0.0",
|
|
59
|
+
description: "Ingest a webhook from a meeting recorder provider.",
|
|
60
|
+
goal: "Trigger transcript syncs or downstream workflows without polling.",
|
|
61
|
+
context: "Used by webhook handlers to validate and normalize provider webhook events.",
|
|
62
|
+
owners: ["@platform.integrations"],
|
|
63
|
+
tags: [
|
|
64
|
+
"meeting-recorder",
|
|
65
|
+
"webhooks",
|
|
66
|
+
"transcripts"
|
|
67
|
+
],
|
|
68
|
+
stability: "experimental"
|
|
69
|
+
},
|
|
70
|
+
io: {
|
|
71
|
+
input: MeetingRecorderWebhookIngestInput,
|
|
72
|
+
output: MeetingRecorderWebhookIngestOutput
|
|
73
|
+
},
|
|
74
|
+
policy: { auth: "admin" }
|
|
75
|
+
});
|
|
76
|
+
const meetingRecorderWebhookContracts = { MeetingRecorderWebhookIngest };
|
|
77
|
+
function registerMeetingRecorderWebhookContracts(registry) {
|
|
78
|
+
return registry.register(MeetingRecorderWebhookIngest);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
export { MeetingRecorderWebhookIngest, meetingRecorderWebhookContracts, registerMeetingRecorderWebhookContracts };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CapabilitySpec } from "../../capabilities/capabilities.js";
|
|
2
|
+
import "../../index.js";
|
|
3
|
+
|
|
4
|
+
//#region src/integrations/meeting-recorder/meeting-recorder.capability.d.ts
|
|
5
|
+
declare const MeetingRecorderCapability: CapabilitySpec;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { MeetingRecorderCapability };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { defineCapability } from "../../capabilities/capabilities.js";
|
|
2
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
3
|
+
import "../../capabilities/index.js";
|
|
4
|
+
|
|
5
|
+
//#region src/integrations/meeting-recorder/meeting-recorder.capability.ts
|
|
6
|
+
const MeetingRecorderCapability = defineCapability({ meta: {
|
|
7
|
+
key: "meeting-recorder",
|
|
8
|
+
version: "1.0.0",
|
|
9
|
+
kind: "integration",
|
|
10
|
+
stability: StabilityEnum.Experimental,
|
|
11
|
+
description: "Meeting recorder integrations capability",
|
|
12
|
+
owners: ["@platform.integrations"],
|
|
13
|
+
tags: [
|
|
14
|
+
"meeting-recorder",
|
|
15
|
+
"transcripts",
|
|
16
|
+
"integrations"
|
|
17
|
+
]
|
|
18
|
+
} });
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { MeetingRecorderCapability };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FeatureModuleSpec } from "../../features/types.js";
|
|
2
|
+
import "../../index.js";
|
|
3
|
+
|
|
4
|
+
//#region src/integrations/meeting-recorder/meeting-recorder.feature.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Meeting recorder feature module that bundles meeting metadata,
|
|
7
|
+
* transcript fetch, and webhook ingestion capabilities.
|
|
8
|
+
*/
|
|
9
|
+
declare const MeetingRecorderFeature: FeatureModuleSpec;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { MeetingRecorderFeature };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { defineFeature } from "../../features/index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/integrations/meeting-recorder/meeting-recorder.feature.ts
|
|
4
|
+
/**
|
|
5
|
+
* Meeting Recorder Integration Feature Module Specification
|
|
6
|
+
*
|
|
7
|
+
* Defines the feature module for meeting recorder integrations.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Meeting recorder feature module that bundles meeting metadata,
|
|
11
|
+
* transcript fetch, and webhook ingestion capabilities.
|
|
12
|
+
*/
|
|
13
|
+
const MeetingRecorderFeature = defineFeature({
|
|
14
|
+
meta: {
|
|
15
|
+
key: "meeting-recorder",
|
|
16
|
+
version: "1.0.0",
|
|
17
|
+
title: "Meeting Recorder Integration",
|
|
18
|
+
description: "Meeting metadata, transcript retrieval, and webhook ingestion for meeting recorder providers.",
|
|
19
|
+
domain: "integrations",
|
|
20
|
+
owners: ["@platform.integrations"],
|
|
21
|
+
tags: [
|
|
22
|
+
"meeting-recorder",
|
|
23
|
+
"transcripts",
|
|
24
|
+
"integrations"
|
|
25
|
+
],
|
|
26
|
+
stability: "experimental"
|
|
27
|
+
},
|
|
28
|
+
operations: [
|
|
29
|
+
{
|
|
30
|
+
key: "meeting-recorder.meetings.list",
|
|
31
|
+
version: "1.0.0"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: "meeting-recorder.meetings.get",
|
|
35
|
+
version: "1.0.0"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
key: "meeting-recorder.transcripts.get",
|
|
39
|
+
version: "1.0.0"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
key: "meeting-recorder.transcripts.sync",
|
|
43
|
+
version: "1.0.0"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
key: "meeting-recorder.webhooks.ingest",
|
|
47
|
+
version: "1.0.0"
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
events: [],
|
|
51
|
+
presentations: [],
|
|
52
|
+
opToPresentation: [],
|
|
53
|
+
presentationsTargets: [],
|
|
54
|
+
capabilities: {
|
|
55
|
+
provides: [{
|
|
56
|
+
key: "meeting-recorder",
|
|
57
|
+
version: "1.0.0"
|
|
58
|
+
}],
|
|
59
|
+
requires: [{
|
|
60
|
+
key: "identity",
|
|
61
|
+
version: "1.0.0"
|
|
62
|
+
}]
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
//#endregion
|
|
67
|
+
export { MeetingRecorderFeature };
|