@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
@@ -1,13 +1,25 @@
1
1
  import { registerStripeIntegration, stripeIntegrationSpec } from "./stripe.js";
2
2
  import { postmarkIntegrationSpec, registerPostmarkIntegration } from "./postmark.js";
3
3
  import { qdrantIntegrationSpec, registerQdrantIntegration } from "./qdrant.js";
4
+ import { registerSupabaseVectorIntegration, supabaseVectorIntegrationSpec } from "./supabase-vector.js";
5
+ import { registerSupabasePostgresIntegration, supabasePostgresIntegrationSpec } from "./supabase-postgres.js";
4
6
  import { mistralIntegrationSpec, registerMistralIntegration } from "./mistral.js";
5
7
  import { elevenLabsIntegrationSpec, registerElevenLabsIntegration } from "./elevenlabs.js";
8
+ import { gradiumIntegrationSpec, registerGradiumIntegration } from "./gradium.js";
9
+ import { falIntegrationSpec, registerFalIntegration } from "./fal.js";
6
10
  import { gmailIntegrationSpec, registerGmailIntegration } from "./gmail.js";
7
11
  import { googleCalendarIntegrationSpec, registerGoogleCalendarIntegration } from "./google-calendar.js";
8
12
  import { registerTwilioSmsIntegration, twilioSmsIntegrationSpec } from "./twilio-sms.js";
9
13
  import { gcsStorageIntegrationSpec, registerGcsStorageIntegration } from "./gcs-storage.js";
10
14
  import { powensIntegrationSpec, registerPowensIntegration } from "./powens.js";
15
+ import { posthogIntegrationSpec, registerPosthogIntegration } from "./posthog.js";
16
+ import { linearIntegrationSpec, registerLinearIntegration } from "./linear.js";
17
+ import { jiraIntegrationSpec, registerJiraIntegration } from "./jira.js";
18
+ import { notionIntegrationSpec, registerNotionIntegration } from "./notion.js";
19
+ import { granolaIntegrationSpec, registerGranolaIntegration } from "./granola.js";
20
+ import { registerTldvIntegration, tldvIntegrationSpec } from "./tldv.js";
21
+ import { firefliesIntegrationSpec, registerFirefliesIntegration } from "./fireflies.js";
22
+ import { fathomIntegrationSpec, registerFathomIntegration } from "./fathom.js";
11
23
  import { createDefaultIntegrationSpecRegistry } from "./registry.js";
12
24
 
13
- export { createDefaultIntegrationSpecRegistry, elevenLabsIntegrationSpec, gcsStorageIntegrationSpec, gmailIntegrationSpec, googleCalendarIntegrationSpec, mistralIntegrationSpec, postmarkIntegrationSpec, powensIntegrationSpec, qdrantIntegrationSpec, registerElevenLabsIntegration, registerGcsStorageIntegration, registerGmailIntegration, registerGoogleCalendarIntegration, registerMistralIntegration, registerPostmarkIntegration, registerPowensIntegration, registerQdrantIntegration, registerStripeIntegration, registerTwilioSmsIntegration, stripeIntegrationSpec, twilioSmsIntegrationSpec };
25
+ export { createDefaultIntegrationSpecRegistry, elevenLabsIntegrationSpec, falIntegrationSpec, fathomIntegrationSpec, firefliesIntegrationSpec, gcsStorageIntegrationSpec, gmailIntegrationSpec, googleCalendarIntegrationSpec, gradiumIntegrationSpec, granolaIntegrationSpec, jiraIntegrationSpec, linearIntegrationSpec, mistralIntegrationSpec, notionIntegrationSpec, posthogIntegrationSpec, postmarkIntegrationSpec, powensIntegrationSpec, qdrantIntegrationSpec, registerElevenLabsIntegration, registerFalIntegration, registerFathomIntegration, registerFirefliesIntegration, registerGcsStorageIntegration, registerGmailIntegration, registerGoogleCalendarIntegration, registerGradiumIntegration, registerGranolaIntegration, registerJiraIntegration, registerLinearIntegration, registerMistralIntegration, registerNotionIntegration, registerPosthogIntegration, registerPostmarkIntegration, registerPowensIntegration, registerQdrantIntegration, registerStripeIntegration, registerSupabasePostgresIntegration, registerSupabaseVectorIntegration, registerTldvIntegration, registerTwilioSmsIntegration, stripeIntegrationSpec, supabasePostgresIntegrationSpec, supabaseVectorIntegrationSpec, tldvIntegrationSpec, twilioSmsIntegrationSpec };
@@ -0,0 +1,8 @@
1
+ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
2
+ import "../index.js";
3
+
4
+ //#region src/integrations/providers/jira.d.ts
5
+ declare const jiraIntegrationSpec: IntegrationSpec;
6
+ declare function registerJiraIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
7
+ //#endregion
8
+ export { jiraIntegrationSpec, registerJiraIntegration };
@@ -0,0 +1,90 @@
1
+ import { StabilityEnum } from "../../ownership.js";
2
+ import { defineIntegration } from "../spec.js";
3
+
4
+ //#region src/integrations/providers/jira.ts
5
+ const jiraIntegrationSpec = defineIntegration({
6
+ meta: {
7
+ key: "project-management.jira",
8
+ version: "1.0.0",
9
+ category: "project-management",
10
+ title: "Jira Cloud",
11
+ description: "Jira Cloud integration for creating and tracking work items.",
12
+ domain: "productivity",
13
+ owners: ["@platform.integrations"],
14
+ tags: ["project-management", "jira"],
15
+ stability: StabilityEnum.Beta
16
+ },
17
+ supportedModes: ["managed", "byok"],
18
+ capabilities: { provides: [{
19
+ key: "project-management.work-items",
20
+ version: "1.0.0"
21
+ }] },
22
+ configSchema: {
23
+ schema: {
24
+ type: "object",
25
+ required: ["siteUrl"],
26
+ properties: {
27
+ siteUrl: {
28
+ type: "string",
29
+ description: "Jira Cloud site URL (e.g., https://acme.atlassian.net)."
30
+ },
31
+ projectKey: {
32
+ type: "string",
33
+ description: "Default Jira project key for new issues."
34
+ },
35
+ issueType: {
36
+ type: "string",
37
+ description: "Default Jira issue type (e.g., Task, Story)."
38
+ },
39
+ defaultLabels: {
40
+ type: "array",
41
+ items: { type: "string" },
42
+ description: "Labels applied to each issue by default."
43
+ },
44
+ issueTypeMap: {
45
+ type: "object",
46
+ additionalProperties: { type: "string" },
47
+ description: "Optional mapping from work item types to Jira issue types."
48
+ }
49
+ }
50
+ },
51
+ example: {
52
+ siteUrl: "https://acme.atlassian.net",
53
+ projectKey: "PM",
54
+ issueType: "Task"
55
+ }
56
+ },
57
+ secretSchema: {
58
+ schema: {
59
+ type: "object",
60
+ required: ["email", "apiToken"],
61
+ properties: {
62
+ email: {
63
+ type: "string",
64
+ description: "Jira account email used for API token auth."
65
+ },
66
+ apiToken: {
67
+ type: "string",
68
+ description: "Jira Cloud API token for the account."
69
+ }
70
+ }
71
+ },
72
+ example: {
73
+ email: "user@acme.com",
74
+ apiToken: "jira_api_token"
75
+ }
76
+ },
77
+ healthCheck: {
78
+ method: "custom",
79
+ timeoutMs: 4e3
80
+ },
81
+ docsUrl: "https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/",
82
+ constraints: {},
83
+ byokSetup: { setupInstructions: "Create a Jira API token and store it with the associated account email." }
84
+ });
85
+ function registerJiraIntegration(registry) {
86
+ return registry.register(jiraIntegrationSpec);
87
+ }
88
+
89
+ //#endregion
90
+ export { jiraIntegrationSpec, registerJiraIntegration };
@@ -0,0 +1,8 @@
1
+ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
2
+ import "../index.js";
3
+
4
+ //#region src/integrations/providers/linear.d.ts
5
+ declare const linearIntegrationSpec: IntegrationSpec;
6
+ declare function registerLinearIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
7
+ //#endregion
8
+ export { linearIntegrationSpec, registerLinearIntegration };
@@ -0,0 +1,85 @@
1
+ import { StabilityEnum } from "../../ownership.js";
2
+ import { defineIntegration } from "../spec.js";
3
+
4
+ //#region src/integrations/providers/linear.ts
5
+ const linearIntegrationSpec = defineIntegration({
6
+ meta: {
7
+ key: "project-management.linear",
8
+ version: "1.0.0",
9
+ category: "project-management",
10
+ title: "Linear",
11
+ description: "Linear integration for issue tracking and project management workflows.",
12
+ domain: "productivity",
13
+ owners: ["@platform.integrations"],
14
+ tags: ["project-management", "linear"],
15
+ stability: StabilityEnum.Beta
16
+ },
17
+ supportedModes: ["managed", "byok"],
18
+ capabilities: { provides: [{
19
+ key: "project-management.work-items",
20
+ version: "1.0.0"
21
+ }] },
22
+ configSchema: {
23
+ schema: {
24
+ type: "object",
25
+ required: ["teamId"],
26
+ properties: {
27
+ teamId: {
28
+ type: "string",
29
+ description: "Linear team ID that owns created issues."
30
+ },
31
+ projectId: {
32
+ type: "string",
33
+ description: "Optional default project ID for new issues."
34
+ },
35
+ stateId: {
36
+ type: "string",
37
+ description: "Optional default workflow state ID."
38
+ },
39
+ assigneeId: {
40
+ type: "string",
41
+ description: "Optional default assignee ID."
42
+ },
43
+ labelIds: {
44
+ type: "array",
45
+ items: { type: "string" },
46
+ description: "Optional label IDs applied to each issue."
47
+ },
48
+ tagLabelMap: {
49
+ type: "object",
50
+ additionalProperties: { type: "string" },
51
+ description: "Optional mapping of tags to Linear label IDs (tag -> labelId)."
52
+ }
53
+ }
54
+ },
55
+ example: {
56
+ teamId: "team_123",
57
+ projectId: "proj_456",
58
+ labelIds: ["label_1", "label_2"]
59
+ }
60
+ },
61
+ secretSchema: {
62
+ schema: {
63
+ type: "object",
64
+ required: ["apiKey"],
65
+ properties: { apiKey: {
66
+ type: "string",
67
+ description: "Linear API key (personal or service token)."
68
+ } }
69
+ },
70
+ example: { apiKey: "lin_api_key" }
71
+ },
72
+ healthCheck: {
73
+ method: "custom",
74
+ timeoutMs: 4e3
75
+ },
76
+ docsUrl: "https://developers.linear.app",
77
+ constraints: {},
78
+ byokSetup: { setupInstructions: "Create a Linear API key with issue:write permission and store it as a secret." }
79
+ });
80
+ function registerLinearIntegration(registry) {
81
+ return registry.register(linearIntegrationSpec);
82
+ }
83
+
84
+ //#endregion
85
+ export { linearIntegrationSpec, registerLinearIntegration };
@@ -0,0 +1,132 @@
1
+ //#region src/integrations/providers/meeting-recorder.d.ts
2
+ interface MeetingParticipant {
3
+ id?: string;
4
+ externalId?: string;
5
+ name?: string;
6
+ email?: string;
7
+ role?: string;
8
+ isExternal?: boolean;
9
+ metadata?: Record<string, unknown>;
10
+ }
11
+ interface MeetingRecord {
12
+ id: string;
13
+ tenantId: string;
14
+ connectionId: string;
15
+ externalId: string;
16
+ title?: string;
17
+ summary?: string;
18
+ organizer?: MeetingParticipant;
19
+ invitees?: MeetingParticipant[];
20
+ participants?: MeetingParticipant[];
21
+ scheduledStartAt?: string;
22
+ scheduledEndAt?: string;
23
+ recordingStartAt?: string;
24
+ recordingEndAt?: string;
25
+ durationSeconds?: number;
26
+ meetingUrl?: string;
27
+ recordingUrl?: string;
28
+ shareUrl?: string;
29
+ sourcePlatform?: string;
30
+ language?: string;
31
+ transcriptAvailable?: boolean;
32
+ createdAt?: string;
33
+ updatedAt?: string;
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+ interface MeetingTranscriptSegment {
37
+ index?: number;
38
+ speakerId?: string;
39
+ speakerName?: string;
40
+ speakerEmail?: string;
41
+ text: string;
42
+ startTimeMs?: number;
43
+ endTimeMs?: number;
44
+ startTime?: string;
45
+ endTime?: string;
46
+ confidence?: number;
47
+ metadata?: Record<string, unknown>;
48
+ }
49
+ interface MeetingTranscriptRecord {
50
+ id: string;
51
+ meetingId: string;
52
+ tenantId: string;
53
+ connectionId: string;
54
+ externalId?: string;
55
+ format?: string;
56
+ text?: string;
57
+ segments?: MeetingTranscriptSegment[];
58
+ language?: string;
59
+ sourceUrl?: string;
60
+ generatedAt?: string;
61
+ metadata?: Record<string, unknown>;
62
+ raw?: unknown;
63
+ }
64
+ interface MeetingRecorderListMeetingsParams {
65
+ tenantId: string;
66
+ connectionId?: string;
67
+ from?: string;
68
+ to?: string;
69
+ cursor?: string;
70
+ pageSize?: number;
71
+ query?: string;
72
+ organizerEmail?: string;
73
+ participantEmail?: string;
74
+ includeTranscript?: boolean;
75
+ includeSummary?: boolean;
76
+ }
77
+ interface MeetingRecorderListMeetingsResult {
78
+ meetings: MeetingRecord[];
79
+ nextCursor?: string;
80
+ hasMore?: boolean;
81
+ }
82
+ interface MeetingRecorderGetMeetingParams {
83
+ tenantId: string;
84
+ meetingId: string;
85
+ connectionId?: string;
86
+ includeTranscript?: boolean;
87
+ includeSummary?: boolean;
88
+ }
89
+ interface MeetingRecorderGetTranscriptParams {
90
+ tenantId: string;
91
+ meetingId: string;
92
+ connectionId?: string;
93
+ includeSegments?: boolean;
94
+ format?: string;
95
+ }
96
+ interface MeetingRecorderWebhookRequest {
97
+ headers: Record<string, string | string[] | undefined>;
98
+ rawBody: string;
99
+ parsedBody?: unknown;
100
+ }
101
+ interface MeetingRecorderWebhookEvent {
102
+ providerKey: string;
103
+ eventType?: string;
104
+ meetingId?: string;
105
+ transcriptId?: string;
106
+ recordingId?: string;
107
+ receivedAt?: string;
108
+ verified?: boolean;
109
+ payload?: unknown;
110
+ metadata?: Record<string, unknown>;
111
+ }
112
+ interface MeetingRecorderWebhookRegistration {
113
+ url: string;
114
+ includeTranscript?: boolean;
115
+ includeSummary?: boolean;
116
+ includeActionItems?: boolean;
117
+ includeCrmMatches?: boolean;
118
+ triggeredFor?: string[];
119
+ }
120
+ interface MeetingRecorderProvider {
121
+ listMeetings(params: MeetingRecorderListMeetingsParams): Promise<MeetingRecorderListMeetingsResult>;
122
+ getMeeting(params: MeetingRecorderGetMeetingParams): Promise<MeetingRecord>;
123
+ getTranscript(params: MeetingRecorderGetTranscriptParams): Promise<MeetingTranscriptRecord>;
124
+ parseWebhook?(request: MeetingRecorderWebhookRequest): Promise<MeetingRecorderWebhookEvent>;
125
+ verifyWebhook?(request: MeetingRecorderWebhookRequest): Promise<boolean>;
126
+ registerWebhook?(registration: MeetingRecorderWebhookRegistration): Promise<{
127
+ id: string;
128
+ secret?: string;
129
+ }>;
130
+ }
131
+ //#endregion
132
+ export { MeetingParticipant, MeetingRecord, MeetingRecorderGetMeetingParams, MeetingRecorderGetTranscriptParams, MeetingRecorderListMeetingsParams, MeetingRecorderListMeetingsResult, MeetingRecorderProvider, MeetingRecorderWebhookEvent, MeetingRecorderWebhookRegistration, MeetingRecorderWebhookRequest, MeetingTranscriptRecord, MeetingTranscriptSegment };
@@ -0,0 +1,8 @@
1
+ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
2
+ import "../index.js";
3
+
4
+ //#region src/integrations/providers/notion.d.ts
5
+ declare const notionIntegrationSpec: IntegrationSpec;
6
+ declare function registerNotionIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
7
+ //#endregion
8
+ export { notionIntegrationSpec, registerNotionIntegration };
@@ -0,0 +1,91 @@
1
+ import { StabilityEnum } from "../../ownership.js";
2
+ import { defineIntegration } from "../spec.js";
3
+
4
+ //#region src/integrations/providers/notion.ts
5
+ const notionIntegrationSpec = defineIntegration({
6
+ meta: {
7
+ key: "project-management.notion",
8
+ version: "1.0.0",
9
+ category: "project-management",
10
+ title: "Notion",
11
+ description: "Notion integration for creating shared project summaries and task entries.",
12
+ domain: "productivity",
13
+ owners: ["@platform.integrations"],
14
+ tags: ["project-management", "notion"],
15
+ stability: StabilityEnum.Beta
16
+ },
17
+ supportedModes: ["managed", "byok"],
18
+ capabilities: { provides: [{
19
+ key: "project-management.work-items",
20
+ version: "1.0.0"
21
+ }] },
22
+ configSchema: {
23
+ schema: {
24
+ type: "object",
25
+ properties: {
26
+ databaseId: {
27
+ type: "string",
28
+ description: "Optional Notion database ID to store tasks."
29
+ },
30
+ summaryParentPageId: {
31
+ type: "string",
32
+ description: "Optional parent page ID for summary pages."
33
+ },
34
+ titleProperty: {
35
+ type: "string",
36
+ description: "Database title property name (defaults to \"Name\")."
37
+ },
38
+ statusProperty: {
39
+ type: "string",
40
+ description: "Database status/select property name."
41
+ },
42
+ priorityProperty: {
43
+ type: "string",
44
+ description: "Database priority/select property name."
45
+ },
46
+ tagsProperty: {
47
+ type: "string",
48
+ description: "Database multi-select tags property name."
49
+ },
50
+ dueDateProperty: {
51
+ type: "string",
52
+ description: "Database date property name for due dates."
53
+ },
54
+ descriptionProperty: {
55
+ type: "string",
56
+ description: "Database rich-text property for descriptions."
57
+ }
58
+ }
59
+ },
60
+ example: {
61
+ databaseId: "xxxxxxxxxxxxxxxx",
62
+ summaryParentPageId: "yyyyyyyyyyyyyyyy",
63
+ titleProperty: "Name",
64
+ statusProperty: "Status"
65
+ }
66
+ },
67
+ secretSchema: {
68
+ schema: {
69
+ type: "object",
70
+ required: ["apiKey"],
71
+ properties: { apiKey: {
72
+ type: "string",
73
+ description: "Notion integration secret token."
74
+ } }
75
+ },
76
+ example: { apiKey: "secret_notion_token" }
77
+ },
78
+ healthCheck: {
79
+ method: "custom",
80
+ timeoutMs: 4e3
81
+ },
82
+ docsUrl: "https://developers.notion.com",
83
+ constraints: {},
84
+ byokSetup: { setupInstructions: "Create a Notion internal integration, share the target database/page with it, and store the secret token." }
85
+ });
86
+ function registerNotionIntegration(registry) {
87
+ return registry.register(notionIntegrationSpec);
88
+ }
89
+
90
+ //#endregion
91
+ export { notionIntegrationSpec, registerNotionIntegration };
@@ -0,0 +1,8 @@
1
+ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
2
+ import "../index.js";
3
+
4
+ //#region src/integrations/providers/posthog.d.ts
5
+ declare const posthogIntegrationSpec: IntegrationSpec;
6
+ declare function registerPosthogIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
7
+ //#endregion
8
+ export { posthogIntegrationSpec, registerPosthogIntegration };
@@ -0,0 +1,107 @@
1
+ import { StabilityEnum } from "../../ownership.js";
2
+ import { defineIntegration } from "../spec.js";
3
+
4
+ //#region src/integrations/providers/posthog.ts
5
+ const posthogIntegrationSpec = defineIntegration({
6
+ meta: {
7
+ key: "analytics.posthog",
8
+ version: "1.0.0",
9
+ category: "analytics",
10
+ title: "PostHog",
11
+ description: "PostHog integration for product analytics, feature flags, and HogQL queries.",
12
+ domain: "analytics",
13
+ owners: ["@platform.integrations"],
14
+ tags: ["analytics", "posthog"],
15
+ stability: StabilityEnum.Beta
16
+ },
17
+ supportedModes: ["managed", "byok"],
18
+ capabilities: { provides: [
19
+ {
20
+ key: "analytics.events",
21
+ version: "1.0.0"
22
+ },
23
+ {
24
+ key: "analytics.feature-flags",
25
+ version: "1.0.0"
26
+ },
27
+ {
28
+ key: "analytics.query",
29
+ version: "1.0.0"
30
+ },
31
+ {
32
+ key: "analytics.events.read",
33
+ version: "1.0.0"
34
+ },
35
+ {
36
+ key: "analytics.persons",
37
+ version: "1.0.0"
38
+ },
39
+ {
40
+ key: "analytics.insights",
41
+ version: "1.0.0"
42
+ },
43
+ {
44
+ key: "analytics.cohorts",
45
+ version: "1.0.0"
46
+ },
47
+ {
48
+ key: "analytics.annotations",
49
+ version: "1.0.0"
50
+ }
51
+ ] },
52
+ configSchema: {
53
+ schema: {
54
+ type: "object",
55
+ properties: {
56
+ host: {
57
+ type: "string",
58
+ description: "PostHog host (e.g., https://app.posthog.com or self-hosted URL)."
59
+ },
60
+ projectId: {
61
+ type: "string",
62
+ description: "PostHog project ID for API queries."
63
+ },
64
+ mcpUrl: {
65
+ type: "string",
66
+ description: "Optional MCP endpoint URL for PostHog tools."
67
+ }
68
+ }
69
+ },
70
+ example: {
71
+ host: "https://app.posthog.com",
72
+ projectId: "12345"
73
+ }
74
+ },
75
+ secretSchema: {
76
+ schema: {
77
+ type: "object",
78
+ required: ["personalApiKey"],
79
+ properties: {
80
+ personalApiKey: {
81
+ type: "string",
82
+ description: "PostHog personal API key (required for API reads/writes)."
83
+ },
84
+ projectApiKey: {
85
+ type: "string",
86
+ description: "PostHog project API key (required for capture/ingest events)."
87
+ }
88
+ }
89
+ },
90
+ example: {
91
+ personalApiKey: "phx_personal_api_key",
92
+ projectApiKey: "phc_project_api_key"
93
+ }
94
+ },
95
+ healthCheck: {
96
+ method: "custom",
97
+ timeoutMs: 5e3
98
+ },
99
+ docsUrl: "https://posthog.com/docs",
100
+ byokSetup: { setupInstructions: "Generate a PostHog personal API key for read/write operations and a project API key for event capture." }
101
+ });
102
+ function registerPosthogIntegration(registry) {
103
+ return registry.register(posthogIntegrationSpec);
104
+ }
105
+
106
+ //#endregion
107
+ export { posthogIntegrationSpec, registerPosthogIntegration };
@@ -0,0 +1,35 @@
1
+ //#region src/integrations/providers/project-management.d.ts
2
+ type ProjectManagementWorkItemPriority = 'urgent' | 'high' | 'medium' | 'low' | 'none';
3
+ type ProjectManagementWorkItemType = 'task' | 'bug' | 'story' | 'epic' | 'summary';
4
+ interface ProjectManagementWorkItemInput {
5
+ title: string;
6
+ description?: string;
7
+ type?: ProjectManagementWorkItemType;
8
+ status?: string;
9
+ priority?: ProjectManagementWorkItemPriority;
10
+ tags?: string[];
11
+ assigneeId?: string;
12
+ projectId?: string;
13
+ parentId?: string;
14
+ dueDate?: Date;
15
+ estimate?: number;
16
+ externalId?: string;
17
+ metadata?: Record<string, string>;
18
+ }
19
+ interface ProjectManagementWorkItem {
20
+ id: string;
21
+ title: string;
22
+ url?: string;
23
+ status?: string;
24
+ priority?: ProjectManagementWorkItemPriority;
25
+ tags?: string[];
26
+ projectId?: string;
27
+ externalId?: string;
28
+ metadata?: Record<string, string>;
29
+ }
30
+ interface ProjectManagementProvider {
31
+ createWorkItem(input: ProjectManagementWorkItemInput): Promise<ProjectManagementWorkItem>;
32
+ createWorkItems(items: ProjectManagementWorkItemInput[]): Promise<ProjectManagementWorkItem[]>;
33
+ }
34
+ //#endregion
35
+ export { ProjectManagementProvider, ProjectManagementWorkItem, ProjectManagementWorkItemInput, ProjectManagementWorkItemPriority, ProjectManagementWorkItemType };
@@ -1,7 +1,6 @@
1
1
  import { IntegrationSpecRegistry } from "../spec.js";
2
2
 
3
3
  //#region src/integrations/providers/registry.d.ts
4
-
5
4
  /**
6
5
  * Creates a registry containing all IntegrationSpec providers shipped by
7
6
  * `@contractspec/lib.contracts`.
@@ -2,13 +2,25 @@ import { IntegrationSpecRegistry } from "../spec.js";
2
2
  import { registerStripeIntegration } from "./stripe.js";
3
3
  import { registerPostmarkIntegration } from "./postmark.js";
4
4
  import { registerQdrantIntegration } from "./qdrant.js";
5
+ import { registerSupabaseVectorIntegration } from "./supabase-vector.js";
6
+ import { registerSupabasePostgresIntegration } from "./supabase-postgres.js";
5
7
  import { registerMistralIntegration } from "./mistral.js";
6
8
  import { registerElevenLabsIntegration } from "./elevenlabs.js";
9
+ import { registerGradiumIntegration } from "./gradium.js";
10
+ import { registerFalIntegration } from "./fal.js";
7
11
  import { registerGmailIntegration } from "./gmail.js";
8
12
  import { registerGoogleCalendarIntegration } from "./google-calendar.js";
9
13
  import { registerTwilioSmsIntegration } from "./twilio-sms.js";
10
14
  import { registerGcsStorageIntegration } from "./gcs-storage.js";
11
15
  import { registerPowensIntegration } from "./powens.js";
16
+ import { registerPosthogIntegration } from "./posthog.js";
17
+ import { registerLinearIntegration } from "./linear.js";
18
+ import { registerJiraIntegration } from "./jira.js";
19
+ import { registerNotionIntegration } from "./notion.js";
20
+ import { registerGranolaIntegration } from "./granola.js";
21
+ import { registerTldvIntegration } from "./tldv.js";
22
+ import { registerFirefliesIntegration } from "./fireflies.js";
23
+ import { registerFathomIntegration } from "./fathom.js";
12
24
 
13
25
  //#region src/integrations/providers/registry.ts
14
26
  /**
@@ -20,13 +32,25 @@ function createDefaultIntegrationSpecRegistry() {
20
32
  registerStripeIntegration(registry);
21
33
  registerPostmarkIntegration(registry);
22
34
  registerQdrantIntegration(registry);
35
+ registerSupabaseVectorIntegration(registry);
36
+ registerSupabasePostgresIntegration(registry);
23
37
  registerMistralIntegration(registry);
24
38
  registerElevenLabsIntegration(registry);
39
+ registerGradiumIntegration(registry);
40
+ registerFalIntegration(registry);
25
41
  registerGmailIntegration(registry);
26
42
  registerGoogleCalendarIntegration(registry);
43
+ registerPosthogIntegration(registry);
27
44
  registerTwilioSmsIntegration(registry);
28
45
  registerGcsStorageIntegration(registry);
29
46
  registerPowensIntegration(registry);
47
+ registerLinearIntegration(registry);
48
+ registerJiraIntegration(registry);
49
+ registerNotionIntegration(registry);
50
+ registerGranolaIntegration(registry);
51
+ registerTldvIntegration(registry);
52
+ registerFirefliesIntegration(registry);
53
+ registerFathomIntegration(registry);
30
54
  return registry;
31
55
  }
32
56
 
@@ -0,0 +1,8 @@
1
+ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
2
+ import "../index.js";
3
+
4
+ //#region src/integrations/providers/supabase-postgres.d.ts
5
+ declare const supabasePostgresIntegrationSpec: IntegrationSpec;
6
+ declare function registerSupabasePostgresIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
7
+ //#endregion
8
+ export { registerSupabasePostgresIntegration, supabasePostgresIntegrationSpec };