@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.
Files changed (212) hide show
  1. package/dist/_virtual/{rolldown_runtime.js → _rolldown/runtime.js} +3 -3
  2. package/dist/app-config/app-config.contracts.d.ts +50 -50
  3. package/dist/app-config/events.d.ts +27 -27
  4. package/dist/app-config/lifecycle-contracts.d.ts +54 -54
  5. package/dist/app-config/runtime.js +3 -3
  6. package/dist/app-config/validation.js +3 -3
  7. package/dist/capabilities/capabilities.js +20 -20
  8. package/dist/capabilities/context.d.ts +0 -1
  9. package/dist/capabilities/context.js +1 -1
  10. package/dist/capabilities/guards.d.ts +0 -1
  11. package/dist/capabilities/index.d.ts +2 -1
  12. package/dist/capabilities/index.js +2 -1
  13. package/dist/capabilities/meeting-recorder.d.ts +10 -0
  14. package/dist/capabilities/meeting-recorder.js +82 -0
  15. package/dist/capabilities/validation.d.ts +0 -1
  16. package/dist/client/react/drivers/rn-reusables.d.ts +0 -1
  17. package/dist/client/react/drivers/shadcn.d.ts +0 -1
  18. package/dist/client/react/form-render.js +3 -3
  19. package/dist/contract-registry/schemas.d.ts +2 -2
  20. package/dist/data-views/registry.d.ts +0 -1
  21. package/dist/data-views/spec.d.ts +0 -1
  22. package/dist/docs/commands/docsPublish.command.d.ts +13 -13
  23. package/dist/docs/contracts.d.ts +103 -103
  24. package/dist/docs/events/docsGenerated.event.d.ts +13 -13
  25. package/dist/docs/events/docsPublished.event.d.ts +15 -15
  26. package/dist/docs/forms/docsSearch.form.d.ts +4 -4
  27. package/dist/docs/queries/contractReference.query.d.ts +47 -47
  28. package/dist/docs/queries/docsIndex.query.d.ts +57 -57
  29. package/dist/docs/tech/llm/llm-integration.docblock.d.ts +0 -1
  30. package/dist/docs/tech/mcp-endpoints.docblock.js +5 -0
  31. package/dist/events.d.ts +0 -1
  32. package/dist/examples/index.d.ts +0 -1
  33. package/dist/examples/registry.d.ts +0 -1
  34. package/dist/examples/schema.d.ts +17 -17
  35. package/dist/experiments/spec.d.ts +2 -4
  36. package/dist/features/index.d.ts +0 -1
  37. package/dist/features/types.d.ts +2 -5
  38. package/dist/forms/forms.d.ts +1 -2
  39. package/dist/forms/forms.js +1 -2
  40. package/dist/index.d.ts +42 -1
  41. package/dist/index.js +36 -1
  42. package/dist/install.d.ts +2 -5
  43. package/dist/integrations/docs/integrations.docblock.js +19 -1
  44. package/dist/integrations/index.d.ts +26 -1
  45. package/dist/integrations/index.js +20 -1
  46. package/dist/integrations/meeting-recorder/contracts/index.d.ts +10 -0
  47. package/dist/integrations/meeting-recorder/contracts/index.js +12 -0
  48. package/dist/integrations/meeting-recorder/contracts/meetings.d.ts +458 -0
  49. package/dist/integrations/meeting-recorder/contracts/meetings.js +149 -0
  50. package/dist/integrations/meeting-recorder/contracts/transcripts.d.ts +173 -0
  51. package/dist/integrations/meeting-recorder/contracts/transcripts.js +156 -0
  52. package/dist/integrations/meeting-recorder/contracts/webhooks.d.ts +92 -0
  53. package/dist/integrations/meeting-recorder/contracts/webhooks.js +82 -0
  54. package/dist/integrations/meeting-recorder/meeting-recorder.capability.d.ts +7 -0
  55. package/dist/integrations/meeting-recorder/meeting-recorder.capability.js +21 -0
  56. package/dist/integrations/meeting-recorder/meeting-recorder.feature.d.ts +11 -0
  57. package/dist/integrations/meeting-recorder/meeting-recorder.feature.js +67 -0
  58. package/dist/integrations/meeting-recorder/models.d.ts +407 -0
  59. package/dist/integrations/meeting-recorder/models.js +295 -0
  60. package/dist/integrations/meeting-recorder/telemetry.d.ts +16 -0
  61. package/dist/integrations/meeting-recorder/telemetry.js +42 -0
  62. package/dist/integrations/openbanking/contracts/accounts.d.ts +66 -66
  63. package/dist/integrations/openbanking/contracts/balances.d.ts +34 -34
  64. package/dist/integrations/openbanking/contracts/transactions.d.ts +48 -48
  65. package/dist/integrations/openbanking/models.d.ts +55 -55
  66. package/dist/integrations/operations.d.ts +102 -102
  67. package/dist/integrations/providers/analytics-reader.d.ts +107 -0
  68. package/dist/integrations/providers/analytics-reader.js +0 -0
  69. package/dist/integrations/providers/analytics-writer.d.ts +10 -0
  70. package/dist/integrations/providers/analytics-writer.js +0 -0
  71. package/dist/integrations/providers/analytics.d.ts +49 -0
  72. package/dist/integrations/providers/analytics.js +0 -0
  73. package/dist/integrations/providers/database.d.ts +15 -0
  74. package/dist/integrations/providers/database.js +0 -0
  75. package/dist/integrations/providers/fal.d.ts +8 -0
  76. package/dist/integrations/providers/fal.js +94 -0
  77. package/dist/integrations/providers/fathom.d.ts +8 -0
  78. package/dist/integrations/providers/fathom.js +114 -0
  79. package/dist/integrations/providers/fireflies.d.ts +8 -0
  80. package/dist/integrations/providers/fireflies.js +98 -0
  81. package/dist/integrations/providers/gradium.d.ts +8 -0
  82. package/dist/integrations/providers/gradium.js +92 -0
  83. package/dist/integrations/providers/granola.d.ts +8 -0
  84. package/dist/integrations/providers/granola.js +71 -0
  85. package/dist/integrations/providers/index.d.ts +19 -1
  86. package/dist/integrations/providers/index.js +13 -1
  87. package/dist/integrations/providers/jira.d.ts +8 -0
  88. package/dist/integrations/providers/jira.js +90 -0
  89. package/dist/integrations/providers/linear.d.ts +8 -0
  90. package/dist/integrations/providers/linear.js +85 -0
  91. package/dist/integrations/providers/meeting-recorder.d.ts +132 -0
  92. package/dist/integrations/providers/meeting-recorder.js +0 -0
  93. package/dist/integrations/providers/notion.d.ts +8 -0
  94. package/dist/integrations/providers/notion.js +91 -0
  95. package/dist/integrations/providers/posthog.d.ts +8 -0
  96. package/dist/integrations/providers/posthog.js +107 -0
  97. package/dist/integrations/providers/project-management.d.ts +35 -0
  98. package/dist/integrations/providers/project-management.js +0 -0
  99. package/dist/integrations/providers/registry.d.ts +0 -1
  100. package/dist/integrations/providers/registry.js +24 -0
  101. package/dist/integrations/providers/supabase-postgres.d.ts +8 -0
  102. package/dist/integrations/providers/supabase-postgres.js +73 -0
  103. package/dist/integrations/providers/supabase-vector.d.ts +8 -0
  104. package/dist/integrations/providers/supabase-vector.js +93 -0
  105. package/dist/integrations/providers/tldv.d.ts +8 -0
  106. package/dist/integrations/providers/tldv.js +98 -0
  107. package/dist/integrations/runtime.js +0 -1
  108. package/dist/integrations/spec.d.ts +1 -1
  109. package/dist/jobs/queue.d.ts +0 -1
  110. package/dist/knowledge/binding.d.ts +1 -3
  111. package/dist/knowledge/operations.d.ts +66 -66
  112. package/dist/llm/exporters.d.ts +0 -1
  113. package/dist/llm/exporters.js +0 -1
  114. package/dist/llm/prompts.d.ts +0 -1
  115. package/dist/llm/types.d.ts +0 -1
  116. package/dist/onboarding-base.d.ts +29 -29
  117. package/dist/openapi.d.ts +0 -1
  118. package/dist/operations/operation.d.ts +19 -43
  119. package/dist/operations/registry.d.ts +0 -1
  120. package/dist/operations/registry.js +2 -2
  121. package/dist/operations/report/getContractVerificationStatus.d.ts +10 -10
  122. package/dist/ownership.d.ts +41 -88
  123. package/dist/policy/guards.d.ts +0 -1
  124. package/dist/policy/guards.js +3 -3
  125. package/dist/policy/index.d.ts +0 -1
  126. package/dist/policy/validation.d.ts +0 -1
  127. package/dist/product-intent/contract-patch-intent.d.ts +103 -0
  128. package/dist/product-intent/contract-patch-intent.js +33 -0
  129. package/dist/product-intent/contract-spec-patch.d.ts +89 -0
  130. package/dist/product-intent/contract-spec-patch.js +27 -0
  131. package/dist/product-intent/evidence.d.ts +17 -0
  132. package/dist/product-intent/evidence.js +13 -0
  133. package/dist/product-intent/findings.d.ts +60 -0
  134. package/dist/product-intent/findings.js +17 -0
  135. package/dist/product-intent/impact-report.d.ts +60 -0
  136. package/dist/product-intent/impact-report.js +27 -0
  137. package/dist/product-intent/index.d.ts +16 -0
  138. package/dist/product-intent/index.js +17 -0
  139. package/dist/product-intent/insights.d.ts +65 -0
  140. package/dist/product-intent/insights.js +23 -0
  141. package/dist/product-intent/opportunity-brief.d.ts +195 -0
  142. package/dist/product-intent/opportunity-brief.js +42 -0
  143. package/dist/product-intent/problems.d.ts +62 -0
  144. package/dist/product-intent/problems.js +22 -0
  145. package/dist/product-intent/registry.d.ts +32 -0
  146. package/dist/product-intent/registry.js +49 -0
  147. package/dist/product-intent/runtime.d.ts +103 -0
  148. package/dist/product-intent/runtime.js +101 -0
  149. package/dist/product-intent/spec.d.ts +676 -0
  150. package/dist/product-intent/spec.js +53 -0
  151. package/dist/product-intent/task-pack.d.ts +101 -0
  152. package/dist/product-intent/task-pack.js +34 -0
  153. package/dist/product-intent/tickets.d.ts +70 -0
  154. package/dist/product-intent/tickets.js +24 -0
  155. package/dist/product-intent/types.d.ts +12 -0
  156. package/dist/product-intent/types.js +13 -0
  157. package/dist/product-intent/ui-wireframe.d.ts +103 -0
  158. package/dist/product-intent/ui-wireframe.js +33 -0
  159. package/dist/registry-utils.d.ts +0 -1
  160. package/dist/registry-utils.js +3 -3
  161. package/dist/resources.js +1 -1
  162. package/dist/schema-to-markdown.d.ts +0 -1
  163. package/dist/server/contracts-adapter-input.js +2 -2
  164. package/dist/server/graphql-pothos.d.ts +0 -1
  165. package/dist/server/mcp/createMcpServer.d.ts +0 -1
  166. package/dist/server/rest-express.d.ts +0 -1
  167. package/dist/server/rest-generic.js +3 -3
  168. package/dist/server/rest-next-app.d.ts +0 -1
  169. package/dist/tests/spec.d.ts +0 -1
  170. package/dist/translations/registry.d.ts +0 -1
  171. package/dist/translations/spec.d.ts +0 -1
  172. package/dist/translations/validation.d.ts +0 -1
  173. package/dist/types.d.ts +5 -12
  174. package/dist/versioning/types.d.ts +0 -1
  175. package/dist/versioning/utils.d.ts +0 -1
  176. package/dist/workflow/adapters/memory-store.d.ts +0 -1
  177. package/dist/workflow/context.d.ts +0 -1
  178. package/dist/workflow/context.js +2 -2
  179. package/dist/workflow/runner.d.ts +1 -2
  180. package/dist/workspace-config/contractsrc-schema.d.ts +0 -1
  181. package/dist/workspace-config/contractsrc-types.d.ts +1 -3
  182. package/package.json +110 -32
  183. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +0 -20
  184. package/dist/integrations/providers/impls/elevenlabs-voice.js +0 -95
  185. package/dist/integrations/providers/impls/gcs-storage.d.ts +0 -24
  186. package/dist/integrations/providers/impls/gcs-storage.js +0 -88
  187. package/dist/integrations/providers/impls/gmail-inbound.d.ts +0 -26
  188. package/dist/integrations/providers/impls/gmail-inbound.js +0 -200
  189. package/dist/integrations/providers/impls/gmail-outbound.d.ts +0 -18
  190. package/dist/integrations/providers/impls/gmail-outbound.js +0 -105
  191. package/dist/integrations/providers/impls/google-calendar.d.ts +0 -23
  192. package/dist/integrations/providers/impls/google-calendar.js +0 -154
  193. package/dist/integrations/providers/impls/index.d.ts +0 -15
  194. package/dist/integrations/providers/impls/index.js +0 -16
  195. package/dist/integrations/providers/impls/mistral-embedding.d.ts +0 -23
  196. package/dist/integrations/providers/impls/mistral-embedding.js +0 -41
  197. package/dist/integrations/providers/impls/mistral-llm.d.ts +0 -31
  198. package/dist/integrations/providers/impls/mistral-llm.js +0 -247
  199. package/dist/integrations/providers/impls/postmark-email.d.ts +0 -19
  200. package/dist/integrations/providers/impls/postmark-email.js +0 -55
  201. package/dist/integrations/providers/impls/powens-client.d.ts +0 -124
  202. package/dist/integrations/providers/impls/powens-client.js +0 -171
  203. package/dist/integrations/providers/impls/powens-openbanking.d.ts +0 -27
  204. package/dist/integrations/providers/impls/powens-openbanking.js +0 -218
  205. package/dist/integrations/providers/impls/provider-factory.d.ts +0 -26
  206. package/dist/integrations/providers/impls/provider-factory.js +0 -146
  207. package/dist/integrations/providers/impls/qdrant-vector.d.ts +0 -24
  208. package/dist/integrations/providers/impls/qdrant-vector.js +0 -69
  209. package/dist/integrations/providers/impls/stripe-payments.d.ts +0 -28
  210. package/dist/integrations/providers/impls/stripe-payments.js +0 -202
  211. package/dist/integrations/providers/impls/twilio-sms.d.ts +0 -20
  212. 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 };