@lssm/lib.contracts 0.0.0-canary-20251217063201 → 0.0.0-canary-20251217072406

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 (239) hide show
  1. package/dist/app-config/app-config.feature.js +53 -1
  2. package/dist/app-config/contracts.d.ts +50 -50
  3. package/dist/app-config/contracts.js +396 -1
  4. package/dist/app-config/docs/app-config.docblock.js +22 -220
  5. package/dist/app-config/events.d.ts +27 -27
  6. package/dist/app-config/events.js +168 -1
  7. package/dist/app-config/index.js +8 -1
  8. package/dist/app-config/lifecycle-contracts.d.ts +80 -80
  9. package/dist/app-config/lifecycle-contracts.js +441 -1
  10. package/dist/app-config/runtime.js +617 -1
  11. package/dist/app-config/spec.js +36 -1
  12. package/dist/app-config/validation.js +538 -1
  13. package/dist/capabilities/docs/capabilities.docblock.js +22 -1
  14. package/dist/capabilities/openbanking.js +92 -1
  15. package/dist/capabilities.js +50 -1
  16. package/dist/client/index.js +9 -1
  17. package/dist/client/react/drivers/rn-reusables.js +21 -1
  18. package/dist/client/react/drivers/shadcn.js +11 -1
  19. package/dist/client/react/feature-render.js +43 -1
  20. package/dist/client/react/form-render.js +298 -1
  21. package/dist/client/react/index.js +8 -1
  22. package/dist/contract-registry/index.js +3 -1
  23. package/dist/contract-registry/schemas.js +61 -1
  24. package/dist/contracts-adapter-hydration.js +41 -1
  25. package/dist/contracts-adapter-input.js +77 -1
  26. package/dist/data-views/docs/data-views.docblock.js +22 -1
  27. package/dist/data-views/query-generator.js +48 -1
  28. package/dist/data-views/runtime.js +39 -1
  29. package/dist/data-views.js +35 -1
  30. package/dist/docs/PUBLISHING.docblock.js +17 -76
  31. package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +17 -350
  32. package/dist/docs/index.js +33 -1
  33. package/dist/docs/meta.docs.js +15 -2
  34. package/dist/docs/presentations.js +77 -1
  35. package/dist/docs/registry.js +51 -1
  36. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +17 -383
  37. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +17 -68
  38. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +17 -140
  39. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +17 -86
  40. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +17 -1
  41. package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +25 -2
  42. package/dist/docs/tech/contracts/README.docblock.js +21 -1
  43. package/dist/docs/tech/contracts/create-subscription.docblock.js +21 -1
  44. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +21 -180
  45. package/dist/docs/tech/contracts/migrations.docblock.js +21 -1
  46. package/dist/docs/tech/contracts/openapi-export.docblock.js +22 -2
  47. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +19 -60
  48. package/dist/docs/tech/contracts/overlays.docblock.js +21 -68
  49. package/dist/docs/tech/contracts/tests.docblock.js +21 -132
  50. package/dist/docs/tech/contracts/themes.docblock.js +21 -1
  51. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +21 -106
  52. package/dist/docs/tech/lifecycle-stage-system.docblock.js +17 -213
  53. package/dist/docs/tech/llm/llm-integration.docblock.js +74 -5
  54. package/dist/docs/tech/mcp-endpoints.docblock.js +38 -1
  55. package/dist/docs/tech/presentation-runtime.docblock.js +17 -1
  56. package/dist/docs/tech/schema/README.docblock.js +21 -262
  57. package/dist/docs/tech/studio/learning-events.docblock.js +49 -1
  58. package/dist/docs/tech/studio/learning-journeys.docblock.js +25 -2
  59. package/dist/docs/tech/studio/platform-admin-panel.docblock.js +24 -2
  60. package/dist/docs/tech/studio/project-access-teams.docblock.js +26 -16
  61. package/dist/docs/tech/studio/project-routing.docblock.js +68 -1
  62. package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +23 -2
  63. package/dist/docs/tech/studio/team-invitations.docblock.js +41 -36
  64. package/dist/docs/tech/studio/workspace-ops.docblock.js +48 -1
  65. package/dist/docs/tech/studio/workspaces.docblock.js +24 -2
  66. package/dist/docs/tech/telemetry-ingest.docblock.js +37 -3
  67. package/dist/docs/tech/templates/runtime.docblock.js +21 -1
  68. package/dist/docs/tech/vscode-extension.docblock.js +37 -3
  69. package/dist/docs/tech/workflows/overview.docblock.js +21 -1
  70. package/dist/docs/tech-contracts.docs.js +19 -2
  71. package/dist/events.js +12 -1
  72. package/dist/experiments/docs/experiments.docblock.js +22 -128
  73. package/dist/experiments/evaluator.js +101 -1
  74. package/dist/experiments/spec.js +33 -1
  75. package/dist/features.js +68 -1
  76. package/dist/forms/docs/forms.docblock.js +22 -1
  77. package/dist/forms.js +119 -1
  78. package/dist/index.js +107 -1
  79. package/dist/install.js +40 -1
  80. package/dist/integrations/contracts.d.ts +102 -102
  81. package/dist/integrations/contracts.js +388 -1
  82. package/dist/integrations/docs/integrations.docblock.js +95 -1
  83. package/dist/integrations/health.js +69 -1
  84. package/dist/integrations/index.js +23 -1
  85. package/dist/integrations/openbanking/contracts/accounts.d.ts +66 -66
  86. package/dist/integrations/openbanking/contracts/accounts.js +237 -1
  87. package/dist/integrations/openbanking/contracts/balances.d.ts +34 -34
  88. package/dist/integrations/openbanking/contracts/balances.js +167 -1
  89. package/dist/integrations/openbanking/contracts/index.js +12 -1
  90. package/dist/integrations/openbanking/contracts/transactions.d.ts +48 -48
  91. package/dist/integrations/openbanking/contracts/transactions.js +218 -1
  92. package/dist/integrations/openbanking/guards.js +32 -1
  93. package/dist/integrations/openbanking/models.d.ts +55 -55
  94. package/dist/integrations/openbanking/models.js +242 -1
  95. package/dist/integrations/openbanking/openbanking.feature.js +68 -1
  96. package/dist/integrations/openbanking/telemetry.js +39 -1
  97. package/dist/integrations/providers/elevenlabs.js +56 -1
  98. package/dist/integrations/providers/gcs-storage.js +79 -1
  99. package/dist/integrations/providers/gmail.js +91 -1
  100. package/dist/integrations/providers/google-calendar.js +70 -1
  101. package/dist/integrations/providers/impls/elevenlabs-voice.js +95 -1
  102. package/dist/integrations/providers/impls/gcs-storage.js +88 -1
  103. package/dist/integrations/providers/impls/gmail-inbound.js +200 -1
  104. package/dist/integrations/providers/impls/gmail-outbound.js +104 -5
  105. package/dist/integrations/providers/impls/google-calendar.js +154 -1
  106. package/dist/integrations/providers/impls/index.js +16 -1
  107. package/dist/integrations/providers/impls/mistral-embedding.js +41 -1
  108. package/dist/integrations/providers/impls/mistral-llm.js +247 -1
  109. package/dist/integrations/providers/impls/postmark-email.js +55 -1
  110. package/dist/integrations/providers/impls/powens-client.js +171 -1
  111. package/dist/integrations/providers/impls/powens-openbanking.js +218 -1
  112. package/dist/integrations/providers/impls/provider-factory.js +142 -1
  113. package/dist/integrations/providers/impls/qdrant-vector.js +69 -1
  114. package/dist/integrations/providers/impls/stripe-payments.js +202 -1
  115. package/dist/integrations/providers/impls/twilio-sms.js +58 -1
  116. package/dist/integrations/providers/index.js +13 -1
  117. package/dist/integrations/providers/mistral.js +72 -1
  118. package/dist/integrations/providers/postmark.js +72 -1
  119. package/dist/integrations/providers/powens.js +120 -1
  120. package/dist/integrations/providers/qdrant.js +77 -1
  121. package/dist/integrations/providers/registry.js +34 -1
  122. package/dist/integrations/providers/stripe.js +87 -1
  123. package/dist/integrations/providers/twilio-sms.js +65 -1
  124. package/dist/integrations/runtime.js +186 -1
  125. package/dist/integrations/secrets/aws-secret-manager.js +231 -1
  126. package/dist/integrations/secrets/env-secret-provider.js +81 -1
  127. package/dist/integrations/secrets/gcp-secret-manager.js +229 -1
  128. package/dist/integrations/secrets/index.js +8 -1
  129. package/dist/integrations/secrets/manager.js +103 -1
  130. package/dist/integrations/secrets/provider.js +58 -1
  131. package/dist/integrations/secrets/scaleway-secret-manager.js +247 -1
  132. package/dist/integrations/spec.js +39 -1
  133. package/dist/jobs/define-job.js +16 -1
  134. package/dist/jobs/gcp-cloud-tasks.js +53 -1
  135. package/dist/jobs/gcp-pubsub.js +39 -1
  136. package/dist/jobs/handlers/gmail-sync-handler.js +9 -1
  137. package/dist/jobs/handlers/index.js +12 -1
  138. package/dist/jobs/handlers/ping-handler.js +15 -1
  139. package/dist/jobs/handlers/storage-document-handler.js +14 -1
  140. package/dist/jobs/index.js +4 -1
  141. package/dist/jobs/memory-queue.js +71 -1
  142. package/dist/jobs/queue.js +33 -1
  143. package/dist/jobs/scaleway-sqs-queue.js +153 -1
  144. package/dist/jsonschema.d.ts +3 -3
  145. package/dist/jsonschema.js +32 -1
  146. package/dist/knowledge/contracts.d.ts +66 -66
  147. package/dist/knowledge/contracts.js +317 -1
  148. package/dist/knowledge/docs/knowledge.docblock.js +22 -138
  149. package/dist/knowledge/index.js +10 -1
  150. package/dist/knowledge/ingestion/document-processor.js +54 -1
  151. package/dist/knowledge/ingestion/embedding-service.js +25 -1
  152. package/dist/knowledge/ingestion/gmail-adapter.js +50 -5
  153. package/dist/knowledge/ingestion/index.js +7 -1
  154. package/dist/knowledge/ingestion/storage-adapter.js +26 -1
  155. package/dist/knowledge/ingestion/vector-indexer.js +32 -1
  156. package/dist/knowledge/query/index.js +3 -1
  157. package/dist/knowledge/query/service.js +64 -2
  158. package/dist/knowledge/runtime.js +49 -1
  159. package/dist/knowledge/spaces/email-threads.js +38 -1
  160. package/dist/knowledge/spaces/financial-docs.js +38 -1
  161. package/dist/knowledge/spaces/financial-overview.js +42 -1
  162. package/dist/knowledge/spaces/index.js +8 -1
  163. package/dist/knowledge/spaces/product-canon.js +38 -1
  164. package/dist/knowledge/spaces/support-faq.js +41 -1
  165. package/dist/knowledge/spaces/uploaded-docs.js +38 -1
  166. package/dist/knowledge/spec.js +39 -1
  167. package/dist/llm/exporters.js +541 -8
  168. package/dist/llm/index.js +4 -1
  169. package/dist/llm/prompts.js +246 -56
  170. package/dist/markdown.js +116 -3
  171. package/dist/migrations.js +33 -1
  172. package/dist/onboarding-base.d.ts +29 -29
  173. package/dist/onboarding-base.js +196 -1
  174. package/dist/openapi.js +75 -1
  175. package/dist/openbanking/docs/openbanking.docblock.js +22 -109
  176. package/dist/ownership.js +40 -1
  177. package/dist/policy/docs/policy.docblock.js +22 -1
  178. package/dist/policy/engine.js +223 -1
  179. package/dist/policy/opa-adapter.js +71 -1
  180. package/dist/policy/spec.js +33 -1
  181. package/dist/presentations/docs/presentations-conventions.docblock.js +21 -7
  182. package/dist/presentations.backcompat.js +47 -1
  183. package/dist/presentations.d.ts +3 -3
  184. package/dist/presentations.js +66 -1
  185. package/dist/presentations.v2.js +278 -6
  186. package/dist/prompt.js +10 -1
  187. package/dist/promptRegistry.js +34 -1
  188. package/dist/regenerator/docs/regenerator.docblock.js +22 -184
  189. package/dist/regenerator/executor.js +86 -1
  190. package/dist/regenerator/index.js +6 -1
  191. package/dist/regenerator/service.js +92 -1
  192. package/dist/regenerator/sinks.js +32 -1
  193. package/dist/regenerator/utils.js +51 -1
  194. package/dist/registry.js +208 -1
  195. package/dist/resources.js +47 -1
  196. package/dist/schema/dist/EnumType.js +2 -1
  197. package/dist/schema/dist/FieldType.js +49 -1
  198. package/dist/schema/dist/ScalarTypeEnum.js +236 -1
  199. package/dist/schema/dist/SchemaModel.js +39 -1
  200. package/dist/schema/dist/entity/defineEntity.js +1 -1
  201. package/dist/schema/dist/entity/index.js +2 -1
  202. package/dist/schema/dist/entity/types.js +1 -1
  203. package/dist/schema/dist/index.js +6 -1
  204. package/dist/schema-to-markdown.js +214 -10
  205. package/dist/server/graphql-pothos.js +128 -1
  206. package/dist/server/index.js +10 -1
  207. package/dist/server/mcp/createMcpServer.js +28 -1
  208. package/dist/server/mcp/registerPresentations.js +151 -1
  209. package/dist/server/mcp/registerPrompts.js +36 -2
  210. package/dist/server/mcp/registerResources.js +35 -1
  211. package/dist/server/mcp/registerTools.js +22 -1
  212. package/dist/server/provider-mcp.js +3 -1
  213. package/dist/server/rest-elysia.js +20 -1
  214. package/dist/server/rest-express.js +39 -1
  215. package/dist/server/rest-generic.js +125 -1
  216. package/dist/server/rest-next-app.js +38 -1
  217. package/dist/server/rest-next-mcp.js +45 -1
  218. package/dist/server/rest-next-pages.js +25 -1
  219. package/dist/spec.js +35 -1
  220. package/dist/telemetry/anomaly.js +48 -1
  221. package/dist/telemetry/docs/telemetry.docblock.js +22 -139
  222. package/dist/telemetry/index.js +5 -1
  223. package/dist/telemetry/spec.js +69 -1
  224. package/dist/telemetry/tracker.js +76 -1
  225. package/dist/tests/index.js +4 -1
  226. package/dist/tests/runner.js +150 -1
  227. package/dist/tests/spec.js +33 -1
  228. package/dist/themes.js +39 -1
  229. package/dist/workflow/adapters/db-adapter.js +83 -1
  230. package/dist/workflow/adapters/file-adapter.js +11 -1
  231. package/dist/workflow/adapters/index.js +5 -1
  232. package/dist/workflow/adapters/memory-store.js +58 -1
  233. package/dist/workflow/expression.js +98 -1
  234. package/dist/workflow/index.js +9 -1
  235. package/dist/workflow/runner.js +337 -1
  236. package/dist/workflow/sla-monitor.js +47 -1
  237. package/dist/workflow/spec.js +32 -1
  238. package/dist/workflow/validation.js +175 -1
  239. package/package.json +11 -4
@@ -1 +1,58 @@
1
- import e from"twilio";var t=class{client;fromNumber;constructor(t){this.client=t.client??e(t.accountSid,t.authToken),this.fromNumber=t.fromNumber}async sendSms(e){let t=await this.client.messages.create({to:e.to,from:e.from??this.fromNumber,body:e.body});return{id:t.sid,to:t.to??e.to,from:t.from??e.from??this.fromNumber??``,body:t.body??e.body,status:n(t.status),sentAt:t.dateCreated?new Date(t.dateCreated):void 0,deliveredAt:t.status===`delivered`&&t.dateUpdated?new Date(t.dateUpdated):void 0,price:t.price?Number(t.price):void 0,priceCurrency:t.priceUnit??void 0,errorCode:t.errorCode?String(t.errorCode):void 0,errorMessage:t.errorMessage??void 0}}async getDeliveryStatus(e){let t=await this.client.messages(e).fetch();return{status:n(t.status),errorCode:t.errorCode?String(t.errorCode):void 0,errorMessage:t.errorMessage??void 0,updatedAt:t.dateUpdated?new Date(t.dateUpdated):new Date}}};function n(e){switch(e){case`queued`:case`accepted`:case`scheduled`:return`queued`;case`sending`:case`processing`:return`sending`;case`sent`:return`sent`;case`delivered`:return`delivered`;case`undelivered`:return`undelivered`;case`failed`:case`canceled`:return`failed`;default:return`queued`}}export{t as TwilioSmsProvider};
1
+ import Twilio from "twilio";
2
+
3
+ //#region src/integrations/providers/impls/twilio-sms.ts
4
+ var TwilioSmsProvider = class {
5
+ client;
6
+ fromNumber;
7
+ constructor(options) {
8
+ this.client = options.client ?? Twilio(options.accountSid, options.authToken);
9
+ this.fromNumber = options.fromNumber;
10
+ }
11
+ async sendSms(input) {
12
+ const message = await this.client.messages.create({
13
+ to: input.to,
14
+ from: input.from ?? this.fromNumber,
15
+ body: input.body
16
+ });
17
+ return {
18
+ id: message.sid,
19
+ to: message.to ?? input.to,
20
+ from: message.from ?? input.from ?? this.fromNumber ?? "",
21
+ body: message.body ?? input.body,
22
+ status: mapStatus(message.status),
23
+ sentAt: message.dateCreated ? new Date(message.dateCreated) : void 0,
24
+ deliveredAt: message.status === "delivered" && message.dateUpdated ? new Date(message.dateUpdated) : void 0,
25
+ price: message.price ? Number(message.price) : void 0,
26
+ priceCurrency: message.priceUnit ?? void 0,
27
+ errorCode: message.errorCode ? String(message.errorCode) : void 0,
28
+ errorMessage: message.errorMessage ?? void 0
29
+ };
30
+ }
31
+ async getDeliveryStatus(messageId) {
32
+ const message = await this.client.messages(messageId).fetch();
33
+ return {
34
+ status: mapStatus(message.status),
35
+ errorCode: message.errorCode ? String(message.errorCode) : void 0,
36
+ errorMessage: message.errorMessage ?? void 0,
37
+ updatedAt: message.dateUpdated ? new Date(message.dateUpdated) : /* @__PURE__ */ new Date()
38
+ };
39
+ }
40
+ };
41
+ function mapStatus(status) {
42
+ switch (status) {
43
+ case "queued":
44
+ case "accepted":
45
+ case "scheduled": return "queued";
46
+ case "sending":
47
+ case "processing": return "sending";
48
+ case "sent": return "sent";
49
+ case "delivered": return "delivered";
50
+ case "undelivered": return "undelivered";
51
+ case "failed":
52
+ case "canceled": return "failed";
53
+ default: return "queued";
54
+ }
55
+ }
56
+
57
+ //#endregion
58
+ export { TwilioSmsProvider };
@@ -1 +1,13 @@
1
- import{registerStripeIntegration as e,stripeIntegrationSpec as t}from"./stripe.js";import{postmarkIntegrationSpec as n,registerPostmarkIntegration as r}from"./postmark.js";import{qdrantIntegrationSpec as i,registerQdrantIntegration as a}from"./qdrant.js";import{mistralIntegrationSpec as o,registerMistralIntegration as s}from"./mistral.js";import{elevenLabsIntegrationSpec as c,registerElevenLabsIntegration as l}from"./elevenlabs.js";import{gmailIntegrationSpec as u,registerGmailIntegration as d}from"./gmail.js";import{googleCalendarIntegrationSpec as f,registerGoogleCalendarIntegration as p}from"./google-calendar.js";import{registerTwilioSmsIntegration as m,twilioSmsIntegrationSpec as h}from"./twilio-sms.js";import{gcsStorageIntegrationSpec as g,registerGcsStorageIntegration as _}from"./gcs-storage.js";import{powensIntegrationSpec as v,registerPowensIntegration as y}from"./powens.js";import{createDefaultIntegrationSpecRegistry as b}from"./registry.js";export{b as createDefaultIntegrationSpecRegistry,c as elevenLabsIntegrationSpec,g as gcsStorageIntegrationSpec,u as gmailIntegrationSpec,f as googleCalendarIntegrationSpec,o as mistralIntegrationSpec,n as postmarkIntegrationSpec,v as powensIntegrationSpec,i as qdrantIntegrationSpec,l as registerElevenLabsIntegration,_ as registerGcsStorageIntegration,d as registerGmailIntegration,p as registerGoogleCalendarIntegration,s as registerMistralIntegration,r as registerPostmarkIntegration,y as registerPowensIntegration,a as registerQdrantIntegration,e as registerStripeIntegration,m as registerTwilioSmsIntegration,t as stripeIntegrationSpec,h as twilioSmsIntegrationSpec};
1
+ import { registerStripeIntegration, stripeIntegrationSpec } from "./stripe.js";
2
+ import { postmarkIntegrationSpec, registerPostmarkIntegration } from "./postmark.js";
3
+ import { qdrantIntegrationSpec, registerQdrantIntegration } from "./qdrant.js";
4
+ import { mistralIntegrationSpec, registerMistralIntegration } from "./mistral.js";
5
+ import { elevenLabsIntegrationSpec, registerElevenLabsIntegration } from "./elevenlabs.js";
6
+ import { gmailIntegrationSpec, registerGmailIntegration } from "./gmail.js";
7
+ import { googleCalendarIntegrationSpec, registerGoogleCalendarIntegration } from "./google-calendar.js";
8
+ import { registerTwilioSmsIntegration, twilioSmsIntegrationSpec } from "./twilio-sms.js";
9
+ import { gcsStorageIntegrationSpec, registerGcsStorageIntegration } from "./gcs-storage.js";
10
+ import { powensIntegrationSpec, registerPowensIntegration } from "./powens.js";
11
+ import { createDefaultIntegrationSpecRegistry } from "./registry.js";
12
+
13
+ export { createDefaultIntegrationSpecRegistry, elevenLabsIntegrationSpec, gcsStorageIntegrationSpec, gmailIntegrationSpec, googleCalendarIntegrationSpec, mistralIntegrationSpec, postmarkIntegrationSpec, powensIntegrationSpec, qdrantIntegrationSpec, registerElevenLabsIntegration, registerGcsStorageIntegration, registerGmailIntegration, registerGoogleCalendarIntegration, registerMistralIntegration, registerPostmarkIntegration, registerPowensIntegration, registerQdrantIntegration, registerStripeIntegration, registerTwilioSmsIntegration, stripeIntegrationSpec, twilioSmsIntegrationSpec };
@@ -1 +1,72 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`ai-llm.mistral`,version:1,category:`ai-llm`,displayName:`Mistral AI`,title:`Mistral Large Language Model`,description:`Mistral integration providing chat completions and embedding generation.`,domain:`ai`,owners:[`platform.ai`],tags:[`ai`,`llm`,`embeddings`],stability:e.Experimental},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`ai.chat`,version:1},{key:`ai.embeddings`,version:1}]},configSchema:{schema:{type:`object`,properties:{model:{type:`string`,description:`Default chat completion model (e.g., mistral-large-latest).`},embeddingModel:{type:`string`,description:`Embedding model identifier.`}}},example:{model:`mistral-large-latest`,embeddingModel:`mistral-embed`}},secretSchema:{schema:{type:`object`,required:[`apiKey`],properties:{apiKey:{type:`string`,description:`Mistral API key with access to chat and embeddings endpoints.`}}},example:{apiKey:`mistral-***`}},healthCheck:{method:`custom`,timeoutMs:5e3},docsUrl:`https://docs.mistral.ai/platform/endpoints`,constraints:{rateLimit:{rpm:600}},byokSetup:{setupInstructions:`Generate an API key within the Mistral console and ensure the selected models are enabled for the account.`}};function n(e){return e.register(t)}export{t as mistralIntegrationSpec,n as registerMistralIntegration};
1
+ import { StabilityEnum } from "../../ownership.js";
2
+
3
+ //#region src/integrations/providers/mistral.ts
4
+ const mistralIntegrationSpec = {
5
+ meta: {
6
+ key: "ai-llm.mistral",
7
+ version: 1,
8
+ category: "ai-llm",
9
+ displayName: "Mistral AI",
10
+ title: "Mistral Large Language Model",
11
+ description: "Mistral integration providing chat completions and embedding generation.",
12
+ domain: "ai",
13
+ owners: ["platform.ai"],
14
+ tags: [
15
+ "ai",
16
+ "llm",
17
+ "embeddings"
18
+ ],
19
+ stability: StabilityEnum.Experimental
20
+ },
21
+ supportedModes: ["managed", "byok"],
22
+ capabilities: { provides: [{
23
+ key: "ai.chat",
24
+ version: 1
25
+ }, {
26
+ key: "ai.embeddings",
27
+ version: 1
28
+ }] },
29
+ configSchema: {
30
+ schema: {
31
+ type: "object",
32
+ properties: {
33
+ model: {
34
+ type: "string",
35
+ description: "Default chat completion model (e.g., mistral-large-latest)."
36
+ },
37
+ embeddingModel: {
38
+ type: "string",
39
+ description: "Embedding model identifier."
40
+ }
41
+ }
42
+ },
43
+ example: {
44
+ model: "mistral-large-latest",
45
+ embeddingModel: "mistral-embed"
46
+ }
47
+ },
48
+ secretSchema: {
49
+ schema: {
50
+ type: "object",
51
+ required: ["apiKey"],
52
+ properties: { apiKey: {
53
+ type: "string",
54
+ description: "Mistral API key with access to chat and embeddings endpoints."
55
+ } }
56
+ },
57
+ example: { apiKey: "mistral-***" }
58
+ },
59
+ healthCheck: {
60
+ method: "custom",
61
+ timeoutMs: 5e3
62
+ },
63
+ docsUrl: "https://docs.mistral.ai/platform/endpoints",
64
+ constraints: { rateLimit: { rpm: 600 } },
65
+ byokSetup: { setupInstructions: "Generate an API key within the Mistral console and ensure the selected models are enabled for the account." }
66
+ };
67
+ function registerMistralIntegration(registry) {
68
+ return registry.register(mistralIntegrationSpec);
69
+ }
70
+
71
+ //#endregion
72
+ export { mistralIntegrationSpec, registerMistralIntegration };
@@ -1 +1,72 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`email.postmark`,version:1,category:`email`,displayName:`Postmark`,title:`Postmark Transactional Email`,description:`Postmark integration for transactional email delivery.`,domain:`communications`,owners:[`platform.messaging`],tags:[`email`,`transactional`],stability:e.Stable},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`email.transactional`,version:1}],requires:[{key:`platform.webhooks`,optional:!0,reason:`Optional for inbound bounce handling`}]},configSchema:{schema:{type:`object`,properties:{messageStream:{type:`string`,description:`Optional message stream identifier (e.g., transactional).`},fromEmail:{type:`string`,description:`Default From address used for outbound messages.`}}},example:{messageStream:`outbound`,fromEmail:`notifications@example.com`}},secretSchema:{schema:{type:`object`,required:[`serverToken`],properties:{serverToken:{type:`string`,description:`Server token for the Postmark account.`}}},example:{serverToken:`server-***`}},healthCheck:{method:`ping`,timeoutMs:3e3},docsUrl:`https://postmarkapp.com/developer`,constraints:{rateLimit:{rpm:500}},byokSetup:{setupInstructions:`Create a Postmark server token with outbound send permissions and configure allowed from addresses.`}};function n(e){return e.register(t)}export{t as postmarkIntegrationSpec,n as registerPostmarkIntegration};
1
+ import { StabilityEnum } from "../../ownership.js";
2
+
3
+ //#region src/integrations/providers/postmark.ts
4
+ const postmarkIntegrationSpec = {
5
+ meta: {
6
+ key: "email.postmark",
7
+ version: 1,
8
+ category: "email",
9
+ displayName: "Postmark",
10
+ title: "Postmark Transactional Email",
11
+ description: "Postmark integration for transactional email delivery.",
12
+ domain: "communications",
13
+ owners: ["platform.messaging"],
14
+ tags: ["email", "transactional"],
15
+ stability: StabilityEnum.Stable
16
+ },
17
+ supportedModes: ["managed", "byok"],
18
+ capabilities: {
19
+ provides: [{
20
+ key: "email.transactional",
21
+ version: 1
22
+ }],
23
+ requires: [{
24
+ key: "platform.webhooks",
25
+ optional: true,
26
+ reason: "Optional for inbound bounce handling"
27
+ }]
28
+ },
29
+ configSchema: {
30
+ schema: {
31
+ type: "object",
32
+ properties: {
33
+ messageStream: {
34
+ type: "string",
35
+ description: "Optional message stream identifier (e.g., transactional)."
36
+ },
37
+ fromEmail: {
38
+ type: "string",
39
+ description: "Default From address used for outbound messages."
40
+ }
41
+ }
42
+ },
43
+ example: {
44
+ messageStream: "outbound",
45
+ fromEmail: "notifications@example.com"
46
+ }
47
+ },
48
+ secretSchema: {
49
+ schema: {
50
+ type: "object",
51
+ required: ["serverToken"],
52
+ properties: { serverToken: {
53
+ type: "string",
54
+ description: "Server token for the Postmark account."
55
+ } }
56
+ },
57
+ example: { serverToken: "server-***" }
58
+ },
59
+ healthCheck: {
60
+ method: "ping",
61
+ timeoutMs: 3e3
62
+ },
63
+ docsUrl: "https://postmarkapp.com/developer",
64
+ constraints: { rateLimit: { rpm: 500 } },
65
+ byokSetup: { setupInstructions: "Create a Postmark server token with outbound send permissions and configure allowed from addresses." }
66
+ };
67
+ function registerPostmarkIntegration(registry) {
68
+ return registry.register(postmarkIntegrationSpec);
69
+ }
70
+
71
+ //#endregion
72
+ export { postmarkIntegrationSpec, registerPostmarkIntegration };
@@ -1 +1,120 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`openbanking.powens`,version:1,category:`open-banking`,displayName:`Powens Open Banking`,title:`Powens Open Banking (Read)`,description:`Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.`,domain:`finance`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`finance`],stability:e.Experimental},supportedModes:[`byok`],capabilities:{provides:[{key:`openbanking.accounts.read`,version:1},{key:`openbanking.transactions.read`,version:1},{key:`openbanking.balances.read`,version:1}]},configSchema:{schema:{type:`object`,required:[`environment`],properties:{environment:{type:`string`,enum:[`sandbox`,`production`],description:`Powens environment to target. Sandbox uses Powens test API base URL, production uses live endpoints.`},baseUrl:{type:`string`,description:`Optional override for the Powens API base URL. Defaults to Powens environment defaults.`},region:{type:`string`,description:`Optional Powens region identifier when targeting a specific data residency cluster.`},pollingIntervalMs:{type:`number`,description:`Optional custom polling interval in milliseconds for background sync jobs (defaults to platform standard).`}}},example:{environment:`sandbox`,baseUrl:`https://api-sandbox.powens.com/v2`,region:`eu-west-1`,pollingIntervalMs:3e5}},secretSchema:{schema:{type:`object`,required:[`clientId`,`clientSecret`],properties:{clientId:{type:`string`,description:`Powens OAuth client identifier obtained from the Powens Console (BYOK project).`},clientSecret:{type:`string`,description:`Powens OAuth client secret used to exchange for access tokens.`},apiKey:{type:`string`,description:`Optional Powens API key (if the tenant project exposes a dedicated API token).`},webhookSecret:{type:`string`,description:`Optional webhook signing secret used to verify Powens webhook payloads.`}}},example:{clientId:`powens-client-id`,clientSecret:`powens-client-secret`,apiKey:`powens-api-key`,webhookSecret:`powens-webhook-secret`}},healthCheck:{method:`ping`,timeoutMs:8e3},docsUrl:`https://docs.powens.com/`,constraints:{rateLimit:{rph:1e4,rpm:600}},byokSetup:{setupInstructions:`Create a Powens BYOK project, generate OAuth credentials, and optionally configure webhook delivery for account/transaction updates.`,requiredScopes:[`accounts:read`,`transactions:read`,`balances:read`]}};function n(e){return e.register(t)}export{t as powensIntegrationSpec,n as registerPowensIntegration};
1
+ import { StabilityEnum } from "../../ownership.js";
2
+
3
+ //#region src/integrations/providers/powens.ts
4
+ const powensIntegrationSpec = {
5
+ meta: {
6
+ key: "openbanking.powens",
7
+ version: 1,
8
+ category: "open-banking",
9
+ displayName: "Powens Open Banking",
10
+ title: "Powens Open Banking (Read)",
11
+ description: "Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.",
12
+ domain: "finance",
13
+ owners: ["platform.finance"],
14
+ tags: [
15
+ "open-banking",
16
+ "powens",
17
+ "finance"
18
+ ],
19
+ stability: StabilityEnum.Experimental
20
+ },
21
+ supportedModes: ["byok"],
22
+ capabilities: { provides: [
23
+ {
24
+ key: "openbanking.accounts.read",
25
+ version: 1
26
+ },
27
+ {
28
+ key: "openbanking.transactions.read",
29
+ version: 1
30
+ },
31
+ {
32
+ key: "openbanking.balances.read",
33
+ version: 1
34
+ }
35
+ ] },
36
+ configSchema: {
37
+ schema: {
38
+ type: "object",
39
+ required: ["environment"],
40
+ properties: {
41
+ environment: {
42
+ type: "string",
43
+ enum: ["sandbox", "production"],
44
+ description: "Powens environment to target. Sandbox uses Powens test API base URL, production uses live endpoints."
45
+ },
46
+ baseUrl: {
47
+ type: "string",
48
+ description: "Optional override for the Powens API base URL. Defaults to Powens environment defaults."
49
+ },
50
+ region: {
51
+ type: "string",
52
+ description: "Optional Powens region identifier when targeting a specific data residency cluster."
53
+ },
54
+ pollingIntervalMs: {
55
+ type: "number",
56
+ description: "Optional custom polling interval in milliseconds for background sync jobs (defaults to platform standard)."
57
+ }
58
+ }
59
+ },
60
+ example: {
61
+ environment: "sandbox",
62
+ baseUrl: "https://api-sandbox.powens.com/v2",
63
+ region: "eu-west-1",
64
+ pollingIntervalMs: 3e5
65
+ }
66
+ },
67
+ secretSchema: {
68
+ schema: {
69
+ type: "object",
70
+ required: ["clientId", "clientSecret"],
71
+ properties: {
72
+ clientId: {
73
+ type: "string",
74
+ description: "Powens OAuth client identifier obtained from the Powens Console (BYOK project)."
75
+ },
76
+ clientSecret: {
77
+ type: "string",
78
+ description: "Powens OAuth client secret used to exchange for access tokens."
79
+ },
80
+ apiKey: {
81
+ type: "string",
82
+ description: "Optional Powens API key (if the tenant project exposes a dedicated API token)."
83
+ },
84
+ webhookSecret: {
85
+ type: "string",
86
+ description: "Optional webhook signing secret used to verify Powens webhook payloads."
87
+ }
88
+ }
89
+ },
90
+ example: {
91
+ clientId: "powens-client-id",
92
+ clientSecret: "powens-client-secret",
93
+ apiKey: "powens-api-key",
94
+ webhookSecret: "powens-webhook-secret"
95
+ }
96
+ },
97
+ healthCheck: {
98
+ method: "ping",
99
+ timeoutMs: 8e3
100
+ },
101
+ docsUrl: "https://docs.powens.com/",
102
+ constraints: { rateLimit: {
103
+ rph: 1e4,
104
+ rpm: 600
105
+ } },
106
+ byokSetup: {
107
+ setupInstructions: "Create a Powens BYOK project, generate OAuth credentials, and optionally configure webhook delivery for account/transaction updates.",
108
+ requiredScopes: [
109
+ "accounts:read",
110
+ "transactions:read",
111
+ "balances:read"
112
+ ]
113
+ }
114
+ };
115
+ function registerPowensIntegration(registry) {
116
+ return registry.register(powensIntegrationSpec);
117
+ }
118
+
119
+ //#endregion
120
+ export { powensIntegrationSpec, registerPowensIntegration };
@@ -1 +1,77 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`vectordb.qdrant`,version:1,category:`vector-db`,displayName:`Qdrant`,title:`Qdrant Vector Database`,description:`Qdrant integration for vector search and embeddings storage.`,domain:`ai`,owners:[`platform.ai`],tags:[`vector-db`,`search`],stability:e.Experimental},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`vector-db.search`,version:1},{key:`vector-db.storage`,version:1}],requires:[{key:`ai.embeddings`,optional:!0,reason:`Required if vectors are generated via hosted embedding services`}]},configSchema:{schema:{type:`object`,properties:{apiUrl:{type:`string`,description:`Base URL for the Qdrant instance (e.g., https://qdrant.example.com).`},collectionPrefix:{type:`string`,description:`Prefix applied to all collection names for this tenant.`}}},example:{apiUrl:`https://qdrant.example.com`,collectionPrefix:`tenant_`}},secretSchema:{schema:{type:`object`,properties:{apiKey:{type:`string`,description:`API key or token when authentication is enabled.`}}},example:{apiKey:`qdrant-api-key`}},healthCheck:{method:`ping`,timeoutMs:4e3},docsUrl:`https://qdrant.tech/documentation/quick-start/`,constraints:{quotas:{collections:100,pointsPerCollection:1e6}},byokSetup:{setupInstructions:`Provide the HTTPS endpoint of your Qdrant cluster and generate an API key with read/write access to the collections that will be managed.`}};function n(e){return e.register(t)}export{t as qdrantIntegrationSpec,n as registerQdrantIntegration};
1
+ import { StabilityEnum } from "../../ownership.js";
2
+
3
+ //#region src/integrations/providers/qdrant.ts
4
+ const qdrantIntegrationSpec = {
5
+ meta: {
6
+ key: "vectordb.qdrant",
7
+ version: 1,
8
+ category: "vector-db",
9
+ displayName: "Qdrant",
10
+ title: "Qdrant Vector Database",
11
+ description: "Qdrant integration for vector search and embeddings storage.",
12
+ domain: "ai",
13
+ owners: ["platform.ai"],
14
+ tags: ["vector-db", "search"],
15
+ stability: StabilityEnum.Experimental
16
+ },
17
+ supportedModes: ["managed", "byok"],
18
+ capabilities: {
19
+ provides: [{
20
+ key: "vector-db.search",
21
+ version: 1
22
+ }, {
23
+ key: "vector-db.storage",
24
+ version: 1
25
+ }],
26
+ requires: [{
27
+ key: "ai.embeddings",
28
+ optional: true,
29
+ reason: "Required if vectors are generated via hosted embedding services"
30
+ }]
31
+ },
32
+ configSchema: {
33
+ schema: {
34
+ type: "object",
35
+ properties: {
36
+ apiUrl: {
37
+ type: "string",
38
+ description: "Base URL for the Qdrant instance (e.g., https://qdrant.example.com)."
39
+ },
40
+ collectionPrefix: {
41
+ type: "string",
42
+ description: "Prefix applied to all collection names for this tenant."
43
+ }
44
+ }
45
+ },
46
+ example: {
47
+ apiUrl: "https://qdrant.example.com",
48
+ collectionPrefix: "tenant_"
49
+ }
50
+ },
51
+ secretSchema: {
52
+ schema: {
53
+ type: "object",
54
+ properties: { apiKey: {
55
+ type: "string",
56
+ description: "API key or token when authentication is enabled."
57
+ } }
58
+ },
59
+ example: { apiKey: "qdrant-api-key" }
60
+ },
61
+ healthCheck: {
62
+ method: "ping",
63
+ timeoutMs: 4e3
64
+ },
65
+ docsUrl: "https://qdrant.tech/documentation/quick-start/",
66
+ constraints: { quotas: {
67
+ collections: 100,
68
+ pointsPerCollection: 1e6
69
+ } },
70
+ byokSetup: { setupInstructions: "Provide the HTTPS endpoint of your Qdrant cluster and generate an API key with read/write access to the collections that will be managed." }
71
+ };
72
+ function registerQdrantIntegration(registry) {
73
+ return registry.register(qdrantIntegrationSpec);
74
+ }
75
+
76
+ //#endregion
77
+ export { qdrantIntegrationSpec, registerQdrantIntegration };
@@ -1 +1,34 @@
1
- import{IntegrationSpecRegistry as e}from"../spec.js";import{registerStripeIntegration as t}from"./stripe.js";import{registerPostmarkIntegration as n}from"./postmark.js";import{registerQdrantIntegration as r}from"./qdrant.js";import{registerMistralIntegration as i}from"./mistral.js";import{registerElevenLabsIntegration as a}from"./elevenlabs.js";import{registerGmailIntegration as o}from"./gmail.js";import{registerGoogleCalendarIntegration as s}from"./google-calendar.js";import{registerTwilioSmsIntegration as c}from"./twilio-sms.js";import{registerGcsStorageIntegration as l}from"./gcs-storage.js";import{registerPowensIntegration as u}from"./powens.js";function d(){let d=new e;return t(d),n(d),r(d),i(d),a(d),o(d),s(d),c(d),l(d),u(d),d}export{d as createDefaultIntegrationSpecRegistry};
1
+ import { IntegrationSpecRegistry } from "../spec.js";
2
+ import { registerStripeIntegration } from "./stripe.js";
3
+ import { registerPostmarkIntegration } from "./postmark.js";
4
+ import { registerQdrantIntegration } from "./qdrant.js";
5
+ import { registerMistralIntegration } from "./mistral.js";
6
+ import { registerElevenLabsIntegration } from "./elevenlabs.js";
7
+ import { registerGmailIntegration } from "./gmail.js";
8
+ import { registerGoogleCalendarIntegration } from "./google-calendar.js";
9
+ import { registerTwilioSmsIntegration } from "./twilio-sms.js";
10
+ import { registerGcsStorageIntegration } from "./gcs-storage.js";
11
+ import { registerPowensIntegration } from "./powens.js";
12
+
13
+ //#region src/integrations/providers/registry.ts
14
+ /**
15
+ * Creates a registry containing all IntegrationSpec providers shipped by
16
+ * `@lssm/lib.contracts`.
17
+ */
18
+ function createDefaultIntegrationSpecRegistry() {
19
+ const registry = new IntegrationSpecRegistry();
20
+ registerStripeIntegration(registry);
21
+ registerPostmarkIntegration(registry);
22
+ registerQdrantIntegration(registry);
23
+ registerMistralIntegration(registry);
24
+ registerElevenLabsIntegration(registry);
25
+ registerGmailIntegration(registry);
26
+ registerGoogleCalendarIntegration(registry);
27
+ registerTwilioSmsIntegration(registry);
28
+ registerGcsStorageIntegration(registry);
29
+ registerPowensIntegration(registry);
30
+ return registry;
31
+ }
32
+
33
+ //#endregion
34
+ export { createDefaultIntegrationSpecRegistry };
@@ -1 +1,87 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`payments.stripe`,version:1,category:`payments`,displayName:`Stripe`,title:`Stripe Payments`,description:`Stripe integration for payment processing, charges, and payouts.`,domain:`payments`,owners:[`platform.payments`],tags:[`payments`,`psp`],stability:e.Stable},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`payments.psp`,version:1}],requires:[{key:`platform.webhooks`,optional:!0,reason:`Recommended for reliable event ingestion`}]},configSchema:{schema:{type:`object`,properties:{accountId:{type:`string`,description:`Connected account ID when using Stripe Connect (BYOK).`},region:{type:`string`,description:`Optional Stripe region or data residency hint.`}}},example:{accountId:`acct_123`,region:`us-east-1`}},secretSchema:{schema:{type:`object`,required:[`apiKey`,`webhookSecret`],properties:{apiKey:{type:`string`,description:`Stripe secret API key (sk_live_... or sk_test_...).`},webhookSecret:{type:`string`,description:`Signing secret for webhook verification.`}}},example:{apiKey:`sk_live_***`,webhookSecret:`whsec_***`}},healthCheck:{method:`ping`,timeoutMs:5e3},docsUrl:`https://stripe.com/docs/api`,constraints:{rateLimit:{rpm:1e3,rph:2e4}},byokSetup:{setupInstructions:`Create a restricted Stripe API key with write access to Charges and provide a webhook signing secret.`,requiredScopes:[`charges:write`,`customers:read`]}};function n(e){return e.register(t)}export{n as registerStripeIntegration,t as stripeIntegrationSpec};
1
+ import { StabilityEnum } from "../../ownership.js";
2
+
3
+ //#region src/integrations/providers/stripe.ts
4
+ const stripeIntegrationSpec = {
5
+ meta: {
6
+ key: "payments.stripe",
7
+ version: 1,
8
+ category: "payments",
9
+ displayName: "Stripe",
10
+ title: "Stripe Payments",
11
+ description: "Stripe integration for payment processing, charges, and payouts.",
12
+ domain: "payments",
13
+ owners: ["platform.payments"],
14
+ tags: ["payments", "psp"],
15
+ stability: StabilityEnum.Stable
16
+ },
17
+ supportedModes: ["managed", "byok"],
18
+ capabilities: {
19
+ provides: [{
20
+ key: "payments.psp",
21
+ version: 1
22
+ }],
23
+ requires: [{
24
+ key: "platform.webhooks",
25
+ optional: true,
26
+ reason: "Recommended for reliable event ingestion"
27
+ }]
28
+ },
29
+ configSchema: {
30
+ schema: {
31
+ type: "object",
32
+ properties: {
33
+ accountId: {
34
+ type: "string",
35
+ description: "Connected account ID when using Stripe Connect (BYOK)."
36
+ },
37
+ region: {
38
+ type: "string",
39
+ description: "Optional Stripe region or data residency hint."
40
+ }
41
+ }
42
+ },
43
+ example: {
44
+ accountId: "acct_123",
45
+ region: "us-east-1"
46
+ }
47
+ },
48
+ secretSchema: {
49
+ schema: {
50
+ type: "object",
51
+ required: ["apiKey", "webhookSecret"],
52
+ properties: {
53
+ apiKey: {
54
+ type: "string",
55
+ description: "Stripe secret API key (sk_live_... or sk_test_...)."
56
+ },
57
+ webhookSecret: {
58
+ type: "string",
59
+ description: "Signing secret for webhook verification."
60
+ }
61
+ }
62
+ },
63
+ example: {
64
+ apiKey: "sk_live_***",
65
+ webhookSecret: "whsec_***"
66
+ }
67
+ },
68
+ healthCheck: {
69
+ method: "ping",
70
+ timeoutMs: 5e3
71
+ },
72
+ docsUrl: "https://stripe.com/docs/api",
73
+ constraints: { rateLimit: {
74
+ rpm: 1e3,
75
+ rph: 2e4
76
+ } },
77
+ byokSetup: {
78
+ setupInstructions: "Create a restricted Stripe API key with write access to Charges and provide a webhook signing secret.",
79
+ requiredScopes: ["charges:write", "customers:read"]
80
+ }
81
+ };
82
+ function registerStripeIntegration(registry) {
83
+ return registry.register(stripeIntegrationSpec);
84
+ }
85
+
86
+ //#endregion
87
+ export { registerStripeIntegration, stripeIntegrationSpec };
@@ -1 +1,65 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`sms.twilio`,version:1,category:`sms`,displayName:`Twilio SMS`,title:`Twilio Messaging`,description:`Twilio SMS integration for transactional and notification messaging.`,domain:`communications`,owners:[`platform.messaging`],tags:[`sms`,`messaging`],stability:e.Stable},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`sms.outbound`,version:1}]},configSchema:{schema:{type:`object`,properties:{fromNumber:{type:`string`,description:`Default Twilio phone number used as sender.`}}},example:{fromNumber:`+15551234567`}},secretSchema:{schema:{type:`object`,required:[`accountSid`,`authToken`],properties:{accountSid:{type:`string`,description:`Twilio Account SID.`},authToken:{type:`string`,description:`Twilio Auth Token.`}}},example:{accountSid:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,authToken:`auth-token`}},healthCheck:{method:`custom`,timeoutMs:3e3},docsUrl:`https://www.twilio.com/docs/sms/api`,constraints:{rateLimit:{rpm:200}},byokSetup:{setupInstructions:`Provide a Twilio account SID, auth token, and verify the outbound sending numbers used by the integration.`}};function n(e){return e.register(t)}export{n as registerTwilioSmsIntegration,t as twilioSmsIntegrationSpec};
1
+ import { StabilityEnum } from "../../ownership.js";
2
+
3
+ //#region src/integrations/providers/twilio-sms.ts
4
+ const twilioSmsIntegrationSpec = {
5
+ meta: {
6
+ key: "sms.twilio",
7
+ version: 1,
8
+ category: "sms",
9
+ displayName: "Twilio SMS",
10
+ title: "Twilio Messaging",
11
+ description: "Twilio SMS integration for transactional and notification messaging.",
12
+ domain: "communications",
13
+ owners: ["platform.messaging"],
14
+ tags: ["sms", "messaging"],
15
+ stability: StabilityEnum.Stable
16
+ },
17
+ supportedModes: ["managed", "byok"],
18
+ capabilities: { provides: [{
19
+ key: "sms.outbound",
20
+ version: 1
21
+ }] },
22
+ configSchema: {
23
+ schema: {
24
+ type: "object",
25
+ properties: { fromNumber: {
26
+ type: "string",
27
+ description: "Default Twilio phone number used as sender."
28
+ } }
29
+ },
30
+ example: { fromNumber: "+15551234567" }
31
+ },
32
+ secretSchema: {
33
+ schema: {
34
+ type: "object",
35
+ required: ["accountSid", "authToken"],
36
+ properties: {
37
+ accountSid: {
38
+ type: "string",
39
+ description: "Twilio Account SID."
40
+ },
41
+ authToken: {
42
+ type: "string",
43
+ description: "Twilio Auth Token."
44
+ }
45
+ }
46
+ },
47
+ example: {
48
+ accountSid: "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
49
+ authToken: "auth-token"
50
+ }
51
+ },
52
+ healthCheck: {
53
+ method: "custom",
54
+ timeoutMs: 3e3
55
+ },
56
+ docsUrl: "https://www.twilio.com/docs/sms/api",
57
+ constraints: { rateLimit: { rpm: 200 } },
58
+ byokSetup: { setupInstructions: "Provide a Twilio account SID, auth token, and verify the outbound sending numbers used by the integration." }
59
+ };
60
+ function registerTwilioSmsIntegration(registry) {
61
+ return registry.register(twilioSmsIntegrationSpec);
62
+ }
63
+
64
+ //#endregion
65
+ export { registerTwilioSmsIntegration, twilioSmsIntegrationSpec };