@lssm/lib.contracts 1.11.0 → 1.41.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 (833) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/rolldown_runtime.js +1 -0
  3. package/dist/app-config/app-config.feature.js +1 -0
  4. package/dist/app-config/contracts.js +1 -2
  5. package/dist/app-config/docs/app-config.docblock.js +220 -0
  6. package/dist/app-config/events.js +1 -2
  7. package/dist/app-config/index.js +1 -1
  8. package/dist/app-config/lifecycle-contracts.js +1 -2
  9. package/dist/app-config/runtime.js +1 -2
  10. package/dist/app-config/spec.js +1 -2
  11. package/dist/app-config/validation.js +1 -2
  12. package/dist/capabilities/docs/capabilities.docblock.js +1 -0
  13. package/dist/capabilities/openbanking.js +1 -2
  14. package/dist/capabilities.js +1 -2
  15. package/dist/client/react/drivers/rn-reusables.js +1 -2
  16. package/dist/client/react/drivers/shadcn.js +1 -2
  17. package/dist/client/react/feature-render.js +1 -2
  18. package/dist/client/react/form-render.js +1 -2
  19. package/dist/contract-registry/index.js +1 -0
  20. package/dist/contract-registry/schemas.js +1 -0
  21. package/dist/contract-registry/types.js +0 -0
  22. package/dist/contracts-adapter-hydration.js +1 -2
  23. package/dist/contracts-adapter-input.js +1 -2
  24. package/dist/data-views/docs/data-views.docblock.js +1 -0
  25. package/dist/data-views/query-generator.js +1 -2
  26. package/dist/data-views/runtime.js +1 -2
  27. package/dist/data-views.js +1 -2
  28. package/dist/docs/PUBLISHING.docblock.js +76 -0
  29. package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +350 -0
  30. package/dist/docs/index.js +1 -0
  31. package/dist/docs/meta.docs.js +13 -0
  32. package/dist/docs/presentations.js +1 -0
  33. package/dist/docs/registry.js +1 -0
  34. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +383 -0
  35. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +68 -0
  36. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +140 -0
  37. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +86 -0
  38. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +1 -0
  39. package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +58 -0
  40. package/dist/docs/tech/contracts/README.docblock.js +1 -0
  41. package/dist/docs/tech/contracts/create-subscription.docblock.js +1 -0
  42. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +180 -0
  43. package/dist/docs/tech/contracts/migrations.docblock.js +1 -0
  44. package/dist/docs/tech/contracts/openapi-export.docblock.js +38 -0
  45. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +62 -0
  46. package/dist/docs/tech/contracts/overlays.docblock.js +68 -0
  47. package/dist/docs/tech/contracts/tests.docblock.js +132 -0
  48. package/dist/docs/tech/contracts/themes.docblock.js +1 -0
  49. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +106 -0
  50. package/dist/docs/tech/lifecycle-stage-system.docblock.js +213 -0
  51. package/dist/docs/tech/llm/llm-integration.docblock.js +289 -0
  52. package/dist/docs/tech/mcp-endpoints.docblock.js +1 -0
  53. package/dist/docs/tech/presentation-runtime.docblock.js +1 -0
  54. package/dist/docs/tech/schema/README.docblock.js +262 -0
  55. package/dist/docs/tech/studio/learning-events.docblock.js +1 -0
  56. package/dist/docs/tech/studio/learning-journeys.docblock.js +57 -0
  57. package/dist/docs/tech/studio/platform-admin-panel.docblock.js +63 -0
  58. package/dist/docs/tech/studio/project-access-teams.docblock.js +36 -0
  59. package/dist/docs/tech/studio/project-routing.docblock.js +1 -0
  60. package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +20 -0
  61. package/dist/docs/tech/studio/team-invitations.docblock.js +65 -0
  62. package/dist/docs/tech/studio/workspace-ops.docblock.js +1 -0
  63. package/dist/docs/tech/studio/workspaces.docblock.js +41 -0
  64. package/dist/docs/tech/telemetry-ingest.docblock.js +122 -0
  65. package/dist/docs/tech/templates/runtime.docblock.js +1 -0
  66. package/dist/docs/tech/vscode-extension.docblock.js +68 -0
  67. package/dist/docs/tech/workflows/overview.docblock.js +1 -0
  68. package/dist/docs/tech-contracts.docs.js +76 -0
  69. package/dist/docs/types.js +0 -0
  70. package/dist/events.js +1 -2
  71. package/dist/experiments/docs/experiments.docblock.js +128 -0
  72. package/dist/experiments/evaluator.js +1 -2
  73. package/dist/experiments/spec.js +1 -2
  74. package/dist/features.js +1 -2
  75. package/dist/forms/docs/forms.docblock.js +1 -0
  76. package/dist/forms.js +1 -2
  77. package/dist/index.js +1 -1
  78. package/dist/install.js +1 -2
  79. package/dist/integrations/contracts.js +1 -2
  80. package/dist/integrations/docs/integrations.docblock.js +1 -0
  81. package/dist/integrations/health.js +1 -2
  82. package/dist/integrations/index.js +1 -1
  83. package/dist/integrations/openbanking/contracts/accounts.js +1 -2
  84. package/dist/integrations/openbanking/contracts/balances.js +1 -2
  85. package/dist/integrations/openbanking/contracts/index.js +1 -2
  86. package/dist/integrations/openbanking/contracts/transactions.js +1 -2
  87. package/dist/integrations/openbanking/guards.js +1 -2
  88. package/dist/integrations/openbanking/models.js +1 -2
  89. package/dist/integrations/openbanking/openbanking.feature.js +1 -0
  90. package/dist/integrations/openbanking/telemetry.js +1 -2
  91. package/dist/integrations/providers/elevenlabs.js +1 -2
  92. package/dist/integrations/providers/gcs-storage.js +1 -2
  93. package/dist/integrations/providers/gmail.js +1 -2
  94. package/dist/integrations/providers/google-calendar.js +1 -2
  95. package/dist/integrations/providers/impls/elevenlabs-voice.js +1 -2
  96. package/dist/integrations/providers/impls/gcs-storage.js +1 -2
  97. package/dist/integrations/providers/impls/gmail-inbound.js +1 -2
  98. package/dist/integrations/providers/impls/gmail-outbound.js +1 -2
  99. package/dist/integrations/providers/impls/google-calendar.js +1 -2
  100. package/dist/integrations/providers/impls/index.js +1 -1
  101. package/dist/integrations/providers/impls/mistral-embedding.js +1 -2
  102. package/dist/integrations/providers/impls/mistral-llm.js +1 -2
  103. package/dist/integrations/providers/impls/postmark-email.js +1 -2
  104. package/dist/integrations/providers/impls/powens-client.js +1 -2
  105. package/dist/integrations/providers/impls/powens-openbanking.js +1 -2
  106. package/dist/integrations/providers/impls/provider-factory.js +1 -2
  107. package/dist/integrations/providers/impls/qdrant-vector.js +1 -2
  108. package/dist/integrations/providers/impls/stripe-payments.js +1 -2
  109. package/dist/integrations/providers/impls/twilio-sms.js +1 -2
  110. package/dist/integrations/providers/index.js +1 -1
  111. package/dist/integrations/providers/mistral.js +1 -2
  112. package/dist/integrations/providers/postmark.js +1 -2
  113. package/dist/integrations/providers/powens.js +1 -2
  114. package/dist/integrations/providers/qdrant.js +1 -2
  115. package/dist/integrations/providers/registry.js +1 -0
  116. package/dist/integrations/providers/stripe.js +1 -2
  117. package/dist/integrations/providers/twilio-sms.js +1 -2
  118. package/dist/integrations/runtime.js +1 -2
  119. package/dist/integrations/secrets/aws-secret-manager.js +1 -0
  120. package/dist/integrations/secrets/env-secret-provider.js +1 -2
  121. package/dist/integrations/secrets/gcp-secret-manager.js +1 -2
  122. package/dist/integrations/secrets/index.js +1 -1
  123. package/dist/integrations/secrets/manager.js +1 -2
  124. package/dist/integrations/secrets/provider.js +1 -2
  125. package/dist/integrations/secrets/scaleway-secret-manager.js +1 -0
  126. package/dist/integrations/spec.js +1 -2
  127. package/dist/jobs/define-job.js +1 -0
  128. package/dist/jobs/gcp-cloud-tasks.js +1 -2
  129. package/dist/jobs/gcp-pubsub.js +1 -2
  130. package/dist/jobs/handlers/gmail-sync-handler.js +1 -2
  131. package/dist/jobs/handlers/index.js +1 -1
  132. package/dist/jobs/handlers/ping-handler.js +1 -0
  133. package/dist/jobs/handlers/storage-document-handler.js +1 -2
  134. package/dist/jobs/index.js +1 -1
  135. package/dist/jobs/memory-queue.js +1 -2
  136. package/dist/jobs/queue.js +1 -0
  137. package/dist/jobs/scaleway-sqs-queue.js +1 -0
  138. package/dist/jsonschema.js +1 -2
  139. package/dist/knowledge/contracts.js +1 -2
  140. package/dist/knowledge/docs/knowledge.docblock.js +138 -0
  141. package/dist/knowledge/ingestion/document-processor.js +1 -2
  142. package/dist/knowledge/ingestion/embedding-service.js +1 -2
  143. package/dist/knowledge/ingestion/gmail-adapter.js +1 -2
  144. package/dist/knowledge/ingestion/storage-adapter.js +1 -2
  145. package/dist/knowledge/ingestion/vector-indexer.js +1 -2
  146. package/dist/knowledge/query/service.js +1 -2
  147. package/dist/knowledge/runtime.js +1 -2
  148. package/dist/knowledge/spaces/email-threads.js +1 -2
  149. package/dist/knowledge/spaces/financial-docs.js +1 -2
  150. package/dist/knowledge/spaces/financial-overview.js +1 -2
  151. package/dist/knowledge/spaces/product-canon.js +1 -2
  152. package/dist/knowledge/spaces/support-faq.js +1 -2
  153. package/dist/knowledge/spaces/uploaded-docs.js +1 -2
  154. package/dist/knowledge/spec.js +1 -2
  155. package/dist/llm/exporters.js +8 -0
  156. package/dist/llm/index.js +1 -0
  157. package/dist/llm/prompts.js +220 -0
  158. package/dist/llm/types.js +0 -0
  159. package/dist/markdown.js +1 -2
  160. package/dist/migrations.js +1 -2
  161. package/dist/node_modules/@pothos/plugin-complexity/esm/calculate-complexity.js +1 -0
  162. package/dist/node_modules/@pothos/plugin-complexity/esm/defaults.js +1 -0
  163. package/dist/node_modules/@pothos/plugin-complexity/esm/index.js +1 -0
  164. package/dist/node_modules/@pothos/plugin-complexity/esm/types.js +1 -0
  165. package/dist/node_modules/@pothos/plugin-complexity/esm/util.js +1 -0
  166. package/dist/node_modules/@pothos/plugin-complexity/esm/validator.js +1 -0
  167. package/dist/node_modules/@pothos/plugin-dataloader/esm/field-builder.js +1 -0
  168. package/dist/node_modules/@pothos/plugin-dataloader/esm/index.js +1 -0
  169. package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/index.js +1 -0
  170. package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/interface.js +1 -0
  171. package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/node.js +1 -0
  172. package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/object.js +1 -0
  173. package/dist/node_modules/@pothos/plugin-dataloader/esm/refs/union.js +1 -0
  174. package/dist/node_modules/@pothos/plugin-dataloader/esm/schema-builder.js +1 -0
  175. package/dist/node_modules/@pothos/plugin-dataloader/esm/util.js +1 -0
  176. package/dist/node_modules/@pothos/plugin-prisma/esm/connection-helpers.js +1 -0
  177. package/dist/node_modules/@pothos/plugin-prisma/esm/field-builder.js +1 -0
  178. package/dist/node_modules/@pothos/plugin-prisma/esm/index.js +1 -0
  179. package/dist/node_modules/@pothos/plugin-prisma/esm/interface-ref.js +1 -0
  180. package/dist/node_modules/@pothos/plugin-prisma/esm/model-loader.js +1 -0
  181. package/dist/node_modules/@pothos/plugin-prisma/esm/node-ref.js +1 -0
  182. package/dist/node_modules/@pothos/plugin-prisma/esm/object-ref.js +1 -0
  183. package/dist/node_modules/@pothos/plugin-prisma/esm/prisma-field-builder.js +1 -0
  184. package/dist/node_modules/@pothos/plugin-prisma/esm/schema-builder.js +1 -0
  185. package/dist/node_modules/@pothos/plugin-prisma/esm/types.js +0 -0
  186. package/dist/node_modules/@pothos/plugin-prisma/esm/util/cursors.js +1 -0
  187. package/dist/node_modules/@pothos/plugin-prisma/esm/util/datamodel.js +1 -0
  188. package/dist/node_modules/@pothos/plugin-prisma/esm/util/deep-equal.js +1 -0
  189. package/dist/node_modules/@pothos/plugin-prisma/esm/util/description.js +1 -0
  190. package/dist/node_modules/@pothos/plugin-prisma/esm/util/get-client.js +1 -0
  191. package/dist/node_modules/@pothos/plugin-prisma/esm/util/loader-map.js +1 -0
  192. package/dist/node_modules/@pothos/plugin-prisma/esm/util/map-query.js +1 -0
  193. package/dist/node_modules/@pothos/plugin-prisma/esm/util/relation-map.js +1 -0
  194. package/dist/node_modules/@pothos/plugin-prisma/esm/util/selections.js +1 -0
  195. package/dist/node_modules/@pothos/plugin-prisma/esm/util/usage.js +1 -0
  196. package/dist/node_modules/@pothos/plugin-tracing/esm/index.js +1 -0
  197. package/dist/node_modules/@pothos/plugin-tracing/esm/util.js +1 -0
  198. package/dist/node_modules/dataloader/index.js +7 -0
  199. package/dist/node_modules/graphql/error/GraphQLError.js +5 -0
  200. package/dist/node_modules/graphql/error/index.js +1 -0
  201. package/dist/node_modules/graphql/error/locatedError.js +1 -0
  202. package/dist/node_modules/graphql/error/syntaxError.js +1 -0
  203. package/dist/node_modules/graphql/execution/collectFields.js +1 -0
  204. package/dist/node_modules/graphql/execution/execute.js +1 -0
  205. package/dist/node_modules/graphql/execution/index.js +1 -0
  206. package/dist/node_modules/graphql/execution/mapAsyncIterator.js +1 -0
  207. package/dist/node_modules/graphql/execution/subscribe.js +1 -0
  208. package/dist/node_modules/graphql/execution/values.js +1 -0
  209. package/dist/node_modules/graphql/graphql.js +1 -0
  210. package/dist/node_modules/graphql/index.js +1 -0
  211. package/dist/node_modules/graphql/jsutils/Path.js +1 -0
  212. package/dist/node_modules/graphql/jsutils/devAssert.js +1 -0
  213. package/dist/node_modules/graphql/jsutils/didYouMean.js +1 -0
  214. package/dist/node_modules/graphql/jsutils/groupBy.js +1 -0
  215. package/dist/node_modules/graphql/jsutils/identityFunc.js +1 -0
  216. package/dist/node_modules/graphql/jsutils/inspect.js +1 -0
  217. package/dist/node_modules/graphql/jsutils/instanceOf.js +12 -0
  218. package/dist/node_modules/graphql/jsutils/invariant.js +1 -0
  219. package/dist/node_modules/graphql/jsutils/isAsyncIterable.js +1 -0
  220. package/dist/node_modules/graphql/jsutils/isIterableObject.js +1 -0
  221. package/dist/node_modules/graphql/jsutils/isObjectLike.js +1 -0
  222. package/dist/node_modules/graphql/jsutils/isPromise.js +1 -0
  223. package/dist/node_modules/graphql/jsutils/keyMap.js +1 -0
  224. package/dist/node_modules/graphql/jsutils/keyValMap.js +1 -0
  225. package/dist/node_modules/graphql/jsutils/mapValue.js +1 -0
  226. package/dist/node_modules/graphql/jsutils/memoize3.js +1 -0
  227. package/dist/node_modules/graphql/jsutils/naturalCompare.js +1 -0
  228. package/dist/node_modules/graphql/jsutils/printPathArray.js +1 -0
  229. package/dist/node_modules/graphql/jsutils/promiseForObject.js +1 -0
  230. package/dist/node_modules/graphql/jsutils/promiseReduce.js +1 -0
  231. package/dist/node_modules/graphql/jsutils/suggestionList.js +1 -0
  232. package/dist/node_modules/graphql/jsutils/toError.js +1 -0
  233. package/dist/node_modules/graphql/jsutils/toObjMap.js +1 -0
  234. package/dist/node_modules/graphql/language/ast.js +1 -0
  235. package/dist/node_modules/graphql/language/blockString.js +3 -0
  236. package/dist/node_modules/graphql/language/characterClasses.js +1 -0
  237. package/dist/node_modules/graphql/language/directiveLocation.js +1 -0
  238. package/dist/node_modules/graphql/language/index.js +1 -0
  239. package/dist/node_modules/graphql/language/kinds.js +1 -0
  240. package/dist/node_modules/graphql/language/lexer.js +3 -0
  241. package/dist/node_modules/graphql/language/location.js +1 -0
  242. package/dist/node_modules/graphql/language/parser.js +1 -0
  243. package/dist/node_modules/graphql/language/predicates.js +1 -0
  244. package/dist/node_modules/graphql/language/printLocation.js +2 -0
  245. package/dist/node_modules/graphql/language/printString.js +1 -0
  246. package/dist/node_modules/graphql/language/printer.js +34 -0
  247. package/dist/node_modules/graphql/language/schemaCoordinateLexer.js +1 -0
  248. package/dist/node_modules/graphql/language/source.js +1 -0
  249. package/dist/node_modules/graphql/language/tokenKind.js +1 -0
  250. package/dist/node_modules/graphql/language/visitor.js +1 -0
  251. package/dist/node_modules/graphql/type/assertName.js +1 -0
  252. package/dist/node_modules/graphql/type/definition.js +1 -0
  253. package/dist/node_modules/graphql/type/directives.js +1 -0
  254. package/dist/node_modules/graphql/type/index.js +1 -0
  255. package/dist/node_modules/graphql/type/introspection.js +3 -0
  256. package/dist/node_modules/graphql/type/scalars.js +1 -0
  257. package/dist/node_modules/graphql/type/schema.js +1 -0
  258. package/dist/node_modules/graphql/type/validate.js +3 -0
  259. package/dist/node_modules/graphql/utilities/TypeInfo.js +1 -0
  260. package/dist/node_modules/graphql/utilities/assertValidName.js +1 -0
  261. package/dist/node_modules/graphql/utilities/astFromValue.js +1 -0
  262. package/dist/node_modules/graphql/utilities/buildASTSchema.js +1 -0
  263. package/dist/node_modules/graphql/utilities/buildClientSchema.js +1 -0
  264. package/dist/node_modules/graphql/utilities/coerceInputValue.js +1 -0
  265. package/dist/node_modules/graphql/utilities/concatAST.js +1 -0
  266. package/dist/node_modules/graphql/utilities/extendSchema.js +1 -0
  267. package/dist/node_modules/graphql/utilities/findBreakingChanges.js +1 -0
  268. package/dist/node_modules/graphql/utilities/getIntrospectionQuery.js +107 -0
  269. package/dist/node_modules/graphql/utilities/getOperationAST.js +1 -0
  270. package/dist/node_modules/graphql/utilities/getOperationRootType.js +1 -0
  271. package/dist/node_modules/graphql/utilities/index.js +1 -0
  272. package/dist/node_modules/graphql/utilities/introspectionFromSchema.js +1 -0
  273. package/dist/node_modules/graphql/utilities/lexicographicSortSchema.js +1 -0
  274. package/dist/node_modules/graphql/utilities/printSchema.js +13 -0
  275. package/dist/node_modules/graphql/utilities/resolveSchemaCoordinate.js +1 -0
  276. package/dist/node_modules/graphql/utilities/separateOperations.js +1 -0
  277. package/dist/node_modules/graphql/utilities/sortValueNode.js +1 -0
  278. package/dist/node_modules/graphql/utilities/stripIgnoredCharacters.js +1 -0
  279. package/dist/node_modules/graphql/utilities/typeComparators.js +1 -0
  280. package/dist/node_modules/graphql/utilities/typeFromAST.js +1 -0
  281. package/dist/node_modules/graphql/utilities/valueFromAST.js +1 -0
  282. package/dist/node_modules/graphql/utilities/valueFromASTUntyped.js +1 -0
  283. package/dist/node_modules/graphql/validation/ValidationContext.js +1 -0
  284. package/dist/node_modules/graphql/validation/index.js +1 -0
  285. package/dist/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js +1 -0
  286. package/dist/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js +1 -0
  287. package/dist/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js +1 -0
  288. package/dist/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js +1 -0
  289. package/dist/node_modules/graphql/validation/rules/KnownDirectivesRule.js +1 -0
  290. package/dist/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js +1 -0
  291. package/dist/node_modules/graphql/validation/rules/KnownTypeNamesRule.js +1 -0
  292. package/dist/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js +1 -0
  293. package/dist/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js +1 -0
  294. package/dist/node_modules/graphql/validation/rules/MaxIntrospectionDepthRule.js +1 -0
  295. package/dist/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js +1 -0
  296. package/dist/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js +1 -0
  297. package/dist/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js +1 -0
  298. package/dist/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js +1 -0
  299. package/dist/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js +1 -0
  300. package/dist/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js +1 -0
  301. package/dist/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js +1 -0
  302. package/dist/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js +1 -0
  303. package/dist/node_modules/graphql/validation/rules/ScalarLeafsRule.js +1 -0
  304. package/dist/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js +1 -0
  305. package/dist/node_modules/graphql/validation/rules/UniqueArgumentDefinitionNamesRule.js +1 -0
  306. package/dist/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js +1 -0
  307. package/dist/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js +1 -0
  308. package/dist/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js +1 -0
  309. package/dist/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js +1 -0
  310. package/dist/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js +1 -0
  311. package/dist/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js +1 -0
  312. package/dist/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js +1 -0
  313. package/dist/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js +1 -0
  314. package/dist/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js +1 -0
  315. package/dist/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js +1 -0
  316. package/dist/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js +1 -0
  317. package/dist/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js +1 -0
  318. package/dist/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js +1 -0
  319. package/dist/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js +1 -0
  320. package/dist/node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.js +1 -0
  321. package/dist/node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +1 -0
  322. package/dist/node_modules/graphql/validation/specifiedRules.js +1 -0
  323. package/dist/node_modules/graphql/validation/validate.js +5 -0
  324. package/dist/node_modules/graphql/version.js +1 -0
  325. package/dist/onboarding-base.js +1 -2
  326. package/dist/openapi.js +1 -0
  327. package/dist/openbanking/docs/openbanking.docblock.js +109 -0
  328. package/dist/ownership.js +1 -2
  329. package/dist/policy/docs/policy.docblock.js +1 -0
  330. package/dist/policy/engine.js +1 -2
  331. package/dist/policy/opa-adapter.js +1 -2
  332. package/dist/policy/spec.js +1 -2
  333. package/dist/presentations/docs/presentations-conventions.docblock.js +8 -0
  334. package/dist/presentations.backcompat.js +1 -2
  335. package/dist/presentations.js +1 -2
  336. package/dist/presentations.v2.js +7 -2
  337. package/dist/prompt.js +1 -2
  338. package/dist/promptRegistry.js +1 -2
  339. package/dist/regenerator/docs/regenerator.docblock.js +184 -0
  340. package/dist/regenerator/executor.js +1 -2
  341. package/dist/regenerator/service.js +1 -2
  342. package/dist/regenerator/sinks.js +1 -2
  343. package/dist/regenerator/utils.js +1 -2
  344. package/dist/registry.js +1 -2
  345. package/dist/resources.js +1 -2
  346. package/dist/schema-to-markdown.js +10 -0
  347. package/dist/server/graphql-pothos.js +1 -2
  348. package/dist/server/index.js +1 -1
  349. package/dist/server/mcp/createMcpServer.js +1 -0
  350. package/dist/server/mcp/mcpTypes.js +0 -0
  351. package/dist/server/mcp/registerPresentations.js +1 -0
  352. package/dist/server/mcp/registerPrompts.js +3 -0
  353. package/dist/server/mcp/registerResources.js +1 -0
  354. package/dist/server/mcp/registerTools.js +1 -0
  355. package/dist/server/provider-mcp.js +1 -2
  356. package/dist/server/rest-elysia.js +1 -2
  357. package/dist/server/rest-express.js +1 -2
  358. package/dist/server/rest-generic.js +1 -2
  359. package/dist/server/rest-next-app.js +1 -2
  360. package/dist/server/rest-next-mcp.js +1 -2
  361. package/dist/server/rest-next-pages.js +1 -2
  362. package/dist/spec.js +1 -2
  363. package/dist/telemetry/anomaly.js +1 -2
  364. package/dist/telemetry/docs/telemetry.docblock.js +139 -0
  365. package/dist/telemetry/spec.js +1 -2
  366. package/dist/telemetry/tracker.js +1 -2
  367. package/dist/tests/runner.js +1 -2
  368. package/dist/tests/spec.js +1 -2
  369. package/dist/themes.js +1 -2
  370. package/dist/workflow/adapters/db-adapter.js +1 -2
  371. package/dist/workflow/adapters/file-adapter.js +1 -2
  372. package/dist/workflow/adapters/memory-store.js +1 -2
  373. package/dist/workflow/expression.js +1 -2
  374. package/dist/workflow/runner.js +1 -2
  375. package/dist/workflow/sla-monitor.js +1 -2
  376. package/dist/workflow/spec.js +1 -2
  377. package/dist/workflow/validation.js +1 -2
  378. package/package.json +353 -193
  379. package/dist/app-config/branding.d.ts +0 -56
  380. package/dist/app-config/branding.d.ts.map +0 -1
  381. package/dist/app-config/contracts.d.ts +0 -245
  382. package/dist/app-config/contracts.d.ts.map +0 -1
  383. package/dist/app-config/contracts.js.map +0 -1
  384. package/dist/app-config/events.d.ts +0 -123
  385. package/dist/app-config/events.d.ts.map +0 -1
  386. package/dist/app-config/events.js.map +0 -1
  387. package/dist/app-config/index.d.ts +0 -8
  388. package/dist/app-config/lifecycle-contracts.d.ts +0 -383
  389. package/dist/app-config/lifecycle-contracts.d.ts.map +0 -1
  390. package/dist/app-config/lifecycle-contracts.js.map +0 -1
  391. package/dist/app-config/lifecycle.d.ts +0 -28
  392. package/dist/app-config/lifecycle.d.ts.map +0 -1
  393. package/dist/app-config/runtime.d.ts +0 -115
  394. package/dist/app-config/runtime.d.ts.map +0 -1
  395. package/dist/app-config/runtime.js.map +0 -1
  396. package/dist/app-config/spec.d.ts +0 -176
  397. package/dist/app-config/spec.d.ts.map +0 -1
  398. package/dist/app-config/spec.js.map +0 -1
  399. package/dist/app-config/validation.d.ts +0 -48
  400. package/dist/app-config/validation.d.ts.map +0 -1
  401. package/dist/app-config/validation.js.map +0 -1
  402. package/dist/capabilities/openbanking.d.ts +0 -10
  403. package/dist/capabilities/openbanking.d.ts.map +0 -1
  404. package/dist/capabilities/openbanking.js.map +0 -1
  405. package/dist/capabilities.d.ts +0 -46
  406. package/dist/capabilities.d.ts.map +0 -1
  407. package/dist/capabilities.js.map +0 -1
  408. package/dist/client/index.d.ts +0 -6
  409. package/dist/client/react/drivers/rn-reusables.d.ts +0 -23
  410. package/dist/client/react/drivers/rn-reusables.d.ts.map +0 -1
  411. package/dist/client/react/drivers/rn-reusables.js.map +0 -1
  412. package/dist/client/react/drivers/shadcn.d.ts +0 -13
  413. package/dist/client/react/drivers/shadcn.d.ts.map +0 -1
  414. package/dist/client/react/drivers/shadcn.js.map +0 -1
  415. package/dist/client/react/feature-render.d.ts +0 -21
  416. package/dist/client/react/feature-render.d.ts.map +0 -1
  417. package/dist/client/react/feature-render.js.map +0 -1
  418. package/dist/client/react/form-render.d.ts +0 -92
  419. package/dist/client/react/form-render.d.ts.map +0 -1
  420. package/dist/client/react/form-render.js.map +0 -1
  421. package/dist/client/react/index.d.ts +0 -5
  422. package/dist/contracts-adapter-hydration.d.ts +0 -16
  423. package/dist/contracts-adapter-hydration.d.ts.map +0 -1
  424. package/dist/contracts-adapter-hydration.js.map +0 -1
  425. package/dist/contracts-adapter-input.d.ts +0 -11
  426. package/dist/contracts-adapter-input.d.ts.map +0 -1
  427. package/dist/contracts-adapter-input.js.map +0 -1
  428. package/dist/data-views/query-generator.d.ts +0 -40
  429. package/dist/data-views/query-generator.d.ts.map +0 -1
  430. package/dist/data-views/query-generator.js.map +0 -1
  431. package/dist/data-views/runtime.d.ts +0 -27
  432. package/dist/data-views/runtime.d.ts.map +0 -1
  433. package/dist/data-views/runtime.js.map +0 -1
  434. package/dist/data-views.d.ts +0 -132
  435. package/dist/data-views.d.ts.map +0 -1
  436. package/dist/data-views.js.map +0 -1
  437. package/dist/events.d.ts +0 -45
  438. package/dist/events.d.ts.map +0 -1
  439. package/dist/events.js.map +0 -1
  440. package/dist/experiments/evaluator.d.ts +0 -38
  441. package/dist/experiments/evaluator.d.ts.map +0 -1
  442. package/dist/experiments/evaluator.js.map +0 -1
  443. package/dist/experiments/spec-resolver.d.ts +0 -17
  444. package/dist/experiments/spec-resolver.d.ts.map +0 -1
  445. package/dist/experiments/spec.d.ts +0 -90
  446. package/dist/experiments/spec.d.ts.map +0 -1
  447. package/dist/experiments/spec.js.map +0 -1
  448. package/dist/features.d.ts +0 -88
  449. package/dist/features.d.ts.map +0 -1
  450. package/dist/features.js.map +0 -1
  451. package/dist/forms.d.ts +0 -259
  452. package/dist/forms.d.ts.map +0 -1
  453. package/dist/forms.js.map +0 -1
  454. package/dist/graphql-federation/dist/index.js +0 -2
  455. package/dist/graphql-federation/dist/index.js.map +0 -1
  456. package/dist/index.d.ts +0 -130
  457. package/dist/install.d.ts +0 -77
  458. package/dist/install.d.ts.map +0 -1
  459. package/dist/install.js.map +0 -1
  460. package/dist/integrations/binding.d.ts +0 -18
  461. package/dist/integrations/binding.d.ts.map +0 -1
  462. package/dist/integrations/connection.d.ts +0 -52
  463. package/dist/integrations/connection.d.ts.map +0 -1
  464. package/dist/integrations/contracts.d.ts +0 -436
  465. package/dist/integrations/contracts.d.ts.map +0 -1
  466. package/dist/integrations/contracts.js.map +0 -1
  467. package/dist/integrations/health.d.ts +0 -22
  468. package/dist/integrations/health.d.ts.map +0 -1
  469. package/dist/integrations/health.js.map +0 -1
  470. package/dist/integrations/index.d.ts +0 -53
  471. package/dist/integrations/openbanking/contracts/accounts.d.ts +0 -288
  472. package/dist/integrations/openbanking/contracts/accounts.d.ts.map +0 -1
  473. package/dist/integrations/openbanking/contracts/accounts.js.map +0 -1
  474. package/dist/integrations/openbanking/contracts/balances.d.ts +0 -164
  475. package/dist/integrations/openbanking/contracts/balances.d.ts.map +0 -1
  476. package/dist/integrations/openbanking/contracts/balances.js.map +0 -1
  477. package/dist/integrations/openbanking/contracts/index.d.ts +0 -10
  478. package/dist/integrations/openbanking/contracts/index.d.ts.map +0 -1
  479. package/dist/integrations/openbanking/contracts/index.js.map +0 -1
  480. package/dist/integrations/openbanking/contracts/transactions.d.ts +0 -212
  481. package/dist/integrations/openbanking/contracts/transactions.d.ts.map +0 -1
  482. package/dist/integrations/openbanking/contracts/transactions.js.map +0 -1
  483. package/dist/integrations/openbanking/guards.d.ts +0 -13
  484. package/dist/integrations/openbanking/guards.d.ts.map +0 -1
  485. package/dist/integrations/openbanking/guards.js.map +0 -1
  486. package/dist/integrations/openbanking/models.d.ts +0 -229
  487. package/dist/integrations/openbanking/models.d.ts.map +0 -1
  488. package/dist/integrations/openbanking/models.js.map +0 -1
  489. package/dist/integrations/openbanking/telemetry.d.ts +0 -16
  490. package/dist/integrations/openbanking/telemetry.d.ts.map +0 -1
  491. package/dist/integrations/openbanking/telemetry.js.map +0 -1
  492. package/dist/integrations/providers/calendar.d.ts +0 -79
  493. package/dist/integrations/providers/calendar.d.ts.map +0 -1
  494. package/dist/integrations/providers/elevenlabs.d.ts +0 -8
  495. package/dist/integrations/providers/elevenlabs.d.ts.map +0 -1
  496. package/dist/integrations/providers/elevenlabs.js.map +0 -1
  497. package/dist/integrations/providers/email.d.ts +0 -87
  498. package/dist/integrations/providers/email.d.ts.map +0 -1
  499. package/dist/integrations/providers/embedding.d.ts +0 -25
  500. package/dist/integrations/providers/embedding.d.ts.map +0 -1
  501. package/dist/integrations/providers/gcs-storage.d.ts +0 -8
  502. package/dist/integrations/providers/gcs-storage.d.ts.map +0 -1
  503. package/dist/integrations/providers/gcs-storage.js.map +0 -1
  504. package/dist/integrations/providers/gmail.d.ts +0 -8
  505. package/dist/integrations/providers/gmail.d.ts.map +0 -1
  506. package/dist/integrations/providers/gmail.js.map +0 -1
  507. package/dist/integrations/providers/google-calendar.d.ts +0 -8
  508. package/dist/integrations/providers/google-calendar.d.ts.map +0 -1
  509. package/dist/integrations/providers/google-calendar.js.map +0 -1
  510. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +0 -21
  511. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +0 -1
  512. package/dist/integrations/providers/impls/elevenlabs-voice.js.map +0 -1
  513. package/dist/integrations/providers/impls/gcs-storage.d.ts +0 -25
  514. package/dist/integrations/providers/impls/gcs-storage.d.ts.map +0 -1
  515. package/dist/integrations/providers/impls/gcs-storage.js.map +0 -1
  516. package/dist/integrations/providers/impls/gmail-inbound.d.ts +0 -27
  517. package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +0 -1
  518. package/dist/integrations/providers/impls/gmail-inbound.js.map +0 -1
  519. package/dist/integrations/providers/impls/gmail-outbound.d.ts +0 -19
  520. package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +0 -1
  521. package/dist/integrations/providers/impls/gmail-outbound.js.map +0 -1
  522. package/dist/integrations/providers/impls/google-calendar.d.ts +0 -24
  523. package/dist/integrations/providers/impls/google-calendar.d.ts.map +0 -1
  524. package/dist/integrations/providers/impls/google-calendar.js.map +0 -1
  525. package/dist/integrations/providers/impls/index.d.ts +0 -15
  526. package/dist/integrations/providers/impls/mistral-embedding.d.ts +0 -24
  527. package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +0 -1
  528. package/dist/integrations/providers/impls/mistral-embedding.js.map +0 -1
  529. package/dist/integrations/providers/impls/mistral-llm.d.ts +0 -32
  530. package/dist/integrations/providers/impls/mistral-llm.d.ts.map +0 -1
  531. package/dist/integrations/providers/impls/mistral-llm.js.map +0 -1
  532. package/dist/integrations/providers/impls/postmark-email.d.ts +0 -20
  533. package/dist/integrations/providers/impls/postmark-email.d.ts.map +0 -1
  534. package/dist/integrations/providers/impls/postmark-email.js.map +0 -1
  535. package/dist/integrations/providers/impls/powens-client.d.ts +0 -125
  536. package/dist/integrations/providers/impls/powens-client.d.ts.map +0 -1
  537. package/dist/integrations/providers/impls/powens-client.js.map +0 -1
  538. package/dist/integrations/providers/impls/powens-openbanking.d.ts +0 -28
  539. package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +0 -1
  540. package/dist/integrations/providers/impls/powens-openbanking.js.map +0 -1
  541. package/dist/integrations/providers/impls/provider-factory.d.ts +0 -27
  542. package/dist/integrations/providers/impls/provider-factory.d.ts.map +0 -1
  543. package/dist/integrations/providers/impls/provider-factory.js.map +0 -1
  544. package/dist/integrations/providers/impls/qdrant-vector.d.ts +0 -25
  545. package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +0 -1
  546. package/dist/integrations/providers/impls/qdrant-vector.js.map +0 -1
  547. package/dist/integrations/providers/impls/stripe-payments.d.ts +0 -29
  548. package/dist/integrations/providers/impls/stripe-payments.d.ts.map +0 -1
  549. package/dist/integrations/providers/impls/stripe-payments.js.map +0 -1
  550. package/dist/integrations/providers/impls/twilio-sms.d.ts +0 -21
  551. package/dist/integrations/providers/impls/twilio-sms.d.ts.map +0 -1
  552. package/dist/integrations/providers/impls/twilio-sms.js.map +0 -1
  553. package/dist/integrations/providers/index.d.ts +0 -36
  554. package/dist/integrations/providers/llm.d.ts +0 -83
  555. package/dist/integrations/providers/llm.d.ts.map +0 -1
  556. package/dist/integrations/providers/mistral.d.ts +0 -8
  557. package/dist/integrations/providers/mistral.d.ts.map +0 -1
  558. package/dist/integrations/providers/mistral.js.map +0 -1
  559. package/dist/integrations/providers/openbanking.d.ts +0 -129
  560. package/dist/integrations/providers/openbanking.d.ts.map +0 -1
  561. package/dist/integrations/providers/payments.d.ts +0 -110
  562. package/dist/integrations/providers/payments.d.ts.map +0 -1
  563. package/dist/integrations/providers/postmark.d.ts +0 -8
  564. package/dist/integrations/providers/postmark.d.ts.map +0 -1
  565. package/dist/integrations/providers/postmark.js.map +0 -1
  566. package/dist/integrations/providers/powens.d.ts +0 -8
  567. package/dist/integrations/providers/powens.d.ts.map +0 -1
  568. package/dist/integrations/providers/powens.js.map +0 -1
  569. package/dist/integrations/providers/qdrant.d.ts +0 -8
  570. package/dist/integrations/providers/qdrant.d.ts.map +0 -1
  571. package/dist/integrations/providers/qdrant.js.map +0 -1
  572. package/dist/integrations/providers/sms.d.ts +0 -35
  573. package/dist/integrations/providers/sms.d.ts.map +0 -1
  574. package/dist/integrations/providers/storage.d.ts +0 -61
  575. package/dist/integrations/providers/storage.d.ts.map +0 -1
  576. package/dist/integrations/providers/stripe.d.ts +0 -8
  577. package/dist/integrations/providers/stripe.d.ts.map +0 -1
  578. package/dist/integrations/providers/stripe.js.map +0 -1
  579. package/dist/integrations/providers/twilio-sms.d.ts +0 -8
  580. package/dist/integrations/providers/twilio-sms.d.ts.map +0 -1
  581. package/dist/integrations/providers/twilio-sms.js.map +0 -1
  582. package/dist/integrations/providers/vector-store.d.ts +0 -44
  583. package/dist/integrations/providers/vector-store.d.ts.map +0 -1
  584. package/dist/integrations/providers/voice.d.ts +0 -35
  585. package/dist/integrations/providers/voice.d.ts.map +0 -1
  586. package/dist/integrations/runtime.d.ts +0 -100
  587. package/dist/integrations/runtime.d.ts.map +0 -1
  588. package/dist/integrations/runtime.js.map +0 -1
  589. package/dist/integrations/secrets/env-secret-provider.d.ts +0 -32
  590. package/dist/integrations/secrets/env-secret-provider.d.ts.map +0 -1
  591. package/dist/integrations/secrets/env-secret-provider.js.map +0 -1
  592. package/dist/integrations/secrets/gcp-secret-manager.d.ts +0 -33
  593. package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +0 -1
  594. package/dist/integrations/secrets/gcp-secret-manager.js.map +0 -1
  595. package/dist/integrations/secrets/index.d.ts +0 -5
  596. package/dist/integrations/secrets/manager.d.ts +0 -48
  597. package/dist/integrations/secrets/manager.d.ts.map +0 -1
  598. package/dist/integrations/secrets/manager.js.map +0 -1
  599. package/dist/integrations/secrets/provider.d.ts +0 -53
  600. package/dist/integrations/secrets/provider.d.ts.map +0 -1
  601. package/dist/integrations/secrets/provider.js.map +0 -1
  602. package/dist/integrations/spec.d.ts +0 -80
  603. package/dist/integrations/spec.d.ts.map +0 -1
  604. package/dist/integrations/spec.js.map +0 -1
  605. package/dist/jobs/gcp-cloud-tasks.d.ts +0 -42
  606. package/dist/jobs/gcp-cloud-tasks.d.ts.map +0 -1
  607. package/dist/jobs/gcp-cloud-tasks.js.map +0 -1
  608. package/dist/jobs/gcp-pubsub.d.ts +0 -26
  609. package/dist/jobs/gcp-pubsub.d.ts.map +0 -1
  610. package/dist/jobs/gcp-pubsub.js.map +0 -1
  611. package/dist/jobs/handlers/gmail-sync-handler.d.ts +0 -10
  612. package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +0 -1
  613. package/dist/jobs/handlers/gmail-sync-handler.js.map +0 -1
  614. package/dist/jobs/handlers/index.d.ts +0 -3
  615. package/dist/jobs/handlers/storage-document-handler.d.ts +0 -13
  616. package/dist/jobs/handlers/storage-document-handler.d.ts.map +0 -1
  617. package/dist/jobs/handlers/storage-document-handler.js.map +0 -1
  618. package/dist/jobs/index.d.ts +0 -7
  619. package/dist/jobs/memory-queue.d.ts +0 -19
  620. package/dist/jobs/memory-queue.d.ts.map +0 -1
  621. package/dist/jobs/memory-queue.js.map +0 -1
  622. package/dist/jobs/queue.d.ts +0 -27
  623. package/dist/jobs/queue.d.ts.map +0 -1
  624. package/dist/jsonschema.d.ts +0 -27
  625. package/dist/jsonschema.d.ts.map +0 -1
  626. package/dist/jsonschema.js.map +0 -1
  627. package/dist/knowledge/binding.d.ts +0 -26
  628. package/dist/knowledge/binding.d.ts.map +0 -1
  629. package/dist/knowledge/contracts.d.ts +0 -317
  630. package/dist/knowledge/contracts.d.ts.map +0 -1
  631. package/dist/knowledge/contracts.js.map +0 -1
  632. package/dist/knowledge/index.d.ts +0 -10
  633. package/dist/knowledge/ingestion/document-processor.d.ts +0 -25
  634. package/dist/knowledge/ingestion/document-processor.d.ts.map +0 -1
  635. package/dist/knowledge/ingestion/document-processor.js.map +0 -1
  636. package/dist/knowledge/ingestion/embedding-service.d.ts +0 -13
  637. package/dist/knowledge/ingestion/embedding-service.d.ts.map +0 -1
  638. package/dist/knowledge/ingestion/embedding-service.js.map +0 -1
  639. package/dist/knowledge/ingestion/gmail-adapter.d.ts +0 -19
  640. package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +0 -1
  641. package/dist/knowledge/ingestion/gmail-adapter.js.map +0 -1
  642. package/dist/knowledge/ingestion/index.d.ts +0 -6
  643. package/dist/knowledge/ingestion/storage-adapter.d.ts +0 -16
  644. package/dist/knowledge/ingestion/storage-adapter.d.ts.map +0 -1
  645. package/dist/knowledge/ingestion/storage-adapter.js.map +0 -1
  646. package/dist/knowledge/ingestion/vector-indexer.d.ts +0 -19
  647. package/dist/knowledge/ingestion/vector-indexer.d.ts.map +0 -1
  648. package/dist/knowledge/ingestion/vector-indexer.js.map +0 -1
  649. package/dist/knowledge/query/index.d.ts +0 -2
  650. package/dist/knowledge/query/service.d.ts +0 -30
  651. package/dist/knowledge/query/service.d.ts.map +0 -1
  652. package/dist/knowledge/query/service.js.map +0 -1
  653. package/dist/knowledge/runtime.d.ts +0 -33
  654. package/dist/knowledge/runtime.d.ts.map +0 -1
  655. package/dist/knowledge/runtime.js.map +0 -1
  656. package/dist/knowledge/source.d.ts +0 -33
  657. package/dist/knowledge/source.d.ts.map +0 -1
  658. package/dist/knowledge/spaces/email-threads.d.ts +0 -8
  659. package/dist/knowledge/spaces/email-threads.d.ts.map +0 -1
  660. package/dist/knowledge/spaces/email-threads.js.map +0 -1
  661. package/dist/knowledge/spaces/financial-docs.d.ts +0 -8
  662. package/dist/knowledge/spaces/financial-docs.d.ts.map +0 -1
  663. package/dist/knowledge/spaces/financial-docs.js.map +0 -1
  664. package/dist/knowledge/spaces/financial-overview.d.ts +0 -8
  665. package/dist/knowledge/spaces/financial-overview.d.ts.map +0 -1
  666. package/dist/knowledge/spaces/financial-overview.js.map +0 -1
  667. package/dist/knowledge/spaces/index.d.ts +0 -7
  668. package/dist/knowledge/spaces/product-canon.d.ts +0 -8
  669. package/dist/knowledge/spaces/product-canon.d.ts.map +0 -1
  670. package/dist/knowledge/spaces/product-canon.js.map +0 -1
  671. package/dist/knowledge/spaces/support-faq.d.ts +0 -8
  672. package/dist/knowledge/spaces/support-faq.d.ts.map +0 -1
  673. package/dist/knowledge/spaces/support-faq.js.map +0 -1
  674. package/dist/knowledge/spaces/uploaded-docs.d.ts +0 -8
  675. package/dist/knowledge/spaces/uploaded-docs.d.ts.map +0 -1
  676. package/dist/knowledge/spaces/uploaded-docs.js.map +0 -1
  677. package/dist/knowledge/spec.d.ts +0 -53
  678. package/dist/knowledge/spec.d.ts.map +0 -1
  679. package/dist/knowledge/spec.js.map +0 -1
  680. package/dist/markdown.d.ts +0 -22
  681. package/dist/markdown.d.ts.map +0 -1
  682. package/dist/markdown.js.map +0 -1
  683. package/dist/migrations.d.ts +0 -53
  684. package/dist/migrations.d.ts.map +0 -1
  685. package/dist/migrations.js.map +0 -1
  686. package/dist/onboarding-base.d.ts +0 -138
  687. package/dist/onboarding-base.d.ts.map +0 -1
  688. package/dist/onboarding-base.js.map +0 -1
  689. package/dist/ownership.d.ts +0 -76
  690. package/dist/ownership.d.ts.map +0 -1
  691. package/dist/ownership.js.map +0 -1
  692. package/dist/policy/engine.d.ts +0 -40
  693. package/dist/policy/engine.d.ts.map +0 -1
  694. package/dist/policy/engine.js.map +0 -1
  695. package/dist/policy/opa-adapter.d.ts +0 -46
  696. package/dist/policy/opa-adapter.d.ts.map +0 -1
  697. package/dist/policy/opa-adapter.js.map +0 -1
  698. package/dist/policy/spec.d.ts +0 -115
  699. package/dist/policy/spec.d.ts.map +0 -1
  700. package/dist/policy/spec.js.map +0 -1
  701. package/dist/presentations.backcompat.d.ts +0 -8
  702. package/dist/presentations.backcompat.d.ts.map +0 -1
  703. package/dist/presentations.backcompat.js.map +0 -1
  704. package/dist/presentations.d.ts +0 -97
  705. package/dist/presentations.d.ts.map +0 -1
  706. package/dist/presentations.js.map +0 -1
  707. package/dist/presentations.v2.d.ts +0 -96
  708. package/dist/presentations.v2.d.ts.map +0 -1
  709. package/dist/presentations.v2.js.map +0 -1
  710. package/dist/prompt.d.ts +0 -61
  711. package/dist/prompt.d.ts.map +0 -1
  712. package/dist/prompt.js.map +0 -1
  713. package/dist/promptRegistry.d.ts +0 -16
  714. package/dist/promptRegistry.d.ts.map +0 -1
  715. package/dist/promptRegistry.js.map +0 -1
  716. package/dist/regenerator/adapters.d.ts +0 -20
  717. package/dist/regenerator/adapters.d.ts.map +0 -1
  718. package/dist/regenerator/executor.d.ts +0 -71
  719. package/dist/regenerator/executor.d.ts.map +0 -1
  720. package/dist/regenerator/executor.js.map +0 -1
  721. package/dist/regenerator/index.d.ts +0 -7
  722. package/dist/regenerator/service.d.ts +0 -34
  723. package/dist/regenerator/service.d.ts.map +0 -1
  724. package/dist/regenerator/service.js.map +0 -1
  725. package/dist/regenerator/sinks.d.ts +0 -27
  726. package/dist/regenerator/sinks.d.ts.map +0 -1
  727. package/dist/regenerator/sinks.js.map +0 -1
  728. package/dist/regenerator/types.d.ts +0 -108
  729. package/dist/regenerator/types.d.ts.map +0 -1
  730. package/dist/regenerator/utils.d.ts +0 -10
  731. package/dist/regenerator/utils.d.ts.map +0 -1
  732. package/dist/regenerator/utils.js.map +0 -1
  733. package/dist/registry.d.ts +0 -73
  734. package/dist/registry.d.ts.map +0 -1
  735. package/dist/registry.js.map +0 -1
  736. package/dist/resources.d.ts +0 -65
  737. package/dist/resources.d.ts.map +0 -1
  738. package/dist/resources.js.map +0 -1
  739. package/dist/schema/dist/EnumType.js +0 -1
  740. package/dist/schema/dist/FieldType.js +0 -2
  741. package/dist/schema/dist/FieldType.js.map +0 -1
  742. package/dist/schema/dist/ScalarTypeEnum.js +0 -2
  743. package/dist/schema/dist/ScalarTypeEnum.js.map +0 -1
  744. package/dist/schema/dist/SchemaModel.js +0 -2
  745. package/dist/schema/dist/SchemaModel.js.map +0 -1
  746. package/dist/schema/dist/index.js +0 -1
  747. package/dist/server/graphql-pothos.d.ts +0 -32
  748. package/dist/server/graphql-pothos.d.ts.map +0 -1
  749. package/dist/server/graphql-pothos.js.map +0 -1
  750. package/dist/server/graphql-schema-export.d.ts +0 -7
  751. package/dist/server/graphql-schema-export.d.ts.map +0 -1
  752. package/dist/server/graphql-schema-export.js +0 -2
  753. package/dist/server/graphql-schema-export.js.map +0 -1
  754. package/dist/server/index.d.ts +0 -9
  755. package/dist/server/provider-mcp.d.ts +0 -52
  756. package/dist/server/provider-mcp.d.ts.map +0 -1
  757. package/dist/server/provider-mcp.js.map +0 -1
  758. package/dist/server/rest-elysia.d.ts +0 -41
  759. package/dist/server/rest-elysia.d.ts.map +0 -1
  760. package/dist/server/rest-elysia.js.map +0 -1
  761. package/dist/server/rest-express.d.ts +0 -17
  762. package/dist/server/rest-express.d.ts.map +0 -1
  763. package/dist/server/rest-express.js.map +0 -1
  764. package/dist/server/rest-generic.d.ts +0 -33
  765. package/dist/server/rest-generic.d.ts.map +0 -1
  766. package/dist/server/rest-generic.js.map +0 -1
  767. package/dist/server/rest-next-app.d.ts +0 -36
  768. package/dist/server/rest-next-app.d.ts.map +0 -1
  769. package/dist/server/rest-next-app.js.map +0 -1
  770. package/dist/server/rest-next-mcp.d.ts +0 -12
  771. package/dist/server/rest-next-mcp.d.ts.map +0 -1
  772. package/dist/server/rest-next-mcp.js.map +0 -1
  773. package/dist/server/rest-next-pages.d.ts +0 -10
  774. package/dist/server/rest-next-pages.d.ts.map +0 -1
  775. package/dist/server/rest-next-pages.js.map +0 -1
  776. package/dist/spec.d.ts +0 -172
  777. package/dist/spec.d.ts.map +0 -1
  778. package/dist/spec.js.map +0 -1
  779. package/dist/telemetry/anomaly.d.ts +0 -28
  780. package/dist/telemetry/anomaly.d.ts.map +0 -1
  781. package/dist/telemetry/anomaly.js.map +0 -1
  782. package/dist/telemetry/index.d.ts +0 -4
  783. package/dist/telemetry/spec.d.ts +0 -99
  784. package/dist/telemetry/spec.d.ts.map +0 -1
  785. package/dist/telemetry/spec.js.map +0 -1
  786. package/dist/telemetry/tracker.d.ts +0 -52
  787. package/dist/telemetry/tracker.d.ts.map +0 -1
  788. package/dist/telemetry/tracker.js.map +0 -1
  789. package/dist/tests/index.d.ts +0 -3
  790. package/dist/tests/runner.d.ts +0 -44
  791. package/dist/tests/runner.d.ts.map +0 -1
  792. package/dist/tests/runner.js.map +0 -1
  793. package/dist/tests/spec.d.ts +0 -90
  794. package/dist/tests/spec.d.ts.map +0 -1
  795. package/dist/tests/spec.js.map +0 -1
  796. package/dist/themes.d.ts +0 -56
  797. package/dist/themes.d.ts.map +0 -1
  798. package/dist/themes.js.map +0 -1
  799. package/dist/translations/catalog.d.ts +0 -29
  800. package/dist/translations/catalog.d.ts.map +0 -1
  801. package/dist/translations/tenant.d.ts +0 -16
  802. package/dist/translations/tenant.d.ts.map +0 -1
  803. package/dist/types/all.d.ts +0 -60
  804. package/dist/types.d.ts +0 -89
  805. package/dist/types.d.ts.map +0 -1
  806. package/dist/workflow/adapters/db-adapter.d.ts +0 -35
  807. package/dist/workflow/adapters/db-adapter.d.ts.map +0 -1
  808. package/dist/workflow/adapters/db-adapter.js.map +0 -1
  809. package/dist/workflow/adapters/file-adapter.d.ts +0 -15
  810. package/dist/workflow/adapters/file-adapter.d.ts.map +0 -1
  811. package/dist/workflow/adapters/file-adapter.js.map +0 -1
  812. package/dist/workflow/adapters/index.d.ts +0 -4
  813. package/dist/workflow/adapters/memory-store.d.ts +0 -19
  814. package/dist/workflow/adapters/memory-store.d.ts.map +0 -1
  815. package/dist/workflow/adapters/memory-store.js.map +0 -1
  816. package/dist/workflow/expression.d.ts +0 -10
  817. package/dist/workflow/expression.d.ts.map +0 -1
  818. package/dist/workflow/expression.js.map +0 -1
  819. package/dist/workflow/index.d.ts +0 -10
  820. package/dist/workflow/runner.d.ts +0 -75
  821. package/dist/workflow/runner.d.ts.map +0 -1
  822. package/dist/workflow/runner.js.map +0 -1
  823. package/dist/workflow/sla-monitor.d.ts +0 -21
  824. package/dist/workflow/sla-monitor.d.ts.map +0 -1
  825. package/dist/workflow/sla-monitor.js.map +0 -1
  826. package/dist/workflow/spec.d.ts +0 -100
  827. package/dist/workflow/spec.d.ts.map +0 -1
  828. package/dist/workflow/spec.js.map +0 -1
  829. package/dist/workflow/state.d.ts +0 -36
  830. package/dist/workflow/state.d.ts.map +0 -1
  831. package/dist/workflow/validation.d.ts +0 -29
  832. package/dist/workflow/validation.d.ts.map +0 -1
  833. package/dist/workflow/validation.js.map +0 -1
@@ -0,0 +1 @@
1
+ import{registerDocBlocks as e}from"../../docs/registry.js";import"../../registry.js";const t=[{id:`docs.tech.contracts.integrations`,title:`ContractSpec Integrations`,summary:`Provider-agnostic integration contracts: specs, connections, secrets, health checks, and runtime guards.`,kind:`reference`,visibility:`public`,route:`/docs/tech/contracts/integrations`,tags:[`tech`,`contracts`,`integrations`],body:"# ContractSpec Integrations\n\nThis document describes the integration architecture that powers ContractSpec-based apps. It focuses on provider-agnostic contracts, secret management, health checks, and runtime guards.\n\n## Core Concepts\n\n- **IntegrationSpec** – declarative description of a provider that lists supported ownership modes, capability mappings, configuration schema, secret schema, health check policy, and documentation metadata.\n- **IntegrationConnection** – tenant/environment binding to a provider (`meta` + ownership mode + config + `secretRef`). Secrets are never embedded in specs or configs.\n- **AppIntegrationSlot** – blueprint-level requirement that declares which integration categories/capabilities must be satisfied at runtime (e.g. `primaryLLM`, `primaryVectorDb`).\n- **AppIntegrationBinding** – tenant-level slot → connection mapping.\n- **ResolvedIntegration** – runtime view containing slot metadata, connection details, and the resolved IntegrationSpec.\n\n## Registered Providers\n\nThe contracts library ships ten priority providers in `packages/libs/contracts/src/integrations/providers`:\n\n| Category | Provider | Key | Notes |\n| ------------- | ---------------- | --------------------------- | ------------------------------------------------- |\n| payments | Stripe | `payments.stripe` | Card + invoice flows, managed or BYOK credentials |\n| email (out) | Postmark | `email.postmark` | Transactional email delivery |\n| email (in) | Gmail API | `email.gmail` | Thread ingestion (OAuth BYOK or service account) |\n| calendar | Google Calendar | `calendar.google` | Event scheduling via service account |\n| vector-db | Qdrant | `vectordb.qdrant` | Embedding storage & search |\n| storage | Google Cloud | `storage.gcs` | Object storage |\n| ai-llm | Mistral | `ai-llm.mistral` | Primary chat + embedding provider |\n| ai-voice | ElevenLabs | `ai-voice.elevenlabs` | Text-to-speech synthesis |\n| sms | Twilio SMS | `sms.twilio` | Urgent and fallback reminders |\n| open-banking | Powens | `openbanking.powens` | Read-only account, transaction, and balance sync |\n\nEach provider ships with:\n\n- Strongly typed adapter interfaces (`payments.ts`, `llm.ts`, etc.)\n- A concrete SDK-backed implementation under `providers/impls`\n- Unit tests validating adapter behaviour and health checks\n\n### Canonical registry builder\n\nTo list all shipped specs at runtime, use:\n\n- `createDefaultIntegrationSpecRegistry()` from `@lssm/lib.contracts/integrations/providers/registry`\n\n## Secret Management\n\nAll integrations rely on the `SecretProvider` abstraction defined in `integrations/secrets`. Providers ship with the contracts library and are orchestrated by the `SecretProviderManager` composite:\n\n- **EnvSecretProvider** (`env-secret-provider.ts`) – high-priority, read-only overrides backed by environment variables.\n - Supports the `env://VARIABLE_NAME` scheme\n - Supports overrides for other schemes via `?env=ALIAS` or derived uppercase keys\n- **GcpSecretManagerProvider** (`gcp-secret-manager.ts`) – versioned secrets stored in Google Cloud Secret Manager.\n - Example: `gcp://projects/demo/secrets/stripe-key/versions/latest`\n- **AwsSecretsManagerProvider** (`aws-secret-manager.ts`) – AWS Secrets Manager backend.\n - Example: `aws://secretsmanager/eu-west-1/my-secret?version=AWSCURRENT`\n - Region may be in the reference or provided via `AWS_REGION` / `AWS_DEFAULT_REGION`\n- **ScalewaySecretManagerProvider** (`scaleway-secret-manager.ts`) – Scaleway Secret Manager backend.\n - Example (id): `scw://secret-manager/fr-par/1234...-uuid?version=latest`\n - Example (name, create+write): `scw://secret-manager/fr-par/my-secret-name`\n - Requires `SCW_SECRET_KEY` (token) and `SCW_DEFAULT_PROJECT_ID` when creating secrets by name\n\nThe manager attempts providers in priority order (environment first, then cloud providers). Key points:\n\n- `secretRef` is a URI-like reference; raw secrets are never returned.\n- `IntegrationCallGuard` fetches and parses secrets before executing a provider adapter.\n- Local development can rely on `.env` files, while staging/production reference cloud secret stores.\n\n## Health Checks & Telemetry\n\n- Each IntegrationSpec optionally declares `healthCheck.method` and timeouts.\n- `IntegrationCallGuard` enforces connection status, wraps retries with exponential back-off, and emits telemetry events tagged with tenant/app/slot metadata.\n- Validation rules (`app-config/validation.ts`) surface issues at publish time (slot mismatch, unsupported ownership modes, missing capabilities, etc.).\n\n## Studio persistence (ContractSpec Studio)\n\nContractSpec Studio persists tenant `IntegrationConnection` records in Postgres (Prisma model `IntegrationConnection` in `@lssm/lib.database-contractspec-studio`) and exposes a platform-admin management surface (see the Studio platform admin panel).\n"}];e(t);export{t as tech_contracts_integrations_DocBlocks};
@@ -1,2 +1 @@
1
- var e=class{telemetry;nowFn;constructor(e={}){this.telemetry=e.telemetry,this.nowFn=e.now??(()=>new Date)}async check(e,n){let r=this.nowFn();try{await n(e);let t=this.nowFn(),i={status:`connected`,checkedAt:t,latencyMs:t.getTime()-r.getTime()};return this.emitTelemetry(e,i,`success`),i}catch(n){let i=this.nowFn(),a=n instanceof Error?n.message:`Unknown error`,o=t(n),s={status:`error`,checkedAt:i,latencyMs:i.getTime()-r.getTime(),errorMessage:a,errorCode:o};return this.emitTelemetry(e,s,`error`,o,a),s}}emitTelemetry(e,t,n,r,i){this.telemetry&&this.telemetry.record({tenantId:e.tenantId,appId:e.appId,environment:e.environment,slotId:e.slotId,integrationKey:e.spec.meta.key,integrationVersion:e.spec.meta.version,connectionId:e.connection.meta.id,status:n,durationMs:t.latencyMs,errorCode:r,errorMessage:i,occurredAt:t.checkedAt??this.nowFn(),metadata:{...e.trace?{blueprint:`${e.trace.blueprintName}.v${e.trace.blueprintVersion}`,configVersion:e.trace.configVersion}:{},status:t.status}})}};function t(e){if(!e||typeof e!=`object`)return;let t=e;if(t.code!=null)return String(t.code)}export{e as IntegrationHealthService};
2
- //# sourceMappingURL=health.js.map
1
+ var e=class{telemetry;nowFn;constructor(e={}){this.telemetry=e.telemetry,this.nowFn=e.now??(()=>new Date)}async check(e,n){let r=this.nowFn();try{await n(e);let t=this.nowFn(),i={status:`connected`,checkedAt:t,latencyMs:t.getTime()-r.getTime()};return this.emitTelemetry(e,i,`success`),i}catch(n){let i=this.nowFn(),a=n instanceof Error?n.message:`Unknown error`,o=t(n),s={status:`error`,checkedAt:i,latencyMs:i.getTime()-r.getTime(),errorMessage:a,errorCode:o};return this.emitTelemetry(e,s,`error`,o,a),s}}emitTelemetry(e,t,n,r,i){this.telemetry&&this.telemetry.record({tenantId:e.tenantId,appId:e.appId,environment:e.environment,slotId:e.slotId,integrationKey:e.spec.meta.key,integrationVersion:e.spec.meta.version,connectionId:e.connection.meta.id,status:n,durationMs:t.latencyMs,errorCode:r,errorMessage:i,occurredAt:t.checkedAt??this.nowFn(),metadata:{...e.trace?{blueprint:`${e.trace.blueprintName}.v${e.trace.blueprintVersion}`,configVersion:e.trace.configVersion}:{},status:t.status}})}};function t(e){if(!e||typeof e!=`object`)return;let t=e;if(t.code!=null)return String(t.code)}export{e as IntegrationHealthService};
@@ -1 +1 @@
1
- import{IntegrationSpecRegistry as e,makeIntegrationSpecKey as t}from"./spec.js";import{registerStripeIntegration as n,stripeIntegrationSpec as r}from"./providers/stripe.js";import{postmarkIntegrationSpec as i,registerPostmarkIntegration as a}from"./providers/postmark.js";import{qdrantIntegrationSpec as o,registerQdrantIntegration as s}from"./providers/qdrant.js";import{mistralIntegrationSpec as c,registerMistralIntegration as l}from"./providers/mistral.js";import{elevenLabsIntegrationSpec as u,registerElevenLabsIntegration as d}from"./providers/elevenlabs.js";import{gmailIntegrationSpec as f,registerGmailIntegration as p}from"./providers/gmail.js";import{googleCalendarIntegrationSpec as m,registerGoogleCalendarIntegration as h}from"./providers/google-calendar.js";import{registerTwilioSmsIntegration as g,twilioSmsIntegrationSpec as _}from"./providers/twilio-sms.js";import{gcsStorageIntegrationSpec as v,registerGcsStorageIntegration as y}from"./providers/gcs-storage.js";import{powensIntegrationSpec as b,registerPowensIntegration as x}from"./providers/powens.js";import{MistralLLMProvider as S}from"./providers/impls/mistral-llm.js";import{MistralEmbeddingProvider as C}from"./providers/impls/mistral-embedding.js";import{QdrantVectorProvider as w}from"./providers/impls/qdrant-vector.js";import{GmailInboundProvider as T}from"./providers/impls/gmail-inbound.js";import{GmailOutboundProvider as E}from"./providers/impls/gmail-outbound.js";import{GoogleCalendarProvider as D}from"./providers/impls/google-calendar.js";import{ElevenLabsVoiceProvider as O}from"./providers/impls/elevenlabs-voice.js";import{GoogleCloudStorageProvider as k}from"./providers/impls/gcs-storage.js";import{StripePaymentsProvider as A}from"./providers/impls/stripe-payments.js";import{PostmarkEmailProvider as j}from"./providers/impls/postmark-email.js";import{TwilioSmsProvider as M}from"./providers/impls/twilio-sms.js";import{PowensClient as N,PowensClientError as P}from"./providers/impls/powens-client.js";import{PowensOpenBankingProvider as F}from"./providers/impls/powens-openbanking.js";import{IntegrationProviderFactory as I}from"./providers/impls/provider-factory.js";import"./providers/index.js";import{SecretProviderError as L,normalizeSecretPayload as R,parseSecretUri as z}from"./secrets/provider.js";import{GcpSecretManagerProvider as B}from"./secrets/gcp-secret-manager.js";import{EnvSecretProvider as V}from"./secrets/env-secret-provider.js";import{SecretProviderManager as H}from"./secrets/manager.js";import"./secrets/index.js";import{IntegrationCallGuard as U,connectionStatusLabel as W,ensureConnectionReady as G}from"./runtime.js";import{IntegrationHealthService as K}from"./health.js";import{AccountBalanceRecord as q,BankAccountRecord as J,BankTransactionRecord as Y}from"./openbanking/models.js";import{OPENBANKING_PII_FIELDS as X,OPENBANKING_TELEMETRY_EVENTS as Z,redactOpenBankingTelemetryPayload as Q}from"./openbanking/telemetry.js";import{OpenBankingGetAccount as $,OpenBankingListAccounts as ee,OpenBankingSyncAccounts as te}from"./openbanking/contracts/accounts.js";import{OpenBankingListTransactions as ne,OpenBankingSyncTransactions as re}from"./openbanking/contracts/transactions.js";import{OpenBankingGetBalances as ie,OpenBankingRefreshBalances as ae}from"./openbanking/contracts/balances.js";import{registerOpenBankingContracts as oe}from"./openbanking/contracts/index.js";import{assertPrimaryOpenBankingReady as se,ensurePrimaryOpenBankingIntegration as ce}from"./openbanking/guards.js";export{q as AccountBalanceRecord,J as BankAccountRecord,Y as BankTransactionRecord,O as ElevenLabsVoiceProvider,V as EnvSecretProvider,B as GcpSecretManagerProvider,T as GmailInboundProvider,E as GmailOutboundProvider,D as GoogleCalendarProvider,k as GoogleCloudStorageProvider,U as IntegrationCallGuard,K as IntegrationHealthService,I as IntegrationProviderFactory,e as IntegrationSpecRegistry,C as MistralEmbeddingProvider,S as MistralLLMProvider,X as OPENBANKING_PII_FIELDS,Z as OPENBANKING_TELEMETRY_EVENTS,$ as OpenBankingGetAccount,ie as OpenBankingGetBalances,ee as OpenBankingListAccounts,ne as OpenBankingListTransactions,ae as OpenBankingRefreshBalances,te as OpenBankingSyncAccounts,re as OpenBankingSyncTransactions,j as PostmarkEmailProvider,N as PowensClient,P as PowensClientError,F as PowensOpenBankingProvider,w as QdrantVectorProvider,L as SecretProviderError,H as SecretProviderManager,A as StripePaymentsProvider,M as TwilioSmsProvider,se as assertPrimaryOpenBankingReady,W as connectionStatusLabel,u as elevenLabsIntegrationSpec,G as ensureConnectionReady,ce as ensurePrimaryOpenBankingIntegration,v as gcsStorageIntegrationSpec,f as gmailIntegrationSpec,m as googleCalendarIntegrationSpec,t as makeIntegrationSpecKey,c as mistralIntegrationSpec,R as normalizeSecretPayload,z as parseSecretUri,i as postmarkIntegrationSpec,b as powensIntegrationSpec,o as qdrantIntegrationSpec,Q as redactOpenBankingTelemetryPayload,d as registerElevenLabsIntegration,y as registerGcsStorageIntegration,p as registerGmailIntegration,h as registerGoogleCalendarIntegration,l as registerMistralIntegration,oe as registerOpenBankingContracts,a as registerPostmarkIntegration,x as registerPowensIntegration,s as registerQdrantIntegration,n as registerStripeIntegration,g as registerTwilioSmsIntegration,r as stripeIntegrationSpec,_ as twilioSmsIntegrationSpec};
1
+ import{IntegrationSpecRegistry as e,makeIntegrationSpecKey as t}from"./spec.js";import{registerStripeIntegration as n,stripeIntegrationSpec as r}from"./providers/stripe.js";import{postmarkIntegrationSpec as i,registerPostmarkIntegration as a}from"./providers/postmark.js";import{qdrantIntegrationSpec as o,registerQdrantIntegration as s}from"./providers/qdrant.js";import{mistralIntegrationSpec as c,registerMistralIntegration as l}from"./providers/mistral.js";import{elevenLabsIntegrationSpec as u,registerElevenLabsIntegration as d}from"./providers/elevenlabs.js";import{gmailIntegrationSpec as f,registerGmailIntegration as p}from"./providers/gmail.js";import{googleCalendarIntegrationSpec as m,registerGoogleCalendarIntegration as h}from"./providers/google-calendar.js";import{registerTwilioSmsIntegration as g,twilioSmsIntegrationSpec as _}from"./providers/twilio-sms.js";import{gcsStorageIntegrationSpec as v,registerGcsStorageIntegration as y}from"./providers/gcs-storage.js";import{powensIntegrationSpec as b,registerPowensIntegration as x}from"./providers/powens.js";import{createDefaultIntegrationSpecRegistry as S}from"./providers/registry.js";import"./providers/index.js";import{AccountBalanceRecord as C,BankAccountRecord as w,BankTransactionRecord as T}from"./openbanking/models.js";import{OPENBANKING_PII_FIELDS as E,OPENBANKING_TELEMETRY_EVENTS as D,redactOpenBankingTelemetryPayload as O}from"./openbanking/telemetry.js";import{OpenBankingGetAccount as k,OpenBankingListAccounts as A,OpenBankingSyncAccounts as j}from"./openbanking/contracts/accounts.js";import{OpenBankingListTransactions as M,OpenBankingSyncTransactions as N}from"./openbanking/contracts/transactions.js";import{OpenBankingGetBalances as P,OpenBankingRefreshBalances as F}from"./openbanking/contracts/balances.js";import{OpenBankingFeature as I}from"./openbanking/openbanking.feature.js";import{registerOpenBankingContracts as L}from"./openbanking/contracts/index.js";import{assertPrimaryOpenBankingReady as R,ensurePrimaryOpenBankingIntegration as z}from"./openbanking/guards.js";export{C as AccountBalanceRecord,w as BankAccountRecord,T as BankTransactionRecord,e as IntegrationSpecRegistry,E as OPENBANKING_PII_FIELDS,D as OPENBANKING_TELEMETRY_EVENTS,I as OpenBankingFeature,k as OpenBankingGetAccount,P as OpenBankingGetBalances,A as OpenBankingListAccounts,M as OpenBankingListTransactions,F as OpenBankingRefreshBalances,j as OpenBankingSyncAccounts,N as OpenBankingSyncTransactions,R as assertPrimaryOpenBankingReady,S as createDefaultIntegrationSpecRegistry,u as elevenLabsIntegrationSpec,z as ensurePrimaryOpenBankingIntegration,v as gcsStorageIntegrationSpec,f as gmailIntegrationSpec,m as googleCalendarIntegrationSpec,t as makeIntegrationSpecKey,c as mistralIntegrationSpec,i as postmarkIntegrationSpec,b as powensIntegrationSpec,o as qdrantIntegrationSpec,O as redactOpenBankingTelemetryPayload,d as registerElevenLabsIntegration,y as registerGcsStorageIntegration,p as registerGmailIntegration,h as registerGoogleCalendarIntegration,l as registerMistralIntegration,L as registerOpenBankingContracts,a as registerPostmarkIntegration,x as registerPowensIntegration,s as registerQdrantIntegration,n as registerStripeIntegration,g as registerTwilioSmsIntegration,r as stripeIntegrationSpec,_ as twilioSmsIntegrationSpec};
@@ -1,2 +1 @@
1
- import{l as e}from"../../../schema/dist/ScalarTypeEnum.js";import{t}from"../../../schema/dist/SchemaModel.js";import"../../../schema/dist/index.js";import{defineCommand as n,defineQuery as r}from"../../../spec.js";import{BankAccountRecord as i}from"../models.js";import{OPENBANKING_TELEMETRY_EVENTS as a}from"../telemetry.js";const o=new t({name:`OpenBankingListAccountsInput`,description:`Parameters for listing bank accounts through the open banking provider.`,fields:{tenantId:{type:e.ID(),isOptional:!1},userId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!0},includeBalances:{type:e.Boolean(),isOptional:!0},institutionId:{type:e.String_unsecure(),isOptional:!0},cursor:{type:e.String_unsecure(),isOptional:!0},pageSize:{type:e.Int_unsecure(),isOptional:!0}}}),s=new t({name:`OpenBankingListAccountsOutput`,description:`Paginated list of bank accounts available to the tenant and user.`,fields:{accounts:{type:i,isOptional:!1,isArray:!0},nextCursor:{type:e.String_unsecure(),isOptional:!0},hasMore:{type:e.Boolean(),isOptional:!0}}}),c=new t({name:`OpenBankingGetAccountInput`,description:`Parameters for retrieving a specific bank account.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},includeBalances:{type:e.Boolean(),isOptional:!0},includeLatestTransactions:{type:e.Boolean(),isOptional:!0}}}),l=new t({name:`OpenBankingSyncAccountsInput`,description:`Command payload to trigger an account synchronisation against the open banking provider.`,fields:{tenantId:{type:e.ID(),isOptional:!1},userId:{type:e.ID(),isOptional:!0},connectionId:{type:e.ID(),isOptional:!1},accountIds:{type:e.ID(),isArray:!0,isOptional:!0},forceFullRefresh:{type:e.Boolean(),isOptional:!0},triggerWorkflows:{type:e.Boolean(),isOptional:!0}}}),u=new t({name:`OpenBankingSyncAccountsOutput`,description:`Result of a bank account synchronisation run.`,fields:{synced:{type:e.Int_unsecure(),isOptional:!1},failed:{type:e.Int_unsecure(),isOptional:!1},errors:{type:e.String_unsecure(),isArray:!0,isOptional:!0},nextSyncSuggestedAt:{type:e.DateTime(),isOptional:!0}}}),d=r({meta:{name:`openbanking.accounts.list`,version:1,description:`List bank accounts available to a tenant/user via Powens Open Banking.`,goal:`Provide downstream workflows with the set of accounts accessible via the configured open banking connection.`,context:`Used by Pocket Family Office dashboards and sync workflows to enumerate bank accounts prior to syncing balances or transactions.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),f=r({meta:{name:`openbanking.accounts.get`,version:1,description:`Retrieve the canonical bank account record for the given account identifier.`,goal:`Allow user-facing experiences and automations to display up-to-date account metadata.`,context:`Invoked by UI surfaces and workflow automation steps that require detailed metadata for a specific bank account.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:c,output:i},policy:{auth:`user`}}),p=n({meta:{name:`openbanking.accounts.sync`,version:1,description:`Initiate a synchronisation run to refresh bank account metadata from Powens.`,goal:`Keep canonical bank account records aligned with the external open banking provider.`,context:`Triggered by scheduled workflows or manual operator actions to reconcile account metadata prior to transaction/balance syncs.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:l,output:u},policy:{auth:`admin`},telemetry:{success:{event:{name:a.accountsSynced},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,connectionId:n?.connectionId,synced:r?.synced,failed:r?.failed}}},failure:{event:{name:a.accountsSyncFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,connectionId:n?.connectionId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}}),m={OpenBankingListAccounts:d,OpenBankingGetAccount:f,OpenBankingSyncAccounts:p};function h(e){return e.register(d).register(f).register(p)}export{f as OpenBankingGetAccount,d as OpenBankingListAccounts,p as OpenBankingSyncAccounts,m as openBankingAccountContracts,h as registerOpenBankingAccountContracts};
2
- //# sourceMappingURL=accounts.js.map
1
+ import{defineCommand as e,defineQuery as t}from"../../../spec.js";import{BankAccountRecord as n}from"../models.js";import{OPENBANKING_TELEMETRY_EVENTS as r}from"../telemetry.js";import{ScalarTypeEnum as i,SchemaModel as a}from"@lssm/lib.schema";const o=new a({name:`OpenBankingListAccountsInput`,description:`Parameters for listing bank accounts through the open banking provider.`,fields:{tenantId:{type:i.ID(),isOptional:!1},userId:{type:i.ID(),isOptional:!1},connectionId:{type:i.ID(),isOptional:!0},includeBalances:{type:i.Boolean(),isOptional:!0},institutionId:{type:i.String_unsecure(),isOptional:!0},cursor:{type:i.String_unsecure(),isOptional:!0},pageSize:{type:i.Int_unsecure(),isOptional:!0}}}),s=new a({name:`OpenBankingListAccountsOutput`,description:`Paginated list of bank accounts available to the tenant and user.`,fields:{accounts:{type:n,isOptional:!1,isArray:!0},nextCursor:{type:i.String_unsecure(),isOptional:!0},hasMore:{type:i.Boolean(),isOptional:!0}}}),c=new a({name:`OpenBankingGetAccountInput`,description:`Parameters for retrieving a specific bank account.`,fields:{tenantId:{type:i.ID(),isOptional:!1},accountId:{type:i.ID(),isOptional:!1},includeBalances:{type:i.Boolean(),isOptional:!0},includeLatestTransactions:{type:i.Boolean(),isOptional:!0}}}),l=new a({name:`OpenBankingSyncAccountsInput`,description:`Command payload to trigger an account synchronisation against the open banking provider.`,fields:{tenantId:{type:i.ID(),isOptional:!1},userId:{type:i.ID(),isOptional:!0},connectionId:{type:i.ID(),isOptional:!1},accountIds:{type:i.ID(),isArray:!0,isOptional:!0},forceFullRefresh:{type:i.Boolean(),isOptional:!0},triggerWorkflows:{type:i.Boolean(),isOptional:!0}}}),u=new a({name:`OpenBankingSyncAccountsOutput`,description:`Result of a bank account synchronisation run.`,fields:{synced:{type:i.Int_unsecure(),isOptional:!1},failed:{type:i.Int_unsecure(),isOptional:!1},errors:{type:i.String_unsecure(),isArray:!0,isOptional:!0},nextSyncSuggestedAt:{type:i.DateTime(),isOptional:!0}}}),d=t({meta:{name:`openbanking.accounts.list`,version:1,description:`List bank accounts available to a tenant/user via Powens Open Banking.`,goal:`Provide downstream workflows with the set of accounts accessible via the configured open banking connection.`,context:`Used by Pocket Family Office dashboards and sync workflows to enumerate bank accounts prior to syncing balances or transactions.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),f=t({meta:{name:`openbanking.accounts.get`,version:1,description:`Retrieve the canonical bank account record for the given account identifier.`,goal:`Allow user-facing experiences and automations to display up-to-date account metadata.`,context:`Invoked by UI surfaces and workflow automation steps that require detailed metadata for a specific bank account.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:c,output:n},policy:{auth:`user`}}),p=e({meta:{name:`openbanking.accounts.sync`,version:1,description:`Initiate a synchronisation run to refresh bank account metadata from Powens.`,goal:`Keep canonical bank account records aligned with the external open banking provider.`,context:`Triggered by scheduled workflows or manual operator actions to reconcile account metadata prior to transaction/balance syncs.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`accounts`],stability:`experimental`},io:{input:l,output:u},policy:{auth:`admin`},telemetry:{success:{event:{name:r.accountsSynced},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,connectionId:n?.connectionId,synced:r?.synced,failed:r?.failed}}},failure:{event:{name:r.accountsSyncFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,connectionId:n?.connectionId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}}),m={OpenBankingListAccounts:d,OpenBankingGetAccount:f,OpenBankingSyncAccounts:p};function h(e){return e.register(d).register(f).register(p)}export{f as OpenBankingGetAccount,d as OpenBankingListAccounts,p as OpenBankingSyncAccounts,m as openBankingAccountContracts,h as registerOpenBankingAccountContracts};
@@ -1,2 +1 @@
1
- import{l as e}from"../../../schema/dist/ScalarTypeEnum.js";import{t}from"../../../schema/dist/SchemaModel.js";import"../../../schema/dist/index.js";import{defineCommand as n,defineQuery as r}from"../../../spec.js";import{AccountBalanceRecord as i}from"../models.js";import{OPENBANKING_TELEMETRY_EVENTS as a}from"../telemetry.js";const o=new t({name:`OpenBankingGetBalancesInput`,description:`Parameters for retrieving bank account balances from the canonical ledger.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},balanceTypes:{type:e.String_unsecure(),isArray:!0,isOptional:!0}}}),s=new t({name:`OpenBankingGetBalancesOutput`,description:`Canonical balances for a bank account.`,fields:{balances:{type:i,isOptional:!1,isArray:!0},asOf:{type:e.DateTime(),isOptional:!0}}}),c=new t({name:`OpenBankingRefreshBalancesInput`,description:`Command payload to refresh balances for a bank account via the open banking provider.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!0},balanceTypes:{type:e.String_unsecure(),isArray:!0,isOptional:!0},forceRefresh:{type:e.Boolean(),isOptional:!0}}}),l=new t({name:`OpenBankingRefreshBalancesOutput`,description:`Result of a balance refresh against the open banking provider.`,fields:{balances:{type:i,isOptional:!1,isArray:!0},refreshedAt:{type:e.DateTime(),isOptional:!1},errors:{type:e.String_unsecure(),isArray:!0,isOptional:!0}}}),u=r({meta:{name:`openbanking.balances.get`,version:1,description:`Retrieve the latest cached balances for a bank account.`,goal:`Expose current and available balances required by dashboards and analytics.`,context:`Used by Pocket Family Office UI surfaces and automation steps that require balance totals prior to generating summaries.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`balances`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),d=n({meta:{name:`openbanking.balances.refresh`,version:1,description:`Refresh balances for a bank account via the configured open banking provider.`,goal:`Ensure canonical balance records reflect the latest values from Powens.`,context:`Triggered by scheduled workflows before generating summaries or forecasting cashflow.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`balances`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`},telemetry:{success:{event:{name:a.balancesRefreshed},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,accountId:n?.accountId,refreshedAt:r?.refreshedAt,balanceCount:Array.isArray(r?.balances)?r?.balances.length:void 0}}},failure:{event:{name:a.balancesRefreshFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,accountId:n?.accountId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}}),f={OpenBankingGetBalances:u,OpenBankingRefreshBalances:d};function p(e){return e.register(u).register(d)}export{u as OpenBankingGetBalances,d as OpenBankingRefreshBalances,f as openBankingBalanceContracts,p as registerOpenBankingBalanceContracts};
2
- //# sourceMappingURL=balances.js.map
1
+ import{defineCommand as e,defineQuery as t}from"../../../spec.js";import{AccountBalanceRecord as n}from"../models.js";import{OPENBANKING_TELEMETRY_EVENTS as r}from"../telemetry.js";import{ScalarTypeEnum as i,SchemaModel as a}from"@lssm/lib.schema";const o=new a({name:`OpenBankingGetBalancesInput`,description:`Parameters for retrieving bank account balances from the canonical ledger.`,fields:{tenantId:{type:i.ID(),isOptional:!1},accountId:{type:i.ID(),isOptional:!1},balanceTypes:{type:i.String_unsecure(),isArray:!0,isOptional:!0}}}),s=new a({name:`OpenBankingGetBalancesOutput`,description:`Canonical balances for a bank account.`,fields:{balances:{type:n,isOptional:!1,isArray:!0},asOf:{type:i.DateTime(),isOptional:!0}}}),c=new a({name:`OpenBankingRefreshBalancesInput`,description:`Command payload to refresh balances for a bank account via the open banking provider.`,fields:{tenantId:{type:i.ID(),isOptional:!1},accountId:{type:i.ID(),isOptional:!1},connectionId:{type:i.ID(),isOptional:!0},balanceTypes:{type:i.String_unsecure(),isArray:!0,isOptional:!0},forceRefresh:{type:i.Boolean(),isOptional:!0}}}),l=new a({name:`OpenBankingRefreshBalancesOutput`,description:`Result of a balance refresh against the open banking provider.`,fields:{balances:{type:n,isOptional:!1,isArray:!0},refreshedAt:{type:i.DateTime(),isOptional:!1},errors:{type:i.String_unsecure(),isArray:!0,isOptional:!0}}}),u=t({meta:{name:`openbanking.balances.get`,version:1,description:`Retrieve the latest cached balances for a bank account.`,goal:`Expose current and available balances required by dashboards and analytics.`,context:`Used by Pocket Family Office UI surfaces and automation steps that require balance totals prior to generating summaries.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`balances`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),d=e({meta:{name:`openbanking.balances.refresh`,version:1,description:`Refresh balances for a bank account via the configured open banking provider.`,goal:`Ensure canonical balance records reflect the latest values from Powens.`,context:`Triggered by scheduled workflows before generating summaries or forecasting cashflow.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`balances`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`},telemetry:{success:{event:{name:r.balancesRefreshed},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,accountId:n?.accountId,refreshedAt:r?.refreshedAt,balanceCount:Array.isArray(r?.balances)?r?.balances.length:void 0}}},failure:{event:{name:r.balancesRefreshFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,accountId:n?.accountId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}}),f={OpenBankingGetBalances:u,OpenBankingRefreshBalances:d};function p(e){return e.register(u).register(d)}export{u as OpenBankingGetBalances,d as OpenBankingRefreshBalances,f as openBankingBalanceContracts,p as registerOpenBankingBalanceContracts};
@@ -1,2 +1 @@
1
- import{OpenBankingGetAccount as e,OpenBankingListAccounts as t,OpenBankingSyncAccounts as n,registerOpenBankingAccountContracts as r}from"./accounts.js";import{OpenBankingListTransactions as i,OpenBankingSyncTransactions as a,registerOpenBankingTransactionContracts as o}from"./transactions.js";import{OpenBankingGetBalances as s,OpenBankingRefreshBalances as c,registerOpenBankingBalanceContracts as l}from"./balances.js";function u(e){return l(o(r(e)))}export{e as OpenBankingGetAccount,s as OpenBankingGetBalances,t as OpenBankingListAccounts,i as OpenBankingListTransactions,c as OpenBankingRefreshBalances,n as OpenBankingSyncAccounts,a as OpenBankingSyncTransactions,u as registerOpenBankingContracts};
2
- //# sourceMappingURL=index.js.map
1
+ import{OpenBankingGetAccount as e,OpenBankingListAccounts as t,OpenBankingSyncAccounts as n,registerOpenBankingAccountContracts as r}from"./accounts.js";import{OpenBankingListTransactions as i,OpenBankingSyncTransactions as a,registerOpenBankingTransactionContracts as o}from"./transactions.js";import{OpenBankingGetBalances as s,OpenBankingRefreshBalances as c,registerOpenBankingBalanceContracts as l}from"./balances.js";import{OpenBankingFeature as u}from"../openbanking.feature.js";function d(e){return l(o(r(e)))}export{u as OpenBankingFeature,e as OpenBankingGetAccount,s as OpenBankingGetBalances,t as OpenBankingListAccounts,i as OpenBankingListTransactions,c as OpenBankingRefreshBalances,n as OpenBankingSyncAccounts,a as OpenBankingSyncTransactions,d as registerOpenBankingContracts};
@@ -1,2 +1 @@
1
- import{l as e}from"../../../schema/dist/ScalarTypeEnum.js";import{t}from"../../../schema/dist/SchemaModel.js";import"../../../schema/dist/index.js";import{defineCommand as n,defineQuery as r}from"../../../spec.js";import{BankTransactionRecord as i}from"../models.js";import{OPENBANKING_TELEMETRY_EVENTS as a}from"../telemetry.js";const o=new t({name:`OpenBankingListTransactionsInput`,description:`Parameters for listing bank transactions from the canonical ledger.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},from:{type:e.DateTime(),isOptional:!0},to:{type:e.DateTime(),isOptional:!0},cursor:{type:e.String_unsecure(),isOptional:!0},pageSize:{type:e.Int_unsecure(),isOptional:!0},direction:{type:e.String_unsecure(),isOptional:!0},minimumAmount:{type:e.Float_unsecure(),isOptional:!0},maximumAmount:{type:e.Float_unsecure(),isOptional:!0},category:{type:e.String_unsecure(),isOptional:!0}}}),s=new t({name:`OpenBankingListTransactionsOutput`,description:`Paginated list of transactions for a bank account.`,fields:{transactions:{type:i,isOptional:!1,isArray:!0},nextCursor:{type:e.String_unsecure(),isOptional:!0},hasMore:{type:e.Boolean(),isOptional:!0}}}),c=new t({name:`OpenBankingSyncTransactionsInput`,description:`Command payload to synchronise transactions from the open banking provider into the canonical ledger.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},from:{type:e.DateTime(),isOptional:!0},to:{type:e.DateTime(),isOptional:!0},connectionId:{type:e.ID(),isOptional:!0},includePending:{type:e.Boolean(),isOptional:!0},backfillDays:{type:e.Int_unsecure(),isOptional:!0}}}),l=new t({name:`OpenBankingSyncTransactionsOutput`,description:`Result of a transaction synchronisation run.`,fields:{synced:{type:e.Int_unsecure(),isOptional:!1},failed:{type:e.Int_unsecure(),isOptional:!1},earliestSyncedAt:{type:e.DateTime(),isOptional:!0},latestSyncedAt:{type:e.DateTime(),isOptional:!0},nextSinceToken:{type:e.String_unsecure(),isOptional:!0},errors:{type:e.String_unsecure(),isArray:!0,isOptional:!0}}}),u=r({meta:{name:`openbanking.transactions.list`,version:1,description:`List bank transactions that have been normalised into the canonical ledger.`,goal:`Allow downstream analytics and UI surfaces to page through canonical bank transactions.`,context:`Used by Pocket Family Office dashboards, reconciliation workflows, and analytics data views.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`transactions`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),d=n({meta:{name:`openbanking.transactions.sync`,version:1,description:`Synchronise transactions for a bank account by calling the configured open banking provider.`,goal:`Ensure the canonical transaction ledger stays aligned with the external provider.`,context:`Triggered by scheduled workflows or on-demand actions when activity is expected on an account.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`transactions`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`},telemetry:{success:{event:{name:a.transactionsSynced},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,accountId:n?.accountId,synced:r?.synced,failed:r?.failed,earliestSyncedAt:r?.earliestSyncedAt,latestSyncedAt:r?.latestSyncedAt}}},failure:{event:{name:a.transactionsSyncFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,accountId:n?.accountId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}}),f={OpenBankingListTransactions:u,OpenBankingSyncTransactions:d};function p(e){return e.register(u).register(d)}export{u as OpenBankingListTransactions,d as OpenBankingSyncTransactions,f as openBankingTransactionContracts,p as registerOpenBankingTransactionContracts};
2
- //# sourceMappingURL=transactions.js.map
1
+ import{defineCommand as e,defineQuery as t}from"../../../spec.js";import{BankTransactionRecord as n}from"../models.js";import{OPENBANKING_TELEMETRY_EVENTS as r}from"../telemetry.js";import{ScalarTypeEnum as i,SchemaModel as a}from"@lssm/lib.schema";const o=new a({name:`OpenBankingListTransactionsInput`,description:`Parameters for listing bank transactions from the canonical ledger.`,fields:{tenantId:{type:i.ID(),isOptional:!1},accountId:{type:i.ID(),isOptional:!1},from:{type:i.DateTime(),isOptional:!0},to:{type:i.DateTime(),isOptional:!0},cursor:{type:i.String_unsecure(),isOptional:!0},pageSize:{type:i.Int_unsecure(),isOptional:!0},direction:{type:i.String_unsecure(),isOptional:!0},minimumAmount:{type:i.Float_unsecure(),isOptional:!0},maximumAmount:{type:i.Float_unsecure(),isOptional:!0},category:{type:i.String_unsecure(),isOptional:!0}}}),s=new a({name:`OpenBankingListTransactionsOutput`,description:`Paginated list of transactions for a bank account.`,fields:{transactions:{type:n,isOptional:!1,isArray:!0},nextCursor:{type:i.String_unsecure(),isOptional:!0},hasMore:{type:i.Boolean(),isOptional:!0}}}),c=new a({name:`OpenBankingSyncTransactionsInput`,description:`Command payload to synchronise transactions from the open banking provider into the canonical ledger.`,fields:{tenantId:{type:i.ID(),isOptional:!1},accountId:{type:i.ID(),isOptional:!1},from:{type:i.DateTime(),isOptional:!0},to:{type:i.DateTime(),isOptional:!0},connectionId:{type:i.ID(),isOptional:!0},includePending:{type:i.Boolean(),isOptional:!0},backfillDays:{type:i.Int_unsecure(),isOptional:!0}}}),l=new a({name:`OpenBankingSyncTransactionsOutput`,description:`Result of a transaction synchronisation run.`,fields:{synced:{type:i.Int_unsecure(),isOptional:!1},failed:{type:i.Int_unsecure(),isOptional:!1},earliestSyncedAt:{type:i.DateTime(),isOptional:!0},latestSyncedAt:{type:i.DateTime(),isOptional:!0},nextSinceToken:{type:i.String_unsecure(),isOptional:!0},errors:{type:i.String_unsecure(),isArray:!0,isOptional:!0}}}),u=t({meta:{name:`openbanking.transactions.list`,version:1,description:`List bank transactions that have been normalised into the canonical ledger.`,goal:`Allow downstream analytics and UI surfaces to page through canonical bank transactions.`,context:`Used by Pocket Family Office dashboards, reconciliation workflows, and analytics data views.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`transactions`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),d=e({meta:{name:`openbanking.transactions.sync`,version:1,description:`Synchronise transactions for a bank account by calling the configured open banking provider.`,goal:`Ensure the canonical transaction ledger stays aligned with the external provider.`,context:`Triggered by scheduled workflows or on-demand actions when activity is expected on an account.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`transactions`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`},telemetry:{success:{event:{name:r.transactionsSynced},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,accountId:n?.accountId,synced:r?.synced,failed:r?.failed,earliestSyncedAt:r?.earliestSyncedAt,latestSyncedAt:r?.latestSyncedAt}}},failure:{event:{name:r.transactionsSyncFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,accountId:n?.accountId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}}),f={OpenBankingListTransactions:u,OpenBankingSyncTransactions:d};function p(e){return e.register(u).register(d)}export{u as OpenBankingListTransactions,d as OpenBankingSyncTransactions,f as openBankingTransactionContracts,p as registerOpenBankingTransactionContracts};
@@ -1,2 +1 @@
1
- function e(e){let t=e.integrations.find(e=>e.slot.slotId===`primaryOpenBanking`);if(!t)return{ok:!1,error:`primaryOpenBanking slot is not bound in the resolved app config.`};let n=t.connection.status;return n===`error`||n===`disconnected`?{ok:!1,integration:t,error:`primaryOpenBanking connection is in status "${n}".`}:n===`unknown`?{ok:!1,integration:t,error:`primaryOpenBanking connection health is unknown.`}:{ok:!0,integration:t}}function t(t){let n=e(t);if(!n.ok)throw Error(n.error??`Open banking integration not available.`);return n.integration}export{t as assertPrimaryOpenBankingReady,e as ensurePrimaryOpenBankingIntegration};
2
- //# sourceMappingURL=guards.js.map
1
+ function e(e){let t=e.integrations.find(e=>e.slot.slotId===`primaryOpenBanking`);if(!t)return{ok:!1,error:`primaryOpenBanking slot is not bound in the resolved app config.`};let n=t.connection.status;return n===`error`||n===`disconnected`?{ok:!1,integration:t,error:`primaryOpenBanking connection is in status "${n}".`}:n===`unknown`?{ok:!1,integration:t,error:`primaryOpenBanking connection health is unknown.`}:{ok:!0,integration:t}}function t(t){let n=e(t);if(!n.ok)throw Error(n.error??`Open banking integration not available.`);return n.integration}export{t as assertPrimaryOpenBankingReady,e as ensurePrimaryOpenBankingIntegration};
@@ -1,2 +1 @@
1
- import{l as e}from"../../schema/dist/ScalarTypeEnum.js";import{t}from"../../schema/dist/SchemaModel.js";import"../../schema/dist/index.js";const n=new t({name:`BankAccountRecord`,description:`Canonical representation of a bank account synced from an open banking provider.`,fields:{id:{type:e.ID(),isOptional:!1},tenantId:{type:e.ID(),isOptional:!1},userId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!1},externalId:{type:e.NonEmptyString(),isOptional:!1},institutionId:{type:e.NonEmptyString(),isOptional:!1},institutionName:{type:e.NonEmptyString(),isOptional:!1},institutionLogoUrl:{type:e.URL(),isOptional:!0},iban:{type:e.String_unsecure(),isOptional:!0},bic:{type:e.String_unsecure(),isOptional:!0},accountType:{type:e.NonEmptyString(),isOptional:!1},currency:{type:e.Currency(),isOptional:!1},displayName:{type:e.NonEmptyString(),isOptional:!1},accountNumberMasked:{type:e.String_unsecure(),isOptional:!0},productCode:{type:e.String_unsecure(),isOptional:!0},balance:{type:e.Float_unsecure(),isOptional:!0},availableBalance:{type:e.Float_unsecure(),isOptional:!0},lastSyncedAt:{type:e.DateTime(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1},metadata:{type:e.JSONObject(),isOptional:!0}}}),r=new t({name:`BankTransactionRecord`,description:`Canonical transaction entry mapped from Powens into the open banking ledger.`,fields:{id:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},tenantId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!1},externalId:{type:e.NonEmptyString(),isOptional:!1},amount:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.Currency(),isOptional:!1},date:{type:e.DateTime(),isOptional:!1},bookingDate:{type:e.DateTime(),isOptional:!0},valueDate:{type:e.DateTime(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},counterpartyName:{type:e.String_unsecure(),isOptional:!0},counterpartyAccount:{type:e.String_unsecure(),isOptional:!0},merchantCategoryCode:{type:e.String_unsecure(),isOptional:!0},rawCategory:{type:e.String_unsecure(),isOptional:!0},standardizedCategory:{type:e.String_unsecure(),isOptional:!0},transactionType:{type:e.NonEmptyString(),isOptional:!1},status:{type:e.NonEmptyString(),isOptional:!1},runningBalance:{type:e.Float_unsecure(),isOptional:!0},metadata:{type:e.JSONObject(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),i=new t({name:`AccountBalanceRecord`,description:`Canonical balance snapshot computed from Powens balance payloads.`,fields:{id:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},tenantId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!1},balanceType:{type:e.NonEmptyString(),isOptional:!1},currentBalance:{type:e.Float_unsecure(),isOptional:!1},availableBalance:{type:e.Float_unsecure(),isOptional:!0},currency:{type:e.Currency(),isOptional:!1},lastUpdatedAt:{type:e.DateTime(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},metadata:{type:e.JSONObject(),isOptional:!0}}});export{i as AccountBalanceRecord,n as BankAccountRecord,r as BankTransactionRecord};
2
- //# sourceMappingURL=models.js.map
1
+ import{ScalarTypeEnum as e,SchemaModel as t}from"@lssm/lib.schema";const n=new t({name:`BankAccountRecord`,description:`Canonical representation of a bank account synced from an open banking provider.`,fields:{id:{type:e.ID(),isOptional:!1},tenantId:{type:e.ID(),isOptional:!1},userId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!1},externalId:{type:e.NonEmptyString(),isOptional:!1},institutionId:{type:e.NonEmptyString(),isOptional:!1},institutionName:{type:e.NonEmptyString(),isOptional:!1},institutionLogoUrl:{type:e.URL(),isOptional:!0},iban:{type:e.String_unsecure(),isOptional:!0},bic:{type:e.String_unsecure(),isOptional:!0},accountType:{type:e.NonEmptyString(),isOptional:!1},currency:{type:e.Currency(),isOptional:!1},displayName:{type:e.NonEmptyString(),isOptional:!1},accountNumberMasked:{type:e.String_unsecure(),isOptional:!0},productCode:{type:e.String_unsecure(),isOptional:!0},balance:{type:e.Float_unsecure(),isOptional:!0},availableBalance:{type:e.Float_unsecure(),isOptional:!0},lastSyncedAt:{type:e.DateTime(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1},metadata:{type:e.JSONObject(),isOptional:!0}}}),r=new t({name:`BankTransactionRecord`,description:`Canonical transaction entry mapped from Powens into the open banking ledger.`,fields:{id:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},tenantId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!1},externalId:{type:e.NonEmptyString(),isOptional:!1},amount:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.Currency(),isOptional:!1},date:{type:e.DateTime(),isOptional:!1},bookingDate:{type:e.DateTime(),isOptional:!0},valueDate:{type:e.DateTime(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},counterpartyName:{type:e.String_unsecure(),isOptional:!0},counterpartyAccount:{type:e.String_unsecure(),isOptional:!0},merchantCategoryCode:{type:e.String_unsecure(),isOptional:!0},rawCategory:{type:e.String_unsecure(),isOptional:!0},standardizedCategory:{type:e.String_unsecure(),isOptional:!0},transactionType:{type:e.NonEmptyString(),isOptional:!1},status:{type:e.NonEmptyString(),isOptional:!1},runningBalance:{type:e.Float_unsecure(),isOptional:!0},metadata:{type:e.JSONObject(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1}}}),i=new t({name:`AccountBalanceRecord`,description:`Canonical balance snapshot computed from Powens balance payloads.`,fields:{id:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},tenantId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!1},balanceType:{type:e.NonEmptyString(),isOptional:!1},currentBalance:{type:e.Float_unsecure(),isOptional:!1},availableBalance:{type:e.Float_unsecure(),isOptional:!0},currency:{type:e.Currency(),isOptional:!1},lastUpdatedAt:{type:e.DateTime(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},metadata:{type:e.JSONObject(),isOptional:!0}}});export{i as AccountBalanceRecord,n as BankAccountRecord,r as BankTransactionRecord};
@@ -0,0 +1 @@
1
+ const e={meta:{key:`openbanking`,title:`Open Banking Integration`,description:`Open banking account sync, balance refresh, and transaction synchronization`,domain:`integrations`,owners:[`@platform.finance`],tags:[`open-banking`,`powens`,`finance`,`banking`],stability:`experimental`},operations:[{name:`openbanking.accounts.sync`,version:1},{name:`openbanking.accounts.list`,version:1},{name:`openbanking.accounts.get`,version:1},{name:`openbanking.balances.refresh`,version:1},{name:`openbanking.balances.get`,version:1},{name:`openbanking.transactions.sync`,version:1},{name:`openbanking.transactions.list`,version:1}],events:[],presentations:[],opToPresentation:[],presentationsTargets:[],capabilities:{provides:[{key:`openbanking`,version:1}],requires:[{key:`identity`,version:1}]}};export{e as OpenBankingFeature};
@@ -1,2 +1 @@
1
- const e=[`iban`,`bic`,`accountNumberMasked`,`accountNumber`,`counterpartyName`,`counterpartyAccount`,`description`,`merchantName`,`merchantCategoryCode`,`reference`],t={accountsSynced:`openbanking.accounts.synced`,accountsSyncFailed:`openbanking.accounts.sync_failed`,transactionsSynced:`openbanking.transactions.synced`,transactionsSyncFailed:`openbanking.transactions.sync_failed`,balancesRefreshed:`openbanking.balances.refreshed`,balancesRefreshFailed:`openbanking.balances.refresh_failed`,overviewGenerated:`openbanking.overview.generated`};function n(t){let i={};for(let[a,o]of Object.entries(t))e.includes(a)?i[a]=r(o):Array.isArray(o)?i[a]=o.map(e=>typeof e==`object`&&e?n(e):e):typeof o==`object`&&o?i[a]=n(o):i[a]=o;return i}function r(e){if(e==null)return``;let t=String(e);return t.length<=4?`*`.repeat(t.length):`${`*`.repeat(Math.max(t.length-4,0))}${t.slice(-4)}`}export{e as OPENBANKING_PII_FIELDS,t as OPENBANKING_TELEMETRY_EVENTS,n as redactOpenBankingTelemetryPayload};
2
- //# sourceMappingURL=telemetry.js.map
1
+ const e=[`iban`,`bic`,`accountNumberMasked`,`accountNumber`,`counterpartyName`,`counterpartyAccount`,`description`,`merchantName`,`merchantCategoryCode`,`reference`],t={accountsSynced:`openbanking.accounts.synced`,accountsSyncFailed:`openbanking.accounts.sync_failed`,transactionsSynced:`openbanking.transactions.synced`,transactionsSyncFailed:`openbanking.transactions.sync_failed`,balancesRefreshed:`openbanking.balances.refreshed`,balancesRefreshFailed:`openbanking.balances.refresh_failed`,overviewGenerated:`openbanking.overview.generated`};function n(t){let i={};for(let[a,o]of Object.entries(t))e.includes(a)?i[a]=r(o):Array.isArray(o)?i[a]=o.map(e=>typeof e==`object`&&e?n(e):e):typeof o==`object`&&o?i[a]=n(o):i[a]=o;return i}function r(e){if(e==null)return``;let t=String(e);return t.length<=4?`*`.repeat(t.length):`${`*`.repeat(Math.max(t.length-4,0))}${t.slice(-4)}`}export{e as OPENBANKING_PII_FIELDS,t as OPENBANKING_TELEMETRY_EVENTS,n as redactOpenBankingTelemetryPayload};
@@ -1,2 +1 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`ai-voice.elevenlabs`,version:1,category:`ai-voice`,displayName:`ElevenLabs Voice`,title:`ElevenLabs Text-to-Speech`,description:`ElevenLabs integration for neural voice synthesis and voice catalog access.`,domain:`ai`,owners:[`platform.ai`],tags:[`voice`,`tts`],stability:e.Beta},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`ai.voice.synthesis`,version:1}]},configSchema:{schema:{type:`object`,properties:{defaultVoiceId:{type:`string`,description:`Optional default voice identifier for synthesis requests.`}}},example:{defaultVoiceId:`pNInz6obpgDQGcFmaJgB`}},secretSchema:{schema:{type:`object`,required:[`apiKey`],properties:{apiKey:{type:`string`,description:`ElevenLabs API key with text-to-speech permissions.`}}},example:{apiKey:`eleven-***`}},healthCheck:{method:`custom`,timeoutMs:4e3},docsUrl:`https://elevenlabs.io/docs/api-reference/text-to-speech`,constraints:{rateLimit:{rpm:120}},byokSetup:{setupInstructions:`Create an ElevenLabs API key and ensure the desired voices are accessible to the key scope.`}};function n(e){return e.register(t)}export{t as elevenLabsIntegrationSpec,n as registerElevenLabsIntegration};
2
- //# sourceMappingURL=elevenlabs.js.map
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`ai-voice.elevenlabs`,version:1,category:`ai-voice`,displayName:`ElevenLabs Voice`,title:`ElevenLabs Text-to-Speech`,description:`ElevenLabs integration for neural voice synthesis and voice catalog access.`,domain:`ai`,owners:[`platform.ai`],tags:[`voice`,`tts`],stability:e.Beta},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`ai.voice.synthesis`,version:1}]},configSchema:{schema:{type:`object`,properties:{defaultVoiceId:{type:`string`,description:`Optional default voice identifier for synthesis requests.`}}},example:{defaultVoiceId:`pNInz6obpgDQGcFmaJgB`}},secretSchema:{schema:{type:`object`,required:[`apiKey`],properties:{apiKey:{type:`string`,description:`ElevenLabs API key with text-to-speech permissions.`}}},example:{apiKey:`eleven-***`}},healthCheck:{method:`custom`,timeoutMs:4e3},docsUrl:`https://elevenlabs.io/docs/api-reference/text-to-speech`,constraints:{rateLimit:{rpm:120}},byokSetup:{setupInstructions:`Create an ElevenLabs API key and ensure the desired voices are accessible to the key scope.`}};function n(e){return e.register(t)}export{t as elevenLabsIntegrationSpec,n as registerElevenLabsIntegration};
@@ -1,2 +1 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`storage.gcs`,version:1,category:`storage`,displayName:`Google Cloud Storage`,title:`Google Cloud Storage Buckets`,description:`Google Cloud Storage integration for object storage and retrieval.`,domain:`infrastructure`,owners:[`platform.infrastructure`],tags:[`storage`,`gcs`,`google-cloud`],stability:e.Beta},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`storage.objects`,version:1}]},configSchema:{schema:{type:`object`,required:[`bucket`],properties:{bucket:{type:`string`,description:`Primary bucket name used for storing objects.`},prefix:{type:`string`,description:`Optional prefix applied to object keys.`}}},example:{bucket:`pfo-tenant-assets`,prefix:`documents/`}},secretSchema:{schema:{type:`object`,properties:{type:{type:`string`,description:`Service account type field from Google credentials JSON (if provided).`},client_email:{type:`string`},private_key:{type:`string`},project_id:{type:`string`}}},example:{type:`service_account`,client_email:`svc-account@example.iam.gserviceaccount.com`,private_key:`-----BEGIN PRIVATE KEY-----...`,project_id:`example-project`}},healthCheck:{method:`ping`,timeoutMs:4e3},docsUrl:`https://cloud.google.com/storage/docs/apis`,constraints:{quotas:{storageGb:5120}},byokSetup:{setupInstructions:`Create a Google Cloud service account with Storage Object Admin role and upload the JSON credentials to the secret store.`}};function n(e){return e.register(t)}export{t as gcsStorageIntegrationSpec,n as registerGcsStorageIntegration};
2
- //# sourceMappingURL=gcs-storage.js.map
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`storage.gcs`,version:1,category:`storage`,displayName:`Google Cloud Storage`,title:`Google Cloud Storage Buckets`,description:`Google Cloud Storage integration for object storage and retrieval.`,domain:`infrastructure`,owners:[`platform.infrastructure`],tags:[`storage`,`gcs`,`google-cloud`],stability:e.Beta},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`storage.objects`,version:1}]},configSchema:{schema:{type:`object`,required:[`bucket`],properties:{bucket:{type:`string`,description:`Primary bucket name used for storing objects.`},prefix:{type:`string`,description:`Optional prefix applied to object keys.`}}},example:{bucket:`pfo-tenant-assets`,prefix:`documents/`}},secretSchema:{schema:{type:`object`,properties:{type:{type:`string`,description:`Service account type field from Google credentials JSON (if provided).`},client_email:{type:`string`},private_key:{type:`string`},project_id:{type:`string`}}},example:{type:`service_account`,client_email:`svc-account@example.iam.gserviceaccount.com`,private_key:`-----BEGIN PRIVATE KEY-----...`,project_id:`example-project`}},healthCheck:{method:`ping`,timeoutMs:4e3},docsUrl:`https://cloud.google.com/storage/docs/apis`,constraints:{quotas:{storageGb:5120}},byokSetup:{setupInstructions:`Create a Google Cloud service account with Storage Object Admin role and upload the JSON credentials to the secret store.`}};function n(e){return e.register(t)}export{t as gcsStorageIntegrationSpec,n as registerGcsStorageIntegration};
@@ -1,2 +1 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`email.gmail`,version:1,category:`email`,displayName:`Gmail API`,title:`Google Gmail API`,description:`Gmail integration supporting inbound thread ingestion and outbound transactional email.`,domain:`communications`,owners:[`platform.messaging`],tags:[`email`,`gmail`],stability:e.Beta},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`email.inbound`,version:1},{key:`email.outbound`,version:1}]},configSchema:{schema:{type:`object`,properties:{labelIds:{type:`array`,items:{type:`string`},description:`Optional list of label IDs to scope inbound sync.`},includeSpamTrash:{type:`boolean`,description:`Whether to include spam or trash messages during sync.`}}},example:{labelIds:[`INBOX`],includeSpamTrash:!1}},secretSchema:{schema:{type:`object`,required:[`clientId`,`clientSecret`,`refreshToken`],properties:{clientId:{type:`string`,description:`OAuth client ID for the Google Cloud project.`},clientSecret:{type:`string`,description:`OAuth client secret for the Google Cloud project.`},refreshToken:{type:`string`,description:`OAuth refresh token for delegated Gmail access.`},redirectUri:{type:`string`,description:`Optional redirect URI used when issuing the refresh token.`}}},example:{clientId:`xxx.apps.googleusercontent.com`,clientSecret:`secret`,refreshToken:`refresh-token`}},healthCheck:{method:`custom`,timeoutMs:4e3},docsUrl:`https://developers.google.com/gmail/api`,constraints:{rateLimit:{rpm:600}},byokSetup:{setupInstructions:`Create an OAuth consent screen and credentials within Google Cloud Console, then authorize the Gmail scopes and store the resulting refresh token.`}};function n(e){return e.register(t)}export{t as gmailIntegrationSpec,n as registerGmailIntegration};
2
- //# sourceMappingURL=gmail.js.map
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`email.gmail`,version:1,category:`email`,displayName:`Gmail API`,title:`Google Gmail API`,description:`Gmail integration supporting inbound thread ingestion and outbound transactional email.`,domain:`communications`,owners:[`platform.messaging`],tags:[`email`,`gmail`],stability:e.Beta},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`email.inbound`,version:1},{key:`email.outbound`,version:1}]},configSchema:{schema:{type:`object`,properties:{labelIds:{type:`array`,items:{type:`string`},description:`Optional list of label IDs to scope inbound sync.`},includeSpamTrash:{type:`boolean`,description:`Whether to include spam or trash messages during sync.`}}},example:{labelIds:[`INBOX`],includeSpamTrash:!1}},secretSchema:{schema:{type:`object`,required:[`clientId`,`clientSecret`,`refreshToken`],properties:{clientId:{type:`string`,description:`OAuth client ID for the Google Cloud project.`},clientSecret:{type:`string`,description:`OAuth client secret for the Google Cloud project.`},refreshToken:{type:`string`,description:`OAuth refresh token for delegated Gmail access.`},redirectUri:{type:`string`,description:`Optional redirect URI used when issuing the refresh token.`}}},example:{clientId:`xxx.apps.googleusercontent.com`,clientSecret:`secret`,refreshToken:`refresh-token`}},healthCheck:{method:`custom`,timeoutMs:4e3},docsUrl:`https://developers.google.com/gmail/api`,constraints:{rateLimit:{rpm:600}},byokSetup:{setupInstructions:`Create an OAuth consent screen and credentials within Google Cloud Console, then authorize the Gmail scopes and store the resulting refresh token.`}};function n(e){return e.register(t)}export{t as gmailIntegrationSpec,n as registerGmailIntegration};
@@ -1,2 +1 @@
1
- import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`calendar.google`,version:1,category:`calendar`,displayName:`Google Calendar`,title:`Google Calendar API`,description:`Google Calendar integration for event creation, updates, and scheduling automations.`,domain:`productivity`,owners:[`platform.messaging`],tags:[`calendar`,`google`],stability:e.Beta},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`calendar.events`,version:1}]},configSchema:{schema:{type:`object`,properties:{calendarId:{type:`string`,description:`Default calendar identifier (defaults to primary).`}}},example:{calendarId:`primary`}},secretSchema:{schema:{type:`object`,required:[`clientEmail`,`privateKey`],properties:{clientEmail:{type:`string`,description:`Service account client email.`},privateKey:{type:`string`,description:`Service account private key.`},projectId:{type:`string`,description:`Google Cloud project ID.`}}},example:{clientEmail:`svc-calendar@example.iam.gserviceaccount.com`,privateKey:`-----BEGIN PRIVATE KEY-----...`,projectId:`calendar-project`}},healthCheck:{method:`custom`,timeoutMs:4e3},docsUrl:`https://developers.google.com/calendar/api`,constraints:{},byokSetup:{setupInstructions:`Create a Google service account with Calendar access and share the target calendars with the service account email.`}};function n(e){return e.register(t)}export{t as googleCalendarIntegrationSpec,n as registerGoogleCalendarIntegration};
2
- //# sourceMappingURL=google-calendar.js.map
1
+ import{StabilityEnum as e}from"../../ownership.js";const t={meta:{key:`calendar.google`,version:1,category:`calendar`,displayName:`Google Calendar`,title:`Google Calendar API`,description:`Google Calendar integration for event creation, updates, and scheduling automations.`,domain:`productivity`,owners:[`platform.messaging`],tags:[`calendar`,`google`],stability:e.Beta},supportedModes:[`managed`,`byok`],capabilities:{provides:[{key:`calendar.events`,version:1}]},configSchema:{schema:{type:`object`,properties:{calendarId:{type:`string`,description:`Default calendar identifier (defaults to primary).`}}},example:{calendarId:`primary`}},secretSchema:{schema:{type:`object`,required:[`clientEmail`,`privateKey`],properties:{clientEmail:{type:`string`,description:`Service account client email.`},privateKey:{type:`string`,description:`Service account private key.`},projectId:{type:`string`,description:`Google Cloud project ID.`}}},example:{clientEmail:`svc-calendar@example.iam.gserviceaccount.com`,privateKey:`-----BEGIN PRIVATE KEY-----...`,projectId:`calendar-project`}},healthCheck:{method:`custom`,timeoutMs:4e3},docsUrl:`https://developers.google.com/calendar/api`,constraints:{},byokSetup:{setupInstructions:`Create a Google service account with Calendar access and share the target calendars with the service account email.`}};function n(e){return e.register(t)}export{t as googleCalendarIntegrationSpec,n as registerGoogleCalendarIntegration};
@@ -1,2 +1 @@
1
- import{ElevenLabsClient as e}from"@elevenlabs/elevenlabs-js";const t={mp3:`mp3_44100_128`,wav:`pcm_44100`,ogg:`mp3_44100_128`,pcm:`pcm_16000`},n={mp3_22050_32:22050,mp3_44100_32:44100,mp3_44100_64:44100,mp3_44100_96:44100,mp3_44100_128:44100,mp3_44100_192:44100,pcm_16000:16e3,pcm_22050:22050,pcm_24000:24e3,pcm_44100:44100,ulaw_8000:8e3};var r=class{client;defaultVoiceId;modelId;constructor(t){this.client=t.client??new e({apiKey:t.apiKey}),this.defaultVoiceId=t.defaultVoiceId,this.modelId=t.modelId}async listVoices(){return((await this.client.voices.getAll()).voices??[]).map(e=>({id:e.voiceId??``,name:e.name??e.voiceId??``,description:e.description??void 0,language:e.labels?.language??void 0,gender:i(e.labels?.gender),previewUrl:e.previewUrl??void 0,metadata:{category:e.category??``,...e.labels}}))}async synthesize(e){let r=e.voiceId??this.defaultVoiceId;if(!r)throw Error(`Voice ID is required for ElevenLabs synthesis.`);let i=e.format??`mp3`,o=t[i]??t.mp3,s=e.sampleRateHz??n[o]??n.mp3_44100_128??44100,c=e.stability!=null||e.similarityBoost!=null||e.style!=null?{...e.stability==null?{}:{stability:e.stability},...e.similarityBoost==null?{}:{similarityBoost:e.similarityBoost},...e.style==null?{}:{style:e.style}}:void 0;return{audio:await a(await this.client.textToSpeech.convert(r,{text:e.text,modelId:this.modelId,outputFormat:o,voiceSettings:c})),format:i,sampleRateHz:s,durationSeconds:void 0,url:void 0}}};function i(e){if(!e)return;let t=e.toLowerCase();if(t===`male`||t===`female`||t===`neutral`)return t}async function a(e){let t=e.getReader(),n=[];for(;;){let{done:e,value:r}=await t.read();if(e)break;r&&n.push(r)}let r=n.reduce((e,t)=>e+t.length,0),i=new Uint8Array(r),a=0;for(let e of n)i.set(e,a),a+=e.length;return i}export{r as ElevenLabsVoiceProvider};
2
- //# sourceMappingURL=elevenlabs-voice.js.map
1
+ import{ElevenLabsClient as e}from"@elevenlabs/elevenlabs-js";const t={mp3:`mp3_44100_128`,wav:`pcm_44100`,ogg:`mp3_44100_128`,pcm:`pcm_16000`},n={mp3_22050_32:22050,mp3_44100_32:44100,mp3_44100_64:44100,mp3_44100_96:44100,mp3_44100_128:44100,mp3_44100_192:44100,pcm_16000:16e3,pcm_22050:22050,pcm_24000:24e3,pcm_44100:44100,ulaw_8000:8e3};var r=class{client;defaultVoiceId;modelId;constructor(t){this.client=t.client??new e({apiKey:t.apiKey}),this.defaultVoiceId=t.defaultVoiceId,this.modelId=t.modelId}async listVoices(){return((await this.client.voices.getAll()).voices??[]).map(e=>({id:e.voiceId??``,name:e.name??e.voiceId??``,description:e.description??void 0,language:e.labels?.language??void 0,gender:i(e.labels?.gender),previewUrl:e.previewUrl??void 0,metadata:{category:e.category??``,...e.labels}}))}async synthesize(e){let r=e.voiceId??this.defaultVoiceId;if(!r)throw Error(`Voice ID is required for ElevenLabs synthesis.`);let i=e.format??`mp3`,o=t[i]??t.mp3,s=e.sampleRateHz??n[o]??n.mp3_44100_128??44100,c=e.stability!=null||e.similarityBoost!=null||e.style!=null?{...e.stability==null?{}:{stability:e.stability},...e.similarityBoost==null?{}:{similarityBoost:e.similarityBoost},...e.style==null?{}:{style:e.style}}:void 0;return{audio:await a(await this.client.textToSpeech.convert(r,{text:e.text,modelId:this.modelId,outputFormat:o,voiceSettings:c})),format:i,sampleRateHz:s,durationSeconds:void 0,url:void 0}}};function i(e){if(!e)return;let t=e.toLowerCase();if(t===`male`||t===`female`||t===`neutral`)return t}async function a(e){let t=e.getReader(),n=[];for(;;){let{done:e,value:r}=await t.read();if(e)break;r&&n.push(r)}let r=n.reduce((e,t)=>e+t.length,0),i=new Uint8Array(r),a=0;for(let e of n)i.set(e,a),a+=e.length;return i}export{r as ElevenLabsVoiceProvider};
@@ -1,2 +1 @@
1
- import{Storage as e}from"@google-cloud/storage";var t=class{storage;bucketName;constructor(t){this.storage=t.storage??new e(t.clientOptions??void 0),this.bucketName=t.bucket}async putObject(e){let t=e.bucket??this.bucketName,i=this.storage.bucket(t).file(e.key),a=n(e.data);await i.save(a,{resumable:!1,contentType:e.contentType,metadata:e.metadata}),e.makePublic&&await i.makePublic();let[o]=await i.getMetadata();return r(o)}async getObject(e){let t=e.bucket??this.bucketName,n=this.storage.bucket(t).file(e.key),[i]=await n.exists();if(!i)return null;let[a]=await n.download(),[o]=await n.getMetadata();return{...r(o),data:new Uint8Array(a)}}async deleteObject(e){let t=e.bucket??this.bucketName;await this.storage.bucket(t).file(e.key).delete({ignoreNotFound:!0})}async generateSignedUrl(e){let t=e.bucket??this.bucketName,n=this.storage.bucket(t).file(e.key),r=e.method===`PUT`?`write`:`read`,i=Date.now()+e.expiresInSeconds*1e3,[a]=await n.getSignedUrl({action:r,expires:i,contentType:e.contentType});return{url:a,expiresAt:new Date(i)}}async listObjects(e){let t=e.bucket??this.bucketName,[n,i,a]=await this.storage.bucket(t).getFiles({prefix:e.prefix,maxResults:e.maxResults,pageToken:e.pageToken}),o=typeof i==`object`&&i&&`pageToken`in i?i.pageToken:void 0,s=a&&typeof a==`object`&&`nextPageToken`in a?a.nextPageToken:void 0;return{objects:n.map(e=>r(e.metadata)),nextPageToken:o??s??void 0}}};function n(e){return e instanceof Uint8Array,Buffer.from(e)}function r(e){return{bucket:e.bucket??``,key:e.name??``,sizeBytes:e.size?Number(e.size):void 0,contentType:e.contentType??void 0,etag:e.etag??void 0,checksum:e.md5Hash??void 0,lastModified:e.updated?new Date(e.updated):void 0,metadata:e.metadata}}export{t as GoogleCloudStorageProvider};
2
- //# sourceMappingURL=gcs-storage.js.map
1
+ import{Storage as e}from"@google-cloud/storage";var t=class{storage;bucketName;constructor(t){this.storage=t.storage??new e(t.clientOptions??void 0),this.bucketName=t.bucket}async putObject(e){let t=e.bucket??this.bucketName,i=this.storage.bucket(t).file(e.key),a=n(e.data);await i.save(a,{resumable:!1,contentType:e.contentType,metadata:e.metadata}),e.makePublic&&await i.makePublic();let[o]=await i.getMetadata();return r(o)}async getObject(e){let t=e.bucket??this.bucketName,n=this.storage.bucket(t).file(e.key),[i]=await n.exists();if(!i)return null;let[a]=await n.download(),[o]=await n.getMetadata();return{...r(o),data:new Uint8Array(a)}}async deleteObject(e){let t=e.bucket??this.bucketName;await this.storage.bucket(t).file(e.key).delete({ignoreNotFound:!0})}async generateSignedUrl(e){let t=e.bucket??this.bucketName,n=this.storage.bucket(t).file(e.key),r=e.method===`PUT`?`write`:`read`,i=Date.now()+e.expiresInSeconds*1e3,[a]=await n.getSignedUrl({action:r,expires:i,contentType:e.contentType});return{url:a,expiresAt:new Date(i)}}async listObjects(e){let t=e.bucket??this.bucketName,[n,i,a]=await this.storage.bucket(t).getFiles({prefix:e.prefix,maxResults:e.maxResults,pageToken:e.pageToken}),o=typeof i==`object`&&i&&`pageToken`in i?i.pageToken:void 0,s=a&&typeof a==`object`&&`nextPageToken`in a?a.nextPageToken:void 0;return{objects:n.map(e=>r(e.metadata)),nextPageToken:o??s??void 0}}};function n(e){return e instanceof Uint8Array,Buffer.from(e)}function r(e){return{bucket:e.bucket??``,key:e.name??``,sizeBytes:e.size?Number(e.size):void 0,contentType:e.contentType??void 0,etag:e.etag??void 0,checksum:e.md5Hash??void 0,lastModified:e.updated?new Date(e.updated):void 0,metadata:e.metadata}}export{t as GoogleCloudStorageProvider};
@@ -1,2 +1 @@
1
- import{google as e}from"googleapis";var t=class{gmail;userId;includeSpamTrash;auth;constructor(t){this.auth=t.auth,this.gmail=t.gmail??e.gmail({version:`v1`,auth:t.auth}),this.userId=t.userId??`me`,this.includeSpamTrash=t.includeSpamTrash??!1}async listThreads(e){let t=await this.gmail.users.threads.list({userId:this.userId,maxResults:e?.pageSize,pageToken:e?.pageToken,q:e?.query,labelIds:e?.label?[e.label]:void 0,includeSpamTrash:this.includeSpamTrash,auth:this.auth});return(await Promise.all((t.data.threads??[]).map(async e=>e.id?this.getThread(e.id):null))).filter(e=>e!==null)}async getThread(e){let t=(await this.gmail.users.threads.get({id:e,userId:this.userId,format:`full`,auth:this.auth})).data;if(!t)return null;let n=t.messages?.map(e=>this.transformMessage(e))??[],r=o(n.flatMap(e=>[e.from,...e.to,...e.cc??[]])),i=n[0],a=n[n.length-1],s=a?.receivedAt??a?.sentAt??i?.receivedAt??i?.sentAt??new Date,c=Array.from(new Set(n.flatMap(e=>{let t=e.metadata?.labelIds;return t?t.split(`,`).map(e=>e.trim()):[]}).filter(e=>!!e)));return{id:t.id??e,subject:n[0]?.subject,snippet:t.snippet??``,participants:r,messages:n,updatedAt:s,labels:c,metadata:t.historyId?{historyId:t.historyId}:void 0}}async listMessagesSince(e){let t=e.since?Math.floor(e.since.getTime()/1e3):void 0,n=[];t&&n.push(`after:${t}`);let r=await this.gmail.users.messages.list({userId:this.userId,maxResults:e.pageSize,pageToken:e.pageToken,labelIds:e.label?[e.label]:void 0,q:n.join(` `),includeSpamTrash:this.includeSpamTrash,auth:this.auth});return{messages:(await Promise.all((r.data.messages??[]).map(async e=>{if(!e.id)return null;let t=await this.gmail.users.messages.get({userId:this.userId,id:e.id,format:`full`,auth:this.auth});return t.data?this.transformMessage(t.data):null}))).filter(e=>e!==null),nextPageToken:r.data.nextPageToken??void 0}}transformMessage(e){let t=e.payload?.headers??[],o=n(t,`Subject`)??``,c=r(n(t,`From`))??i(`from`,e.id),l=a(n(t,`To`)),u=a(n(t,`Cc`)),d=a(n(t,`Bcc`)),f=r(n(t,`Reply-To`)),{text:p,html:m,attachments:h}=s(e.payload),g=e.internalDate?new Date(Number(e.internalDate)):new Date,_={...e.labelIds?.length?{labelIds:e.labelIds.join(`,`)}:{},...e.historyId?{historyId:e.historyId}:{}};return{id:e.id??``,threadId:e.threadId??``,subject:o,from:c,to:l,cc:u,bcc:d,replyTo:f??void 0,sentAt:g,receivedAt:g,textBody:p??void 0,htmlBody:m??void 0,attachments:h,headers:Object.fromEntries(t.map(e=>[e.name??``,e.value??``])),metadata:Object.keys(_).length>0?_:void 0}}};function n(e,t){let n=e.find(e=>e.name?.toLowerCase()===t.toLowerCase())?.value;return typeof n==`string`?n:void 0}function r(e){let t=a(e);return t.length===0?null:t[0]}function i(e,t){return{email:`${e}-${t&&t.replace(/[^\w]/g,``).slice(-8)||`unknown`}@mail.local`}}function a(e){return e?e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.match(/^(?:"?([^"]*)"?\s)?<?([^<>]+)>?$/);if(!t)return{email:e};let n=t[1]?.trim(),r=t[2]?.trim();return r?n?{email:r,name:n}:{email:r}:{email:e}}):[]}function o(e){let t=new Map;for(let n of e)n&&t.set(n.email.toLowerCase(),n);return Array.from(t.values())}function s(e){if(!e)return{attachments:[]};let t=[],n=e=>{if(!e)return{};e.filename&&e.body?.attachmentId&&t.push({id:e.body.attachmentId,filename:e.filename,contentType:e.mimeType??`application/octet-stream`,sizeBytes:e.body.size??void 0});let r=e.mimeType??``,i=e.body?.data;return r===`text/plain`&&i?{text:c(i)}:r===`text/html`&&i?{html:c(i)}:e.parts?.length?e.parts.reduce((e,t)=>{let r=n(t);return{text:r.text??e.text,html:r.html??e.html}},{}):{}},{text:r,html:i}=n(e);return{text:r,html:i,attachments:t}}function c(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=t.length%4,r=n===0?t:t+`=`.repeat(4-n);return Buffer.from(r,`base64`).toString(`utf-8`)}export{t as GmailInboundProvider};
2
- //# sourceMappingURL=gmail-inbound.js.map
1
+ import{google as e}from"googleapis";var t=class{gmail;userId;includeSpamTrash;auth;constructor(t){this.auth=t.auth,this.gmail=t.gmail??e.gmail({version:`v1`,auth:t.auth}),this.userId=t.userId??`me`,this.includeSpamTrash=t.includeSpamTrash??!1}async listThreads(e){let t=await this.gmail.users.threads.list({userId:this.userId,maxResults:e?.pageSize,pageToken:e?.pageToken,q:e?.query,labelIds:e?.label?[e.label]:void 0,includeSpamTrash:this.includeSpamTrash,auth:this.auth});return(await Promise.all((t.data.threads??[]).map(async e=>e.id?this.getThread(e.id):null))).filter(e=>e!==null)}async getThread(e){let t=(await this.gmail.users.threads.get({id:e,userId:this.userId,format:`full`,auth:this.auth})).data;if(!t)return null;let n=t.messages?.map(e=>this.transformMessage(e))??[],r=o(n.flatMap(e=>[e.from,...e.to,...e.cc??[]])),i=n[0],a=n[n.length-1],s=a?.receivedAt??a?.sentAt??i?.receivedAt??i?.sentAt??new Date,c=Array.from(new Set(n.flatMap(e=>{let t=e.metadata?.labelIds;return t?t.split(`,`).map(e=>e.trim()):[]}).filter(e=>!!e)));return{id:t.id??e,subject:n[0]?.subject,snippet:t.snippet??``,participants:r,messages:n,updatedAt:s,labels:c,metadata:t.historyId?{historyId:t.historyId}:void 0}}async listMessagesSince(e){let t=e.since?Math.floor(e.since.getTime()/1e3):void 0,n=[];t&&n.push(`after:${t}`);let r=await this.gmail.users.messages.list({userId:this.userId,maxResults:e.pageSize,pageToken:e.pageToken,labelIds:e.label?[e.label]:void 0,q:n.join(` `),includeSpamTrash:this.includeSpamTrash,auth:this.auth});return{messages:(await Promise.all((r.data.messages??[]).map(async e=>{if(!e.id)return null;let t=await this.gmail.users.messages.get({userId:this.userId,id:e.id,format:`full`,auth:this.auth});return t.data?this.transformMessage(t.data):null}))).filter(e=>e!==null),nextPageToken:r.data.nextPageToken??void 0}}transformMessage(e){let t=e.payload?.headers??[],o=n(t,`Subject`)??``,c=r(n(t,`From`))??i(`from`,e.id),l=a(n(t,`To`)),u=a(n(t,`Cc`)),d=a(n(t,`Bcc`)),f=r(n(t,`Reply-To`)),{text:p,html:m,attachments:h}=s(e.payload),g=e.internalDate?new Date(Number(e.internalDate)):new Date,_={...e.labelIds?.length?{labelIds:e.labelIds.join(`,`)}:{},...e.historyId?{historyId:e.historyId}:{}};return{id:e.id??``,threadId:e.threadId??``,subject:o,from:c,to:l,cc:u,bcc:d,replyTo:f??void 0,sentAt:g,receivedAt:g,textBody:p??void 0,htmlBody:m??void 0,attachments:h,headers:Object.fromEntries(t.map(e=>[e.name??``,e.value??``])),metadata:Object.keys(_).length>0?_:void 0}}};function n(e,t){let n=e.find(e=>e.name?.toLowerCase()===t.toLowerCase())?.value;return typeof n==`string`?n:void 0}function r(e){let t=a(e);return t.length===0?null:t[0]}function i(e,t){return{email:`${e}-${t&&t.replace(/[^\w]/g,``).slice(-8)||`unknown`}@mail.local`}}function a(e){return e?e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.match(/^(?:"?([^"]*)"?\s)?<?([^<>]+)>?$/);if(!t)return{email:e};let n=t[1]?.trim(),r=t[2]?.trim();return r?n?{email:r,name:n}:{email:r}:{email:e}}):[]}function o(e){let t=new Map;for(let n of e)n&&t.set(n.email.toLowerCase(),n);return Array.from(t.values())}function s(e){if(!e)return{attachments:[]};let t=[],n=e=>{if(!e)return{};e.filename&&e.body?.attachmentId&&t.push({id:e.body.attachmentId,filename:e.filename,contentType:e.mimeType??`application/octet-stream`,sizeBytes:e.body.size??void 0});let r=e.mimeType??``,i=e.body?.data;return r===`text/plain`&&i?{text:c(i)}:r===`text/html`&&i?{html:c(i)}:e.parts?.length?e.parts.reduce((e,t)=>{let r=n(t);return{text:r.text??e.text,html:r.html??e.html}},{}):{}},{text:r,html:i}=n(e);return{text:r,html:i,attachments:t}}function c(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=t.length%4,r=n===0?t:t+`=`.repeat(4-n);return Buffer.from(r,`base64`).toString(`utf-8`)}export{t as GmailInboundProvider};
@@ -3,5 +3,4 @@ import{google as e}from"googleapis";var t=class{gmail;userId;auth;constructor(t)
3
3
  `,e&&(a+=`--${n}\r\n`,a+=i(`text/plain; charset="utf-8"`,r.textBody)),t&&(a+=`\r\n--${n}\r\n`,a+=i(`text/html; charset="utf-8"`,r.htmlBody)),a+=`\r\n--${n}--`,a}function i(e,t){return`Content-Type: ${e}\r\nContent-Transfer-Encoding: 7bit\r
4
4
  \r
5
5
  `+t}function a(e,t){let n=t.data??new Uint8Array,r=n.byteLength>0?Buffer.from(n).toString(`base64`):``;return`\r\n--${e}\r\nContent-Type: ${t.contentType}; name="${t.filename}"\r\nContent-Transfer-Encoding: base64\r
6
- Content-Disposition: attachment; filename="${t.filename}"\r\n\r\n`+r}function o(e){return e.name?`"${e.name}" <${e.email}>`:e.email}export{t as GmailOutboundProvider};
7
- //# sourceMappingURL=gmail-outbound.js.map
6
+ Content-Disposition: attachment; filename="${t.filename}"\r\n\r\n`+r}function o(e){return e.name?`"${e.name}" <${e.email}>`:e.email}export{t as GmailOutboundProvider};
@@ -1,2 +1 @@
1
- import{google as e}from"googleapis";var t=class{calendar;defaultCalendarId;auth;constructor(t){this.auth=t.auth,this.calendar=t.calendar??e.calendar({version:`v3`,auth:t.auth}),this.defaultCalendarId=t.calendarId??`primary`}async listEvents(e){let t=await this.calendar.events.list({calendarId:e.calendarId??this.defaultCalendarId,timeMin:e.timeMin?.toISOString(),timeMax:e.timeMax?.toISOString(),maxResults:e.maxResults,pageToken:e.pageToken,singleEvents:!0,orderBy:`startTime`,auth:this.auth});return{events:t.data.items?.map(t=>this.fromGoogleEvent(e.calendarId??this.defaultCalendarId,t))??[],nextPageToken:t.data.nextPageToken??void 0}}async createEvent(e){let t=e.calendarId??this.defaultCalendarId,n=await this.calendar.events.insert({calendarId:t,requestBody:this.toGoogleEvent(e),conferenceDataVersion:e.conference?.create?1:void 0,auth:this.auth});return this.fromGoogleEvent(t,n.data)}async updateEvent(e,t,n){let r=await this.calendar.events.patch({calendarId:e??this.defaultCalendarId,eventId:t,requestBody:this.toGoogleEvent(n),conferenceDataVersion:n.conference?.create?1:void 0,auth:this.auth});return this.fromGoogleEvent(e,r.data)}async deleteEvent(e,t){await this.calendar.events.delete({calendarId:e??this.defaultCalendarId,eventId:t,auth:this.auth})}fromGoogleEvent(e,t){let r=n(t.start),o=n(t.end),s=t.attendees?.map(e=>({email:e.email??``,name:e.displayName??void 0,optional:e.optional??void 0,responseStatus:i(e.responseStatus)}))??[],c=t.reminders?.overrides?.map(e=>({method:e.method??`popup`,minutesBeforeStart:e.minutes??0}))??[],l=a(t);return{id:t.id??``,calendarId:e,title:t.summary??``,description:t.description??void 0,location:t.location??void 0,start:r,end:o,allDay:t.start?.date?!0:void 0,attendees:s,reminders:c,conferenceLink:t.hangoutLink??t.conferenceData?.entryPoints?.find(e=>e.uri)?.uri??void 0,metadata:l,createdAt:t.created?new Date(t.created):void 0,updatedAt:t.updated?new Date(t.updated):void 0}}toGoogleEvent(e){let t={};return`title`in e&&e.title&&(t.summary=e.title),e.description!==void 0&&(t.description=e.description),e.location!==void 0&&(t.location=e.location),e.start&&(t.start=r(e.start,e.allDay)),e.end&&(t.end=r(e.end,e.allDay)),e.attendees&&(t.attendees=e.attendees.map(e=>({email:e.email,displayName:e.name,optional:e.optional,responseStatus:e.responseStatus}))),e.reminders&&(t.reminders={useDefault:!1,overrides:e.reminders.map(e=>({method:e.method,minutes:e.minutesBeforeStart}))}),e.conference?.create&&(t.conferenceData={createRequest:{requestId:`conf-${Date.now()}`}}),e.metadata&&(t.extendedProperties={...t.extendedProperties??{},private:{...t.extendedProperties?.private??{},...e.metadata}}),t}};function n(e){return e?e.dateTime?new Date(e.dateTime):e.date?new Date(`${e.date}T00:00:00`):new Date:new Date}function r(e,t){return t?{date:e.toISOString().slice(0,10)}:{dateTime:e.toISOString()}}function i(e){if(e)return[`needsAction`,`declined`,`tentative`,`accepted`].includes(e)?e:void 0}function a(e){let t={};return e.status&&(t.status=e.status),e.htmlLink&&(t.htmlLink=e.htmlLink),e.iCalUID&&(t.iCalUID=e.iCalUID),e.etag&&(t.etag=e.etag),e.conferenceData?.conferenceSolution?.name&&(t.conferenceSolution=e.conferenceData.conferenceSolution.name),e.extendedProperties?.private&&Object.entries(e.extendedProperties.private).forEach(([e,n])=>{typeof n==`string`&&(t[`extended.${e}`]=n)}),Object.keys(t).length>0?t:void 0}export{t as GoogleCalendarProvider};
2
- //# sourceMappingURL=google-calendar.js.map
1
+ import{google as e}from"googleapis";var t=class{calendar;defaultCalendarId;auth;constructor(t){this.auth=t.auth,this.calendar=t.calendar??e.calendar({version:`v3`,auth:t.auth}),this.defaultCalendarId=t.calendarId??`primary`}async listEvents(e){let t=await this.calendar.events.list({calendarId:e.calendarId??this.defaultCalendarId,timeMin:e.timeMin?.toISOString(),timeMax:e.timeMax?.toISOString(),maxResults:e.maxResults,pageToken:e.pageToken,singleEvents:!0,orderBy:`startTime`,auth:this.auth});return{events:t.data.items?.map(t=>this.fromGoogleEvent(e.calendarId??this.defaultCalendarId,t))??[],nextPageToken:t.data.nextPageToken??void 0}}async createEvent(e){let t=e.calendarId??this.defaultCalendarId,n=await this.calendar.events.insert({calendarId:t,requestBody:this.toGoogleEvent(e),conferenceDataVersion:e.conference?.create?1:void 0,auth:this.auth});return this.fromGoogleEvent(t,n.data)}async updateEvent(e,t,n){let r=await this.calendar.events.patch({calendarId:e??this.defaultCalendarId,eventId:t,requestBody:this.toGoogleEvent(n),conferenceDataVersion:n.conference?.create?1:void 0,auth:this.auth});return this.fromGoogleEvent(e,r.data)}async deleteEvent(e,t){await this.calendar.events.delete({calendarId:e??this.defaultCalendarId,eventId:t,auth:this.auth})}fromGoogleEvent(e,t){let r=n(t.start),o=n(t.end),s=t.attendees?.map(e=>({email:e.email??``,name:e.displayName??void 0,optional:e.optional??void 0,responseStatus:i(e.responseStatus)}))??[],c=t.reminders?.overrides?.map(e=>({method:e.method??`popup`,minutesBeforeStart:e.minutes??0}))??[],l=a(t);return{id:t.id??``,calendarId:e,title:t.summary??``,description:t.description??void 0,location:t.location??void 0,start:r,end:o,allDay:t.start?.date?!0:void 0,attendees:s,reminders:c,conferenceLink:t.hangoutLink??t.conferenceData?.entryPoints?.find(e=>e.uri)?.uri??void 0,metadata:l,createdAt:t.created?new Date(t.created):void 0,updatedAt:t.updated?new Date(t.updated):void 0}}toGoogleEvent(e){let t={};return`title`in e&&e.title&&(t.summary=e.title),e.description!==void 0&&(t.description=e.description),e.location!==void 0&&(t.location=e.location),e.start&&(t.start=r(e.start,e.allDay)),e.end&&(t.end=r(e.end,e.allDay)),e.attendees&&(t.attendees=e.attendees.map(e=>({email:e.email,displayName:e.name,optional:e.optional,responseStatus:e.responseStatus}))),e.reminders&&(t.reminders={useDefault:!1,overrides:e.reminders.map(e=>({method:e.method,minutes:e.minutesBeforeStart}))}),e.conference?.create&&(t.conferenceData={createRequest:{requestId:`conf-${Date.now()}`}}),e.metadata&&(t.extendedProperties={...t.extendedProperties??{},private:{...t.extendedProperties?.private??{},...e.metadata}}),t}};function n(e){return e?e.dateTime?new Date(e.dateTime):e.date?new Date(`${e.date}T00:00:00`):new Date:new Date}function r(e,t){return t?{date:e.toISOString().slice(0,10)}:{dateTime:e.toISOString()}}function i(e){if(e)return[`needsAction`,`declined`,`tentative`,`accepted`].includes(e)?e:void 0}function a(e){let t={};return e.status&&(t.status=e.status),e.htmlLink&&(t.htmlLink=e.htmlLink),e.iCalUID&&(t.iCalUID=e.iCalUID),e.etag&&(t.etag=e.etag),e.conferenceData?.conferenceSolution?.name&&(t.conferenceSolution=e.conferenceData.conferenceSolution.name),e.extendedProperties?.private&&Object.entries(e.extendedProperties.private).forEach(([e,n])=>{typeof n==`string`&&(t[`extended.${e}`]=n)}),Object.keys(t).length>0?t:void 0}export{t as GoogleCalendarProvider};
@@ -1 +1 @@
1
- import{MistralLLMProvider as e}from"./mistral-llm.js";import{MistralEmbeddingProvider as t}from"./mistral-embedding.js";import{QdrantVectorProvider as n}from"./qdrant-vector.js";import{GmailInboundProvider as r}from"./gmail-inbound.js";import{GmailOutboundProvider as i}from"./gmail-outbound.js";import{GoogleCalendarProvider as a}from"./google-calendar.js";import{ElevenLabsVoiceProvider as o}from"./elevenlabs-voice.js";import{GoogleCloudStorageProvider as s}from"./gcs-storage.js";import{StripePaymentsProvider as c}from"./stripe-payments.js";import{PostmarkEmailProvider as l}from"./postmark-email.js";import{TwilioSmsProvider as u}from"./twilio-sms.js";import{PowensClient as d,PowensClientError as f}from"./powens-client.js";import{PowensOpenBankingProvider as p}from"./powens-openbanking.js";import{IntegrationProviderFactory as m}from"./provider-factory.js";export{o as ElevenLabsVoiceProvider,r as GmailInboundProvider,i as GmailOutboundProvider,a as GoogleCalendarProvider,s as GoogleCloudStorageProvider,m as IntegrationProviderFactory,t as MistralEmbeddingProvider,e as MistralLLMProvider,l as PostmarkEmailProvider,d as PowensClient,f as PowensClientError,p as PowensOpenBankingProvider,n as QdrantVectorProvider,c as StripePaymentsProvider,u as TwilioSmsProvider};
1
+ import{ElevenLabsVoiceProvider as e}from"./elevenlabs-voice.js";import{GoogleCloudStorageProvider as t}from"./gcs-storage.js";import{GmailInboundProvider as n}from"./gmail-inbound.js";import{GmailOutboundProvider as r}from"./gmail-outbound.js";import{GoogleCalendarProvider as i}from"./google-calendar.js";import{MistralLLMProvider as a}from"./mistral-llm.js";import{MistralEmbeddingProvider as o}from"./mistral-embedding.js";import{QdrantVectorProvider as s}from"./qdrant-vector.js";import{StripePaymentsProvider as c}from"./stripe-payments.js";import{PostmarkEmailProvider as l}from"./postmark-email.js";import{TwilioSmsProvider as u}from"./twilio-sms.js";import{PowensClient as d,PowensClientError as f}from"./powens-client.js";import{PowensOpenBankingProvider as p}from"./powens-openbanking.js";import{IntegrationProviderFactory as m}from"./provider-factory.js";export{e as ElevenLabsVoiceProvider,n as GmailInboundProvider,r as GmailOutboundProvider,i as GoogleCalendarProvider,t as GoogleCloudStorageProvider,m as IntegrationProviderFactory,o as MistralEmbeddingProvider,a as MistralLLMProvider,l as PostmarkEmailProvider,d as PowensClient,f as PowensClientError,p as PowensOpenBankingProvider,s as QdrantVectorProvider,c as StripePaymentsProvider,u as TwilioSmsProvider};
@@ -1,2 +1 @@
1
- import{Mistral as e}from"@mistralai/mistralai";var t=class{client;defaultModel;constructor(t){if(!t.apiKey)throw Error(`MistralEmbeddingProvider requires an apiKey`);this.client=t.client??new e({apiKey:t.apiKey,serverURL:t.serverURL}),this.defaultModel=t.defaultModel??`mistral-embed`}async embedDocuments(e,t){if(e.length===0)return[];let n=t?.model??this.defaultModel,r=await this.client.embeddings.create({model:n,inputs:e.map(e=>e.text)});return r.data.map((t,n)=>({id:e[n]?.id??(t.index==null?`embedding-${n}`:`embedding-${t.index}`),vector:t.embedding??[],dimensions:t.embedding?.length??0,model:r.model,metadata:e[n]?.metadata?Object.fromEntries(Object.entries(e[n]?.metadata??{}).map(([e,t])=>[e,String(t)])):void 0}))}async embedQuery(e,t){let[n]=await this.embedDocuments([{id:`query`,text:e}],t);if(!n)throw Error(`Failed to compute embedding for query`);return n}};export{t as MistralEmbeddingProvider};
2
- //# sourceMappingURL=mistral-embedding.js.map
1
+ import{Mistral as e}from"@mistralai/mistralai";var t=class{client;defaultModel;constructor(t){if(!t.apiKey)throw Error(`MistralEmbeddingProvider requires an apiKey`);this.client=t.client??new e({apiKey:t.apiKey,serverURL:t.serverURL}),this.defaultModel=t.defaultModel??`mistral-embed`}async embedDocuments(e,t){if(e.length===0)return[];let n=t?.model??this.defaultModel,r=await this.client.embeddings.create({model:n,inputs:e.map(e=>e.text)});return r.data.map((t,n)=>({id:e[n]?.id??(t.index==null?`embedding-${n}`:`embedding-${t.index}`),vector:t.embedding??[],dimensions:t.embedding?.length??0,model:r.model,metadata:e[n]?.metadata?Object.fromEntries(Object.entries(e[n]?.metadata??{}).map(([e,t])=>[e,String(t)])):void 0}))}async embedQuery(e,t){let[n]=await this.embedDocuments([{id:`query`,text:e}],t);if(!n)throw Error(`Failed to compute embedding for query`);return n}};export{t as MistralEmbeddingProvider};
@@ -1,2 +1 @@
1
- import{Mistral as e}from"@mistralai/mistralai";var t=class{client;defaultModel;constructor(t){if(!t.apiKey)throw Error(`MistralLLMProvider requires an apiKey`);this.client=t.client??new e({apiKey:t.apiKey,serverURL:t.serverURL,userAgent:t.userAgentSuffix?`${t.userAgentSuffix}`:void 0}),this.defaultModel=t.defaultModel??`mistral-large-latest`}async chat(e,t={}){let n=this.buildChatRequest(e,t),r=await this.client.chat.complete(n);return this.buildLLMResponse(r)}async*stream(e,t={}){let r=this.buildChatRequest(e,t);r.stream=!0;let i=await this.client.chat.stream(r),a=[],o=[],s,c;for await(let e of i){for(let t of e.data.choices){let e=t.delta;if(typeof e.content==`string`)e.content.length>0&&(a.push({type:`text`,text:e.content}),yield{type:`message_delta`,delta:{type:`text`,text:e.content},index:t.index});else if(Array.isArray(e.content))for(let n of e.content)n.type===`text`&&`text`in n&&(a.push({type:`text`,text:n.text}),yield{type:`message_delta`,delta:{type:`text`,text:n.text},index:t.index});if(e.toolCalls){let n=0;for(let r of e.toolCalls){let e=this.fromMistralToolCall(r,n);o.push(e),yield{type:`tool_call`,call:e,index:t.index},n+=1}}t.finishReason&&t.finishReason!==`null`&&(c=t.finishReason)}if(e.data.usage){let t=this.fromUsage(e.data.usage);t&&(s=t,yield{type:`usage`,usage:t})}}let l={role:`assistant`,content:a.length?a:[{type:`text`,text:``}]};o.length>0&&(l.content=[...o,...a.length?a:[]]),yield{type:`end`,response:{message:l,usage:s,finishReason:n(c)}}}async countTokens(e){throw Error(`Mistral API does not currently support token counting`)}buildChatRequest(e,t){let n={model:t.model??this.defaultModel,messages:e.map(e=>this.toMistralMessage(e))};return t.temperature!=null&&(n.temperature=t.temperature),t.topP!=null&&(n.topP=t.topP),t.maxOutputTokens!=null&&(n.maxTokens=t.maxOutputTokens),t.stopSequences?.length&&(n.stop=t.stopSequences.length===1?t.stopSequences[0]:t.stopSequences),t.tools?.length&&(n.tools=t.tools.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:typeof e.inputSchema==`object`&&e.inputSchema!==null?e.inputSchema:{}}}))),t.responseFormat===`json`&&(n.responseFormat={type:`json_object`}),n}buildLLMResponse(e){let t=e.choices[0];return t?{message:this.fromAssistantMessage(t.message),usage:this.fromUsage(e.usage),finishReason:n(t.finishReason),raw:e}:{message:{role:`assistant`,content:[{type:`text`,text:``}]},usage:this.fromUsage(e.usage),raw:e}}fromUsage(e){if(e)return{promptTokens:e.promptTokens??0,completionTokens:e.completionTokens??0,totalTokens:e.totalTokens??0}}fromAssistantMessage(e){let t=[];typeof e.content==`string`?t.push({type:`text`,text:e.content}):Array.isArray(e.content)&&e.content.forEach(e=>{e.type===`text`&&`text`in e&&t.push({type:`text`,text:e.text})});let n=e.toolCalls?.map((e,t)=>this.fromMistralToolCall(e,t))??[];return n.length>0&&t.splice(0,0,...n),t.length===0&&t.push({type:`text`,text:``}),{role:`assistant`,content:t}}fromMistralToolCall(e,t){let n=typeof e.function.arguments==`string`?e.function.arguments:JSON.stringify(e.function.arguments);return{type:`tool-call`,id:e.id??`tool-call-${t}`,name:e.function.name,arguments:n}}toMistralMessage(e){let t=this.extractText(e.content),n=this.extractToolCalls(e);switch(e.role){case`system`:return{role:`system`,content:t??``};case`user`:return{role:`user`,content:t??``};case`assistant`:return{role:`assistant`,content:n.length>0?null:t??``,toolCalls:n.length>0?n:void 0};case`tool`:return{role:`tool`,content:t??``,toolCallId:e.toolCallId??n[0]?.id};default:return{role:`user`,content:t??``}}}extractText(e){let t=e.filter(e=>e.type===`text`).map(e=>e.text);return t.length===0?null:t.join(``)}extractToolCalls(e){return e.content.filter(e=>e.type===`tool-call`).map((e,t)=>({id:e.id??`call_${t}`,type:`function`,index:t,function:{name:e.name,arguments:e.arguments}}))}};function n(e){if(e)switch(e.toLowerCase()){case`stop`:return`stop`;case`length`:return`length`;case`tool_call`:case`tool_calls`:return`tool_call`;case`content_filter`:return`content_filter`;default:return}}export{t as MistralLLMProvider};
2
- //# sourceMappingURL=mistral-llm.js.map
1
+ import{Mistral as e}from"@mistralai/mistralai";var t=class{client;defaultModel;constructor(t){if(!t.apiKey)throw Error(`MistralLLMProvider requires an apiKey`);this.client=t.client??new e({apiKey:t.apiKey,serverURL:t.serverURL,userAgent:t.userAgentSuffix?`${t.userAgentSuffix}`:void 0}),this.defaultModel=t.defaultModel??`mistral-large-latest`}async chat(e,t={}){let n=this.buildChatRequest(e,t),r=await this.client.chat.complete(n);return this.buildLLMResponse(r)}async*stream(e,t={}){let r=this.buildChatRequest(e,t);r.stream=!0;let i=await this.client.chat.stream(r),a=[],o=[],s,c;for await(let e of i){for(let t of e.data.choices){let e=t.delta;if(typeof e.content==`string`)e.content.length>0&&(a.push({type:`text`,text:e.content}),yield{type:`message_delta`,delta:{type:`text`,text:e.content},index:t.index});else if(Array.isArray(e.content))for(let n of e.content)n.type===`text`&&`text`in n&&(a.push({type:`text`,text:n.text}),yield{type:`message_delta`,delta:{type:`text`,text:n.text},index:t.index});if(e.toolCalls){let n=0;for(let r of e.toolCalls){let e=this.fromMistralToolCall(r,n);o.push(e),yield{type:`tool_call`,call:e,index:t.index},n+=1}}t.finishReason&&t.finishReason!==`null`&&(c=t.finishReason)}if(e.data.usage){let t=this.fromUsage(e.data.usage);t&&(s=t,yield{type:`usage`,usage:t})}}let l={role:`assistant`,content:a.length?a:[{type:`text`,text:``}]};o.length>0&&(l.content=[...o,...a.length?a:[]]),yield{type:`end`,response:{message:l,usage:s,finishReason:n(c)}}}async countTokens(e){throw Error(`Mistral API does not currently support token counting`)}buildChatRequest(e,t){let n={model:t.model??this.defaultModel,messages:e.map(e=>this.toMistralMessage(e))};return t.temperature!=null&&(n.temperature=t.temperature),t.topP!=null&&(n.topP=t.topP),t.maxOutputTokens!=null&&(n.maxTokens=t.maxOutputTokens),t.stopSequences?.length&&(n.stop=t.stopSequences.length===1?t.stopSequences[0]:t.stopSequences),t.tools?.length&&(n.tools=t.tools.map(e=>({type:`function`,function:{name:e.name,description:e.description,parameters:typeof e.inputSchema==`object`&&e.inputSchema!==null?e.inputSchema:{}}}))),t.responseFormat===`json`&&(n.responseFormat={type:`json_object`}),n}buildLLMResponse(e){let t=e.choices[0];return t?{message:this.fromAssistantMessage(t.message),usage:this.fromUsage(e.usage),finishReason:n(t.finishReason),raw:e}:{message:{role:`assistant`,content:[{type:`text`,text:``}]},usage:this.fromUsage(e.usage),raw:e}}fromUsage(e){if(e)return{promptTokens:e.promptTokens??0,completionTokens:e.completionTokens??0,totalTokens:e.totalTokens??0}}fromAssistantMessage(e){let t=[];typeof e.content==`string`?t.push({type:`text`,text:e.content}):Array.isArray(e.content)&&e.content.forEach(e=>{e.type===`text`&&`text`in e&&t.push({type:`text`,text:e.text})});let n=e.toolCalls?.map((e,t)=>this.fromMistralToolCall(e,t))??[];return n.length>0&&t.splice(0,0,...n),t.length===0&&t.push({type:`text`,text:``}),{role:`assistant`,content:t}}fromMistralToolCall(e,t){let n=typeof e.function.arguments==`string`?e.function.arguments:JSON.stringify(e.function.arguments);return{type:`tool-call`,id:e.id??`tool-call-${t}`,name:e.function.name,arguments:n}}toMistralMessage(e){let t=this.extractText(e.content),n=this.extractToolCalls(e);switch(e.role){case`system`:return{role:`system`,content:t??``};case`user`:return{role:`user`,content:t??``};case`assistant`:return{role:`assistant`,content:n.length>0?null:t??``,toolCalls:n.length>0?n:void 0};case`tool`:return{role:`tool`,content:t??``,toolCallId:e.toolCallId??n[0]?.id};default:return{role:`user`,content:t??``}}}extractText(e){let t=e.filter(e=>e.type===`text`).map(e=>e.text);return t.length===0?null:t.join(``)}extractToolCalls(e){return e.content.filter(e=>e.type===`tool-call`).map((e,t)=>({id:e.id??`call_${t}`,type:`function`,index:t,function:{name:e.name,arguments:e.arguments}}))}};function n(e){if(e)switch(e.toLowerCase()){case`stop`:return`stop`;case`length`:return`length`;case`tool_call`:case`tool_calls`:return`tool_call`;case`content_filter`:return`content_filter`;default:return}}export{t as MistralLLMProvider};
@@ -1,2 +1 @@
1
- import{ServerClient as e}from"postmark";var t=class{client;defaultFromEmail;messageStream;constructor(t){this.client=t.client??new e(t.serverToken,{useHttps:!0}),this.defaultFromEmail=t.defaultFromEmail,this.messageStream=t.messageStream}async sendEmail(e){let t={From:n(e.from)??this.defaultFromEmail,To:e.to.map(e=>n(e)).join(`, `),Cc:e.cc?.map(e=>n(e)).join(`, `)||void 0,Bcc:e.bcc?.map(e=>n(e)).join(`, `)||void 0,ReplyTo:e.replyTo?n(e.replyTo):void 0,Subject:e.subject,TextBody:e.textBody,HtmlBody:e.htmlBody,Headers:e.headers?Object.entries(e.headers).map(([e,t])=>({Name:e,Value:t})):void 0,MessageStream:this.messageStream,Attachments:r(e)},i=await this.client.sendEmail(t);return{id:i.MessageID,providerMessageId:i.MessageID,queuedAt:new Date(i.SubmittedAt??new Date().toISOString())}}};function n(e){return e.name?`"${e.name}" <${e.email}>`:e.email}function r(e){if(e.attachments?.length)return e.attachments.filter(e=>e.data).map(e=>({Name:e.filename,Content:Buffer.from(e.data??new Uint8Array).toString(`base64`),ContentType:e.contentType,ContentID:null,ContentLength:e.sizeBytes,Disposition:`attachment`}))}export{t as PostmarkEmailProvider};
2
- //# sourceMappingURL=postmark-email.js.map
1
+ import{ServerClient as e}from"postmark";var t=class{client;defaultFromEmail;messageStream;constructor(t){this.client=t.client??new e(t.serverToken,{useHttps:!0}),this.defaultFromEmail=t.defaultFromEmail,this.messageStream=t.messageStream}async sendEmail(e){let t={From:n(e.from)??this.defaultFromEmail,To:e.to.map(e=>n(e)).join(`, `),Cc:e.cc?.map(e=>n(e)).join(`, `)||void 0,Bcc:e.bcc?.map(e=>n(e)).join(`, `)||void 0,ReplyTo:e.replyTo?n(e.replyTo):void 0,Subject:e.subject,TextBody:e.textBody,HtmlBody:e.htmlBody,Headers:e.headers?Object.entries(e.headers).map(([e,t])=>({Name:e,Value:t})):void 0,MessageStream:this.messageStream,Attachments:r(e)},i=await this.client.sendEmail(t);return{id:i.MessageID,providerMessageId:i.MessageID,queuedAt:new Date(i.SubmittedAt??new Date().toISOString())}}};function n(e){return e.name?`"${e.name}" <${e.email}>`:e.email}function r(e){if(e.attachments?.length)return e.attachments.filter(e=>e.data).map(e=>({Name:e.filename,Content:Buffer.from(e.data??new Uint8Array).toString(`base64`),ContentType:e.contentType,ContentID:null,ContentLength:e.sizeBytes,Disposition:`attachment`}))}export{t as PostmarkEmailProvider};
@@ -1,2 +1 @@
1
- import{URL as e}from"node:url";const t={sandbox:`https://api-sandbox.powens.com/v2`,production:`https://api.powens.com/v2`};var n=class extends Error{status;code;requestId;response;constructor(e,t,n,r,i){super(e),this.name=`PowensClientError`,this.status=t,this.code=n,this.requestId=r,this.response=i}},r=class{clientId;clientSecret;apiKey;fetchImpl;logger;defaultTimeoutMs;token;baseUrl;constructor(e){this.clientId=e.clientId,this.clientSecret=e.clientSecret,this.apiKey=e.apiKey,this.fetchImpl=e.fetchImpl??fetch,this.logger=e.logger,this.defaultTimeoutMs=e.defaultTimeoutMs??15e3,this.baseUrl=e.baseUrl??t[e.environment]??t.production}async listAccounts(e){let t={cursor:e.cursor,limit:e.limit,include_balances:e.includeBalances,institution_uuid:e.institutionUuid};return await this.request({method:`GET`,path:`/users/${encodeURIComponent(e.userUuid)}/accounts`,searchParams:t})}async getAccount(e){return this.request({method:`GET`,path:`/accounts/${encodeURIComponent(e)}`})}async listTransactions(e){let t={cursor:e.cursor,limit:e.limit,from:e.from,to:e.to,include_pending:e.includePending};return this.request({method:`GET`,path:`/accounts/${encodeURIComponent(e.accountUuid)}/transactions`,searchParams:t})}async getBalances(e){return this.request({method:`GET`,path:`/accounts/${encodeURIComponent(e)}/balances`})}async getConnectionStatus(e){return this.request({method:`GET`,path:`/connections/${encodeURIComponent(e)}`})}async request(t){let r=new e(t.path,this.baseUrl);if(t.searchParams)for(let[e,n]of Object.entries(t.searchParams))n!=null&&r.searchParams.set(e,String(n));let i={Accept:`application/json`,"Content-Type":`application/json`,...t.headers};this.apiKey&&(i[`x-api-key`]=this.apiKey),t.skipAuth||(i.Authorization=`Bearer ${await this.ensureAccessToken()}`);let a=new AbortController,o=setTimeout(()=>a.abort(),t.timeoutMs??this.defaultTimeoutMs);try{let e=await this.fetchImpl(r,{method:t.method,headers:i,body:t.body?JSON.stringify(t.body):void 0,signal:a.signal}),o=e.headers.get(`x-request-id`)??void 0;if(!e.ok){let t;try{t=await e.json()}catch{}let r=typeof t==`object`&&t?t:void 0,i=typeof r?.message==`string`?r.message:`Powens API request failed with status ${e.status}`,a=typeof r?.code==`string`?r.code:void 0;throw new n(i,e.status,a,o,t)}if(e.status===204)return;try{return await e.json()}catch(t){throw this.logger?.error?.(`[PowensClient] Failed to parse JSON response`,t),new n(`Failed to parse Powens response payload as JSON`,e.status,void 0,o)}}catch(e){throw e instanceof n?e:e.name===`AbortError`?new n(`Powens API request timed out after ${t.timeoutMs??this.defaultTimeoutMs}ms`,408):(this.logger?.error?.(`[PowensClient] Request failed`,e),new n(e.message??`Powens API request failed`,500))}finally{clearTimeout(o)}}async ensureAccessToken(){return this.token&&Date.now()<this.token.expiresAt-5e3||(this.token=await this.fetchAccessToken()),this.token.accessToken}async fetchAccessToken(){let t=new e(`/oauth/token`,this.baseUrl),r=Buffer.from(`${this.clientId}:${this.clientSecret}`,`utf-8`).toString(`base64`),i=await this.fetchImpl(t,{method:`POST`,headers:{Authorization:`Basic ${r}`,"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:new URLSearchParams({grant_type:`client_credentials`}).toString()});if(!i.ok){let e;try{e=await i.json()}catch{}let t=typeof e==`object`&&e?e:void 0;throw new n(typeof t?.error_description==`string`?t.error_description:`Failed to obtain Powens access token`,i.status,void 0,void 0,e)}let a=await i.json(),o=Date.now()+a.expires_in*1e3;return this.logger?.debug?.(`[PowensClient] Received access token`,{expiresIn:a.expires_in}),{accessToken:a.access_token,expiresAt:o,scope:a.scope}}};export{r as PowensClient,n as PowensClientError};
2
- //# sourceMappingURL=powens-client.js.map
1
+ import{URL as e}from"node:url";const t={sandbox:`https://api-sandbox.powens.com/v2`,production:`https://api.powens.com/v2`};var n=class extends Error{status;code;requestId;response;constructor(e,t,n,r,i){super(e),this.name=`PowensClientError`,this.status=t,this.code=n,this.requestId=r,this.response=i}},r=class{clientId;clientSecret;apiKey;fetchImpl;logger;defaultTimeoutMs;token;baseUrl;constructor(e){this.clientId=e.clientId,this.clientSecret=e.clientSecret,this.apiKey=e.apiKey,this.fetchImpl=e.fetchImpl??fetch,this.logger=e.logger,this.defaultTimeoutMs=e.defaultTimeoutMs??15e3,this.baseUrl=e.baseUrl??t[e.environment]??t.production}async listAccounts(e){let t={cursor:e.cursor,limit:e.limit,include_balances:e.includeBalances,institution_uuid:e.institutionUuid};return await this.request({method:`GET`,path:`/users/${encodeURIComponent(e.userUuid)}/accounts`,searchParams:t})}async getAccount(e){return this.request({method:`GET`,path:`/accounts/${encodeURIComponent(e)}`})}async listTransactions(e){let t={cursor:e.cursor,limit:e.limit,from:e.from,to:e.to,include_pending:e.includePending};return this.request({method:`GET`,path:`/accounts/${encodeURIComponent(e.accountUuid)}/transactions`,searchParams:t})}async getBalances(e){return this.request({method:`GET`,path:`/accounts/${encodeURIComponent(e)}/balances`})}async getConnectionStatus(e){return this.request({method:`GET`,path:`/connections/${encodeURIComponent(e)}`})}async request(t){let r=new e(t.path,this.baseUrl);if(t.searchParams)for(let[e,n]of Object.entries(t.searchParams))n!=null&&r.searchParams.set(e,String(n));let i={Accept:`application/json`,"Content-Type":`application/json`,...t.headers};this.apiKey&&(i[`x-api-key`]=this.apiKey),t.skipAuth||(i.Authorization=`Bearer ${await this.ensureAccessToken()}`);let a=new AbortController,o=setTimeout(()=>a.abort(),t.timeoutMs??this.defaultTimeoutMs);try{let e=await this.fetchImpl(r,{method:t.method,headers:i,body:t.body?JSON.stringify(t.body):void 0,signal:a.signal}),o=e.headers.get(`x-request-id`)??void 0;if(!e.ok){let t;try{t=await e.json()}catch{}let r=typeof t==`object`&&t?t:void 0,i=typeof r?.message==`string`?r.message:`Powens API request failed with status ${e.status}`,a=typeof r?.code==`string`?r.code:void 0;throw new n(i,e.status,a,o,t)}if(e.status===204)return;try{return await e.json()}catch(t){throw this.logger?.error?.(`[PowensClient] Failed to parse JSON response`,t),new n(`Failed to parse Powens response payload as JSON`,e.status,void 0,o)}}catch(e){throw e instanceof n?e:e.name===`AbortError`?new n(`Powens API request timed out after ${t.timeoutMs??this.defaultTimeoutMs}ms`,408):(this.logger?.error?.(`[PowensClient] Request failed`,e),new n(e.message??`Powens API request failed`,500))}finally{clearTimeout(o)}}async ensureAccessToken(){return this.token&&Date.now()<this.token.expiresAt-5e3||(this.token=await this.fetchAccessToken()),this.token.accessToken}async fetchAccessToken(){let t=new e(`/oauth/token`,this.baseUrl),r=Buffer.from(`${this.clientId}:${this.clientSecret}`,`utf-8`).toString(`base64`),i=await this.fetchImpl(t,{method:`POST`,headers:{Authorization:`Basic ${r}`,"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:new URLSearchParams({grant_type:`client_credentials`}).toString()});if(!i.ok){let e;try{e=await i.json()}catch{}let t=typeof e==`object`&&e?e:void 0;throw new n(typeof t?.error_description==`string`?t.error_description:`Failed to obtain Powens access token`,i.status,void 0,void 0,e)}let a=await i.json(),o=Date.now()+a.expires_in*1e3;return this.logger?.debug?.(`[PowensClient] Received access token`,{expiresIn:a.expires_in}),{accessToken:a.access_token,expiresAt:o,scope:a.scope}}};export{r as PowensClient,n as PowensClientError};
@@ -1,2 +1 @@
1
- import{PowensClient as e,PowensClientError as t}from"./powens-client.js";var n=class{client;logger;constructor(t){this.client=new e(t),this.logger=t.logger}async listAccounts(e){if(!e.userId)throw new t(`Powens account listing requires the upstream userId mapped to Powens user UUID.`,400);let n=this.toContext(e.tenantId,e.connectionId);try{let t=await this.client.listAccounts({userUuid:e.userId,cursor:e.cursor,limit:e.pageSize,includeBalances:e.includeBalances,institutionUuid:e.institutionId});return{accounts:t.accounts.map(e=>this.mapAccount(e,n)),nextCursor:t.pagination?.nextCursor,hasMore:t.pagination?.hasMore}}catch(e){this.handleError(`listAccounts`,e)}}async getAccountDetails(e){let t=this.toContext(e.tenantId,e.connectionId);try{let n=await this.client.getAccount(e.accountId);return this.mapAccountDetails(n,t)}catch(e){this.handleError(`getAccountDetails`,e)}}async listTransactions(e){let t=this.toContext(e.tenantId,e.connectionId);try{let n=await this.client.listTransactions({accountUuid:e.accountId,cursor:e.cursor,limit:e.pageSize,from:e.from,to:e.to,includePending:e.includePending});return{transactions:n.transactions.map(e=>this.mapTransaction(e,t)),nextCursor:n.pagination?.nextCursor,hasMore:n.pagination?.hasMore}}catch(e){this.handleError(`listTransactions`,e)}}async getBalances(e){let t=this.toContext(e.tenantId,e.connectionId);try{return(await this.client.getBalances(e.accountId)).filter(t=>e.balanceTypes?.length?e.balanceTypes.includes(t.type):!0).map(e=>this.mapBalance(e,t))}catch(e){this.handleError(`getBalances`,e)}}async getConnectionStatus(e){try{let t=await this.client.getConnectionStatus(e.connectionId);return{connectionId:e.connectionId,tenantId:e.tenantId,status:this.mapConnectionStatus(t.status),lastCheckedAt:t.lastAttemptAt,errorCode:t.errorCode,errorMessage:t.errorMessage,details:t.metadata}}catch(e){this.handleError(`getConnectionStatus`,e)}}mapAccount(e,t){return{id:e.uuid,externalId:e.reference??e.uuid,tenantId:t.tenantId,connectionId:t.connectionId,userId:e.userUuid,displayName:e.name,institutionId:e.institution.id,institutionName:e.institution.name,institutionLogoUrl:e.institution.logoUrl,accountType:e.type??`unknown`,iban:e.iban,bic:e.bic,currency:e.currency??`EUR`,accountNumberMasked:e.metadata?.account_number_masked,ownership:this.mapOwnership(e.metadata?.ownership),status:this.mapAccountStatus(e.status),lastSyncedAt:e.metadata?.last_sync_at,metadata:e.metadata}}mapAccountDetails(e,t){return{...this.mapAccount(e,t),productCode:e.metadata?.product_code,openedAt:e.metadata?.opened_at,closedAt:e.metadata?.closed_at,availableBalance:e.availableBalance??void 0,currentBalance:e.balance??void 0,creditLimit:e.metadata?.credit_limit,customFields:e.metadata}}mapTransaction(e,t){return{id:e.uuid,externalId:e.uuid,tenantId:t.tenantId,accountId:e.accountUuid,connectionId:t.connectionId,amount:e.amount,currency:e.currency,direction:e.direction===`credit`?`credit`:`debit`,description:e.description??e.rawLabel,bookingDate:e.bookingDate,valueDate:e.valueDate,postedAt:e.bookingDate,category:e.category,rawCategory:e.rawLabel,merchantName:e.merchantName,merchantCategoryCode:e.merchantCategoryCode,counterpartyName:e.counterpartyName,counterpartyAccount:e.counterpartyAccount,reference:e.metadata?.reference,status:this.mapTransactionStatus(e.status),metadata:e.metadata}}mapBalance(e,t){return{accountId:e.accountUuid,connectionId:t.connectionId,tenantId:t.tenantId,type:e.type??`current`,currency:e.currency??`EUR`,amount:e.amount,lastUpdatedAt:e.updatedAt,metadata:e.metadata}}toContext(e,t){return{tenantId:e,connectionId:t}}mapOwnership(e){switch(e?.toLowerCase()){case`individual`:case`personal`:return`individual`;case`joint`:return`joint`;case`business`:case`corporate`:return`business`;default:return`unknown`}}mapAccountStatus(e){switch(e?.toLowerCase()){case`active`:case`enabled`:return`active`;case`disabled`:case`inactive`:return`inactive`;case`closed`:return`closed`;case`suspended`:return`suspended`;default:return`active`}}mapTransactionStatus(e){switch(e?.toLowerCase()){case`pending`:case`authorised`:return`pending`;case`booked`:case`posted`:return`booked`;case`cancelled`:case`rejected`:return`cancelled`;default:return`booked`}}mapConnectionStatus(e){switch(e){case`healthy`:return`healthy`;case`pending`:return`degraded`;case`error`:return`error`;case`revoked`:return`disconnected`;default:return`degraded`}}handleError(e,n){throw n instanceof t?(this.logger?.error?.(`[PowensOpenBankingProvider] ${e} failed`,{status:n.status,code:n.code,requestId:n.requestId,message:n.message}),n):(this.logger?.error?.(`[PowensOpenBankingProvider] ${e} failed with unexpected error`,n),n instanceof Error?n:Error(`Powens operation "${e}" failed`))}};export{n as PowensOpenBankingProvider};
2
- //# sourceMappingURL=powens-openbanking.js.map
1
+ import{PowensClient as e,PowensClientError as t}from"./powens-client.js";var n=class{client;logger;constructor(t){this.client=new e(t),this.logger=t.logger}async listAccounts(e){if(!e.userId)throw new t(`Powens account listing requires the upstream userId mapped to Powens user UUID.`,400);let n=this.toContext(e.tenantId,e.connectionId);try{let t=await this.client.listAccounts({userUuid:e.userId,cursor:e.cursor,limit:e.pageSize,includeBalances:e.includeBalances,institutionUuid:e.institutionId});return{accounts:t.accounts.map(e=>this.mapAccount(e,n)),nextCursor:t.pagination?.nextCursor,hasMore:t.pagination?.hasMore}}catch(e){this.handleError(`listAccounts`,e)}}async getAccountDetails(e){let t=this.toContext(e.tenantId,e.connectionId);try{let n=await this.client.getAccount(e.accountId);return this.mapAccountDetails(n,t)}catch(e){this.handleError(`getAccountDetails`,e)}}async listTransactions(e){let t=this.toContext(e.tenantId,e.connectionId);try{let n=await this.client.listTransactions({accountUuid:e.accountId,cursor:e.cursor,limit:e.pageSize,from:e.from,to:e.to,includePending:e.includePending});return{transactions:n.transactions.map(e=>this.mapTransaction(e,t)),nextCursor:n.pagination?.nextCursor,hasMore:n.pagination?.hasMore}}catch(e){this.handleError(`listTransactions`,e)}}async getBalances(e){let t=this.toContext(e.tenantId,e.connectionId);try{return(await this.client.getBalances(e.accountId)).filter(t=>e.balanceTypes?.length?e.balanceTypes.includes(t.type):!0).map(e=>this.mapBalance(e,t))}catch(e){this.handleError(`getBalances`,e)}}async getConnectionStatus(e){try{let t=await this.client.getConnectionStatus(e.connectionId);return{connectionId:e.connectionId,tenantId:e.tenantId,status:this.mapConnectionStatus(t.status),lastCheckedAt:t.lastAttemptAt,errorCode:t.errorCode,errorMessage:t.errorMessage,details:t.metadata}}catch(e){this.handleError(`getConnectionStatus`,e)}}mapAccount(e,t){return{id:e.uuid,externalId:e.reference??e.uuid,tenantId:t.tenantId,connectionId:t.connectionId,userId:e.userUuid,displayName:e.name,institutionId:e.institution.id,institutionName:e.institution.name,institutionLogoUrl:e.institution.logoUrl,accountType:e.type??`unknown`,iban:e.iban,bic:e.bic,currency:e.currency??`EUR`,accountNumberMasked:e.metadata?.account_number_masked,ownership:this.mapOwnership(e.metadata?.ownership),status:this.mapAccountStatus(e.status),lastSyncedAt:e.metadata?.last_sync_at,metadata:e.metadata}}mapAccountDetails(e,t){return{...this.mapAccount(e,t),productCode:e.metadata?.product_code,openedAt:e.metadata?.opened_at,closedAt:e.metadata?.closed_at,availableBalance:e.availableBalance??void 0,currentBalance:e.balance??void 0,creditLimit:e.metadata?.credit_limit,customFields:e.metadata}}mapTransaction(e,t){return{id:e.uuid,externalId:e.uuid,tenantId:t.tenantId,accountId:e.accountUuid,connectionId:t.connectionId,amount:e.amount,currency:e.currency,direction:e.direction===`credit`?`credit`:`debit`,description:e.description??e.rawLabel,bookingDate:e.bookingDate,valueDate:e.valueDate,postedAt:e.bookingDate,category:e.category,rawCategory:e.rawLabel,merchantName:e.merchantName,merchantCategoryCode:e.merchantCategoryCode,counterpartyName:e.counterpartyName,counterpartyAccount:e.counterpartyAccount,reference:e.metadata?.reference,status:this.mapTransactionStatus(e.status),metadata:e.metadata}}mapBalance(e,t){return{accountId:e.accountUuid,connectionId:t.connectionId,tenantId:t.tenantId,type:e.type??`current`,currency:e.currency??`EUR`,amount:e.amount,lastUpdatedAt:e.updatedAt,metadata:e.metadata}}toContext(e,t){return{tenantId:e,connectionId:t}}mapOwnership(e){switch(e?.toLowerCase()){case`individual`:case`personal`:return`individual`;case`joint`:return`joint`;case`business`:case`corporate`:return`business`;default:return`unknown`}}mapAccountStatus(e){switch(e?.toLowerCase()){case`active`:case`enabled`:return`active`;case`disabled`:case`inactive`:return`inactive`;case`closed`:return`closed`;case`suspended`:return`suspended`;default:return`active`}}mapTransactionStatus(e){switch(e?.toLowerCase()){case`pending`:case`authorised`:return`pending`;case`booked`:case`posted`:return`booked`;case`cancelled`:case`rejected`:return`cancelled`;default:return`booked`}}mapConnectionStatus(e){switch(e){case`healthy`:return`healthy`;case`pending`:return`degraded`;case`error`:return`error`;case`revoked`:return`disconnected`;default:return`degraded`}}handleError(e,n){throw n instanceof t?(this.logger?.error?.(`[PowensOpenBankingProvider] ${e} failed`,{status:n.status,code:n.code,requestId:n.requestId,message:n.message}),n):(this.logger?.error?.(`[PowensOpenBankingProvider] ${e} failed with unexpected error`,n),n instanceof Error?n:Error(`Powens operation "${e}" failed`))}};export{n as PowensOpenBankingProvider};
@@ -1,2 +1 @@
1
- import{MistralLLMProvider as e}from"./mistral-llm.js";import{MistralEmbeddingProvider as t}from"./mistral-embedding.js";import{QdrantVectorProvider as n}from"./qdrant-vector.js";import{ElevenLabsVoiceProvider as r}from"./elevenlabs-voice.js";import{GoogleCloudStorageProvider as i}from"./gcs-storage.js";import{StripePaymentsProvider as a}from"./stripe-payments.js";import{PostmarkEmailProvider as o}from"./postmark-email.js";import{TwilioSmsProvider as s}from"./twilio-sms.js";import{PowensOpenBankingProvider as c}from"./powens-openbanking.js";import{Buffer as l}from"node:buffer";const u=new Map;var d=class{async createPaymentsProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`payments.stripe`:return new a({apiKey:p(t,`apiKey`,`Stripe API key is required`)});default:throw Error(`Unsupported payments integration: ${e.spec.meta.key}`)}}async createEmailOutboundProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`email.postmark`:return new o({serverToken:p(t,`serverToken`,`Postmark server token is required`),defaultFromEmail:e.config.fromEmail,messageStream:e.config.messageStream});default:throw Error(`Unsupported email integration: ${e.spec.meta.key}`)}}async createSmsProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`sms.twilio`:return new s({accountSid:p(t,`accountSid`,`Twilio account SID is required`),authToken:p(t,`authToken`,`Twilio auth token is required`),fromNumber:e.config.fromNumber});default:throw Error(`Unsupported SMS integration: ${e.spec.meta.key}`)}}async createVectorStoreProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`vectordb.qdrant`:return new n({url:m(e,`apiUrl`,`Qdrant apiUrl config is required`),apiKey:t.apiKey});default:throw Error(`Unsupported vector store integration: ${e.spec.meta.key}`)}}async createObjectStorageProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`storage.s3`:case`storage.gcs`:return new i({bucket:m(e,`bucket`,`Storage bucket is required`),clientOptions:t.type===`service_account`?{credentials:t}:void 0});default:throw Error(`Unsupported storage integration: ${e.spec.meta.key}`)}}async createVoiceProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`ai-voice.elevenlabs`:return new r({apiKey:p(t,`apiKey`,`ElevenLabs API key is required`),defaultVoiceId:e.config.defaultVoiceId});default:throw Error(`Unsupported voice integration: ${e.spec.meta.key}`)}}async createLlmProvider(t){let n=await this.loadSecrets(t);switch(t.spec.meta.key){case`ai-llm.mistral`:return new e({apiKey:p(n,`apiKey`,`Mistral API key is required`),defaultModel:t.config.model});default:throw Error(`Unsupported LLM integration: ${t.spec.meta.key}`)}}async createEmbeddingProvider(e){let n=await this.loadSecrets(e);switch(e.spec.meta.key){case`ai-llm.mistral`:return new t({apiKey:p(n,`apiKey`,`Mistral API key is required`),defaultModel:e.config.embeddingModel});default:throw Error(`Unsupported embeddings integration: ${e.spec.meta.key}`)}}async createOpenBankingProvider(e){let t=await this.loadSecrets(e),n=e.config;switch(e.spec.meta.key){case`openbanking.powens`:{let r=m(e,`environment`,`Powens environment (sandbox | production) must be specified in integration config.`);if(r!==`sandbox`&&r!==`production`)throw Error(`Powens environment "${r}" is invalid. Expected "sandbox" or "production".`);return new c({clientId:p(t,`clientId`,`Powens clientId is required`),clientSecret:p(t,`clientSecret`,`Powens clientSecret is required`),apiKey:t.apiKey,environment:r,baseUrl:n?.baseUrl})}default:throw Error(`Unsupported open banking integration: ${e.spec.meta.key}`)}}async loadSecrets(e){let t=e.connection.meta.id;if(u.has(t))return u.get(t);let n=f(await e.secretProvider.getSecret(e.secretReference));return u.set(t,n),n}};function f(e){let t=l.from(e.data).toString(`utf-8`).trim();if(!t)return{};try{return JSON.parse(t)}catch{return{apiKey:t}}}function p(e,t,n){let r=e[t];if(r==null||r===``)throw Error(n);return r}function m(e,t,n){let r=e.config?.[t];if(r==null)throw Error(n);return r}export{d as IntegrationProviderFactory};
2
- //# sourceMappingURL=provider-factory.js.map
1
+ import{ElevenLabsVoiceProvider as e}from"./elevenlabs-voice.js";import{GoogleCloudStorageProvider as t}from"./gcs-storage.js";import{MistralLLMProvider as n}from"./mistral-llm.js";import{MistralEmbeddingProvider as r}from"./mistral-embedding.js";import{QdrantVectorProvider as i}from"./qdrant-vector.js";import{StripePaymentsProvider as a}from"./stripe-payments.js";import{PostmarkEmailProvider as o}from"./postmark-email.js";import{TwilioSmsProvider as s}from"./twilio-sms.js";import{PowensOpenBankingProvider as c}from"./powens-openbanking.js";import{Buffer as l}from"node:buffer";const u=new Map;var d=class{async createPaymentsProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`payments.stripe`:return new a({apiKey:p(t,`apiKey`,`Stripe API key is required`)});default:throw Error(`Unsupported payments integration: ${e.spec.meta.key}`)}}async createEmailOutboundProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`email.postmark`:return new o({serverToken:p(t,`serverToken`,`Postmark server token is required`),defaultFromEmail:e.config.fromEmail,messageStream:e.config.messageStream});default:throw Error(`Unsupported email integration: ${e.spec.meta.key}`)}}async createSmsProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`sms.twilio`:return new s({accountSid:p(t,`accountSid`,`Twilio account SID is required`),authToken:p(t,`authToken`,`Twilio auth token is required`),fromNumber:e.config.fromNumber});default:throw Error(`Unsupported SMS integration: ${e.spec.meta.key}`)}}async createVectorStoreProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`vectordb.qdrant`:return new i({url:m(e,`apiUrl`,`Qdrant apiUrl config is required`),apiKey:t.apiKey});default:throw Error(`Unsupported vector store integration: ${e.spec.meta.key}`)}}async createObjectStorageProvider(e){let n=await this.loadSecrets(e);switch(e.spec.meta.key){case`storage.s3`:case`storage.gcs`:return new t({bucket:m(e,`bucket`,`Storage bucket is required`),clientOptions:n.type===`service_account`?{credentials:n}:void 0});default:throw Error(`Unsupported storage integration: ${e.spec.meta.key}`)}}async createVoiceProvider(t){let n=await this.loadSecrets(t);switch(t.spec.meta.key){case`ai-voice.elevenlabs`:return new e({apiKey:p(n,`apiKey`,`ElevenLabs API key is required`),defaultVoiceId:t.config.defaultVoiceId});default:throw Error(`Unsupported voice integration: ${t.spec.meta.key}`)}}async createLlmProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`ai-llm.mistral`:return new n({apiKey:p(t,`apiKey`,`Mistral API key is required`),defaultModel:e.config.model});default:throw Error(`Unsupported LLM integration: ${e.spec.meta.key}`)}}async createEmbeddingProvider(e){let t=await this.loadSecrets(e);switch(e.spec.meta.key){case`ai-llm.mistral`:return new r({apiKey:p(t,`apiKey`,`Mistral API key is required`),defaultModel:e.config.embeddingModel});default:throw Error(`Unsupported embeddings integration: ${e.spec.meta.key}`)}}async createOpenBankingProvider(e){let t=await this.loadSecrets(e),n=e.config;switch(e.spec.meta.key){case`openbanking.powens`:{let r=m(e,`environment`,`Powens environment (sandbox | production) must be specified in integration config.`);if(r!==`sandbox`&&r!==`production`)throw Error(`Powens environment "${r}" is invalid. Expected "sandbox" or "production".`);return new c({clientId:p(t,`clientId`,`Powens clientId is required`),clientSecret:p(t,`clientSecret`,`Powens clientSecret is required`),apiKey:t.apiKey,environment:r,baseUrl:n?.baseUrl})}default:throw Error(`Unsupported open banking integration: ${e.spec.meta.key}`)}}async loadSecrets(e){let t=e.connection.meta.id;if(u.has(t))return u.get(t);let n=f(await e.secretProvider.getSecret(e.secretReference));return u.set(t,n),n}};function f(e){let t=l.from(e.data).toString(`utf-8`).trim();if(!t)return{};try{return JSON.parse(t)}catch{return{apiKey:t}}}function p(e,t,n){let r=e[t];if(r==null||r===``)throw Error(n);return r}function m(e,t,n){let r=e.config?.[t];if(r==null)throw Error(n);return r}export{d as IntegrationProviderFactory};
@@ -1,2 +1 @@
1
- import{QdrantClient as e}from"@qdrant/js-client-rest";var t=class{client;createCollectionIfMissing;distance;constructor(t){this.client=t.client??new e({url:t.url,apiKey:t.apiKey,...t.clientParams}),this.createCollectionIfMissing=t.createCollectionIfMissing??!0,this.distance=t.distance??`Cosine`}async upsert(e){if(e.documents.length===0)return;let t=e.documents[0].vector.length;this.createCollectionIfMissing&&await this.ensureCollection(e.collection,t);let n=e.documents.map(e=>({id:e.id,vector:e.vector,payload:{...e.payload,...e.namespace?{namespace:e.namespace}:{},...e.expiresAt?{expiresAt:e.expiresAt.toISOString()}:{}}}));await this.client.upsert(e.collection,{wait:!0,points:n})}async search(e){return(await this.client.search(e.collection,{vector:e.vector,limit:e.topK,filter:e.filter,score_threshold:e.scoreThreshold,with_payload:!0,with_vector:!1})).map(e=>({id:String(e.id),score:e.score,payload:e.payload??void 0,namespace:typeof e.payload==`object`&&e.payload!==null?e.payload.namespace:void 0}))}async delete(e){await this.client.delete(e.collection,{wait:!0,points:e.ids})}async ensureCollection(e,t){try{await this.client.getCollection(e)}catch{await this.client.createCollection(e,{vectors:{size:t,distance:this.distance}})}}};export{t as QdrantVectorProvider};
2
- //# sourceMappingURL=qdrant-vector.js.map
1
+ import{QdrantClient as e}from"@qdrant/js-client-rest";var t=class{client;createCollectionIfMissing;distance;constructor(t){this.client=t.client??new e({url:t.url,apiKey:t.apiKey,...t.clientParams}),this.createCollectionIfMissing=t.createCollectionIfMissing??!0,this.distance=t.distance??`Cosine`}async upsert(e){if(e.documents.length===0)return;let t=e.documents[0].vector.length;this.createCollectionIfMissing&&await this.ensureCollection(e.collection,t);let n=e.documents.map(e=>({id:e.id,vector:e.vector,payload:{...e.payload,...e.namespace?{namespace:e.namespace}:{},...e.expiresAt?{expiresAt:e.expiresAt.toISOString()}:{}}}));await this.client.upsert(e.collection,{wait:!0,points:n})}async search(e){return(await this.client.search(e.collection,{vector:e.vector,limit:e.topK,filter:e.filter,score_threshold:e.scoreThreshold,with_payload:!0,with_vector:!1})).map(e=>({id:String(e.id),score:e.score,payload:e.payload??void 0,namespace:typeof e.payload==`object`&&e.payload!==null?e.payload.namespace:void 0}))}async delete(e){await this.client.delete(e.collection,{wait:!0,points:e.ids})}async ensureCollection(e,t){try{await this.client.getCollection(e)}catch{await this.client.createCollection(e,{vectors:{size:t,distance:this.distance}})}}};export{t as QdrantVectorProvider};
@@ -1,2 +1 @@
1
- import e from"stripe";var t=class{stripe;constructor(t){this.stripe=t.stripe??new e(t.apiKey,{apiVersion:`2025-10-29.clover`})}async createCustomer(e){let t=await this.stripe.customers.create({email:e.email,name:e.name,description:e.description,metadata:e.metadata});return this.toCustomer(t)}async getCustomer(e){let t=await this.stripe.customers.retrieve(e);return t.deleted?null:this.toCustomer(t)}async createPaymentIntent(e){let t=await this.stripe.paymentIntents.create({amount:e.amount.amount,currency:e.amount.currency,customer:e.customerId,description:e.description,capture_method:e.captureMethod??`automatic`,confirmation_method:e.confirmationMethod??`automatic`,automatic_payment_methods:{enabled:!0},metadata:e.metadata,return_url:e.returnUrl,statement_descriptor:e.statementDescriptor});return this.toPaymentIntent(t)}async capturePayment(e,t){let n=await this.stripe.paymentIntents.capture(e,t?.amount?{amount_to_capture:t.amount.amount}:void 0);return this.toPaymentIntent(n)}async cancelPaymentIntent(e){let t=await this.stripe.paymentIntents.cancel(e);return this.toPaymentIntent(t)}async refundPayment(e){let t=await this.stripe.refunds.create({payment_intent:e.paymentIntentId,amount:e.amount?.amount,reason:n(e.reason),metadata:e.metadata}),r=typeof t.payment_intent==`string`?t.payment_intent:t.payment_intent?.id??``;return{id:t.id,paymentIntentId:r,amount:{amount:t.amount??0,currency:t.currency?.toUpperCase()??`USD`},status:i(t.status),reason:t.reason??void 0,metadata:this.toMetadata(t.metadata),createdAt:t.created?new Date(t.created*1e3):void 0}}async listInvoices(e){let t=e?.status?.[0],n=t&&t!==`deleted`?t:void 0;return(await this.stripe.invoices.list({customer:e?.customerId,status:n,limit:e?.limit,starting_after:e?.startingAfter})).data.map(e=>this.toInvoice(e))}async listTransactions(e){return(await this.stripe.charges.list({customer:e?.customerId,payment_intent:e?.paymentIntentId,limit:e?.limit,starting_after:e?.startingAfter})).data.map(e=>({id:e.id,paymentIntentId:typeof e.payment_intent==`string`?e.payment_intent:e.payment_intent?.id,amount:{amount:e.amount,currency:e.currency?.toUpperCase()??`USD`},type:`capture`,status:a(e.status),description:e.description??void 0,createdAt:new Date(e.created*1e3),metadata:this.mergeMetadata(this.toMetadata(e.metadata),{balanceTransaction:typeof e.balance_transaction==`string`?e.balance_transaction:void 0})}))}toCustomer(e){let t=this.toMetadata(e.metadata),n=t?.updatedAt;return{id:e.id,email:e.email??void 0,name:e.name??void 0,metadata:t,createdAt:e.created?new Date(e.created*1e3):void 0,updatedAt:n?new Date(n):void 0}}toPaymentIntent(e){let t=this.toMetadata(e.metadata);return{id:e.id,amount:this.toMoney(e.amount_received??e.amount??0,e.currency),status:r(e.status),customerId:typeof e.customer==`string`?e.customer:e.customer?.id,description:e.description??void 0,clientSecret:e.client_secret??void 0,metadata:t,createdAt:new Date(e.created*1e3),updatedAt:e.canceled_at==null?new Date(e.created*1e3):new Date(e.canceled_at*1e3)}}toInvoice(e){let t=this.toMetadata(e.metadata);return{id:e.id,number:e.number??void 0,status:e.status??`draft`,amountDue:this.toMoney(e.amount_due??0,e.currency),amountPaid:this.toMoney(e.amount_paid??0,e.currency),customerId:typeof e.customer==`string`?e.customer:e.customer?.id,dueDate:e.due_date?new Date(e.due_date*1e3):void 0,hostedInvoiceUrl:e.hosted_invoice_url??void 0,metadata:t,createdAt:e.created?new Date(e.created*1e3):void 0,updatedAt:e.status_transitions?.finalized_at?new Date(e.status_transitions.finalized_at*1e3):void 0}}toMoney(e,t){return{amount:e,currency:t?.toUpperCase()??`USD`}}toMetadata(e){if(!e)return;let t=Object.entries(e).filter(e=>typeof e[1]==`string`);if(t.length!==0)return Object.fromEntries(t)}mergeMetadata(e,t){let n=Object.entries(t).filter(e=>typeof e[1]==`string`);if(!(!e&&n.length===0))return{...e??{},...Object.fromEntries(n)}}};function n(e){if(e)return[`duplicate`,`fraudulent`,`requested_by_customer`].includes(e)?e:void 0}function r(e){switch(e){case`requires_payment_method`:return`requires_payment_method`;case`requires_confirmation`:return`requires_confirmation`;case`requires_action`:case`requires_capture`:return`requires_action`;case`processing`:return`processing`;case`succeeded`:return`succeeded`;case`canceled`:return`canceled`;default:return`requires_payment_method`}}function i(e){switch(e){case`pending`:case`succeeded`:case`failed`:case`canceled`:return e;default:return`pending`}}function a(e){switch(e){case`pending`:case`processing`:return`pending`;case`succeeded`:return`succeeded`;case`failed`:case`canceled`:return`failed`;default:return`pending`}}export{t as StripePaymentsProvider};
2
- //# sourceMappingURL=stripe-payments.js.map
1
+ import e from"stripe";var t=class{stripe;constructor(t){this.stripe=t.stripe??new e(t.apiKey,{apiVersion:`2025-10-29.clover`})}async createCustomer(e){let t=await this.stripe.customers.create({email:e.email,name:e.name,description:e.description,metadata:e.metadata});return this.toCustomer(t)}async getCustomer(e){let t=await this.stripe.customers.retrieve(e);return t.deleted?null:this.toCustomer(t)}async createPaymentIntent(e){let t=await this.stripe.paymentIntents.create({amount:e.amount.amount,currency:e.amount.currency,customer:e.customerId,description:e.description,capture_method:e.captureMethod??`automatic`,confirmation_method:e.confirmationMethod??`automatic`,automatic_payment_methods:{enabled:!0},metadata:e.metadata,return_url:e.returnUrl,statement_descriptor:e.statementDescriptor});return this.toPaymentIntent(t)}async capturePayment(e,t){let n=await this.stripe.paymentIntents.capture(e,t?.amount?{amount_to_capture:t.amount.amount}:void 0);return this.toPaymentIntent(n)}async cancelPaymentIntent(e){let t=await this.stripe.paymentIntents.cancel(e);return this.toPaymentIntent(t)}async refundPayment(e){let t=await this.stripe.refunds.create({payment_intent:e.paymentIntentId,amount:e.amount?.amount,reason:n(e.reason),metadata:e.metadata}),r=typeof t.payment_intent==`string`?t.payment_intent:t.payment_intent?.id??``;return{id:t.id,paymentIntentId:r,amount:{amount:t.amount??0,currency:t.currency?.toUpperCase()??`USD`},status:i(t.status),reason:t.reason??void 0,metadata:this.toMetadata(t.metadata),createdAt:t.created?new Date(t.created*1e3):void 0}}async listInvoices(e){let t=e?.status?.[0],n=t&&t!==`deleted`?t:void 0;return(await this.stripe.invoices.list({customer:e?.customerId,status:n,limit:e?.limit,starting_after:e?.startingAfter})).data.map(e=>this.toInvoice(e))}async listTransactions(e){return(await this.stripe.charges.list({customer:e?.customerId,payment_intent:e?.paymentIntentId,limit:e?.limit,starting_after:e?.startingAfter})).data.map(e=>({id:e.id,paymentIntentId:typeof e.payment_intent==`string`?e.payment_intent:e.payment_intent?.id,amount:{amount:e.amount,currency:e.currency?.toUpperCase()??`USD`},type:`capture`,status:a(e.status),description:e.description??void 0,createdAt:new Date(e.created*1e3),metadata:this.mergeMetadata(this.toMetadata(e.metadata),{balanceTransaction:typeof e.balance_transaction==`string`?e.balance_transaction:void 0})}))}toCustomer(e){let t=this.toMetadata(e.metadata),n=t?.updatedAt;return{id:e.id,email:e.email??void 0,name:e.name??void 0,metadata:t,createdAt:e.created?new Date(e.created*1e3):void 0,updatedAt:n?new Date(n):void 0}}toPaymentIntent(e){let t=this.toMetadata(e.metadata);return{id:e.id,amount:this.toMoney(e.amount_received??e.amount??0,e.currency),status:r(e.status),customerId:typeof e.customer==`string`?e.customer:e.customer?.id,description:e.description??void 0,clientSecret:e.client_secret??void 0,metadata:t,createdAt:new Date(e.created*1e3),updatedAt:e.canceled_at==null?new Date(e.created*1e3):new Date(e.canceled_at*1e3)}}toInvoice(e){let t=this.toMetadata(e.metadata);return{id:e.id,number:e.number??void 0,status:e.status??`draft`,amountDue:this.toMoney(e.amount_due??0,e.currency),amountPaid:this.toMoney(e.amount_paid??0,e.currency),customerId:typeof e.customer==`string`?e.customer:e.customer?.id,dueDate:e.due_date?new Date(e.due_date*1e3):void 0,hostedInvoiceUrl:e.hosted_invoice_url??void 0,metadata:t,createdAt:e.created?new Date(e.created*1e3):void 0,updatedAt:e.status_transitions?.finalized_at?new Date(e.status_transitions.finalized_at*1e3):void 0}}toMoney(e,t){return{amount:e,currency:t?.toUpperCase()??`USD`}}toMetadata(e){if(!e)return;let t=Object.entries(e).filter(e=>typeof e[1]==`string`);if(t.length!==0)return Object.fromEntries(t)}mergeMetadata(e,t){let n=Object.entries(t).filter(e=>typeof e[1]==`string`);if(!(!e&&n.length===0))return{...e??{},...Object.fromEntries(n)}}};function n(e){if(e)return[`duplicate`,`fraudulent`,`requested_by_customer`].includes(e)?e:void 0}function r(e){switch(e){case`requires_payment_method`:return`requires_payment_method`;case`requires_confirmation`:return`requires_confirmation`;case`requires_action`:case`requires_capture`:return`requires_action`;case`processing`:return`processing`;case`succeeded`:return`succeeded`;case`canceled`:return`canceled`;default:return`requires_payment_method`}}function i(e){switch(e){case`pending`:case`succeeded`:case`failed`:case`canceled`:return e;default:return`pending`}}function a(e){switch(e){case`pending`:case`processing`:return`pending`;case`succeeded`:return`succeeded`;case`failed`:case`canceled`:return`failed`;default:return`pending`}}export{t as StripePaymentsProvider};
@@ -1,2 +1 @@
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};
2
- //# sourceMappingURL=twilio-sms.js.map
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 +1 @@
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{MistralLLMProvider as b}from"./impls/mistral-llm.js";import{MistralEmbeddingProvider as x}from"./impls/mistral-embedding.js";import{QdrantVectorProvider as S}from"./impls/qdrant-vector.js";import{GmailInboundProvider as C}from"./impls/gmail-inbound.js";import{GmailOutboundProvider as w}from"./impls/gmail-outbound.js";import{GoogleCalendarProvider as T}from"./impls/google-calendar.js";import{ElevenLabsVoiceProvider as E}from"./impls/elevenlabs-voice.js";import{GoogleCloudStorageProvider as D}from"./impls/gcs-storage.js";import{StripePaymentsProvider as O}from"./impls/stripe-payments.js";import{PostmarkEmailProvider as k}from"./impls/postmark-email.js";import{TwilioSmsProvider as A}from"./impls/twilio-sms.js";import{PowensClient as j,PowensClientError as M}from"./impls/powens-client.js";import{PowensOpenBankingProvider as N}from"./impls/powens-openbanking.js";import{IntegrationProviderFactory as P}from"./impls/provider-factory.js";import"./impls/index.js";export{E as ElevenLabsVoiceProvider,C as GmailInboundProvider,w as GmailOutboundProvider,T as GoogleCalendarProvider,D as GoogleCloudStorageProvider,P as IntegrationProviderFactory,x as MistralEmbeddingProvider,b as MistralLLMProvider,k as PostmarkEmailProvider,j as PowensClient,M as PowensClientError,N as PowensOpenBankingProvider,S as QdrantVectorProvider,O as StripePaymentsProvider,A as TwilioSmsProvider,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 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,2 +1 @@
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};
2
- //# sourceMappingURL=mistral.js.map
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,2 +1 @@
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};
2
- //# sourceMappingURL=postmark.js.map
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,2 +1 @@
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};
2
- //# sourceMappingURL=powens.js.map
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,2 +1 @@
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};
2
- //# sourceMappingURL=qdrant.js.map
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};
@@ -0,0 +1 @@
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,2 +1 @@
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};
2
- //# sourceMappingURL=stripe.js.map
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,2 +1 @@
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};
2
- //# sourceMappingURL=twilio-sms.js.map
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};