@lssm/lib.contracts 0.0.0-canary-20251217080011 → 0.0.0-canary-20251219202229

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 (835) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app-config/app-config.feature.d.ts +2 -1
  3. package/dist/app-config/app-config.feature.d.ts.map +1 -0
  4. package/dist/app-config/app-config.feature.js +2 -1
  5. package/dist/app-config/app-config.feature.js.map +1 -0
  6. package/dist/app-config/branding.d.ts +2 -1
  7. package/dist/app-config/branding.d.ts.map +1 -0
  8. package/dist/app-config/contracts.d.ts +52 -51
  9. package/dist/app-config/contracts.d.ts.map +1 -0
  10. package/dist/app-config/contracts.js +56 -57
  11. package/dist/app-config/contracts.js.map +1 -0
  12. package/dist/app-config/docs/app-config.docblock.d.ts +2 -1
  13. package/dist/app-config/docs/app-config.docblock.d.ts.map +1 -0
  14. package/dist/app-config/docs/app-config.docblock.js +2 -1
  15. package/dist/app-config/docs/app-config.docblock.js.map +1 -0
  16. package/dist/app-config/events.d.ts +29 -28
  17. package/dist/app-config/events.d.ts.map +1 -0
  18. package/dist/app-config/events.js +33 -34
  19. package/dist/app-config/events.js.map +1 -0
  20. package/dist/app-config/lifecycle-contracts.d.ts +82 -81
  21. package/dist/app-config/lifecycle-contracts.d.ts.map +1 -0
  22. package/dist/app-config/lifecycle-contracts.js +68 -69
  23. package/dist/app-config/lifecycle-contracts.js.map +1 -0
  24. package/dist/app-config/lifecycle.d.ts +2 -1
  25. package/dist/app-config/lifecycle.d.ts.map +1 -0
  26. package/dist/app-config/runtime.d.ts +2 -1
  27. package/dist/app-config/runtime.d.ts.map +1 -0
  28. package/dist/app-config/runtime.js +2 -1
  29. package/dist/app-config/runtime.js.map +1 -0
  30. package/dist/app-config/spec.d.ts +2 -1
  31. package/dist/app-config/spec.d.ts.map +1 -0
  32. package/dist/app-config/spec.js +2 -1
  33. package/dist/app-config/spec.js.map +1 -0
  34. package/dist/app-config/validation.d.ts +2 -1
  35. package/dist/app-config/validation.d.ts.map +1 -0
  36. package/dist/app-config/validation.js +2 -1
  37. package/dist/app-config/validation.js.map +1 -0
  38. package/dist/capabilities/docs/capabilities.docblock.d.ts +2 -1
  39. package/dist/capabilities/docs/capabilities.docblock.d.ts.map +1 -0
  40. package/dist/capabilities/docs/capabilities.docblock.js +2 -1
  41. package/dist/capabilities/docs/capabilities.docblock.js.map +1 -0
  42. package/dist/capabilities/openbanking.d.ts +2 -1
  43. package/dist/capabilities/openbanking.d.ts.map +1 -0
  44. package/dist/capabilities/openbanking.js +2 -1
  45. package/dist/capabilities/openbanking.js.map +1 -0
  46. package/dist/capabilities.d.ts +2 -1
  47. package/dist/capabilities.d.ts.map +1 -0
  48. package/dist/capabilities.js +2 -1
  49. package/dist/capabilities.js.map +1 -0
  50. package/dist/client/react/drivers/rn-reusables.d.ts +2 -1
  51. package/dist/client/react/drivers/rn-reusables.d.ts.map +1 -0
  52. package/dist/client/react/drivers/rn-reusables.js +2 -1
  53. package/dist/client/react/drivers/rn-reusables.js.map +1 -0
  54. package/dist/client/react/drivers/shadcn.d.ts +2 -1
  55. package/dist/client/react/drivers/shadcn.d.ts.map +1 -0
  56. package/dist/client/react/drivers/shadcn.js +2 -1
  57. package/dist/client/react/drivers/shadcn.js.map +1 -0
  58. package/dist/client/react/feature-render.d.ts +2 -1
  59. package/dist/client/react/feature-render.d.ts.map +1 -0
  60. package/dist/client/react/feature-render.js +2 -1
  61. package/dist/client/react/feature-render.js.map +1 -0
  62. package/dist/client/react/form-render.d.ts +8 -7
  63. package/dist/client/react/form-render.d.ts.map +1 -0
  64. package/dist/client/react/form-render.js +17 -16
  65. package/dist/client/react/form-render.js.map +1 -0
  66. package/dist/contract-registry/schemas.d.ts +2 -1
  67. package/dist/contract-registry/schemas.d.ts.map +1 -0
  68. package/dist/contract-registry/schemas.js +2 -1
  69. package/dist/contract-registry/schemas.js.map +1 -0
  70. package/dist/contract-registry/types.d.ts +2 -1
  71. package/dist/contract-registry/types.d.ts.map +1 -0
  72. package/dist/contracts-adapter-hydration.d.ts +2 -1
  73. package/dist/contracts-adapter-hydration.d.ts.map +1 -0
  74. package/dist/contracts-adapter-hydration.js +2 -1
  75. package/dist/contracts-adapter-hydration.js.map +1 -0
  76. package/dist/contracts-adapter-input.d.ts +2 -1
  77. package/dist/contracts-adapter-input.d.ts.map +1 -0
  78. package/dist/contracts-adapter-input.js +2 -1
  79. package/dist/contracts-adapter-input.js.map +1 -0
  80. package/dist/data-views/docs/data-views.docblock.d.ts +2 -1
  81. package/dist/data-views/docs/data-views.docblock.d.ts.map +1 -0
  82. package/dist/data-views/docs/data-views.docblock.js +2 -1
  83. package/dist/data-views/docs/data-views.docblock.js.map +1 -0
  84. package/dist/data-views/query-generator.d.ts +2 -1
  85. package/dist/data-views/query-generator.d.ts.map +1 -0
  86. package/dist/data-views/query-generator.js +2 -1
  87. package/dist/data-views/query-generator.js.map +1 -0
  88. package/dist/data-views/runtime.d.ts +2 -1
  89. package/dist/data-views/runtime.d.ts.map +1 -0
  90. package/dist/data-views/runtime.js +2 -1
  91. package/dist/data-views/runtime.js.map +1 -0
  92. package/dist/data-views.d.ts +2 -1
  93. package/dist/data-views.d.ts.map +1 -0
  94. package/dist/data-views.js +2 -1
  95. package/dist/data-views.js.map +1 -0
  96. package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts +2 -1
  97. package/dist/docs/accessibility_wcag_compliance_specs.docblock.d.ts.map +1 -0
  98. package/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  99. package/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  100. package/dist/docs/index.js +0 -6
  101. package/dist/docs/meta.docs.d.ts +2 -1
  102. package/dist/docs/meta.docs.d.ts.map +1 -0
  103. package/dist/docs/meta.docs.js +5 -1
  104. package/dist/docs/meta.docs.js.map +1 -0
  105. package/dist/docs/presentations.d.ts +2 -1
  106. package/dist/docs/presentations.d.ts.map +1 -0
  107. package/dist/docs/presentations.js +2 -1
  108. package/dist/docs/presentations.js.map +1 -0
  109. package/dist/docs/registry.d.ts +2 -1
  110. package/dist/docs/registry.d.ts.map +1 -0
  111. package/dist/docs/registry.js +2 -1
  112. package/dist/docs/registry.js.map +1 -0
  113. package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts +2 -1
  114. package/dist/docs/tech/auth/better-auth-nextjs.docblock.d.ts.map +1 -0
  115. package/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  116. package/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  117. package/dist/docs/tech/contracts/README.docblock.d.ts +2 -1
  118. package/dist/docs/tech/contracts/README.docblock.d.ts.map +1 -0
  119. package/dist/docs/tech/contracts/README.docblock.js +2 -1
  120. package/dist/docs/tech/contracts/README.docblock.js.map +1 -0
  121. package/dist/docs/tech/contracts/create-subscription.docblock.d.ts +2 -1
  122. package/dist/docs/tech/contracts/create-subscription.docblock.d.ts.map +1 -0
  123. package/dist/docs/tech/contracts/create-subscription.docblock.js +2 -1
  124. package/dist/docs/tech/contracts/create-subscription.docblock.js.map +1 -0
  125. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts +2 -1
  126. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.d.ts.map +1 -0
  127. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js +2 -1
  128. package/dist/docs/tech/contracts/graphql-typed-outputs.docblock.js.map +1 -0
  129. package/dist/docs/tech/contracts/migrations.docblock.d.ts +2 -1
  130. package/dist/docs/tech/contracts/migrations.docblock.d.ts.map +1 -0
  131. package/dist/docs/tech/contracts/migrations.docblock.js +2 -1
  132. package/dist/docs/tech/contracts/migrations.docblock.js.map +1 -0
  133. package/dist/docs/tech/contracts/openapi-export.docblock.d.ts +2 -1
  134. package/dist/docs/tech/contracts/openapi-export.docblock.d.ts.map +1 -0
  135. package/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  136. package/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  137. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts +2 -1
  138. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.d.ts.map +1 -0
  139. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js +2 -1
  140. package/dist/docs/tech/contracts/ops-to-presentation-linking.docblock.js.map +1 -0
  141. package/dist/docs/tech/contracts/overlays.docblock.d.ts +2 -1
  142. package/dist/docs/tech/contracts/overlays.docblock.d.ts.map +1 -0
  143. package/dist/docs/tech/contracts/overlays.docblock.js +2 -1
  144. package/dist/docs/tech/contracts/overlays.docblock.js.map +1 -0
  145. package/dist/docs/tech/contracts/tests.docblock.d.ts +2 -1
  146. package/dist/docs/tech/contracts/tests.docblock.d.ts.map +1 -0
  147. package/dist/docs/tech/contracts/tests.docblock.js +2 -1
  148. package/dist/docs/tech/contracts/tests.docblock.js.map +1 -0
  149. package/dist/docs/tech/contracts/themes.docblock.d.ts +2 -1
  150. package/dist/docs/tech/contracts/themes.docblock.d.ts.map +1 -0
  151. package/dist/docs/tech/contracts/themes.docblock.js +2 -1
  152. package/dist/docs/tech/contracts/themes.docblock.js.map +1 -0
  153. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts +2 -1
  154. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.d.ts.map +1 -0
  155. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js +2 -1
  156. package/dist/docs/tech/contracts/vertical-pocket-family-office.docblock.js.map +1 -0
  157. package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts +2 -1
  158. package/dist/docs/tech/lifecycle-stage-system.docblock.d.ts.map +1 -0
  159. package/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  160. package/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  161. package/dist/docs/tech/llm/llm-integration.docblock.d.ts +2 -1
  162. package/dist/docs/tech/llm/llm-integration.docblock.d.ts.map +1 -0
  163. package/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  164. package/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  165. package/dist/docs/tech/mcp-endpoints.docblock.d.ts +2 -1
  166. package/dist/docs/tech/mcp-endpoints.docblock.d.ts.map +1 -0
  167. package/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  168. package/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  169. package/dist/docs/tech/presentation-runtime.docblock.d.ts +2 -1
  170. package/dist/docs/tech/presentation-runtime.docblock.d.ts.map +1 -0
  171. package/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  172. package/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  173. package/dist/docs/tech/schema/README.docblock.d.ts +2 -1
  174. package/dist/docs/tech/schema/README.docblock.d.ts.map +1 -0
  175. package/dist/docs/tech/schema/README.docblock.js +2 -1
  176. package/dist/docs/tech/schema/README.docblock.js.map +1 -0
  177. package/dist/docs/tech/studio/learning-events.docblock.d.ts +2 -1
  178. package/dist/docs/tech/studio/learning-events.docblock.d.ts.map +1 -0
  179. package/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  180. package/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  181. package/dist/docs/tech/studio/learning-journeys.docblock.d.ts +2 -1
  182. package/dist/docs/tech/studio/learning-journeys.docblock.d.ts.map +1 -0
  183. package/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  184. package/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  185. package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts +2 -1
  186. package/dist/docs/tech/studio/platform-admin-panel.docblock.d.ts.map +1 -0
  187. package/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  188. package/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  189. package/dist/docs/tech/studio/project-access-teams.docblock.d.ts +2 -1
  190. package/dist/docs/tech/studio/project-access-teams.docblock.d.ts.map +1 -0
  191. package/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  192. package/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  193. package/dist/docs/tech/studio/project-routing.docblock.d.ts +2 -1
  194. package/dist/docs/tech/studio/project-routing.docblock.d.ts.map +1 -0
  195. package/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  196. package/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  197. package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts +2 -1
  198. package/dist/docs/tech/studio/sandbox-unlogged.docblock.d.ts.map +1 -0
  199. package/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  200. package/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  201. package/dist/docs/tech/studio/team-invitations.docblock.d.ts +2 -1
  202. package/dist/docs/tech/studio/team-invitations.docblock.d.ts.map +1 -0
  203. package/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  204. package/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  205. package/dist/docs/tech/studio/workspace-ops.docblock.d.ts +2 -1
  206. package/dist/docs/tech/studio/workspace-ops.docblock.d.ts.map +1 -0
  207. package/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  208. package/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  209. package/dist/docs/tech/studio/workspaces.docblock.d.ts +2 -1
  210. package/dist/docs/tech/studio/workspaces.docblock.d.ts.map +1 -0
  211. package/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  212. package/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  213. package/dist/docs/tech/telemetry-ingest.docblock.d.ts +2 -1
  214. package/dist/docs/tech/telemetry-ingest.docblock.d.ts.map +1 -0
  215. package/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  216. package/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  217. package/dist/docs/tech/templates/runtime.docblock.d.ts +2 -1
  218. package/dist/docs/tech/templates/runtime.docblock.d.ts.map +1 -0
  219. package/dist/docs/tech/templates/runtime.docblock.js +2 -1
  220. package/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  221. package/dist/docs/tech/vscode-extension.docblock.d.ts +2 -1
  222. package/dist/docs/tech/vscode-extension.docblock.d.ts.map +1 -0
  223. package/dist/docs/tech/vscode-extension.docblock.js +2 -1
  224. package/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  225. package/dist/docs/tech/workflows/overview.docblock.d.ts +2 -1
  226. package/dist/docs/tech/workflows/overview.docblock.d.ts.map +1 -0
  227. package/dist/docs/tech/workflows/overview.docblock.js +2 -1
  228. package/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  229. package/dist/docs/tech-contracts.docs.d.ts +2 -1
  230. package/dist/docs/tech-contracts.docs.d.ts.map +1 -0
  231. package/dist/docs/tech-contracts.docs.js +5 -1
  232. package/dist/docs/tech-contracts.docs.js.map +1 -0
  233. package/dist/docs/types.d.ts +2 -1
  234. package/dist/docs/types.d.ts.map +1 -0
  235. package/dist/events.d.ts +2 -1
  236. package/dist/events.d.ts.map +1 -0
  237. package/dist/events.js +2 -1
  238. package/dist/events.js.map +1 -0
  239. package/dist/experiments/docs/experiments.docblock.d.ts +2 -1
  240. package/dist/experiments/docs/experiments.docblock.d.ts.map +1 -0
  241. package/dist/experiments/docs/experiments.docblock.js +2 -1
  242. package/dist/experiments/docs/experiments.docblock.js.map +1 -0
  243. package/dist/experiments/evaluator.d.ts +2 -1
  244. package/dist/experiments/evaluator.d.ts.map +1 -0
  245. package/dist/experiments/evaluator.js +2 -1
  246. package/dist/experiments/evaluator.js.map +1 -0
  247. package/dist/experiments/spec-resolver.d.ts +2 -1
  248. package/dist/experiments/spec-resolver.d.ts.map +1 -0
  249. package/dist/experiments/spec.d.ts +2 -1
  250. package/dist/experiments/spec.d.ts.map +1 -0
  251. package/dist/experiments/spec.js +2 -1
  252. package/dist/experiments/spec.js.map +1 -0
  253. package/dist/features.d.ts +2 -1
  254. package/dist/features.d.ts.map +1 -0
  255. package/dist/features.js +2 -1
  256. package/dist/features.js.map +1 -0
  257. package/dist/forms/docs/forms.docblock.d.ts +2 -1
  258. package/dist/forms/docs/forms.docblock.d.ts.map +1 -0
  259. package/dist/forms/docs/forms.docblock.js +2 -1
  260. package/dist/forms/docs/forms.docblock.js.map +1 -0
  261. package/dist/forms.d.ts +2 -1
  262. package/dist/forms.d.ts.map +1 -0
  263. package/dist/forms.js +2 -1
  264. package/dist/forms.js.map +1 -0
  265. package/dist/index.js +2 -3
  266. package/dist/install.d.ts +2 -1
  267. package/dist/install.d.ts.map +1 -0
  268. package/dist/install.js +2 -1
  269. package/dist/install.js.map +1 -0
  270. package/dist/integrations/binding.d.ts +2 -1
  271. package/dist/integrations/binding.d.ts.map +1 -0
  272. package/dist/integrations/connection.d.ts +2 -1
  273. package/dist/integrations/connection.d.ts.map +1 -0
  274. package/dist/integrations/contracts.d.ts +104 -103
  275. package/dist/integrations/contracts.d.ts.map +1 -0
  276. package/dist/integrations/contracts.js +65 -66
  277. package/dist/integrations/contracts.js.map +1 -0
  278. package/dist/integrations/docs/integrations.docblock.d.ts +2 -1
  279. package/dist/integrations/docs/integrations.docblock.d.ts.map +1 -0
  280. package/dist/integrations/docs/integrations.docblock.js +2 -1
  281. package/dist/integrations/docs/integrations.docblock.js.map +1 -0
  282. package/dist/integrations/health.d.ts +2 -1
  283. package/dist/integrations/health.d.ts.map +1 -0
  284. package/dist/integrations/health.js +2 -1
  285. package/dist/integrations/health.js.map +1 -0
  286. package/dist/integrations/openbanking/contracts/accounts.d.ts +68 -67
  287. package/dist/integrations/openbanking/contracts/accounts.d.ts.map +1 -0
  288. package/dist/integrations/openbanking/contracts/accounts.js +31 -32
  289. package/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  290. package/dist/integrations/openbanking/contracts/balances.d.ts +2 -1
  291. package/dist/integrations/openbanking/contracts/balances.d.ts.map +1 -0
  292. package/dist/integrations/openbanking/contracts/balances.js +18 -19
  293. package/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  294. package/dist/integrations/openbanking/contracts/index.d.ts +2 -1
  295. package/dist/integrations/openbanking/contracts/index.d.ts.map +1 -0
  296. package/dist/integrations/openbanking/contracts/index.js +2 -1
  297. package/dist/integrations/openbanking/contracts/index.js.map +1 -0
  298. package/dist/integrations/openbanking/contracts/transactions.d.ts +50 -49
  299. package/dist/integrations/openbanking/contracts/transactions.d.ts.map +1 -0
  300. package/dist/integrations/openbanking/contracts/transactions.js +32 -33
  301. package/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  302. package/dist/integrations/openbanking/guards.d.ts +2 -1
  303. package/dist/integrations/openbanking/guards.d.ts.map +1 -0
  304. package/dist/integrations/openbanking/guards.js +2 -1
  305. package/dist/integrations/openbanking/guards.js.map +1 -0
  306. package/dist/integrations/openbanking/models.d.ts +2 -1
  307. package/dist/integrations/openbanking/models.d.ts.map +1 -0
  308. package/dist/integrations/openbanking/models.js +60 -61
  309. package/dist/integrations/openbanking/models.js.map +1 -0
  310. package/dist/integrations/openbanking/openbanking.feature.d.ts +2 -1
  311. package/dist/integrations/openbanking/openbanking.feature.d.ts.map +1 -0
  312. package/dist/integrations/openbanking/openbanking.feature.js +2 -1
  313. package/dist/integrations/openbanking/openbanking.feature.js.map +1 -0
  314. package/dist/integrations/openbanking/telemetry.d.ts +2 -1
  315. package/dist/integrations/openbanking/telemetry.d.ts.map +1 -0
  316. package/dist/integrations/openbanking/telemetry.js +2 -1
  317. package/dist/integrations/openbanking/telemetry.js.map +1 -0
  318. package/dist/integrations/providers/calendar.d.ts +2 -1
  319. package/dist/integrations/providers/calendar.d.ts.map +1 -0
  320. package/dist/integrations/providers/elevenlabs.d.ts +2 -1
  321. package/dist/integrations/providers/elevenlabs.d.ts.map +1 -0
  322. package/dist/integrations/providers/elevenlabs.js +2 -1
  323. package/dist/integrations/providers/elevenlabs.js.map +1 -0
  324. package/dist/integrations/providers/email.d.ts +2 -1
  325. package/dist/integrations/providers/email.d.ts.map +1 -0
  326. package/dist/integrations/providers/embedding.d.ts +2 -1
  327. package/dist/integrations/providers/embedding.d.ts.map +1 -0
  328. package/dist/integrations/providers/gcs-storage.d.ts +2 -1
  329. package/dist/integrations/providers/gcs-storage.d.ts.map +1 -0
  330. package/dist/integrations/providers/gcs-storage.js +2 -1
  331. package/dist/integrations/providers/gcs-storage.js.map +1 -0
  332. package/dist/integrations/providers/gmail.d.ts +2 -1
  333. package/dist/integrations/providers/gmail.d.ts.map +1 -0
  334. package/dist/integrations/providers/gmail.js +2 -1
  335. package/dist/integrations/providers/gmail.js.map +1 -0
  336. package/dist/integrations/providers/google-calendar.d.ts +2 -1
  337. package/dist/integrations/providers/google-calendar.d.ts.map +1 -0
  338. package/dist/integrations/providers/google-calendar.js +2 -1
  339. package/dist/integrations/providers/google-calendar.js.map +1 -0
  340. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts +2 -1
  341. package/dist/integrations/providers/impls/elevenlabs-voice.d.ts.map +1 -0
  342. package/dist/integrations/providers/impls/elevenlabs-voice.js +2 -1
  343. package/dist/integrations/providers/impls/elevenlabs-voice.js.map +1 -0
  344. package/dist/integrations/providers/impls/gcs-storage.d.ts +2 -1
  345. package/dist/integrations/providers/impls/gcs-storage.d.ts.map +1 -0
  346. package/dist/integrations/providers/impls/gcs-storage.js +2 -1
  347. package/dist/integrations/providers/impls/gcs-storage.js.map +1 -0
  348. package/dist/integrations/providers/impls/gmail-inbound.d.ts +2 -1
  349. package/dist/integrations/providers/impls/gmail-inbound.d.ts.map +1 -0
  350. package/dist/integrations/providers/impls/gmail-inbound.js +2 -1
  351. package/dist/integrations/providers/impls/gmail-inbound.js.map +1 -0
  352. package/dist/integrations/providers/impls/gmail-outbound.d.ts +2 -1
  353. package/dist/integrations/providers/impls/gmail-outbound.d.ts.map +1 -0
  354. package/dist/integrations/providers/impls/gmail-outbound.js +2 -1
  355. package/dist/integrations/providers/impls/gmail-outbound.js.map +1 -0
  356. package/dist/integrations/providers/impls/google-calendar.d.ts +2 -1
  357. package/dist/integrations/providers/impls/google-calendar.d.ts.map +1 -0
  358. package/dist/integrations/providers/impls/google-calendar.js +2 -1
  359. package/dist/integrations/providers/impls/google-calendar.js.map +1 -0
  360. package/dist/integrations/providers/impls/mistral-embedding.d.ts +2 -1
  361. package/dist/integrations/providers/impls/mistral-embedding.d.ts.map +1 -0
  362. package/dist/integrations/providers/impls/mistral-embedding.js +2 -1
  363. package/dist/integrations/providers/impls/mistral-embedding.js.map +1 -0
  364. package/dist/integrations/providers/impls/mistral-llm.d.ts +2 -1
  365. package/dist/integrations/providers/impls/mistral-llm.d.ts.map +1 -0
  366. package/dist/integrations/providers/impls/mistral-llm.js +2 -1
  367. package/dist/integrations/providers/impls/mistral-llm.js.map +1 -0
  368. package/dist/integrations/providers/impls/postmark-email.d.ts +2 -1
  369. package/dist/integrations/providers/impls/postmark-email.d.ts.map +1 -0
  370. package/dist/integrations/providers/impls/postmark-email.js +2 -1
  371. package/dist/integrations/providers/impls/postmark-email.js.map +1 -0
  372. package/dist/integrations/providers/impls/powens-client.d.ts +2 -1
  373. package/dist/integrations/providers/impls/powens-client.d.ts.map +1 -0
  374. package/dist/integrations/providers/impls/powens-client.js +2 -1
  375. package/dist/integrations/providers/impls/powens-client.js.map +1 -0
  376. package/dist/integrations/providers/impls/powens-openbanking.d.ts +2 -1
  377. package/dist/integrations/providers/impls/powens-openbanking.d.ts.map +1 -0
  378. package/dist/integrations/providers/impls/powens-openbanking.js +2 -1
  379. package/dist/integrations/providers/impls/powens-openbanking.js.map +1 -0
  380. package/dist/integrations/providers/impls/provider-factory.d.ts +2 -1
  381. package/dist/integrations/providers/impls/provider-factory.d.ts.map +1 -0
  382. package/dist/integrations/providers/impls/provider-factory.js +2 -1
  383. package/dist/integrations/providers/impls/provider-factory.js.map +1 -0
  384. package/dist/integrations/providers/impls/qdrant-vector.d.ts +2 -1
  385. package/dist/integrations/providers/impls/qdrant-vector.d.ts.map +1 -0
  386. package/dist/integrations/providers/impls/qdrant-vector.js +2 -1
  387. package/dist/integrations/providers/impls/qdrant-vector.js.map +1 -0
  388. package/dist/integrations/providers/impls/stripe-payments.d.ts +2 -1
  389. package/dist/integrations/providers/impls/stripe-payments.d.ts.map +1 -0
  390. package/dist/integrations/providers/impls/stripe-payments.js +2 -1
  391. package/dist/integrations/providers/impls/stripe-payments.js.map +1 -0
  392. package/dist/integrations/providers/impls/twilio-sms.d.ts +2 -1
  393. package/dist/integrations/providers/impls/twilio-sms.d.ts.map +1 -0
  394. package/dist/integrations/providers/impls/twilio-sms.js +2 -1
  395. package/dist/integrations/providers/impls/twilio-sms.js.map +1 -0
  396. package/dist/integrations/providers/llm.d.ts +2 -1
  397. package/dist/integrations/providers/llm.d.ts.map +1 -0
  398. package/dist/integrations/providers/mistral.d.ts +2 -1
  399. package/dist/integrations/providers/mistral.d.ts.map +1 -0
  400. package/dist/integrations/providers/mistral.js +2 -1
  401. package/dist/integrations/providers/mistral.js.map +1 -0
  402. package/dist/integrations/providers/openbanking.d.ts +2 -1
  403. package/dist/integrations/providers/openbanking.d.ts.map +1 -0
  404. package/dist/integrations/providers/payments.d.ts +2 -1
  405. package/dist/integrations/providers/payments.d.ts.map +1 -0
  406. package/dist/integrations/providers/postmark.d.ts +2 -1
  407. package/dist/integrations/providers/postmark.d.ts.map +1 -0
  408. package/dist/integrations/providers/postmark.js +2 -1
  409. package/dist/integrations/providers/postmark.js.map +1 -0
  410. package/dist/integrations/providers/powens.d.ts +2 -1
  411. package/dist/integrations/providers/powens.d.ts.map +1 -0
  412. package/dist/integrations/providers/powens.js +2 -1
  413. package/dist/integrations/providers/powens.js.map +1 -0
  414. package/dist/integrations/providers/qdrant.d.ts +2 -1
  415. package/dist/integrations/providers/qdrant.d.ts.map +1 -0
  416. package/dist/integrations/providers/qdrant.js +2 -1
  417. package/dist/integrations/providers/qdrant.js.map +1 -0
  418. package/dist/integrations/providers/registry.d.ts +2 -1
  419. package/dist/integrations/providers/registry.d.ts.map +1 -0
  420. package/dist/integrations/providers/registry.js +2 -1
  421. package/dist/integrations/providers/registry.js.map +1 -0
  422. package/dist/integrations/providers/sms.d.ts +2 -1
  423. package/dist/integrations/providers/sms.d.ts.map +1 -0
  424. package/dist/integrations/providers/storage.d.ts +2 -1
  425. package/dist/integrations/providers/storage.d.ts.map +1 -0
  426. package/dist/integrations/providers/stripe.d.ts +2 -1
  427. package/dist/integrations/providers/stripe.d.ts.map +1 -0
  428. package/dist/integrations/providers/stripe.js +2 -1
  429. package/dist/integrations/providers/stripe.js.map +1 -0
  430. package/dist/integrations/providers/twilio-sms.d.ts +2 -1
  431. package/dist/integrations/providers/twilio-sms.d.ts.map +1 -0
  432. package/dist/integrations/providers/twilio-sms.js +2 -1
  433. package/dist/integrations/providers/twilio-sms.js.map +1 -0
  434. package/dist/integrations/providers/vector-store.d.ts +2 -1
  435. package/dist/integrations/providers/vector-store.d.ts.map +1 -0
  436. package/dist/integrations/providers/voice.d.ts +2 -1
  437. package/dist/integrations/providers/voice.d.ts.map +1 -0
  438. package/dist/integrations/runtime.d.ts +2 -1
  439. package/dist/integrations/runtime.d.ts.map +1 -0
  440. package/dist/integrations/runtime.js +2 -1
  441. package/dist/integrations/runtime.js.map +1 -0
  442. package/dist/integrations/secrets/aws-secret-manager.d.ts +2 -1
  443. package/dist/integrations/secrets/aws-secret-manager.d.ts.map +1 -0
  444. package/dist/integrations/secrets/aws-secret-manager.js +2 -1
  445. package/dist/integrations/secrets/aws-secret-manager.js.map +1 -0
  446. package/dist/integrations/secrets/env-secret-provider.d.ts +2 -1
  447. package/dist/integrations/secrets/env-secret-provider.d.ts.map +1 -0
  448. package/dist/integrations/secrets/env-secret-provider.js +2 -1
  449. package/dist/integrations/secrets/env-secret-provider.js.map +1 -0
  450. package/dist/integrations/secrets/gcp-secret-manager.d.ts +2 -1
  451. package/dist/integrations/secrets/gcp-secret-manager.d.ts.map +1 -0
  452. package/dist/integrations/secrets/gcp-secret-manager.js +2 -1
  453. package/dist/integrations/secrets/gcp-secret-manager.js.map +1 -0
  454. package/dist/integrations/secrets/manager.d.ts +2 -1
  455. package/dist/integrations/secrets/manager.d.ts.map +1 -0
  456. package/dist/integrations/secrets/manager.js +2 -1
  457. package/dist/integrations/secrets/manager.js.map +1 -0
  458. package/dist/integrations/secrets/provider.d.ts +2 -1
  459. package/dist/integrations/secrets/provider.d.ts.map +1 -0
  460. package/dist/integrations/secrets/provider.js +2 -1
  461. package/dist/integrations/secrets/provider.js.map +1 -0
  462. package/dist/integrations/secrets/scaleway-secret-manager.d.ts +2 -1
  463. package/dist/integrations/secrets/scaleway-secret-manager.d.ts.map +1 -0
  464. package/dist/integrations/secrets/scaleway-secret-manager.js +2 -1
  465. package/dist/integrations/secrets/scaleway-secret-manager.js.map +1 -0
  466. package/dist/integrations/spec.d.ts +2 -1
  467. package/dist/integrations/spec.d.ts.map +1 -0
  468. package/dist/integrations/spec.js +2 -1
  469. package/dist/integrations/spec.js.map +1 -0
  470. package/dist/jobs/define-job.d.ts +2 -1
  471. package/dist/jobs/define-job.d.ts.map +1 -0
  472. package/dist/jobs/define-job.js +2 -1
  473. package/dist/jobs/define-job.js.map +1 -0
  474. package/dist/jobs/gcp-cloud-tasks.d.ts +2 -1
  475. package/dist/jobs/gcp-cloud-tasks.d.ts.map +1 -0
  476. package/dist/jobs/gcp-cloud-tasks.js +2 -1
  477. package/dist/jobs/gcp-cloud-tasks.js.map +1 -0
  478. package/dist/jobs/gcp-pubsub.d.ts +2 -1
  479. package/dist/jobs/gcp-pubsub.d.ts.map +1 -0
  480. package/dist/jobs/gcp-pubsub.js +2 -1
  481. package/dist/jobs/gcp-pubsub.js.map +1 -0
  482. package/dist/jobs/handlers/gmail-sync-handler.d.ts +2 -1
  483. package/dist/jobs/handlers/gmail-sync-handler.d.ts.map +1 -0
  484. package/dist/jobs/handlers/gmail-sync-handler.js +2 -1
  485. package/dist/jobs/handlers/gmail-sync-handler.js.map +1 -0
  486. package/dist/jobs/handlers/index.d.ts +2 -1
  487. package/dist/jobs/handlers/index.d.ts.map +1 -0
  488. package/dist/jobs/handlers/index.js +2 -1
  489. package/dist/jobs/handlers/index.js.map +1 -0
  490. package/dist/jobs/handlers/ping-handler.d.ts +2 -1
  491. package/dist/jobs/handlers/ping-handler.d.ts.map +1 -0
  492. package/dist/jobs/handlers/ping-handler.js +2 -1
  493. package/dist/jobs/handlers/ping-handler.js.map +1 -0
  494. package/dist/jobs/handlers/storage-document-handler.d.ts +2 -1
  495. package/dist/jobs/handlers/storage-document-handler.d.ts.map +1 -0
  496. package/dist/jobs/handlers/storage-document-handler.js +2 -1
  497. package/dist/jobs/handlers/storage-document-handler.js.map +1 -0
  498. package/dist/jobs/memory-queue.d.ts +2 -1
  499. package/dist/jobs/memory-queue.d.ts.map +1 -0
  500. package/dist/jobs/memory-queue.js +2 -1
  501. package/dist/jobs/memory-queue.js.map +1 -0
  502. package/dist/jobs/queue.d.ts +2 -1
  503. package/dist/jobs/queue.d.ts.map +1 -0
  504. package/dist/jobs/queue.js +2 -1
  505. package/dist/jobs/queue.js.map +1 -0
  506. package/dist/jobs/scaleway-sqs-queue.d.ts +2 -1
  507. package/dist/jobs/scaleway-sqs-queue.d.ts.map +1 -0
  508. package/dist/jobs/scaleway-sqs-queue.js +2 -1
  509. package/dist/jobs/scaleway-sqs-queue.js.map +1 -0
  510. package/dist/jsonschema.d.ts +5 -4
  511. package/dist/jsonschema.d.ts.map +1 -0
  512. package/dist/jsonschema.js +2 -1
  513. package/dist/jsonschema.js.map +1 -0
  514. package/dist/knowledge/binding.d.ts +2 -1
  515. package/dist/knowledge/binding.d.ts.map +1 -0
  516. package/dist/knowledge/contracts.d.ts +68 -67
  517. package/dist/knowledge/contracts.d.ts.map +1 -0
  518. package/dist/knowledge/contracts.js +44 -45
  519. package/dist/knowledge/contracts.js.map +1 -0
  520. package/dist/knowledge/docs/knowledge.docblock.d.ts +2 -1
  521. package/dist/knowledge/docs/knowledge.docblock.d.ts.map +1 -0
  522. package/dist/knowledge/docs/knowledge.docblock.js +2 -1
  523. package/dist/knowledge/docs/knowledge.docblock.js.map +1 -0
  524. package/dist/knowledge/ingestion/document-processor.d.ts +2 -1
  525. package/dist/knowledge/ingestion/document-processor.d.ts.map +1 -0
  526. package/dist/knowledge/ingestion/document-processor.js +2 -1
  527. package/dist/knowledge/ingestion/document-processor.js.map +1 -0
  528. package/dist/knowledge/ingestion/embedding-service.d.ts +2 -1
  529. package/dist/knowledge/ingestion/embedding-service.d.ts.map +1 -0
  530. package/dist/knowledge/ingestion/embedding-service.js +2 -1
  531. package/dist/knowledge/ingestion/embedding-service.js.map +1 -0
  532. package/dist/knowledge/ingestion/gmail-adapter.d.ts +2 -1
  533. package/dist/knowledge/ingestion/gmail-adapter.d.ts.map +1 -0
  534. package/dist/knowledge/ingestion/gmail-adapter.js +2 -1
  535. package/dist/knowledge/ingestion/gmail-adapter.js.map +1 -0
  536. package/dist/knowledge/ingestion/storage-adapter.d.ts +2 -1
  537. package/dist/knowledge/ingestion/storage-adapter.d.ts.map +1 -0
  538. package/dist/knowledge/ingestion/storage-adapter.js +2 -1
  539. package/dist/knowledge/ingestion/storage-adapter.js.map +1 -0
  540. package/dist/knowledge/ingestion/vector-indexer.d.ts +2 -1
  541. package/dist/knowledge/ingestion/vector-indexer.d.ts.map +1 -0
  542. package/dist/knowledge/ingestion/vector-indexer.js +2 -1
  543. package/dist/knowledge/ingestion/vector-indexer.js.map +1 -0
  544. package/dist/knowledge/query/service.d.ts +2 -1
  545. package/dist/knowledge/query/service.d.ts.map +1 -0
  546. package/dist/knowledge/query/service.js +2 -1
  547. package/dist/knowledge/query/service.js.map +1 -0
  548. package/dist/knowledge/runtime.d.ts +2 -1
  549. package/dist/knowledge/runtime.d.ts.map +1 -0
  550. package/dist/knowledge/runtime.js +2 -1
  551. package/dist/knowledge/runtime.js.map +1 -0
  552. package/dist/knowledge/source.d.ts +2 -1
  553. package/dist/knowledge/source.d.ts.map +1 -0
  554. package/dist/knowledge/spaces/email-threads.d.ts +2 -1
  555. package/dist/knowledge/spaces/email-threads.d.ts.map +1 -0
  556. package/dist/knowledge/spaces/email-threads.js +2 -1
  557. package/dist/knowledge/spaces/email-threads.js.map +1 -0
  558. package/dist/knowledge/spaces/financial-docs.d.ts +2 -1
  559. package/dist/knowledge/spaces/financial-docs.d.ts.map +1 -0
  560. package/dist/knowledge/spaces/financial-docs.js +2 -1
  561. package/dist/knowledge/spaces/financial-docs.js.map +1 -0
  562. package/dist/knowledge/spaces/financial-overview.d.ts +2 -1
  563. package/dist/knowledge/spaces/financial-overview.d.ts.map +1 -0
  564. package/dist/knowledge/spaces/financial-overview.js +2 -1
  565. package/dist/knowledge/spaces/financial-overview.js.map +1 -0
  566. package/dist/knowledge/spaces/product-canon.d.ts +2 -1
  567. package/dist/knowledge/spaces/product-canon.d.ts.map +1 -0
  568. package/dist/knowledge/spaces/product-canon.js +2 -1
  569. package/dist/knowledge/spaces/product-canon.js.map +1 -0
  570. package/dist/knowledge/spaces/support-faq.d.ts +2 -1
  571. package/dist/knowledge/spaces/support-faq.d.ts.map +1 -0
  572. package/dist/knowledge/spaces/support-faq.js +2 -1
  573. package/dist/knowledge/spaces/support-faq.js.map +1 -0
  574. package/dist/knowledge/spaces/uploaded-docs.d.ts +2 -1
  575. package/dist/knowledge/spaces/uploaded-docs.d.ts.map +1 -0
  576. package/dist/knowledge/spaces/uploaded-docs.js +2 -1
  577. package/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  578. package/dist/knowledge/spec.d.ts +2 -1
  579. package/dist/knowledge/spec.d.ts.map +1 -0
  580. package/dist/knowledge/spec.js +2 -1
  581. package/dist/knowledge/spec.js.map +1 -0
  582. package/dist/llm/exporters.d.ts +2 -1
  583. package/dist/llm/exporters.d.ts.map +1 -0
  584. package/dist/llm/exporters.js +2 -1
  585. package/dist/llm/exporters.js.map +1 -0
  586. package/dist/llm/prompts.d.ts +2 -1
  587. package/dist/llm/prompts.d.ts.map +1 -0
  588. package/dist/llm/prompts.js +2 -1
  589. package/dist/llm/prompts.js.map +1 -0
  590. package/dist/llm/types.d.ts +2 -1
  591. package/dist/llm/types.d.ts.map +1 -0
  592. package/dist/markdown.d.ts +2 -1
  593. package/dist/markdown.d.ts.map +1 -0
  594. package/dist/markdown.js +2 -1
  595. package/dist/markdown.js.map +1 -0
  596. package/dist/migrations.d.ts +2 -1
  597. package/dist/migrations.d.ts.map +1 -0
  598. package/dist/migrations.js +2 -1
  599. package/dist/migrations.js.map +1 -0
  600. package/dist/onboarding-base.d.ts +31 -30
  601. package/dist/onboarding-base.d.ts.map +1 -0
  602. package/dist/onboarding-base.js +22 -23
  603. package/dist/onboarding-base.js.map +1 -0
  604. package/dist/openapi.d.ts +2 -1
  605. package/dist/openapi.d.ts.map +1 -0
  606. package/dist/openapi.js +2 -1
  607. package/dist/openapi.js.map +1 -0
  608. package/dist/openbanking/docs/openbanking.docblock.d.ts +2 -1
  609. package/dist/openbanking/docs/openbanking.docblock.d.ts.map +1 -0
  610. package/dist/openbanking/docs/openbanking.docblock.js +2 -1
  611. package/dist/openbanking/docs/openbanking.docblock.js.map +1 -0
  612. package/dist/ownership.d.ts +6 -7
  613. package/dist/ownership.d.ts.map +1 -0
  614. package/dist/ownership.js +6 -6
  615. package/dist/ownership.js.map +1 -0
  616. package/dist/policy/docs/policy.docblock.d.ts +2 -1
  617. package/dist/policy/docs/policy.docblock.d.ts.map +1 -0
  618. package/dist/policy/docs/policy.docblock.js +2 -1
  619. package/dist/policy/docs/policy.docblock.js.map +1 -0
  620. package/dist/policy/engine.d.ts +2 -1
  621. package/dist/policy/engine.d.ts.map +1 -0
  622. package/dist/policy/engine.js +2 -1
  623. package/dist/policy/engine.js.map +1 -0
  624. package/dist/policy/opa-adapter.d.ts +2 -1
  625. package/dist/policy/opa-adapter.d.ts.map +1 -0
  626. package/dist/policy/opa-adapter.js +2 -1
  627. package/dist/policy/opa-adapter.js.map +1 -0
  628. package/dist/policy/spec.d.ts +2 -1
  629. package/dist/policy/spec.d.ts.map +1 -0
  630. package/dist/policy/spec.js +2 -1
  631. package/dist/policy/spec.js.map +1 -0
  632. package/dist/presentations/docs/presentations-conventions.docblock.d.ts +2 -1
  633. package/dist/presentations/docs/presentations-conventions.docblock.d.ts.map +1 -0
  634. package/dist/presentations/docs/presentations-conventions.docblock.js +2 -1
  635. package/dist/presentations/docs/presentations-conventions.docblock.js.map +1 -0
  636. package/dist/presentations.backcompat.d.ts +2 -1
  637. package/dist/presentations.backcompat.d.ts.map +1 -0
  638. package/dist/presentations.backcompat.js +2 -1
  639. package/dist/presentations.backcompat.js.map +1 -0
  640. package/dist/presentations.d.ts +5 -4
  641. package/dist/presentations.d.ts.map +1 -0
  642. package/dist/presentations.js +2 -1
  643. package/dist/presentations.js.map +1 -0
  644. package/dist/presentations.v2.d.ts +2 -1
  645. package/dist/presentations.v2.d.ts.map +1 -0
  646. package/dist/presentations.v2.js +2 -1
  647. package/dist/presentations.v2.js.map +1 -0
  648. package/dist/prompt.d.ts +2 -1
  649. package/dist/prompt.d.ts.map +1 -0
  650. package/dist/prompt.js +2 -1
  651. package/dist/prompt.js.map +1 -0
  652. package/dist/promptRegistry.d.ts +2 -1
  653. package/dist/promptRegistry.d.ts.map +1 -0
  654. package/dist/promptRegistry.js +2 -1
  655. package/dist/promptRegistry.js.map +1 -0
  656. package/dist/regenerator/adapters.d.ts +2 -1
  657. package/dist/regenerator/adapters.d.ts.map +1 -0
  658. package/dist/regenerator/docs/regenerator.docblock.d.ts +2 -1
  659. package/dist/regenerator/docs/regenerator.docblock.d.ts.map +1 -0
  660. package/dist/regenerator/docs/regenerator.docblock.js +2 -1
  661. package/dist/regenerator/docs/regenerator.docblock.js.map +1 -0
  662. package/dist/regenerator/executor.d.ts +2 -1
  663. package/dist/regenerator/executor.d.ts.map +1 -0
  664. package/dist/regenerator/executor.js +2 -1
  665. package/dist/regenerator/executor.js.map +1 -0
  666. package/dist/regenerator/service.d.ts +2 -1
  667. package/dist/regenerator/service.d.ts.map +1 -0
  668. package/dist/regenerator/service.js +2 -1
  669. package/dist/regenerator/service.js.map +1 -0
  670. package/dist/regenerator/sinks.d.ts +2 -1
  671. package/dist/regenerator/sinks.d.ts.map +1 -0
  672. package/dist/regenerator/sinks.js +2 -1
  673. package/dist/regenerator/sinks.js.map +1 -0
  674. package/dist/regenerator/types.d.ts +2 -1
  675. package/dist/regenerator/types.d.ts.map +1 -0
  676. package/dist/regenerator/utils.d.ts +2 -1
  677. package/dist/regenerator/utils.d.ts.map +1 -0
  678. package/dist/regenerator/utils.js +2 -1
  679. package/dist/regenerator/utils.js.map +1 -0
  680. package/dist/registry.d.ts +2 -1
  681. package/dist/registry.d.ts.map +1 -0
  682. package/dist/registry.js +2 -1
  683. package/dist/registry.js.map +1 -0
  684. package/dist/resources.d.ts +2 -1
  685. package/dist/resources.d.ts.map +1 -0
  686. package/dist/resources.js +2 -1
  687. package/dist/resources.js.map +1 -0
  688. package/dist/schema/dist/index.js +4684 -6
  689. package/dist/schema/dist/index.js.map +1 -0
  690. package/dist/schema-to-markdown.d.ts +2 -1
  691. package/dist/schema-to-markdown.d.ts.map +1 -0
  692. package/dist/schema-to-markdown.js +2 -1
  693. package/dist/schema-to-markdown.js.map +1 -0
  694. package/dist/server/graphql-pothos.d.ts +2 -1
  695. package/dist/server/graphql-pothos.d.ts.map +1 -0
  696. package/dist/server/graphql-pothos.js +2 -1
  697. package/dist/server/graphql-pothos.js.map +1 -0
  698. package/dist/server/mcp/createMcpServer.d.ts +2 -1
  699. package/dist/server/mcp/createMcpServer.d.ts.map +1 -0
  700. package/dist/server/mcp/createMcpServer.js +2 -1
  701. package/dist/server/mcp/createMcpServer.js.map +1 -0
  702. package/dist/server/mcp/mcpTypes.d.ts +2 -1
  703. package/dist/server/mcp/mcpTypes.d.ts.map +1 -0
  704. package/dist/server/mcp/registerPresentations.d.ts +2 -1
  705. package/dist/server/mcp/registerPresentations.d.ts.map +1 -0
  706. package/dist/server/mcp/registerPresentations.js +2 -1
  707. package/dist/server/mcp/registerPresentations.js.map +1 -0
  708. package/dist/server/mcp/registerPrompts.d.ts +2 -1
  709. package/dist/server/mcp/registerPrompts.d.ts.map +1 -0
  710. package/dist/server/mcp/registerPrompts.js +2 -1
  711. package/dist/server/mcp/registerPrompts.js.map +1 -0
  712. package/dist/server/mcp/registerResources.d.ts +2 -1
  713. package/dist/server/mcp/registerResources.d.ts.map +1 -0
  714. package/dist/server/mcp/registerResources.js +2 -1
  715. package/dist/server/mcp/registerResources.js.map +1 -0
  716. package/dist/server/mcp/registerTools.d.ts +2 -1
  717. package/dist/server/mcp/registerTools.d.ts.map +1 -0
  718. package/dist/server/mcp/registerTools.js +2 -1
  719. package/dist/server/mcp/registerTools.js.map +1 -0
  720. package/dist/server/rest-elysia.d.ts +2 -1
  721. package/dist/server/rest-elysia.d.ts.map +1 -0
  722. package/dist/server/rest-elysia.js +2 -1
  723. package/dist/server/rest-elysia.js.map +1 -0
  724. package/dist/server/rest-express.d.ts +2 -1
  725. package/dist/server/rest-express.d.ts.map +1 -0
  726. package/dist/server/rest-express.js +2 -1
  727. package/dist/server/rest-express.js.map +1 -0
  728. package/dist/server/rest-generic.d.ts +2 -1
  729. package/dist/server/rest-generic.d.ts.map +1 -0
  730. package/dist/server/rest-generic.js +2 -1
  731. package/dist/server/rest-generic.js.map +1 -0
  732. package/dist/server/rest-next-app.d.ts +2 -1
  733. package/dist/server/rest-next-app.d.ts.map +1 -0
  734. package/dist/server/rest-next-app.js +2 -1
  735. package/dist/server/rest-next-app.js.map +1 -0
  736. package/dist/server/rest-next-mcp.d.ts +2 -1
  737. package/dist/server/rest-next-mcp.d.ts.map +1 -0
  738. package/dist/server/rest-next-mcp.js +2 -1
  739. package/dist/server/rest-next-mcp.js.map +1 -0
  740. package/dist/server/rest-next-pages.d.ts +2 -1
  741. package/dist/server/rest-next-pages.d.ts.map +1 -0
  742. package/dist/server/rest-next-pages.js +2 -1
  743. package/dist/server/rest-next-pages.js.map +1 -0
  744. package/dist/spec.d.ts +2 -1
  745. package/dist/spec.d.ts.map +1 -0
  746. package/dist/spec.js +2 -1
  747. package/dist/spec.js.map +1 -0
  748. package/dist/telemetry/anomaly.d.ts +2 -1
  749. package/dist/telemetry/anomaly.d.ts.map +1 -0
  750. package/dist/telemetry/anomaly.js +2 -1
  751. package/dist/telemetry/anomaly.js.map +1 -0
  752. package/dist/telemetry/docs/telemetry.docblock.d.ts +2 -1
  753. package/dist/telemetry/docs/telemetry.docblock.d.ts.map +1 -0
  754. package/dist/telemetry/docs/telemetry.docblock.js +2 -1
  755. package/dist/telemetry/docs/telemetry.docblock.js.map +1 -0
  756. package/dist/telemetry/spec.d.ts +2 -1
  757. package/dist/telemetry/spec.d.ts.map +1 -0
  758. package/dist/telemetry/spec.js +2 -1
  759. package/dist/telemetry/spec.js.map +1 -0
  760. package/dist/telemetry/tracker.d.ts +2 -1
  761. package/dist/telemetry/tracker.d.ts.map +1 -0
  762. package/dist/telemetry/tracker.js +2 -1
  763. package/dist/telemetry/tracker.js.map +1 -0
  764. package/dist/tests/runner.d.ts +2 -1
  765. package/dist/tests/runner.d.ts.map +1 -0
  766. package/dist/tests/runner.js +2 -1
  767. package/dist/tests/runner.js.map +1 -0
  768. package/dist/tests/spec.d.ts +2 -1
  769. package/dist/tests/spec.d.ts.map +1 -0
  770. package/dist/tests/spec.js +2 -1
  771. package/dist/tests/spec.js.map +1 -0
  772. package/dist/themes.d.ts +2 -1
  773. package/dist/themes.d.ts.map +1 -0
  774. package/dist/themes.js +2 -1
  775. package/dist/themes.js.map +1 -0
  776. package/dist/translations/catalog.d.ts +2 -1
  777. package/dist/translations/catalog.d.ts.map +1 -0
  778. package/dist/translations/tenant.d.ts +2 -1
  779. package/dist/translations/tenant.d.ts.map +1 -0
  780. package/dist/types.d.ts +2 -1
  781. package/dist/types.d.ts.map +1 -0
  782. package/dist/workflow/adapters/db-adapter.d.ts +21 -8
  783. package/dist/workflow/adapters/db-adapter.d.ts.map +1 -0
  784. package/dist/workflow/adapters/db-adapter.js +5 -4
  785. package/dist/workflow/adapters/db-adapter.js.map +1 -0
  786. package/dist/workflow/adapters/file-adapter.d.ts +2 -1
  787. package/dist/workflow/adapters/file-adapter.d.ts.map +1 -0
  788. package/dist/workflow/adapters/file-adapter.js +2 -1
  789. package/dist/workflow/adapters/file-adapter.js.map +1 -0
  790. package/dist/workflow/adapters/memory-store.d.ts +2 -1
  791. package/dist/workflow/adapters/memory-store.d.ts.map +1 -0
  792. package/dist/workflow/adapters/memory-store.js +2 -1
  793. package/dist/workflow/adapters/memory-store.js.map +1 -0
  794. package/dist/workflow/expression.d.ts +2 -1
  795. package/dist/workflow/expression.d.ts.map +1 -0
  796. package/dist/workflow/expression.js +2 -1
  797. package/dist/workflow/expression.js.map +1 -0
  798. package/dist/workflow/runner.d.ts +2 -1
  799. package/dist/workflow/runner.d.ts.map +1 -0
  800. package/dist/workflow/runner.js +2 -1
  801. package/dist/workflow/runner.js.map +1 -0
  802. package/dist/workflow/sla-monitor.d.ts +2 -1
  803. package/dist/workflow/sla-monitor.d.ts.map +1 -0
  804. package/dist/workflow/sla-monitor.js +2 -1
  805. package/dist/workflow/sla-monitor.js.map +1 -0
  806. package/dist/workflow/spec.d.ts +2 -1
  807. package/dist/workflow/spec.d.ts.map +1 -0
  808. package/dist/workflow/spec.js +2 -1
  809. package/dist/workflow/spec.js.map +1 -0
  810. package/dist/workflow/state.d.ts +2 -1
  811. package/dist/workflow/state.d.ts.map +1 -0
  812. package/dist/workflow/validation.d.ts +2 -1
  813. package/dist/workflow/validation.d.ts.map +1 -0
  814. package/dist/workflow/validation.js +2 -1
  815. package/dist/workflow/validation.js.map +1 -0
  816. package/package.json +12 -17
  817. package/dist/docs/PUBLISHING.docblock.d.ts +0 -6
  818. package/dist/docs/PUBLISHING.docblock.js +0 -17
  819. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.d.ts +0 -6
  820. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -17
  821. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.d.ts +0 -6
  822. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -17
  823. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.d.ts +0 -6
  824. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -17
  825. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.d.ts +0 -6
  826. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -17
  827. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.d.ts +0 -6
  828. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -17
  829. package/dist/schema/dist/EnumType.js +0 -2
  830. package/dist/schema/dist/FieldType.js +0 -49
  831. package/dist/schema/dist/ScalarTypeEnum.js +0 -236
  832. package/dist/schema/dist/SchemaModel.js +0 -39
  833. package/dist/schema/dist/entity/defineEntity.js +0 -1
  834. package/dist/schema/dist/entity/index.js +0 -2
  835. package/dist/schema/dist/entity/types.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.d.ts","names":[],"sources":["../../../src/integrations/providers/llm.ts"],"sourcesContent":[],"mappings":";KAAY,OAAA;AAAA,UAEK,WAAA,CAFE;EAEF,IAAA,EAAA,MAAA;EAKA,IAAA,EAAA,MAAA;AAOjB;AAMY,UAbK,eAAA,CAaS;EAAG,IAAA,EAAA,WAAA;EAAc,EAAA,EAAA,MAAA;EAAkB,IAAA,EAAA,MAAA;EAAiB,SAAA,EAAA,MAAA;AAE9E;AACQ,UATS,iBAAA,CAST;EACG,IAAA,EAAA,aAAA;EAGE,UAAA,EAAA,MAAA;EAAM,MAAA,EAAA,MAAA;AAGnB;AAMiB,KAhBL,cAAA,GAAiB,WAgBC,GAhBa,eAgBb,GAhB+B,iBAgB/B;AAMb,UApBA,UAAA,CAoBc;EAOrB,IAAA,EA1BF,OA0BE;EAEG,OAAA,EA3BF,cA2BE,EAAA;EAEF,IAAA,CAAA,EAAA,MAAA;EAAW,UAAA,CAAA,EAAA,MAAA;EAGL,QAAA,CAAA,EA7BJ,MA6Be,CAAA,MAAA,EAAA,MACjB,CAAA;AAMX;AAGa,UApCI,iBAAA,CAoCJ;EAKD,IAAA,EAAA,MAAA;EAKC,WAAA,CAAA,EAAA,MAAA;EAIA,WAAA,EAAA,OAAA;;AAIc,UAhDV,aAAA,CAgDU;EAGV,YAAA,EAAA,MAAgB;EAIhB,gBAAW,EAAA,MAAA;EACX,WAAA,EAAA,MAAA;;AAAiD,UAlDjD,cAAA,CAkDiD;EAAR,KAAA,CAAA,EAAA,MAAA;EAE5C,WAAA,CAAA,EAAA,MAAA;EACA,IAAA,CAAA,EAAA,MAAA;EACK,eAAA,CAAA,EAAA,MAAA;EAAd,aAAA,CAAA,EAAA,MAAA,EAAA;EACmB,cAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EAAuB,KAAA,CAAA,EAhDrC,iBAgDqC,EAAA;EAAR,MAAA,CAAA,EAAA,MAAA;EAAO,QAAA,CAAA,EA9CjC,MA8CiC,CAAA,MAAA,EAAA,MAAA,CAAA;;WA5CnC;;UAGM,WAAA;WACN;UACD;;;;KAKE,cAAA;;SAGC;;;;QAKD;;;;SAKC;;;SAIA;;;YAIG;;UAGC,gBAAA;;;UAIA,WAAA;iBACA,wBAAwB,iBAAiB,QAAQ;mBAEpD,wBACA,iBACT,cAAc;wBACK,eAAe,QAAQ"}
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
4
4
  declare const mistralIntegrationSpec: IntegrationSpec;
5
5
  declare function registerMistralIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
6
6
  //#endregion
7
- export { mistralIntegrationSpec, registerMistralIntegration };
7
+ export { mistralIntegrationSpec, registerMistralIntegration };
8
+ //# sourceMappingURL=mistral.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mistral.d.ts","names":[],"sources":["../../../src/integrations/providers/mistral.ts"],"sourcesContent":[],"mappings":";;;cAGa,wBAAwB;iBAyErB,0BAAA,WACJ,0BACT"}
@@ -69,4 +69,5 @@ function registerMistralIntegration(registry) {
69
69
  }
70
70
 
71
71
  //#endregion
72
- export { mistralIntegrationSpec, registerMistralIntegration };
72
+ export { mistralIntegrationSpec, registerMistralIntegration };
73
+ //# sourceMappingURL=mistral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mistral.js","names":["mistralIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/mistral.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec, IntegrationSpecRegistry } from '../spec';\n\nexport const mistralIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'ai-llm.mistral',\n version: 1,\n category: 'ai-llm',\n displayName: 'Mistral AI',\n title: 'Mistral Large Language Model',\n description:\n 'Mistral integration providing chat completions and embedding generation.',\n domain: 'ai',\n owners: ['platform.ai'],\n tags: ['ai', 'llm', 'embeddings'],\n stability: StabilityEnum.Experimental,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [\n { key: 'ai.chat', version: 1 },\n { key: 'ai.embeddings', version: 1 },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n model: {\n type: 'string',\n description:\n 'Default chat completion model (e.g., mistral-large-latest).',\n },\n embeddingModel: {\n type: 'string',\n description: 'Embedding model identifier.',\n },\n },\n },\n example: {\n model: 'mistral-large-latest',\n embeddingModel: 'mistral-embed',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['apiKey'],\n properties: {\n apiKey: {\n type: 'string',\n description:\n 'Mistral API key with access to chat and embeddings endpoints.',\n },\n },\n },\n example: {\n apiKey: 'mistral-***',\n },\n },\n healthCheck: {\n method: 'custom',\n timeoutMs: 5000,\n },\n docsUrl: 'https://docs.mistral.ai/platform/endpoints',\n constraints: {\n rateLimit: {\n rpm: 600,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Generate an API key within the Mistral console and ensure the selected models are enabled for the account.',\n },\n};\n\nexport function registerMistralIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(mistralIntegrationSpec);\n}\n"],"mappings":";;;AAGA,MAAaA,yBAA0C;CACrD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,cAAc;EACvB,MAAM;GAAC;GAAM;GAAO;GAAa;EACjC,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EACZ,UAAU,CACR;EAAE,KAAK;EAAW,SAAS;EAAG,EAC9B;EAAE,KAAK;EAAiB,SAAS;EAAG,CACrC,EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,OAAO;KACL,MAAM;KACN,aACE;KACH;IACD,gBAAgB;KACd,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,OAAO;GACP,gBAAgB;GACjB;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,SAAS;GACpB,YAAY,EACV,QAAQ;IACN,MAAM;IACN,aACE;IACH,EACF;GACF;EACD,SAAS,EACP,QAAQ,eACT;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW,EACT,KAAK,KACN,EACF;CACD,WAAW,EACT,mBACE,8GACH;CACF;AAED,SAAgB,2BACd,UACyB;AACzB,QAAO,SAAS,SAAS,uBAAuB"}
@@ -125,4 +125,5 @@ interface OpenBankingProvider {
125
125
  getConnectionStatus(params: OpenBankingGetConnectionStatusParams): Promise<OpenBankingConnectionStatus>;
126
126
  }
127
127
  //#endregion
128
- export { OpenBankingAccountBalance, OpenBankingAccountDetails, OpenBankingAccountOwnership, OpenBankingAccountSummary, OpenBankingBalanceType, OpenBankingConnectionStatus, OpenBankingGetAccountDetailsParams, OpenBankingGetBalancesParams, OpenBankingGetConnectionStatusParams, OpenBankingListAccountsParams, OpenBankingListAccountsResult, OpenBankingListTransactionsParams, OpenBankingListTransactionsResult, OpenBankingProvider, OpenBankingTransaction };
128
+ export { OpenBankingAccountBalance, OpenBankingAccountDetails, OpenBankingAccountOwnership, OpenBankingAccountSummary, OpenBankingBalanceType, OpenBankingConnectionStatus, OpenBankingGetAccountDetailsParams, OpenBankingGetBalancesParams, OpenBankingGetConnectionStatusParams, OpenBankingListAccountsParams, OpenBankingListAccountsResult, OpenBankingListTransactionsParams, OpenBankingListTransactionsResult, OpenBankingProvider, OpenBankingTransaction };
129
+ //# sourceMappingURL=openbanking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openbanking.d.ts","names":[],"sources":["../../../src/integrations/providers/openbanking.ts"],"sourcesContent":[],"mappings":";KAAY,2BAAA;AAAA,UAMK,yBAAA,CANsB;EAMtB,EAAA,EAAA,MAAA;EAqBA,UAAA,EAAA,MAAA;EAUA,QAAA,EAAA,MAAA;EAwBL,YAAA,EAAA,MAAA;EAQK,MAAA,CAAA,EAAA,MAAA;EAWA,WAAA,EAAA,MAAA;EAUA,aAAA,EAAA,MAAA;EAUA,eAAA,EAAA,MAAA;EAMA,kBAAA,CAAA,EAAA,MAAA;EAOA,WAAA,EAAA,MAAA;EAWA,IAAA,CAAA,EAAA,MAAA;EAMA,GAAA,CAAA,EAAA,MAAA;EAOA,QAAA,EAAA,MAAA;EAKA,mBAAA,CAAA,EAAmB,MAAA;EAExB,SAAA,CAAA,EA3HE,2BA2HF;EACC,MAAA,CAAA,EAAA,QAAA,GAAA,UAAA,GAAA,QAAA,GAAA,WAAA;EAAR,YAAA,CAAA,EAAA,MAAA;EAEO,QAAA,CAAA,EA3HC,MA2HD,CAAA,MAAA,EAAA,OAAA,CAAA;;AACP,UAzHY,yBAAA,SAAkC,yBAyH9C,CAAA;EAEO,WAAA,CAAA,EAAA,MAAA;EACC,QAAA,CAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EAAA,MAAA;EAEO,gBAAA,CAAA,EAAA,MAAA;EACC,cAAA,CAAA,EAAA,MAAA;EAAR,WAAA,CAAA,EAAA,MAAA;EAEO,YAAA,CAAA,EA1HK,MA0HL,CAAA,MAAA,EAAA,OAAA,CAAA;;AACP,UAxHY,sBAAA,CAwHZ;EAAO,EAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;aAnGC;;KAGD,sBAAA;UAQK,yBAAA;;;;QAIT;;;;aAIK;;UAGI,2BAAA;;;;;;;YAOL;;UAGK,6BAAA;;;;;;;;;UAUA,6BAAA;YACL;;;;UAKK,kCAAA;;;;;;UAOA,iCAAA;;;;;;;;;;UAWA,iCAAA;gBACD;;;;UAKC,4BAAA;;;;iBAIA;;UAGA,oCAAA;;;;UAKA,mBAAA;uBAEL,gCACP,QAAQ;4BAED,qCACP,QAAQ;2BAED,oCACP,QAAQ;sBAED,+BACP,QAAQ;8BAED,uCACP,QAAQ"}
@@ -106,4 +106,5 @@ interface PaymentsProvider {
106
106
  listTransactions(query?: ListTransactionsQuery): Promise<PaymentTransaction[]>;
107
107
  }
108
108
  //#endregion
109
- export { CapturePaymentInput, CreateCustomerInput, CreatePaymentIntentInput, ListInvoicesQuery, ListTransactionsQuery, Money, PaymentCustomer, PaymentIntent, PaymentIntentStatus, PaymentInvoice, PaymentRefund, PaymentTransaction, PaymentsProvider, RefundPaymentInput };
109
+ export { CapturePaymentInput, CreateCustomerInput, CreatePaymentIntentInput, ListInvoicesQuery, ListTransactionsQuery, Money, PaymentCustomer, PaymentIntent, PaymentIntentStatus, PaymentInvoice, PaymentRefund, PaymentTransaction, PaymentsProvider, RefundPaymentInput };
110
+ //# sourceMappingURL=payments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payments.d.ts","names":[],"sources":["../../../src/integrations/providers/payments.ts"],"sourcesContent":[],"mappings":";UAAiB,KAAA;EAAA;EAML,MAAA,EAAA,MAAA;EAQK,QAAA,EAAA,MAAA;;AAKH,KAbF,mBAAA,GAaE,yBAAA,GAAA,uBAAA,GAAA,iBAAA,GAAA,YAAA,GAAA,WAAA,GAAA,UAAA;AACA,UANG,eAAA,CAMH;EAAI,EAAA,EAAA,MAAA;EAGD,KAAA,CAAA,EAAA,MAAA;EAOA,IAAA,CAAA,EAAA,MAAA;EAEP,QAAA,CAAA,EAdG,MAcH,CAAA,MAAA,EAAA,MAAA,CAAA;EACA,SAAA,CAAA,EAdI,IAcJ;EAIG,SAAA,CAAA,EAjBC,IAiBD;;AAEC,UAhBG,mBAAA,CAgBH;EAAI,KAAA,CAAA,EAAA,MAAA;EAGD,IAAA,CAAA,EAAA,MAAA;EAWA,WAAA,CAAA,EAAA,MAAA;EAMA,QAAA,CAAA,EAhCJ,MAgCiB,CAAA,MAAA,EAAA,MAAA,CAAA;;AAMjB,UAnCI,aAAA,CAmCJ;EACC,EAAA,EAAA,MAAA;EAAI,MAAA,EAlCR,KAkCQ;EAGD,MAAA,EApCP,mBAoCyB;EAOlB,UAAA,CAAA,EAAA,MAAc;EAIlB,YAAA,CAAA,EAAA,MAAA;EACE,WAAA,CAAA,EAAA,MAAA;EAEH,QAAA,CAAA,EA9CC,MA8CD,CAAA,MAAA,EAAA,MAAA,CAAA;EAEC,SAAA,CAAA,EA/CC,IA+CD;EACC,SAAA,CAAA,EA/CA,IA+CA;;AACI,UA7CD,wBAAA,CA6CC;EAGD,MAAA,EA/CP,KA+CO;EAOA,UAAA,CAAA,EAAA,MAAA;EAGP,kBAAA,CAAA,EAAA,WAAA,GAAA,QAAA;EAIG,aAAA,CAAA,EAAA,WAAA,GAAA,QAAA;EACA,WAAA,CAAA,EAAA,MAAA;EAAM,QAAA,CAAA,EAzDN,MAyDM,CAAA,MAAA,EAAA,MAAA,CAAA;EAGF,mBAAA,CAAA,EAAA,MAAqB;EAOrB,SAAA,CAAA,EAAA,MAAA;;AACqC,UA/DrC,mBAAA,CA+DqC;EAAR,MAAA,CAAA,EA9DnC,KA8DmC;EACH,YAAA,CAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EA7DtB,MA6DsB,CAAA,MAAA,EAAA,MAAA,CAAA;;AAC6B,UA3D/C,aAAA,CA2D+C;EAAR,EAAA,EAAA,MAAA;EAG5C,eAAA,EAAA,MAAA;EACC,MAAA,EA5DH,KA4DG;EAAR,MAAA,EAAA,SAAA,GAAA,WAAA,GAAA,QAAA,GAAA,UAAA;EACmD,MAAA,CAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EA1DnC,MA0DmC,CAAA,MAAA,EAAA,MAAA,CAAA;EACzB,SAAA,CAAA,EA1DT,IA0DS;;AAAqB,UAvD3B,kBAAA,CAuD2B;EACrB,eAAA,EAAA,MAAA;EAA4B,MAAA,CAAA,EAtDxC,KAsDwC;EAAR,MAAA,CAAA,EAAA,MAAA;EAE/B,QAAA,CAAA,EAtDC,MAsDD,CAAA,MAAA,EAAA,MAAA,CAAA;;AACP,UApDY,cAAA,CAoDZ;EAAO,EAAA,EAAA,MAAA;;;aAhDC;eACE;;YAEH;;aAEC;cACC;cACA;;UAGG,iBAAA;;WAEN;;;;UAKM,kBAAA;;;UAGP;;;;aAIG;aACA;;UAGI,qBAAA;;;;;;UAOA,gBAAA;wBACO,sBAAsB,QAAQ;mCACnB,QAAQ;6BACd,2BAA2B,QAAQ;kDAGpD,sBACP,QAAQ;gDACmC,QAAQ;uBACjC,qBAAqB,QAAQ;uBAC7B,oBAAoB,QAAQ;2BAEvC,wBACP,QAAQ"}
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
4
4
  declare const postmarkIntegrationSpec: IntegrationSpec;
5
5
  declare function registerPostmarkIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
6
6
  //#endregion
7
- export { postmarkIntegrationSpec, registerPostmarkIntegration };
7
+ export { postmarkIntegrationSpec, registerPostmarkIntegration };
8
+ //# sourceMappingURL=postmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postmark.d.ts","names":[],"sources":["../../../src/integrations/providers/postmark.ts"],"sourcesContent":[],"mappings":";;;cAGa,yBAAyB;iBA2EtB,2BAAA,WACJ,0BACT"}
@@ -69,4 +69,5 @@ function registerPostmarkIntegration(registry) {
69
69
  }
70
70
 
71
71
  //#endregion
72
- export { postmarkIntegrationSpec, registerPostmarkIntegration };
72
+ export { postmarkIntegrationSpec, registerPostmarkIntegration };
73
+ //# sourceMappingURL=postmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postmark.js","names":["postmarkIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/postmark.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec, IntegrationSpecRegistry } from '../spec';\n\nexport const postmarkIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'email.postmark',\n version: 1,\n category: 'email',\n displayName: 'Postmark',\n title: 'Postmark Transactional Email',\n description: 'Postmark integration for transactional email delivery.',\n domain: 'communications',\n owners: ['platform.messaging'],\n tags: ['email', 'transactional'],\n stability: StabilityEnum.Stable,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [{ key: 'email.transactional', version: 1 }],\n requires: [\n {\n key: 'platform.webhooks',\n optional: true,\n reason: 'Optional for inbound bounce handling',\n },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n messageStream: {\n type: 'string',\n description:\n 'Optional message stream identifier (e.g., transactional).',\n },\n fromEmail: {\n type: 'string',\n description: 'Default From address used for outbound messages.',\n },\n },\n },\n example: {\n messageStream: 'outbound',\n fromEmail: 'notifications@example.com',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['serverToken'],\n properties: {\n serverToken: {\n type: 'string',\n description: 'Server token for the Postmark account.',\n },\n },\n },\n example: {\n serverToken: 'server-***',\n },\n },\n healthCheck: {\n method: 'ping',\n timeoutMs: 3000,\n },\n docsUrl: 'https://postmarkapp.com/developer',\n constraints: {\n rateLimit: {\n rpm: 500,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Create a Postmark server token with outbound send permissions and configure allowed from addresses.',\n },\n};\n\nexport function registerPostmarkIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(postmarkIntegrationSpec);\n}\n"],"mappings":";;;AAGA,MAAaA,0BAA2C;CACtD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,qBAAqB;EAC9B,MAAM,CAAC,SAAS,gBAAgB;EAChC,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc;EACZ,UAAU,CAAC;GAAE,KAAK;GAAuB,SAAS;GAAG,CAAC;EACtD,UAAU,CACR;GACE,KAAK;GACL,UAAU;GACV,QAAQ;GACT,CACF;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,eAAe;KACb,MAAM;KACN,aACE;KACH;IACD,WAAW;KACT,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,eAAe;GACf,WAAW;GACZ;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,cAAc;GACzB,YAAY,EACV,aAAa;IACX,MAAM;IACN,aAAa;IACd,EACF;GACF;EACD,SAAS,EACP,aAAa,cACd;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW,EACT,KAAK,KACN,EACF;CACD,WAAW,EACT,mBACE,uGACH;CACF;AAED,SAAgB,4BACd,UACyB;AACzB,QAAO,SAAS,SAAS,wBAAwB"}
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
4
4
  declare const powensIntegrationSpec: IntegrationSpec;
5
5
  declare function registerPowensIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
6
6
  //#endregion
7
- export { powensIntegrationSpec, registerPowensIntegration };
7
+ export { powensIntegrationSpec, registerPowensIntegration };
8
+ //# sourceMappingURL=powens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powens.d.ts","names":[],"sources":["../../../src/integrations/providers/powens.ts"],"sourcesContent":[],"mappings":";;;cAIa,uBAAuB;AAAvB,iBA6GG,yBAAA,CA7GoB,QA2GnC,EAGW,uBAHX,CAAA,EAIE,uBAJF"}
@@ -117,4 +117,5 @@ function registerPowensIntegration(registry) {
117
117
  }
118
118
 
119
119
  //#endregion
120
- export { powensIntegrationSpec, registerPowensIntegration };
120
+ export { powensIntegrationSpec, registerPowensIntegration };
121
+ //# sourceMappingURL=powens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powens.js","names":["powensIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/powens.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec } from '../spec';\nimport type { IntegrationSpecRegistry } from '../spec';\n\nexport const powensIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'openbanking.powens',\n version: 1,\n category: 'open-banking',\n displayName: 'Powens Open Banking',\n title: 'Powens Open Banking (Read)',\n description:\n 'Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.',\n domain: 'finance',\n owners: ['platform.finance'],\n tags: ['open-banking', 'powens', 'finance'],\n stability: StabilityEnum.Experimental,\n },\n supportedModes: ['byok'],\n capabilities: {\n provides: [\n { key: 'openbanking.accounts.read', version: 1 },\n { key: 'openbanking.transactions.read', version: 1 },\n { key: 'openbanking.balances.read', version: 1 },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n required: ['environment'],\n properties: {\n environment: {\n type: 'string',\n enum: ['sandbox', 'production'],\n description:\n 'Powens environment to target. Sandbox uses Powens test API base URL, production uses live endpoints.',\n },\n baseUrl: {\n type: 'string',\n description:\n 'Optional override for the Powens API base URL. Defaults to Powens environment defaults.',\n },\n region: {\n type: 'string',\n description:\n 'Optional Powens region identifier when targeting a specific data residency cluster.',\n },\n pollingIntervalMs: {\n type: 'number',\n description:\n 'Optional custom polling interval in milliseconds for background sync jobs (defaults to platform standard).',\n },\n },\n },\n example: {\n environment: 'sandbox',\n baseUrl: 'https://api-sandbox.powens.com/v2',\n region: 'eu-west-1',\n pollingIntervalMs: 300000,\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['clientId', 'clientSecret'],\n properties: {\n clientId: {\n type: 'string',\n description:\n 'Powens OAuth client identifier obtained from the Powens Console (BYOK project).',\n },\n clientSecret: {\n type: 'string',\n description:\n 'Powens OAuth client secret used to exchange for access tokens.',\n },\n apiKey: {\n type: 'string',\n description:\n 'Optional Powens API key (if the tenant project exposes a dedicated API token).',\n },\n webhookSecret: {\n type: 'string',\n description:\n 'Optional webhook signing secret used to verify Powens webhook payloads.',\n },\n },\n },\n example: {\n clientId: 'powens-client-id',\n clientSecret: 'powens-client-secret',\n apiKey: 'powens-api-key',\n webhookSecret: 'powens-webhook-secret',\n },\n },\n healthCheck: {\n method: 'ping',\n timeoutMs: 8000,\n },\n docsUrl: 'https://docs.powens.com/',\n constraints: {\n rateLimit: {\n rph: 10000,\n rpm: 600,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Create a Powens BYOK project, generate OAuth credentials, and optionally configure webhook delivery for account/transaction updates.',\n requiredScopes: ['accounts:read', 'transactions:read', 'balances:read'],\n },\n};\n\nexport function registerPowensIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(powensIntegrationSpec);\n}\n"],"mappings":";;;AAIA,MAAaA,wBAAyC;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,mBAAmB;EAC5B,MAAM;GAAC;GAAgB;GAAU;GAAU;EAC3C,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,OAAO;CACxB,cAAc,EACZ,UAAU;EACR;GAAE,KAAK;GAA6B,SAAS;GAAG;EAChD;GAAE,KAAK;GAAiC,SAAS;GAAG;EACpD;GAAE,KAAK;GAA6B,SAAS;GAAG;EACjD,EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,cAAc;GACzB,YAAY;IACV,aAAa;KACX,MAAM;KACN,MAAM,CAAC,WAAW,aAAa;KAC/B,aACE;KACH;IACD,SAAS;KACP,MAAM;KACN,aACE;KACH;IACD,QAAQ;KACN,MAAM;KACN,aACE;KACH;IACD,mBAAmB;KACjB,MAAM;KACN,aACE;KACH;IACF;GACF;EACD,SAAS;GACP,aAAa;GACb,SAAS;GACT,QAAQ;GACR,mBAAmB;GACpB;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,YAAY,eAAe;GACtC,YAAY;IACV,UAAU;KACR,MAAM;KACN,aACE;KACH;IACD,cAAc;KACZ,MAAM;KACN,aACE;KACH;IACD,QAAQ;KACN,MAAM;KACN,aACE;KACH;IACD,eAAe;KACb,MAAM;KACN,aACE;KACH;IACF;GACF;EACD,SAAS;GACP,UAAU;GACV,cAAc;GACd,QAAQ;GACR,eAAe;GAChB;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW;EACT,KAAK;EACL,KAAK;EACN,EACF;CACD,WAAW;EACT,mBACE;EACF,gBAAgB;GAAC;GAAiB;GAAqB;GAAgB;EACxE;CACF;AAED,SAAgB,0BACd,UACyB;AACzB,QAAO,SAAS,SAAS,sBAAsB"}
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
4
4
  declare const qdrantIntegrationSpec: IntegrationSpec;
5
5
  declare function registerQdrantIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
6
6
  //#endregion
7
- export { qdrantIntegrationSpec, registerQdrantIntegration };
7
+ export { qdrantIntegrationSpec, registerQdrantIntegration };
8
+ //# sourceMappingURL=qdrant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant.d.ts","names":[],"sources":["../../../src/integrations/providers/qdrant.ts"],"sourcesContent":[],"mappings":";;;cAGa,uBAAuB;iBAgFpB,yBAAA,WACJ,0BACT"}
@@ -74,4 +74,5 @@ function registerQdrantIntegration(registry) {
74
74
  }
75
75
 
76
76
  //#endregion
77
- export { qdrantIntegrationSpec, registerQdrantIntegration };
77
+ export { qdrantIntegrationSpec, registerQdrantIntegration };
78
+ //# sourceMappingURL=qdrant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qdrant.js","names":["qdrantIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/qdrant.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec, IntegrationSpecRegistry } from '../spec';\n\nexport const qdrantIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'vectordb.qdrant',\n version: 1,\n category: 'vector-db',\n displayName: 'Qdrant',\n title: 'Qdrant Vector Database',\n description: 'Qdrant integration for vector search and embeddings storage.',\n domain: 'ai',\n owners: ['platform.ai'],\n tags: ['vector-db', 'search'],\n stability: StabilityEnum.Experimental,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [\n { key: 'vector-db.search', version: 1 },\n { key: 'vector-db.storage', version: 1 },\n ],\n requires: [\n {\n key: 'ai.embeddings',\n optional: true,\n reason:\n 'Required if vectors are generated via hosted embedding services',\n },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n apiUrl: {\n type: 'string',\n description:\n 'Base URL for the Qdrant instance (e.g., https://qdrant.example.com).',\n },\n collectionPrefix: {\n type: 'string',\n description:\n 'Prefix applied to all collection names for this tenant.',\n },\n },\n },\n example: {\n apiUrl: 'https://qdrant.example.com',\n collectionPrefix: 'tenant_',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n properties: {\n apiKey: {\n type: 'string',\n description: 'API key or token when authentication is enabled.',\n },\n },\n },\n example: {\n apiKey: 'qdrant-api-key',\n },\n },\n healthCheck: {\n method: 'ping',\n timeoutMs: 4000,\n },\n docsUrl: 'https://qdrant.tech/documentation/quick-start/',\n constraints: {\n quotas: {\n collections: 100,\n pointsPerCollection: 1_000_000,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Provide the HTTPS endpoint of your Qdrant cluster and generate an API key with read/write access to the collections that will be managed.',\n },\n};\n\nexport function registerQdrantIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(qdrantIntegrationSpec);\n}\n"],"mappings":";;;AAGA,MAAaA,wBAAyC;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,cAAc;EACvB,MAAM,CAAC,aAAa,SAAS;EAC7B,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc;EACZ,UAAU,CACR;GAAE,KAAK;GAAoB,SAAS;GAAG,EACvC;GAAE,KAAK;GAAqB,SAAS;GAAG,CACzC;EACD,UAAU,CACR;GACE,KAAK;GACL,UAAU;GACV,QACE;GACH,CACF;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,QAAQ;KACN,MAAM;KACN,aACE;KACH;IACD,kBAAkB;KAChB,MAAM;KACN,aACE;KACH;IACF;GACF;EACD,SAAS;GACP,QAAQ;GACR,kBAAkB;GACnB;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY,EACV,QAAQ;IACN,MAAM;IACN,aAAa;IACd,EACF;GACF;EACD,SAAS,EACP,QAAQ,kBACT;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,QAAQ;EACN,aAAa;EACb,qBAAqB;EACtB,EACF;CACD,WAAW,EACT,mBACE,6IACH;CACF;AAED,SAAgB,0BACd,UACyB;AACzB,QAAO,SAAS,SAAS,sBAAsB"}
@@ -8,4 +8,5 @@ import { IntegrationSpecRegistry } from "../spec.js";
8
8
  */
9
9
  declare function createDefaultIntegrationSpecRegistry(): IntegrationSpecRegistry;
10
10
  //#endregion
11
- export { createDefaultIntegrationSpecRegistry };
11
+ export { createDefaultIntegrationSpecRegistry };
12
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","names":[],"sources":["../../../src/integrations/providers/registry.ts"],"sourcesContent":[],"mappings":";;;;;;AAiBA;;iBAAgB,oCAAA,CAAA,GAAwC"}
@@ -31,4 +31,5 @@ function createDefaultIntegrationSpecRegistry() {
31
31
  }
32
32
 
33
33
  //#endregion
34
- export { createDefaultIntegrationSpecRegistry };
34
+ export { createDefaultIntegrationSpecRegistry };
35
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","names":[],"sources":["../../../src/integrations/providers/registry.ts"],"sourcesContent":["import { IntegrationSpecRegistry } from '../spec';\n\nimport { registerStripeIntegration } from './stripe';\nimport { registerPostmarkIntegration } from './postmark';\nimport { registerQdrantIntegration } from './qdrant';\nimport { registerMistralIntegration } from './mistral';\nimport { registerElevenLabsIntegration } from './elevenlabs';\nimport { registerGmailIntegration } from './gmail';\nimport { registerGoogleCalendarIntegration } from './google-calendar';\nimport { registerTwilioSmsIntegration } from './twilio-sms';\nimport { registerGcsStorageIntegration } from './gcs-storage';\nimport { registerPowensIntegration } from './powens';\n\n/**\n * Creates a registry containing all IntegrationSpec providers shipped by\n * `@lssm/lib.contracts`.\n */\nexport function createDefaultIntegrationSpecRegistry(): IntegrationSpecRegistry {\n const registry = new IntegrationSpecRegistry();\n\n registerStripeIntegration(registry);\n registerPostmarkIntegration(registry);\n registerQdrantIntegration(registry);\n registerMistralIntegration(registry);\n registerElevenLabsIntegration(registry);\n registerGmailIntegration(registry);\n registerGoogleCalendarIntegration(registry);\n registerTwilioSmsIntegration(registry);\n registerGcsStorageIntegration(registry);\n registerPowensIntegration(registry);\n\n return registry;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,SAAgB,uCAAgE;CAC9E,MAAM,WAAW,IAAI,yBAAyB;AAE9C,2BAA0B,SAAS;AACnC,6BAA4B,SAAS;AACrC,2BAA0B,SAAS;AACnC,4BAA2B,SAAS;AACpC,+BAA8B,SAAS;AACvC,0BAAyB,SAAS;AAClC,mCAAkC,SAAS;AAC3C,8BAA6B,SAAS;AACtC,+BAA8B,SAAS;AACvC,2BAA0B,SAAS;AAEnC,QAAO"}
@@ -31,4 +31,5 @@ interface SmsProvider {
31
31
  getDeliveryStatus(messageId: string): Promise<SmsDeliveryStatus>;
32
32
  }
33
33
  //#endregion
34
- export { SendSmsInput, SmsDeliveryStatus, SmsMessage, SmsProvider };
34
+ export { SendSmsInput, SmsDeliveryStatus, SmsMessage, SmsProvider };
35
+ //# sourceMappingURL=sms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.d.ts","names":[],"sources":["../../../src/integrations/providers/sms.ts"],"sourcesContent":[],"mappings":";UAAiB,UAAA;EAAA,EAAA,EAAA,MAAA;EAsBA,EAAA,EAAA,MAAA;EAOA,IAAA,EAAA,MAAA;EAOA,IAAA,EAAA,MAAA;EACA,MAAA,EAAA,QAAA,GAAA,SAAA,GAAA,MAAA,GAAA,WAAA,GAAA,aAAA,GAAA,QAAA;EAAuB,iBAAA,CAAA,EAAA,MAAA;EAAR,OAAA,CAAA,EAAA,MAAA;EACgB,KAAA,CAAA,EAAA,MAAA;EAAR,aAAA,CAAA,EAAA,MAAA;EAAO,MAAA,CAAA,EAtBpC,IAsBoC;gBArB/B;;;;UAKC,YAAA;;;;aAIJ;;UAGI,iBAAA;UACP;;;aAGG;;UAGI,WAAA;iBACA,eAAe,QAAQ;wCACA,QAAQ"}
@@ -57,4 +57,5 @@ interface ObjectStorageProvider {
57
57
  listObjects(query: ListObjectsQuery): Promise<ListObjectsResult>;
58
58
  }
59
59
  //#endregion
60
- export { DeleteObjectInput, GetObjectResult, ListObjectsQuery, ListObjectsResult, ObjectStorageProvider, PutObjectInput, SignedUrlOptions, StorageObjectBody, StorageObjectMetadata };
60
+ export { DeleteObjectInput, GetObjectResult, ListObjectsQuery, ListObjectsResult, ObjectStorageProvider, PutObjectInput, SignedUrlOptions, StorageObjectBody, StorageObjectMetadata };
61
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","names":[],"sources":["../../../src/integrations/providers/storage.ts"],"sourcesContent":[],"mappings":";UAAiB,qBAAA;EAAA,MAAA,EAAA,MAAA;EAWL,GAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,MAAA;EAC8B,WAAA,CAAA,EAAA,MAAA;EAAd,IAAA,CAAA,EAAA,MAAA;EAAa,QAAA,CAAA,EAAA,MAAA;EAE7B,YAAA,CAAA,EARK,IAQU;EAEV,QAAA,CAAA,EATJ,MASkB,CAAA,MAAA,EAAA,MAAA,CAAA;;AAGV,KATT,iBAAA,GASS;EAER,IAAA,EAVD,UAUC;EAAM,MAAA,CAAA,EAAA,KAAA;AAInB,CAAA,GAAiB;EAKA,IAAA,CAAA,EAAA,KAAA;EAQA,MAAA,EA1BW,aA0BK,CA1BS,UA0BT,CAAA;AAOjC,CAAA;AAKiB,KApCL,eAAA,GAAkB,qBAoCQ,GApCgB,iBAoChB;AACnB,UAnCF,cAAA,CAmCE;EAAyB,MAAA,EAAA,MAAA;EAAR,GAAA,EAAA,MAAA;EACjB,IAAA,EAjCX,UAiCW,GAjCE,WAiCF;EAA4B,WAAA,CAAA,EAAA,MAAA;EAAR,QAAA,CAAA,EA/B1B,MA+B0B,CAAA,MAAA,EAAA,MAAA,CAAA;EACjB,UAAA,CAAA,EAAA,OAAA;;AAET,UA9BI,iBAAA,CA8BJ;EAC0B,MAAA,EAAA,MAAA;EAAlC,GAAA,EAAA,MAAA;;AAC2C,UA3B/B,gBAAA,CA2B+B;EAAR,MAAA,EAAA,MAAA;EAAO,GAAA,EAAA,MAAA;;;;;UAnB9B,gBAAA;;;;;;UAOA,iBAAA;WACN;;;UAIM,qBAAA;mBACE,iBAAiB,QAAQ;mBACzB,oBAAoB,QAAQ;sBACzB,oBAAoB;6BAE7B,mBACR;;eAAkC;;qBAClB,mBAAmB,QAAQ"}
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
4
4
  declare const stripeIntegrationSpec: IntegrationSpec;
5
5
  declare function registerStripeIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
6
6
  //#endregion
7
- export { registerStripeIntegration, stripeIntegrationSpec };
7
+ export { registerStripeIntegration, stripeIntegrationSpec };
8
+ //# sourceMappingURL=stripe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.d.ts","names":[],"sources":["../../../src/integrations/providers/stripe.ts"],"sourcesContent":[],"mappings":";;;cAIa,uBAAuB;AAAvB,iBAkFG,yBAAA,CAlFoB,QAgFnC,EAGW,uBAHX,CAAA,EAIE,uBAJF"}
@@ -84,4 +84,5 @@ function registerStripeIntegration(registry) {
84
84
  }
85
85
 
86
86
  //#endregion
87
- export { registerStripeIntegration, stripeIntegrationSpec };
87
+ export { registerStripeIntegration, stripeIntegrationSpec };
88
+ //# sourceMappingURL=stripe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.js","names":["stripeIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/stripe.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec } from '../spec';\nimport type { IntegrationSpecRegistry } from '../spec';\n\nexport const stripeIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'payments.stripe',\n version: 1,\n category: 'payments',\n displayName: 'Stripe',\n title: 'Stripe Payments',\n description:\n 'Stripe integration for payment processing, charges, and payouts.',\n domain: 'payments',\n owners: ['platform.payments'],\n tags: ['payments', 'psp'],\n stability: StabilityEnum.Stable,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [{ key: 'payments.psp', version: 1 }],\n requires: [\n {\n key: 'platform.webhooks',\n optional: true,\n reason: 'Recommended for reliable event ingestion',\n },\n ],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n accountId: {\n type: 'string',\n description: 'Connected account ID when using Stripe Connect (BYOK).',\n },\n region: {\n type: 'string',\n description: 'Optional Stripe region or data residency hint.',\n },\n },\n },\n example: {\n accountId: 'acct_123',\n region: 'us-east-1',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['apiKey', 'webhookSecret'],\n properties: {\n apiKey: {\n type: 'string',\n description: 'Stripe secret API key (sk_live_... or sk_test_...).',\n },\n webhookSecret: {\n type: 'string',\n description: 'Signing secret for webhook verification.',\n },\n },\n },\n example: {\n apiKey: 'sk_live_***',\n webhookSecret: 'whsec_***',\n },\n },\n healthCheck: {\n method: 'ping',\n timeoutMs: 5000,\n },\n docsUrl: 'https://stripe.com/docs/api',\n constraints: {\n rateLimit: {\n rpm: 1000,\n rph: 20000,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Create a restricted Stripe API key with write access to Charges and provide a webhook signing secret.',\n requiredScopes: ['charges:write', 'customers:read'],\n },\n};\n\nexport function registerStripeIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(stripeIntegrationSpec);\n}\n"],"mappings":";;;AAIA,MAAaA,wBAAyC;CACpD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,oBAAoB;EAC7B,MAAM,CAAC,YAAY,MAAM;EACzB,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc;EACZ,UAAU,CAAC;GAAE,KAAK;GAAgB,SAAS;GAAG,CAAC;EAC/C,UAAU,CACR;GACE,KAAK;GACL,UAAU;GACV,QAAQ;GACT,CACF;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,WAAW;KACT,MAAM;KACN,aAAa;KACd;IACD,QAAQ;KACN,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,WAAW;GACX,QAAQ;GACT;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,UAAU,gBAAgB;GACrC,YAAY;IACV,QAAQ;KACN,MAAM;KACN,aAAa;KACd;IACD,eAAe;KACb,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,QAAQ;GACR,eAAe;GAChB;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW;EACT,KAAK;EACL,KAAK;EACN,EACF;CACD,WAAW;EACT,mBACE;EACF,gBAAgB,CAAC,iBAAiB,iBAAiB;EACpD;CACF;AAED,SAAgB,0BACd,UACyB;AACzB,QAAO,SAAS,SAAS,sBAAsB"}
@@ -4,4 +4,5 @@ import { IntegrationSpec, IntegrationSpecRegistry } from "../spec.js";
4
4
  declare const twilioSmsIntegrationSpec: IntegrationSpec;
5
5
  declare function registerTwilioSmsIntegration(registry: IntegrationSpecRegistry): IntegrationSpecRegistry;
6
6
  //#endregion
7
- export { registerTwilioSmsIntegration, twilioSmsIntegrationSpec };
7
+ export { registerTwilioSmsIntegration, twilioSmsIntegrationSpec };
8
+ //# sourceMappingURL=twilio-sms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twilio-sms.d.ts","names":[],"sources":["../../../src/integrations/providers/twilio-sms.ts"],"sourcesContent":[],"mappings":";;;cAGa,0BAA0B;iBAoEvB,4BAAA,WACJ,0BACT"}
@@ -62,4 +62,5 @@ function registerTwilioSmsIntegration(registry) {
62
62
  }
63
63
 
64
64
  //#endregion
65
- export { registerTwilioSmsIntegration, twilioSmsIntegrationSpec };
65
+ export { registerTwilioSmsIntegration, twilioSmsIntegrationSpec };
66
+ //# sourceMappingURL=twilio-sms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twilio-sms.js","names":["twilioSmsIntegrationSpec: IntegrationSpec"],"sources":["../../../src/integrations/providers/twilio-sms.ts"],"sourcesContent":["import { StabilityEnum } from '../../ownership';\nimport type { IntegrationSpec, IntegrationSpecRegistry } from '../spec';\n\nexport const twilioSmsIntegrationSpec: IntegrationSpec = {\n meta: {\n key: 'sms.twilio',\n version: 1,\n category: 'sms',\n displayName: 'Twilio SMS',\n title: 'Twilio Messaging',\n description:\n 'Twilio SMS integration for transactional and notification messaging.',\n domain: 'communications',\n owners: ['platform.messaging'],\n tags: ['sms', 'messaging'],\n stability: StabilityEnum.Stable,\n },\n supportedModes: ['managed', 'byok'],\n capabilities: {\n provides: [{ key: 'sms.outbound', version: 1 }],\n },\n configSchema: {\n schema: {\n type: 'object',\n properties: {\n fromNumber: {\n type: 'string',\n description: 'Default Twilio phone number used as sender.',\n },\n },\n },\n example: {\n fromNumber: '+15551234567',\n },\n },\n secretSchema: {\n schema: {\n type: 'object',\n required: ['accountSid', 'authToken'],\n properties: {\n accountSid: {\n type: 'string',\n description: 'Twilio Account SID.',\n },\n authToken: {\n type: 'string',\n description: 'Twilio Auth Token.',\n },\n },\n },\n example: {\n accountSid: 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',\n authToken: 'auth-token',\n },\n },\n healthCheck: {\n method: 'custom',\n timeoutMs: 3000,\n },\n docsUrl: 'https://www.twilio.com/docs/sms/api',\n constraints: {\n rateLimit: {\n rpm: 200,\n },\n },\n byokSetup: {\n setupInstructions:\n 'Provide a Twilio account SID, auth token, and verify the outbound sending numbers used by the integration.',\n },\n};\n\nexport function registerTwilioSmsIntegration(\n registry: IntegrationSpecRegistry\n): IntegrationSpecRegistry {\n return registry.register(twilioSmsIntegrationSpec);\n}\n"],"mappings":";;;AAGA,MAAaA,2BAA4C;CACvD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,qBAAqB;EAC9B,MAAM,CAAC,OAAO,YAAY;EAC1B,WAAW,cAAc;EAC1B;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EACZ,UAAU,CAAC;EAAE,KAAK;EAAgB,SAAS;EAAG,CAAC,EAChD;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,YAAY,EACV,YAAY;IACV,MAAM;IACN,aAAa;IACd,EACF;GACF;EACD,SAAS,EACP,YAAY,gBACb;EACF;CACD,cAAc;EACZ,QAAQ;GACN,MAAM;GACN,UAAU,CAAC,cAAc,YAAY;GACrC,YAAY;IACV,YAAY;KACV,MAAM;KACN,aAAa;KACd;IACD,WAAW;KACT,MAAM;KACN,aAAa;KACd;IACF;GACF;EACD,SAAS;GACP,YAAY;GACZ,WAAW;GACZ;EACF;CACD,aAAa;EACX,QAAQ;EACR,WAAW;EACZ;CACD,SAAS;CACT,aAAa,EACX,WAAW,EACT,KAAK,KACN,EACF;CACD,WAAW,EACT,mBACE,8GACH;CACF;AAED,SAAgB,6BACd,UACyB;AACzB,QAAO,SAAS,SAAS,yBAAyB"}
@@ -40,4 +40,5 @@ interface VectorStoreProvider {
40
40
  delete(request: VectorDeleteRequest): Promise<void>;
41
41
  }
42
42
  //#endregion
43
- export { VectorDeleteRequest, VectorDocument, VectorSearchQuery, VectorSearchResult, VectorStoreProvider, VectorUpsertRequest };
43
+ export { VectorDeleteRequest, VectorDocument, VectorSearchQuery, VectorSearchResult, VectorStoreProvider, VectorUpsertRequest };
44
+ //# sourceMappingURL=vector-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-store.d.ts","names":[],"sources":["../../../src/integrations/providers/vector-store.ts"],"sourcesContent":[],"mappings":";;;UAEiB,cAAA;;EAAA,MAAA,EAEP,eAFqB;EAErB,OAAA,CAAA,EACE,MADF,CAAA,MAAA,EAAA,OAAA,CAAA;EACE,SAAA,CAAA,EAAA,MAAA;EAEE,SAAA,CAAA,EAAA,IAAA;;AAGG,UAAA,mBAAA,CAAmB;EAMnB,UAAA,EAAA,MAAA;EAMA,SAAA,EAVJ,cAUqB,EAAA;EAUjB,WAAA,CAAA,EAAA,OAAkB;AAQnC;AACkB,UAzBD,mBAAA,CAyBC;EAAsB,UAAA,EAAA,MAAA;EACxB,GAAA,EAAA,MAAA,EAAA;EAA4B,SAAA,CAAA,EAAA,MAAA;;AAC1B,UArBD,iBAAA,CAqBC;EAAsB,UAAA,EAAA,MAAA;EAAO,MAAA,EAnBrC,eAmBqC;;;WAhBpC;;;;UAKM,kBAAA;;;YAGL;WACD;;;UAIM,mBAAA;kBACC,sBAAsB;gBACxB,oBAAoB,QAAQ;kBAC1B,sBAAsB"}
@@ -31,4 +31,5 @@ interface VoiceProvider {
31
31
  synthesize(input: VoiceSynthesisInput): Promise<VoiceSynthesisResult>;
32
32
  }
33
33
  //#endregion
34
- export { Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult };
34
+ export { Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult };
35
+ //# sourceMappingURL=voice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.d.ts","names":[],"sources":["../../../src/integrations/providers/voice.ts"],"sourcesContent":[],"mappings":";UAAiB,KAAA;EAAA,EAAA,EAAA,MAAK;EAUL,IAAA,EAAA,MAAA;EAYA,WAAA,CAAA,EAAA,MAAA;EAQA,QAAA,CAAA,EAAA,MAAa;EACN,MAAA,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,SAAA;EAAR,UAAA,CAAA,EAAA,MAAA;EACI,QAAA,CAAA,EAzBP,MAyBO,CAAA,MAAA,EAAA,MAAA,CAAA;;AAAsB,UAtBzB,mBAAA,CAsByB;EAAO,IAAA,EAAA,MAAA;;;;;;;;aAbpC;;UAGI,oBAAA;SACR;;;;;;UAOQ,aAAA;gBACD,QAAQ;oBACJ,sBAAsB,QAAQ"}
@@ -96,4 +96,5 @@ declare class IntegrationCallGuard {
96
96
  declare function ensureConnectionReady(integration: ResolvedIntegration): void;
97
97
  declare function connectionStatusLabel(status: ConnectionStatus): string;
98
98
  //#endregion
99
- export { IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationContext, IntegrationInvocationStatus, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, connectionStatusLabel, ensureConnectionReady };
99
+ export { IntegrationCallContext, IntegrationCallError, IntegrationCallGuard, IntegrationCallGuardOptions, IntegrationCallResult, IntegrationContext, IntegrationInvocationStatus, IntegrationTelemetryEmitter, IntegrationTelemetryEvent, IntegrationTraceMetadata, connectionStatusLabel, ensureConnectionReady };
100
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","names":[],"sources":["../../src/integrations/runtime.ts"],"sourcesContent":[],"mappings":";;;;;;UASiB,wBAAA;;EAAA,gBAAA,EAAA,MAAA;EAMA,aAAA,EAAA,MAAA;AAgBjB;AAIY,UApBK,yBAAA,CAoBsB;EAEtB,QAAA,EAAA,MAAA;EAKT,KAAA,EAAA,MAAA;EACM,WAAA,CAAA,EAAA,MAAA;EACI,MAAA,CAAA,EAAA,MAAA;EAET,cAAA,EAAA,MAAA;EACE,kBAAA,EAAA,MAAA;EAAM,YAAA,EAAA,MAAA;EAGA,MAAA,EAAA,SAAA,GAAA,OAAsB;EAWtB,UAAA,CAAA,EAAA,MAAA;EAOA,SAAA,CAAA,EAAA,MAAA;EAER,YAAA,CAAA,EAAA,MAAA;EACC,UAAA,EA5CI,IA4CJ;EAIS,QAAA,CAAA,EA/CN,MA+CM,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,GAAA,OAAA,CAAA;;AAKF,UAjDA,2BAAA,CAiD2B;EAC9B,MAAA,CAAA,KAAA,EAjDE,yBAiDF,CAAA,EAjD8B,OAiD9B,CAAA,IAAA,CAAA,GAAA,IAAA;;AAKA,KAnDF,2BAAA,GAmDE,SAAA,GAAA,OAAA;AAAI,UAjDD,kBAAA,CAiDC;EAML,QAAA,EAAA,MAAA;EASwB,KAAA,EAAA,MAAA;EACxB,WAAA,CAAA,EAAA,MAAA;EAyBO,MAAA,CAAA,EAAA,MAAA;EAEF,IAAA,EAvFV,eAuFU;EACH,UAAA,EAvFD,qBAuFC;EACE,cAAA,EAvFC,cAuFD;EAAR,eAAA,EAAA,MAAA;EAC0B,KAAA,EAtF1B,wBAsF0B;EAAtB,MAAA,CAAA,EArFF,MAqFE,CAAA,MAAA,EAAA,OAAA,CAAA;;AAAD,UAlFK,sBAAA,CAkFL;EAkPI,QAAA,EAAA,MAAA;EASA,KAAA,EAAA,MAAA;;;;;;;;UAlUC,oBAAA;;;;;;UAOA;;SAER;UACC;;;;mBAIS;;;;UAKF,2BAAA;cACH;;;;0BAIY;cACZ;;cAMD,oBAAA;;;;;;;;8BASwB,0BACxB;0FAyBO,0CAEF,gCACH,2BACN,QAAQ,KACZ,QAAQ,sBAAsB;;;;;;;;;iBAkPnB,qBAAA,cAAmC;iBASnC,qBAAA,SAA8B"}
@@ -183,4 +183,5 @@ function connectionStatusLabel(status) {
183
183
  }
184
184
 
185
185
  //#endregion
186
- export { IntegrationCallGuard, connectionStatusLabel, ensureConnectionReady };
186
+ export { IntegrationCallGuard, connectionStatusLabel, ensureConnectionReady };
187
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","names":["secretProvider: SecretProvider"],"sources":["../../src/integrations/runtime.ts"],"sourcesContent":["import { performance } from 'node:perf_hooks';\nimport type {\n ResolvedAppConfig,\n ResolvedIntegration,\n} from '../app-config/runtime';\nimport type { ConnectionStatus, IntegrationConnection } from './connection';\nimport type { IntegrationSpec } from './spec';\nimport type { SecretProvider, SecretValue } from './secrets/provider';\n\nexport interface IntegrationTraceMetadata {\n blueprintName: string;\n blueprintVersion: number;\n configVersion: number;\n}\n\nexport interface IntegrationTelemetryEvent {\n tenantId: string;\n appId: string;\n environment?: string;\n slotId?: string;\n integrationKey: string;\n integrationVersion: number;\n connectionId: string;\n status: 'success' | 'error';\n durationMs?: number;\n errorCode?: string;\n errorMessage?: string;\n occurredAt: Date;\n metadata?: Record<string, string | number | boolean>;\n}\n\nexport interface IntegrationTelemetryEmitter {\n record(event: IntegrationTelemetryEvent): Promise<void> | void;\n}\n\nexport type IntegrationInvocationStatus = 'success' | 'error';\n\nexport interface IntegrationContext {\n tenantId: string;\n appId: string;\n environment?: string;\n slotId?: string;\n spec: IntegrationSpec;\n connection: IntegrationConnection;\n secretProvider: SecretProvider;\n secretReference: string;\n trace: IntegrationTraceMetadata;\n config?: Record<string, unknown>;\n}\n\nexport interface IntegrationCallContext {\n tenantId: string;\n appId: string;\n environment?: string;\n blueprintName: string;\n blueprintVersion: number;\n configVersion: number;\n slotId: string;\n operation: string;\n}\n\nexport interface IntegrationCallError {\n code: string;\n message: string;\n retryable: boolean;\n cause?: unknown;\n}\n\nexport interface IntegrationCallResult<T> {\n success: boolean;\n data?: T;\n error?: IntegrationCallError;\n metadata: {\n latencyMs: number;\n connectionId: string;\n ownershipMode: IntegrationConnection['ownershipMode'];\n attempts: number;\n };\n}\n\nexport interface IntegrationCallGuardOptions {\n telemetry?: IntegrationTelemetryEmitter;\n maxAttempts?: number;\n backoffMs?: number;\n shouldRetry?: (error: unknown, attempt: number) => boolean;\n sleep?: (ms: number) => Promise<void>;\n now?: () => Date;\n}\n\nconst DEFAULT_MAX_ATTEMPTS = 3;\nconst DEFAULT_BACKOFF_MS = 250;\n\nexport class IntegrationCallGuard {\n private readonly telemetry?: IntegrationTelemetryEmitter;\n private readonly maxAttempts: number;\n private readonly backoffMs: number;\n private readonly shouldRetry: (error: unknown, attempt: number) => boolean;\n private readonly sleep: (ms: number) => Promise<void>;\n private readonly now: () => Date;\n\n constructor(\n private readonly secretProvider: SecretProvider,\n options: IntegrationCallGuardOptions = {}\n ) {\n this.telemetry = options.telemetry;\n this.maxAttempts = Math.max(1, options.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n this.backoffMs = options.backoffMs ?? DEFAULT_BACKOFF_MS;\n this.shouldRetry =\n options.shouldRetry ??\n ((error: unknown) =>\n typeof error === 'object' &&\n error !== null &&\n 'retryable' in error &&\n Boolean((error as { retryable?: unknown }).retryable));\n this.sleep =\n options.sleep ??\n ((ms: number) =>\n ms <= 0\n ? Promise.resolve()\n : new Promise((resolve) => setTimeout(resolve, ms)));\n this.now = options.now ?? (() => new Date());\n }\n\n async executeWithGuards<T>(\n slotId: string,\n operation: string,\n input: unknown,\n resolvedConfig: ResolvedAppConfig,\n executor: (\n connection: IntegrationConnection,\n secrets: Record<string, string>\n ) => Promise<T>\n ): Promise<IntegrationCallResult<T>> {\n const integration = this.findIntegration(slotId, resolvedConfig);\n if (!integration) {\n return this.failure(\n {\n tenantId: resolvedConfig.tenantId,\n appId: resolvedConfig.appId,\n environment: resolvedConfig.environment,\n blueprintName: resolvedConfig.blueprintName,\n blueprintVersion: resolvedConfig.blueprintVersion,\n configVersion: resolvedConfig.configVersion,\n slotId,\n operation,\n },\n undefined,\n {\n code: 'SLOT_NOT_BOUND',\n message: `Integration slot \"${slotId}\" is not bound for tenant \"${resolvedConfig.tenantId}\".`,\n retryable: false,\n },\n 0\n );\n }\n\n const status = integration.connection.status;\n if (status === 'disconnected' || status === 'error') {\n return this.failure(\n this.makeContext(slotId, operation, resolvedConfig),\n integration,\n {\n code: 'CONNECTION_NOT_READY',\n message: `Integration connection \"${integration.connection.meta.label}\" is in status \"${status}\".`,\n retryable: false,\n },\n 0\n );\n }\n\n const secrets = await this.fetchSecrets(integration.connection);\n\n let attempt = 0;\n const started = performance.now();\n while (attempt < this.maxAttempts) {\n attempt += 1;\n try {\n const data = await executor(integration.connection, secrets);\n const duration = performance.now() - started;\n this.emitTelemetry(\n this.makeContext(slotId, operation, resolvedConfig),\n integration,\n 'success',\n duration\n );\n return {\n success: true,\n data,\n metadata: {\n latencyMs: duration,\n connectionId: integration.connection.meta.id,\n ownershipMode: integration.connection.ownershipMode,\n attempts: attempt,\n },\n };\n } catch (error) {\n const duration = performance.now() - started;\n this.emitTelemetry(\n this.makeContext(slotId, operation, resolvedConfig),\n integration,\n 'error',\n duration,\n this.errorCodeFor(error),\n error instanceof Error ? error.message : String(error)\n );\n const retryable = this.shouldRetry(error, attempt);\n if (!retryable || attempt >= this.maxAttempts) {\n return {\n success: false,\n error: {\n code: this.errorCodeFor(error),\n message: error instanceof Error ? error.message : String(error),\n retryable,\n cause: error,\n },\n metadata: {\n latencyMs: duration,\n connectionId: integration.connection.meta.id,\n ownershipMode: integration.connection.ownershipMode,\n attempts: attempt,\n },\n };\n }\n await this.sleep(this.backoffMs);\n }\n }\n\n // Should never reach here due to loop logic.\n return {\n success: false,\n error: {\n code: 'UNKNOWN_ERROR',\n message: 'Integration call failed after retries.',\n retryable: false,\n },\n metadata: {\n latencyMs: performance.now() - started,\n connectionId: integration.connection.meta.id,\n ownershipMode: integration.connection.ownershipMode,\n attempts: this.maxAttempts,\n },\n };\n }\n\n private findIntegration(\n slotId: string,\n config: ResolvedAppConfig\n ): ResolvedIntegration | undefined {\n return config.integrations.find(\n (integration) => integration.slot.slotId === slotId\n );\n }\n\n private async fetchSecrets(\n connection: IntegrationConnection\n ): Promise<Record<string, string>> {\n if (!this.secretProvider.canHandle(connection.secretRef)) {\n throw new Error(\n `Secret provider \"${this.secretProvider.id}\" cannot handle reference \"${connection.secretRef}\".`\n );\n }\n const secret = await this.secretProvider.getSecret(connection.secretRef);\n return this.parseSecret(secret);\n }\n\n private parseSecret(secret: SecretValue): Record<string, string> {\n const text = new TextDecoder().decode(secret.data);\n try {\n const parsed = JSON.parse(text);\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n const entries = Object.entries(parsed).filter(\n ([, value]) =>\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n );\n return Object.fromEntries(\n entries.map(([key, value]) => [key, String(value)])\n );\n }\n } catch {\n // Fall through to raw secret.\n }\n return { secret: text };\n }\n\n private emitTelemetry(\n context: IntegrationCallContext,\n integration: ResolvedIntegration | undefined,\n status: 'success' | 'error',\n durationMs: number,\n errorCode?: string,\n errorMessage?: string\n ) {\n if (!this.telemetry || !integration) return;\n this.telemetry.record({\n tenantId: context.tenantId,\n appId: context.appId,\n environment: context.environment,\n slotId: context.slotId,\n integrationKey: integration.connection.meta.integrationKey,\n integrationVersion: integration.connection.meta.integrationVersion,\n connectionId: integration.connection.meta.id,\n status,\n durationMs,\n errorCode,\n errorMessage,\n occurredAt: this.now(),\n metadata: {\n blueprint: `${context.blueprintName}.v${context.blueprintVersion}`,\n configVersion: context.configVersion,\n operation: context.operation,\n },\n });\n }\n\n private failure<T>(\n context: IntegrationCallContext,\n integration: ResolvedIntegration | undefined,\n error: IntegrationCallError,\n attempts: number\n ): IntegrationCallResult<T> {\n if (integration) {\n this.emitTelemetry(\n context,\n integration,\n 'error',\n 0,\n error.code,\n error.message\n );\n }\n return {\n success: false,\n error,\n metadata: {\n latencyMs: 0,\n connectionId: integration?.connection.meta.id ?? 'unknown',\n ownershipMode: integration?.connection.ownershipMode ?? 'managed',\n attempts,\n },\n };\n }\n\n private makeContext(\n slotId: string,\n operation: string,\n config: ResolvedAppConfig\n ): IntegrationCallContext {\n return {\n tenantId: config.tenantId,\n appId: config.appId,\n environment: config.environment,\n blueprintName: config.blueprintName,\n blueprintVersion: config.blueprintVersion,\n configVersion: config.configVersion,\n slotId,\n operation,\n };\n }\n\n private errorCodeFor(error: unknown): string {\n if (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n typeof (error as { code?: unknown }).code === 'string'\n ) {\n return (error as { code: string }).code;\n }\n return 'PROVIDER_ERROR';\n }\n}\n\nexport function ensureConnectionReady(integration: ResolvedIntegration): void {\n const status = integration.connection.status;\n if (status === 'disconnected' || status === 'error') {\n throw new Error(\n `Integration connection \"${integration.connection.meta.label}\" is in status \"${status}\".`\n );\n }\n}\n\nexport function connectionStatusLabel(status: ConnectionStatus): string {\n switch (status) {\n case 'connected':\n return 'connected';\n case 'disconnected':\n return 'disconnected';\n case 'error':\n return 'error';\n case 'unknown':\n default:\n return 'unknown';\n }\n}\n"],"mappings":"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"}
@@ -28,4 +28,5 @@ declare class AwsSecretsManagerProvider implements SecretProvider {
28
28
  private buildReference;
29
29
  }
30
30
  //#endregion
31
- export { AwsSecretsManagerProvider };
31
+ export { AwsSecretsManagerProvider };
32
+ //# sourceMappingURL=aws-secret-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-secret-manager.d.ts","names":[],"sources":["../../../src/integrations/secrets/aws-secret-manager.ts"],"sourcesContent":[],"mappings":";;;;KAwBK,uBAAA,GAA0B,KAAK;KAE/B,6BAAA,GAAgC,6BAC5B;AALW,UAQV,gCAAA,CAN0B;EAE/B,MAAA,CAAA,EAAA,MAAA;EAIK,MAAA,CAAA,EAEC,uBAFD;EAeG,YAAA,CAAA,EAZI,6BAYsB;;AAchB,cAdV,yBAAA,YAAqC,cAc3B,CAAA;EAcR,SAAA,EAAA,GAAA,qBAAA;EACD,iBAAA,cAAA;EACD,iBAAA,cAAA;EAAR,iBAAA,YAAA;EAsCU,iBAAA,eAAA;EACF,WAAA,CAAA,OAAA,CAAA,EA7DU,gCA6DV;EACA,SAAA,CAAA,SAAA,EAxDU,eAwDV,CAAA,EAAA,OAAA;EAAR,SAAA,CAAA,SAAA,EA1CU,eA0CV,EAAA,OAAA,CAAA,EAzCS,kBAyCT,CAAA,EAxCA,OAwCA,CAxCQ,WAwCR,CAAA;EA4EU,SAAA,CAAA,SAAA,EA9EA,eA8EA,EAAA,OAAA,EA7EF,kBA6EE,CAAA,EA5EV,OA4EU,CA5EF,oBA4EE,CAAA;EACF,YAAA,CAAA,SAAA,EADE,eACF,EAAA,OAAA,EAAA,kBAAA,CAAA,EACR,OADQ,CACA,oBADA,CAAA;EACA,YAAA,CAAA,SAAA,EAImB,eAJnB,CAAA,EAIqC,OAJrC,CAAA,IAAA,CAAA;EAAR,QAAA,SAAA;EAI2B,QAAA,cAAA;EAAkB,QAAA,aAAA;EAxJA,QAAA,oBAAA;EAAc,QAAA,cAAA"}
@@ -228,4 +228,5 @@ function toAwsSecretProviderError(params) {
228
228
  }
229
229
 
230
230
  //#endregion
231
- export { AwsSecretsManagerProvider };
231
+ export { AwsSecretsManagerProvider };
232
+ //# sourceMappingURL=aws-secret-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-secret-manager.js","names":["code: SecretProviderError['code']"],"sources":["../../../src/integrations/secrets/aws-secret-manager.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\n\nimport {\n CreateSecretCommand,\n DeleteSecretCommand,\n GetSecretValueCommand,\n PutSecretValueCommand,\n SecretsManagerClient,\n} from '@aws-sdk/client-secrets-manager';\n\nimport {\n normalizeSecretPayload,\n parseSecretUri,\n SecretProviderError,\n} from './provider';\nimport type {\n SecretFetchOptions,\n SecretProvider,\n SecretReference,\n SecretRotationResult,\n SecretValue,\n SecretWritePayload,\n} from './provider';\n\ntype AwsSecretsManagerClient = Pick<SecretsManagerClient, 'send'>;\n\ntype AwsSecretsManagerClientConfig = ConstructorParameters<\n typeof SecretsManagerClient\n>[0];\n\ninterface AwsSecretsManagerProviderOptions {\n region?: string;\n client?: AwsSecretsManagerClient;\n clientConfig?: AwsSecretsManagerClientConfig;\n}\n\ninterface AwsSecretLocation {\n region: string;\n secretId: string;\n version?: string;\n stage?: string;\n}\n\nconst DEFAULT_DELETE_RECOVERY_DAYS = 7;\n\nexport class AwsSecretsManagerProvider implements SecretProvider {\n readonly id = 'aws-secrets-manager';\n\n private readonly explicitRegion?: string;\n private readonly injectedClient?: AwsSecretsManagerClient;\n private readonly clientConfig?: AwsSecretsManagerClientConfig;\n private readonly clientsByRegion = new Map<string, AwsSecretsManagerClient>();\n\n constructor(options: AwsSecretsManagerProviderOptions = {}) {\n this.explicitRegion = options.region;\n this.injectedClient = options.client;\n this.clientConfig = options.clientConfig;\n }\n\n canHandle(reference: SecretReference): boolean {\n try {\n const parsed = parseSecretUri(reference);\n return (\n parsed.provider === 'aws' &&\n (parsed.path === 'secretsmanager' ||\n parsed.path.startsWith('secretsmanager/'))\n );\n } catch {\n return false;\n }\n }\n\n async getSecret(\n reference: SecretReference,\n options?: SecretFetchOptions\n ): Promise<SecretValue> {\n const location = this.parseReference(reference);\n const client = this.getClient(location.region);\n\n const requestedVersion =\n options?.version ?? location.stage ?? location.version;\n const input = {\n SecretId: location.secretId,\n ...this.buildVersionSelector(requestedVersion),\n };\n\n try {\n const result = await client.send(new GetSecretValueCommand(input));\n const data = extractAwsSecretBytes(result, reference, this.id);\n return {\n data,\n version:\n typeof result.VersionId === 'string' && result.VersionId\n ? result.VersionId\n : requestedVersion,\n metadata: {\n region: location.region,\n secretId: location.secretId,\n ...(requestedVersion ? { requestedVersion } : {}),\n },\n retrievedAt: new Date(),\n };\n } catch (error) {\n throw toAwsSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'getSecret',\n });\n }\n }\n\n async setSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n const location = this.parseReference(reference);\n const client = this.getClient(location.region);\n const bytes = normalizeSecretPayload(payload);\n\n try {\n const result = await client.send(\n new PutSecretValueCommand({\n SecretId: location.secretId,\n SecretBinary: bytes,\n })\n );\n\n const versionId =\n typeof result.VersionId === 'string' && result.VersionId\n ? result.VersionId\n : 'latest';\n\n return {\n reference: this.buildReference(location.region, location.secretId, {\n version: versionId,\n }),\n version: versionId,\n };\n } catch (error) {\n if (!isAwsNotFound(error)) {\n throw toAwsSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'putSecretValue',\n });\n }\n\n // Secret doesn't exist yet: create it when reference is name-like.\n if (looksLikeAwsArn(location.secretId)) {\n throw new SecretProviderError({\n message: `Secret not found: ${location.secretId}`,\n provider: this.id,\n reference,\n code: 'NOT_FOUND',\n cause: error,\n });\n }\n\n try {\n const created = await client.send(\n new CreateSecretCommand({\n Name: location.secretId,\n SecretBinary: bytes,\n })\n );\n\n const versionId =\n typeof created.VersionId === 'string' && created.VersionId\n ? created.VersionId\n : 'latest';\n\n return {\n reference: this.buildReference(location.region, location.secretId, {\n version: versionId,\n }),\n version: versionId,\n };\n } catch (creationError) {\n throw toAwsSecretProviderError({\n error: creationError,\n provider: this.id,\n reference,\n operation: 'createSecret',\n });\n }\n }\n }\n\n async rotateSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n return this.setSecret(reference, payload);\n }\n\n async deleteSecret(reference: SecretReference): Promise<void> {\n const location = this.parseReference(reference);\n const client = this.getClient(location.region);\n\n try {\n await client.send(\n new DeleteSecretCommand({\n SecretId: location.secretId,\n RecoveryWindowInDays: DEFAULT_DELETE_RECOVERY_DAYS,\n })\n );\n } catch (error) {\n throw toAwsSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'deleteSecret',\n });\n }\n }\n\n private getClient(region: string): AwsSecretsManagerClient {\n if (this.injectedClient) {\n return this.injectedClient;\n }\n\n const cached = this.clientsByRegion.get(region);\n if (cached) {\n return cached;\n }\n\n const client = new SecretsManagerClient({\n ...(this.clientConfig ?? {}),\n region,\n });\n\n this.clientsByRegion.set(region, client);\n return client;\n }\n\n private parseReference(reference: SecretReference): AwsSecretLocation {\n const parsed = parseSecretUri(reference);\n if (parsed.provider !== 'aws') {\n throw new SecretProviderError({\n message: `Unsupported secret provider: ${parsed.provider}`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const segments = parsed.path.split('/').filter(Boolean);\n if (segments.length < 3 || segments[0] !== 'secretsmanager') {\n throw new SecretProviderError({\n message:\n 'Expected secret reference format aws://secretsmanager/{region}/{secretIdOrArn}[?version=...]',\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const regionCandidate = segments[1];\n const region = this.resolveRegion(regionCandidate);\n\n const secretId = segments.slice(2).join('/');\n if (!secretId) {\n throw new SecretProviderError({\n message: `Unable to resolve secret id from reference \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n return {\n region,\n secretId,\n version: parsed.extras?.version,\n stage: parsed.extras?.stage,\n };\n }\n\n private resolveRegion(regionCandidate?: string): string {\n const region =\n regionCandidate ??\n this.explicitRegion ??\n process.env.AWS_REGION ??\n process.env.AWS_DEFAULT_REGION;\n\n if (!region) {\n throw new SecretProviderError({\n message:\n 'AWS region must be provided either in reference (aws://secretsmanager/{region}/...) or via AWS_REGION/AWS_DEFAULT_REGION.',\n provider: this.id,\n reference: 'aws://secretsmanager//',\n code: 'INVALID',\n });\n }\n\n return region;\n }\n\n private buildVersionSelector(\n version?: string\n ): { VersionStage?: string; VersionId?: string } | Record<string, never> {\n if (!version) return {};\n\n if (version === 'latest' || version === 'current') {\n return { VersionStage: 'AWSCURRENT' };\n }\n\n if (version.startsWith('AWS')) {\n return { VersionStage: version };\n }\n\n return { VersionId: version };\n }\n\n private buildReference(\n region: string,\n secretId: string,\n extras?: Record<string, string>\n ): string {\n const base = `aws://secretsmanager/${region}/${secretId}`;\n const query = extras\n ? Object.entries(extras)\n .filter(([, value]) => Boolean(value))\n .map(\n ([key, value]) =>\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\n )\n .join('&')\n : '';\n\n return query ? `${base}?${query}` : base;\n }\n}\n\nfunction extractAwsSecretBytes(\n result: unknown,\n reference: SecretReference,\n provider: string\n): Uint8Array {\n if (!result || typeof result !== 'object') {\n throw new SecretProviderError({\n message: 'Invalid AWS Secrets Manager response',\n provider,\n reference,\n code: 'UNKNOWN',\n cause: result,\n });\n }\n\n const record = result as {\n SecretBinary?: unknown;\n SecretString?: unknown;\n };\n\n if (record.SecretBinary instanceof Uint8Array) {\n return record.SecretBinary;\n }\n\n if (typeof record.SecretBinary === 'string') {\n // Some runtimes may coerce binary payload to base64 string.\n return Buffer.from(record.SecretBinary, 'base64');\n }\n\n if (typeof record.SecretString === 'string') {\n return Buffer.from(record.SecretString, 'utf-8');\n }\n\n throw new SecretProviderError({\n message: 'AWS secret value is empty',\n provider,\n reference,\n code: 'NOT_FOUND',\n cause: result,\n });\n}\n\nfunction looksLikeAwsArn(secretId: string): boolean {\n return secretId.startsWith('arn:aws:secretsmanager:');\n}\n\nfunction isAwsNotFound(error: unknown): boolean {\n if (!error || typeof error !== 'object') return false;\n const err = error as {\n name?: unknown;\n $metadata?: { httpStatusCode?: unknown };\n };\n if (typeof err.$metadata?.httpStatusCode === 'number') {\n return err.$metadata.httpStatusCode === 404;\n }\n return err.name === 'ResourceNotFoundException';\n}\n\nfunction toAwsSecretProviderError(params: {\n error: unknown;\n provider: string;\n reference: SecretReference;\n operation: string;\n}): SecretProviderError {\n const { error, provider, reference, operation } = params;\n\n if (error instanceof SecretProviderError) {\n return error;\n }\n\n const httpStatusCode =\n typeof error === 'object' &&\n error !== null &&\n '$metadata' in error &&\n typeof (error as { $metadata?: unknown }).$metadata === 'object' &&\n (error as { $metadata?: { httpStatusCode?: unknown } }).$metadata\n ?.httpStatusCode;\n\n const code: SecretProviderError['code'] =\n httpStatusCode === 404\n ? 'NOT_FOUND'\n : httpStatusCode === 401 || httpStatusCode === 403\n ? 'FORBIDDEN'\n : httpStatusCode === 400\n ? 'INVALID'\n : 'UNKNOWN';\n\n const message =\n error instanceof Error\n ? error.message\n : `Unknown error during ${operation}`;\n\n return new SecretProviderError({\n message,\n provider,\n reference,\n code,\n cause: error,\n });\n}\n"],"mappings":"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"}
@@ -28,4 +28,5 @@ declare class EnvSecretProvider implements SecretProvider {
28
28
  private forbiddenError;
29
29
  }
30
30
  //#endregion
31
- export { EnvSecretProvider };
31
+ export { EnvSecretProvider };
32
+ //# sourceMappingURL=env-secret-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-secret-provider.d.ts","names":[],"sources":["../../../src/integrations/secrets/env-secret-provider.ts"],"sourcesContent":[],"mappings":";;;UASU,wBAAA;;AAFU;AAgBpB;;;EAc6B,OAAA,CAAA,EAtBjB,MAsBiB,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;AAwCd,cAtDF,iBAAA,YAA6B,cAsD3B,CAAA;EACD,SAAA,EAAA,GAAA,KAAA;EACD,iBAAA,OAAA;EAAR,WAAA,CAAA,OAAA,CAAA,EAnDkB,wBAmDlB;EAI2B,SAAA,CAAA,SAAA,EAnDT,eAmDS,CAAA,EAAA,OAAA;EAAkB,SAAA,CAAA,SAAA,EA9CrB,eA8CqB,CAAA,EA9CH,OA8CG,CA9CK,WA8CL,CAAA;EA5DR,SAAA,CAAA,SAAA,EA+C3B,eA/C2B,EAAA,QAAA,EAgD5B,kBAhD4B,CAAA,EAiDrC,OAjDqC,CAiD7B,oBAjD6B,CAAA;EAAc,YAAA,CAAA,SAAA,EAsDzC,eAtDyC,EAAA,QAAA,EAuD1C,kBAvD0C,CAAA,EAwDnD,OAxDmD,CAwD3C,oBAxD2C,CAAA;0BA4DxB,kBAAkB"}
@@ -78,4 +78,5 @@ var EnvSecretProvider = class {
78
78
  };
79
79
 
80
80
  //#endregion
81
- export { EnvSecretProvider };
81
+ export { EnvSecretProvider };
82
+ //# sourceMappingURL=env-secret-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-secret-provider.js","names":[],"sources":["../../../src/integrations/secrets/env-secret-provider.ts"],"sourcesContent":["import { parseSecretUri, SecretProviderError } from './provider';\nimport type {\n SecretProvider,\n SecretReference,\n SecretRotationResult,\n SecretValue,\n SecretWritePayload,\n} from './provider';\n\ninterface EnvSecretProviderOptions {\n /**\n * Optional map to alias secret references to environment variable names.\n * Useful when referencing secrets from other providers (e.g. gcp://...)\n * while still allowing local overrides.\n */\n aliases?: Record<string, string>;\n}\n\n/**\n * Environment-variable backed secret provider. Read-only by design.\n * Allows overriding other secret providers by deriving environment variable\n * names from secret references (or by using explicit aliases).\n */\nexport class EnvSecretProvider implements SecretProvider {\n readonly id = 'env';\n\n private readonly aliases: Record<string, string>;\n\n constructor(options: EnvSecretProviderOptions = {}) {\n this.aliases = options.aliases ?? {};\n }\n\n canHandle(reference: SecretReference): boolean {\n const envKey = this.resolveEnvKey(reference);\n return envKey !== undefined && process.env[envKey] !== undefined;\n }\n\n async getSecret(reference: SecretReference): Promise<SecretValue> {\n const envKey = this.resolveEnvKey(reference);\n if (!envKey) {\n throw new SecretProviderError({\n message: `Unable to resolve environment variable for reference \"${reference}\".`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const value = process.env[envKey];\n if (value === undefined) {\n throw new SecretProviderError({\n message: `Environment variable \"${envKey}\" not found for reference \"${reference}\".`,\n provider: this.id,\n reference,\n code: 'NOT_FOUND',\n });\n }\n\n return {\n data: Buffer.from(value, 'utf-8'),\n version: 'current',\n metadata: {\n source: 'env',\n envKey,\n },\n retrievedAt: new Date(),\n };\n }\n\n async setSecret(\n reference: SecretReference,\n _payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n throw this.forbiddenError('setSecret', reference);\n }\n\n async rotateSecret(\n reference: SecretReference,\n _payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n throw this.forbiddenError('rotateSecret', reference);\n }\n\n async deleteSecret(reference: SecretReference): Promise<void> {\n throw this.forbiddenError('deleteSecret', reference);\n }\n\n private resolveEnvKey(reference: SecretReference): string | undefined {\n if (!reference) {\n return undefined;\n }\n\n if (this.aliases[reference]) {\n return this.aliases[reference];\n }\n\n if (!reference.includes('://')) {\n return reference;\n }\n\n try {\n const parsed = parseSecretUri(reference);\n if (parsed.provider === 'env') {\n return parsed.path;\n }\n\n if (parsed.extras?.env) {\n return parsed.extras.env;\n }\n\n return this.deriveEnvKey(parsed.path);\n } catch {\n return reference;\n }\n }\n\n private deriveEnvKey(path: string): string | undefined {\n if (!path) return undefined;\n return path\n .split(/[\\/:\\-\\.]/)\n .filter(Boolean)\n .map((segment) =>\n segment\n .replace(/[^a-zA-Z0-9]/g, '_')\n .replace(/_{2,}/g, '_')\n .toUpperCase()\n )\n .join('_');\n }\n\n private forbiddenError(\n operation: string,\n reference: SecretReference\n ): SecretProviderError {\n return new SecretProviderError({\n message: `EnvSecretProvider is read-only. \"${operation}\" is not allowed for ${reference}.`,\n provider: this.id,\n reference,\n code: 'FORBIDDEN',\n });\n }\n}\n"],"mappings":";;;;;;;;AAuBA,IAAa,oBAAb,MAAyD;CACvD,AAAS,KAAK;CAEd,AAAiB;CAEjB,YAAY,UAAoC,EAAE,EAAE;AAClD,OAAK,UAAU,QAAQ,WAAW,EAAE;;CAGtC,UAAU,WAAqC;EAC7C,MAAM,SAAS,KAAK,cAAc,UAAU;AAC5C,SAAO,WAAW,UAAa,QAAQ,IAAI,YAAY;;CAGzD,MAAM,UAAU,WAAkD;EAChE,MAAM,SAAS,KAAK,cAAc,UAAU;AAC5C,MAAI,CAAC,OACH,OAAM,IAAI,oBAAoB;GAC5B,SAAS,yDAAyD,UAAU;GAC5E,UAAU,KAAK;GACf;GACA,MAAM;GACP,CAAC;EAGJ,MAAM,QAAQ,QAAQ,IAAI;AAC1B,MAAI,UAAU,OACZ,OAAM,IAAI,oBAAoB;GAC5B,SAAS,yBAAyB,OAAO,6BAA6B,UAAU;GAChF,UAAU,KAAK;GACf;GACA,MAAM;GACP,CAAC;AAGJ,SAAO;GACL,MAAM,OAAO,KAAK,OAAO,QAAQ;GACjC,SAAS;GACT,UAAU;IACR,QAAQ;IACR;IACD;GACD,6BAAa,IAAI,MAAM;GACxB;;CAGH,MAAM,UACJ,WACA,UAC+B;AAC/B,QAAM,KAAK,eAAe,aAAa,UAAU;;CAGnD,MAAM,aACJ,WACA,UAC+B;AAC/B,QAAM,KAAK,eAAe,gBAAgB,UAAU;;CAGtD,MAAM,aAAa,WAA2C;AAC5D,QAAM,KAAK,eAAe,gBAAgB,UAAU;;CAGtD,AAAQ,cAAc,WAAgD;AACpE,MAAI,CAAC,UACH;AAGF,MAAI,KAAK,QAAQ,WACf,QAAO,KAAK,QAAQ;AAGtB,MAAI,CAAC,UAAU,SAAS,MAAM,CAC5B,QAAO;AAGT,MAAI;GACF,MAAM,SAAS,eAAe,UAAU;AACxC,OAAI,OAAO,aAAa,MACtB,QAAO,OAAO;AAGhB,OAAI,OAAO,QAAQ,IACjB,QAAO,OAAO,OAAO;AAGvB,UAAO,KAAK,aAAa,OAAO,KAAK;UAC/B;AACN,UAAO;;;CAIX,AAAQ,aAAa,MAAkC;AACrD,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,KACJ,MAAM,YAAY,CAClB,OAAO,QAAQ,CACf,KAAK,YACJ,QACG,QAAQ,iBAAiB,IAAI,CAC7B,QAAQ,UAAU,IAAI,CACtB,aAAa,CACjB,CACA,KAAK,IAAI;;CAGd,AAAQ,eACN,WACA,WACqB;AACrB,SAAO,IAAI,oBAAoB;GAC7B,SAAS,oCAAoC,UAAU,uBAAuB,UAAU;GACxF,UAAU,KAAK;GACf;GACA,MAAM;GACP,CAAC"}
@@ -29,4 +29,5 @@ declare class GcpSecretManagerProvider implements SecretProvider {
29
29
  private ensureSecretExists;
30
30
  }
31
31
  //#endregion
32
- export { GcpSecretManagerProvider };
32
+ export { GcpSecretManagerProvider };
33
+ //# sourceMappingURL=gcp-secret-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcp-secret-manager.d.ts","names":[],"sources":["../../../src/integrations/secrets/gcp-secret-manager.ts"],"sourcesContent":[],"mappings":";;;;;KAmBK,mBAAA,GAAsB;UAEjB,+BAAA;EAFL,SAAA,CAAA,EAAA,MAAA;EAEK,MAAA,CAAA,EAEC,mBAFD;EAEC,aAAA,CAAA,EACO,qBADP,CAAA,OACoC,0BADpC,CAAA,CAAA,CAAA,CAAA;EACoC,kBAAA,CAAA,EACxB,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,aAAA,CAAc,EAAA,CAAG,YADb;;AACxB,cAaV,wBAAA,YAAoC,cAbW,CAAA;EAAY,SAAA,EAAA,GAAA,oBAAA;EAa3D,iBAAA,MAAA;EAMU,iBAAA,iBAAA;EAQA,iBAAA,WAAA;EAUR,WAAA,CAAA,OAAA,CAAA,EAlBQ,+BAkBR;EAEG,SAAA,CAAA,SAAA,EAZK,eAYL,CAAA,EAAA,OAAA;EACL,SAAA,CAAA,SAAA,EAHE,eAGF,EAAA,OAyCE,CAzCF,EAAA;IAAR,OAAA,CAAA,EAAA,MAAA;EAyCU,CAAA,EAAA,WAAA,CAAA,EA1CG,WA0CH,CAAA,EAzCV,OAyCU,CAzCF,WAyCE,CAAA;EACF,SAAA,CAAA,SAAA,EADE,eACF,EAAA,OAAA,EAAA,kBAAA,CAAA,EACR,OADQ,CACA,oBADA,CAAA;EACA,YAAA,CAAA,SAAA,EAsCE,eAtCF,EAAA,OAAA,EAuCA,kBAvCA,CAAA,EAwCR,OAxCQ,CAwCA,oBAxCA,CAAA;EAAR,YAAA,CAAA,SAAA,EA4C2B,eA5C3B,CAAA,EA4C6C,OA5C7C,CAAA,IAAA,CAAA;EAsCU,QAAA,cAAA;EACF,QAAA,UAAA;EACA,QAAA,gBAAA;EAAR,QAAA,kBAAA"}
@@ -226,4 +226,5 @@ function deriveErrorCode(error) {
226
226
  }
227
227
 
228
228
  //#endregion
229
- export { GcpSecretManagerProvider };
229
+ export { GcpSecretManagerProvider };
230
+ //# sourceMappingURL=gcp-secret-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcp-secret-manager.js","names":["DEFAULT_REPLICATION: protos.google.cloud.secretmanager.v1.IReplication"],"sources":["../../../src/integrations/secrets/gcp-secret-manager.ts"],"sourcesContent":["import {\n protos,\n SecretManagerServiceClient,\n} from '@google-cloud/secret-manager';\nimport type { CallOptions } from 'google-gax';\n\nimport {\n normalizeSecretPayload,\n parseSecretUri,\n SecretProviderError,\n} from './provider';\nimport type {\n SecretProvider,\n SecretReference,\n SecretRotationResult,\n SecretValue,\n SecretWritePayload,\n} from './provider';\n\ntype SecretManagerClient = SecretManagerServiceClient;\n\ninterface GcpSecretManagerProviderOptions {\n projectId?: string;\n client?: SecretManagerClient;\n clientOptions?: ConstructorParameters<typeof SecretManagerServiceClient>[0];\n defaultReplication?: protos.google.cloud.secretmanager.v1.IReplication;\n}\n\ninterface GcpSecretLocation {\n projectId: string;\n secretId: string;\n version?: string;\n}\n\nconst DEFAULT_REPLICATION: protos.google.cloud.secretmanager.v1.IReplication = {\n automatic: {},\n};\n\nexport class GcpSecretManagerProvider implements SecretProvider {\n readonly id = 'gcp-secret-manager';\n private readonly client: SecretManagerClient;\n private readonly explicitProjectId?: string;\n private readonly replication: protos.google.cloud.secretmanager.v1.IReplication;\n\n constructor(options: GcpSecretManagerProviderOptions = {}) {\n this.client =\n options.client ??\n new SecretManagerServiceClient(options.clientOptions ?? {});\n this.explicitProjectId = options.projectId;\n this.replication = options.defaultReplication ?? DEFAULT_REPLICATION;\n }\n\n canHandle(reference: SecretReference): boolean {\n try {\n const parsed = parseSecretUri(reference);\n return parsed.provider === 'gcp';\n } catch {\n return false;\n }\n }\n\n async getSecret(\n reference: SecretReference,\n options?: { version?: string },\n callOptions?: CallOptions\n ): Promise<SecretValue> {\n const location = this.parseReference(reference);\n const secretVersionName = this.buildVersionName(location, options?.version);\n try {\n const response = await this.client.accessSecretVersion(\n {\n name: secretVersionName,\n },\n callOptions ?? {}\n );\n const [result] = response;\n const payload = result.payload;\n if (!payload?.data) {\n throw new SecretProviderError({\n message: `Secret payload empty for ${secretVersionName}`,\n provider: this.id,\n reference,\n code: 'UNKNOWN',\n });\n }\n\n const version = extractVersionFromName(result.name ?? secretVersionName);\n return {\n data: payload.data as Uint8Array,\n version,\n metadata: payload.dataCrc32c\n ? { crc32c: payload.dataCrc32c.toString() }\n : undefined,\n retrievedAt: new Date(),\n };\n } catch (error) {\n throw toSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'access',\n });\n }\n }\n\n async setSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n const location = this.parseReference(reference);\n const { secretName } = this.buildNames(location);\n const data = normalizeSecretPayload(payload);\n await this.ensureSecretExists(location, payload);\n\n try {\n const response = await this.client.addSecretVersion({\n parent: secretName,\n payload: {\n data,\n },\n });\n if (!response) {\n throw new SecretProviderError({\n message: `No version returned when adding secret version for ${secretName}`,\n provider: this.id,\n reference,\n code: 'UNKNOWN',\n });\n }\n const [version] = response;\n const versionName = version?.name ?? `${secretName}/versions/latest`;\n return {\n reference: `gcp://${versionName}`,\n version: extractVersionFromName(versionName) ?? 'latest',\n };\n } catch (error) {\n throw toSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'addSecretVersion',\n });\n }\n }\n\n async rotateSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n return this.setSecret(reference, payload);\n }\n\n async deleteSecret(reference: SecretReference): Promise<void> {\n const location = this.parseReference(reference);\n const { secretName } = this.buildNames(location);\n try {\n await this.client.deleteSecret({\n name: secretName,\n });\n } catch (error) {\n throw toSecretProviderError({\n error,\n provider: this.id,\n reference,\n operation: 'delete',\n });\n }\n }\n\n private parseReference(reference: SecretReference): GcpSecretLocation {\n const parsed = parseSecretUri(reference);\n if (parsed.provider !== 'gcp') {\n throw new SecretProviderError({\n message: `Unsupported secret provider: ${parsed.provider}`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const segments = parsed.path.split('/').filter(Boolean);\n if (segments.length < 4 || segments[0] !== 'projects') {\n throw new SecretProviderError({\n message: `Expected secret reference format gcp://projects/{project}/secrets/{secret}[(/versions/{version})] but received \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const projectIdCandidate = segments[1] ?? this.explicitProjectId;\n if (!projectIdCandidate) {\n throw new SecretProviderError({\n message: `Unable to resolve project or secret from reference \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const indexOfSecrets = segments.indexOf('secrets');\n if (indexOfSecrets === -1 || indexOfSecrets + 1 >= segments.length) {\n throw new SecretProviderError({\n message: `Unable to resolve project or secret from reference \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n\n const resolvedProjectId = projectIdCandidate;\n const secretIdCandidate = segments[indexOfSecrets + 1];\n if (!secretIdCandidate) {\n throw new SecretProviderError({\n message: `Unable to resolve secret ID from reference \"${parsed.path}\"`,\n provider: this.id,\n reference,\n code: 'INVALID',\n });\n }\n const secretId = secretIdCandidate;\n const indexOfVersions = segments.indexOf('versions');\n const version =\n parsed.extras?.version ??\n (indexOfVersions !== -1 && indexOfVersions + 1 < segments.length\n ? segments[indexOfVersions + 1]\n : undefined);\n\n return {\n projectId: resolvedProjectId,\n secretId,\n version,\n };\n }\n\n private buildNames(location: GcpSecretLocation): {\n secretName: string;\n projectParent: string;\n } {\n const projectId = location.projectId ?? this.explicitProjectId;\n if (!projectId) {\n throw new SecretProviderError({\n message:\n 'Project ID must be provided either in reference or provider configuration',\n provider: this.id,\n reference: `gcp://projects//secrets/${location.secretId}`,\n code: 'INVALID',\n });\n }\n\n const projectParent = `projects/${projectId}`;\n const secretName = `${projectParent}/secrets/${location.secretId}`;\n return {\n projectParent,\n secretName,\n };\n }\n\n private buildVersionName(\n location: GcpSecretLocation,\n explicitVersion?: string\n ): string {\n const { secretName } = this.buildNames(location);\n const version = explicitVersion ?? location.version ?? 'latest';\n return `${secretName}/versions/${version}`;\n }\n\n private async ensureSecretExists(\n location: GcpSecretLocation,\n payload: SecretWritePayload\n ): Promise<void> {\n const { secretName, projectParent } = this.buildNames(location);\n try {\n await this.client.getSecret({ name: secretName });\n } catch (error) {\n const providerError = toSecretProviderError({\n error,\n provider: this.id,\n reference: `gcp://${secretName}`,\n operation: 'getSecret',\n suppressThrow: true,\n });\n if (!providerError || providerError.code !== 'NOT_FOUND') {\n if (providerError) {\n throw providerError;\n }\n throw error;\n }\n try {\n await this.client.createSecret({\n parent: projectParent,\n secretId: location.secretId,\n secret: {\n replication: this.replication,\n labels: payload.labels,\n },\n });\n } catch (creationError) {\n const creationProviderError = toSecretProviderError({\n error: creationError,\n provider: this.id,\n reference: `gcp://${secretName}`,\n operation: 'createSecret',\n });\n throw creationProviderError;\n }\n }\n }\n}\n\nfunction extractVersionFromName(name: string): string | undefined {\n const segments = name.split('/').filter(Boolean);\n const index = segments.indexOf('versions');\n if (index === -1 || index + 1 >= segments.length) {\n return undefined;\n }\n return segments[index + 1];\n}\n\nfunction toSecretProviderError(params: {\n error: unknown;\n provider: string;\n reference: SecretReference;\n operation: string;\n suppressThrow?: boolean;\n}): SecretProviderError {\n const { error, provider, reference, operation, suppressThrow } = params;\n if (error instanceof SecretProviderError) {\n return error;\n }\n\n const code = deriveErrorCode(error);\n const message =\n error instanceof Error\n ? error.message\n : `Unknown error during ${operation}`;\n\n const providerError = new SecretProviderError({\n message,\n provider,\n reference,\n code,\n cause: error,\n });\n\n if (suppressThrow) {\n return providerError;\n }\n\n throw providerError;\n}\n\nfunction deriveErrorCode(error: unknown): SecretProviderError['code'] {\n if (typeof error !== 'object' || error === null) {\n return 'UNKNOWN';\n }\n\n const errorAny = error as { code?: number | string };\n const code = errorAny.code;\n if (code === 5 || code === 'NOT_FOUND') return 'NOT_FOUND';\n if (code === 6 || code === 'ALREADY_EXISTS') return 'INVALID';\n if (code === 7 || code === 'PERMISSION_DENIED' || code === 403) {\n return 'FORBIDDEN';\n }\n if (code === 3 || code === 'INVALID_ARGUMENT') return 'INVALID';\n return 'UNKNOWN';\n}\n"],"mappings":"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"}
@@ -44,4 +44,5 @@ declare class SecretProviderManager implements SecretProvider {
44
44
  }
45
45
  type SecretFetchOptions = Parameters<SecretProvider['getSecret']>[1];
46
46
  //#endregion
47
- export { SecretProviderManager, SecretProviderManagerOptions };
47
+ export { SecretProviderManager, SecretProviderManagerOptions };
48
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","names":[],"sources":["../../../src/integrations/secrets/manager.ts"],"sourcesContent":[],"mappings":";;;UAeU,eAAA;;AARU;AAepB;EAmBa,QAAA,CAAA,EAAA,MAAA;;AAaQ,UAhCJ,4BAAA,CAgCI;EAAyB;;;EAuBhC,EAAA,CAAA,EAAA,MAAA;EACD;;;;EA2BA,SAAA,CAAA,EAAA;IAAR,QAAA,EA1EqB,cA0ErB;IAOU,QAAA,CAAA,EAAA,MAAA;EACF,CAAA,EAAA;;;;;;;AA0EZ;;cAlJY,qBAAA,YAAiC;;;;wBAKvB;qBAQF,0BAAyB;uBAevB;uBAOR,2BACD,qBACT,QAAQ;uBAyBE,0BACF,qBACR,QAAQ;0BAOE,0BACF,qBACR,QAAQ;0BAMmB,kBAAkB;;;;KAgF7C,kBAAA,GAAqB,WAAW"}
@@ -100,4 +100,5 @@ function safeCanHandle(provider, reference) {
100
100
  }
101
101
 
102
102
  //#endregion
103
- export { SecretProviderManager };
103
+ export { SecretProviderManager };
104
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","names":["errors: SecretProviderError[]"],"sources":["../../../src/integrations/secrets/manager.ts"],"sourcesContent":["import { SecretProviderError } from './provider';\nimport type {\n SecretProvider,\n SecretReference,\n SecretRotationResult,\n SecretValue,\n SecretWritePayload,\n} from './provider';\n\ninterface ProviderRegistration {\n readonly provider: SecretProvider;\n readonly priority: number;\n readonly order: number;\n}\n\ninterface RegisterOptions {\n /**\n * Larger priority values are attempted first. Defaults to 0.\n */\n priority?: number;\n}\n\nexport interface SecretProviderManagerOptions {\n /**\n * Override manager identifier. Defaults to \"secret-provider-manager\".\n */\n id?: string;\n /**\n * Providers to pre-register. They are registered in array order with\n * descending priority (first entry wins ties).\n */\n providers?: { provider: SecretProvider; priority?: number }[];\n}\n\n/**\n * Composite secret provider that delegates to registered providers.\n * Providers are attempted in order of descending priority, respecting the\n * registration order for ties. This enables privileged overrides (e.g.\n * environment variables) while still supporting durable backends like GCP\n * Secret Manager.\n */\nexport class SecretProviderManager implements SecretProvider {\n readonly id: string;\n private readonly providers: ProviderRegistration[] = [];\n private registrationCounter = 0;\n\n constructor(options: SecretProviderManagerOptions = {}) {\n this.id = options.id ?? 'secret-provider-manager';\n const initialProviders = options.providers ?? [];\n for (const entry of initialProviders) {\n this.register(entry.provider, { priority: entry.priority });\n }\n }\n\n register(provider: SecretProvider, options: RegisterOptions = {}): this {\n this.providers.push({\n provider,\n priority: options.priority ?? 0,\n order: this.registrationCounter++,\n });\n this.providers.sort((a, b) => {\n if (a.priority !== b.priority) {\n return b.priority - a.priority;\n }\n return a.order - b.order;\n });\n return this;\n }\n\n canHandle(reference: SecretReference): boolean {\n return this.providers.some(({ provider }) =>\n safeCanHandle(provider, reference)\n );\n }\n\n async getSecret(\n reference: SecretReference,\n options?: SecretFetchOptions\n ): Promise<SecretValue> {\n const errors: SecretProviderError[] = [];\n\n for (const { provider } of this.providers) {\n if (!safeCanHandle(provider, reference)) {\n continue;\n }\n try {\n return await provider.getSecret(reference, options);\n } catch (error) {\n if (error instanceof SecretProviderError) {\n errors.push(error);\n if (error.code !== 'NOT_FOUND') {\n break;\n }\n continue;\n }\n throw error;\n }\n }\n\n throw this.composeError('getSecret', reference, errors, options?.version);\n }\n\n async setSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n return this.delegateToFirst('setSecret', reference, (provider) =>\n provider.setSecret(reference, payload)\n );\n }\n\n async rotateSecret(\n reference: SecretReference,\n payload: SecretWritePayload\n ): Promise<SecretRotationResult> {\n return this.delegateToFirst('rotateSecret', reference, (provider) =>\n provider.rotateSecret(reference, payload)\n );\n }\n\n async deleteSecret(reference: SecretReference): Promise<void> {\n await this.delegateToFirst('deleteSecret', reference, (provider) =>\n provider.deleteSecret(reference)\n );\n }\n\n private async delegateToFirst<T>(\n operation: 'setSecret' | 'rotateSecret' | 'deleteSecret',\n reference: SecretReference,\n invoker: (provider: SecretProvider) => Promise<T>\n ): Promise<T> {\n const errors: SecretProviderError[] = [];\n\n for (const { provider } of this.providers) {\n if (!safeCanHandle(provider, reference)) {\n continue;\n }\n try {\n return await invoker(provider);\n } catch (error) {\n if (error instanceof SecretProviderError) {\n errors.push(error);\n continue;\n }\n throw error;\n }\n }\n\n throw this.composeError(operation, reference, errors);\n }\n\n private composeError(\n operation: string,\n reference: SecretReference,\n errors: SecretProviderError[],\n version?: string\n ): SecretProviderError {\n if (errors.length === 1) {\n const [singleError] = errors;\n if (singleError) {\n return singleError;\n }\n }\n\n const messageParts = [\n `No registered secret provider could ${operation}`,\n `reference \"${reference}\"`,\n ];\n if (version) {\n messageParts.push(`(version: ${version})`);\n }\n if (errors.length > 1) {\n messageParts.push(\n `Attempts: ${errors\n .map((error) => `${error.provider}:${error.code}`)\n .join(', ')}`\n );\n }\n\n return new SecretProviderError({\n message: messageParts.join(' '),\n provider: this.id,\n reference,\n code: errors.length > 0 ? errors[errors.length - 1]!.code : 'UNKNOWN',\n cause: errors,\n });\n }\n}\n\nfunction safeCanHandle(\n provider: SecretProvider,\n reference: SecretReference\n): boolean {\n try {\n return provider.canHandle(reference);\n } catch {\n return false;\n }\n}\n\ntype SecretFetchOptions = Parameters<SecretProvider['getSecret']>[1];\n"],"mappings":";;;;;;;;;;AAyCA,IAAa,wBAAb,MAA6D;CAC3D,AAAS;CACT,AAAiB,YAAoC,EAAE;CACvD,AAAQ,sBAAsB;CAE9B,YAAY,UAAwC,EAAE,EAAE;AACtD,OAAK,KAAK,QAAQ,MAAM;EACxB,MAAM,mBAAmB,QAAQ,aAAa,EAAE;AAChD,OAAK,MAAM,SAAS,iBAClB,MAAK,SAAS,MAAM,UAAU,EAAE,UAAU,MAAM,UAAU,CAAC;;CAI/D,SAAS,UAA0B,UAA2B,EAAE,EAAQ;AACtE,OAAK,UAAU,KAAK;GAClB;GACA,UAAU,QAAQ,YAAY;GAC9B,OAAO,KAAK;GACb,CAAC;AACF,OAAK,UAAU,MAAM,GAAG,MAAM;AAC5B,OAAI,EAAE,aAAa,EAAE,SACnB,QAAO,EAAE,WAAW,EAAE;AAExB,UAAO,EAAE,QAAQ,EAAE;IACnB;AACF,SAAO;;CAGT,UAAU,WAAqC;AAC7C,SAAO,KAAK,UAAU,MAAM,EAAE,eAC5B,cAAc,UAAU,UAAU,CACnC;;CAGH,MAAM,UACJ,WACA,SACsB;EACtB,MAAMA,SAAgC,EAAE;AAExC,OAAK,MAAM,EAAE,cAAc,KAAK,WAAW;AACzC,OAAI,CAAC,cAAc,UAAU,UAAU,CACrC;AAEF,OAAI;AACF,WAAO,MAAM,SAAS,UAAU,WAAW,QAAQ;YAC5C,OAAO;AACd,QAAI,iBAAiB,qBAAqB;AACxC,YAAO,KAAK,MAAM;AAClB,SAAI,MAAM,SAAS,YACjB;AAEF;;AAEF,UAAM;;;AAIV,QAAM,KAAK,aAAa,aAAa,WAAW,QAAQ,SAAS,QAAQ;;CAG3E,MAAM,UACJ,WACA,SAC+B;AAC/B,SAAO,KAAK,gBAAgB,aAAa,YAAY,aACnD,SAAS,UAAU,WAAW,QAAQ,CACvC;;CAGH,MAAM,aACJ,WACA,SAC+B;AAC/B,SAAO,KAAK,gBAAgB,gBAAgB,YAAY,aACtD,SAAS,aAAa,WAAW,QAAQ,CAC1C;;CAGH,MAAM,aAAa,WAA2C;AAC5D,QAAM,KAAK,gBAAgB,gBAAgB,YAAY,aACrD,SAAS,aAAa,UAAU,CACjC;;CAGH,MAAc,gBACZ,WACA,WACA,SACY;EACZ,MAAMA,SAAgC,EAAE;AAExC,OAAK,MAAM,EAAE,cAAc,KAAK,WAAW;AACzC,OAAI,CAAC,cAAc,UAAU,UAAU,CACrC;AAEF,OAAI;AACF,WAAO,MAAM,QAAQ,SAAS;YACvB,OAAO;AACd,QAAI,iBAAiB,qBAAqB;AACxC,YAAO,KAAK,MAAM;AAClB;;AAEF,UAAM;;;AAIV,QAAM,KAAK,aAAa,WAAW,WAAW,OAAO;;CAGvD,AAAQ,aACN,WACA,WACA,QACA,SACqB;AACrB,MAAI,OAAO,WAAW,GAAG;GACvB,MAAM,CAAC,eAAe;AACtB,OAAI,YACF,QAAO;;EAIX,MAAM,eAAe,CACnB,uCAAuC,aACvC,cAAc,UAAU,GACzB;AACD,MAAI,QACF,cAAa,KAAK,aAAa,QAAQ,GAAG;AAE5C,MAAI,OAAO,SAAS,EAClB,cAAa,KACX,aAAa,OACV,KAAK,UAAU,GAAG,MAAM,SAAS,GAAG,MAAM,OAAO,CACjD,KAAK,KAAK,GACd;AAGH,SAAO,IAAI,oBAAoB;GAC7B,SAAS,aAAa,KAAK,IAAI;GAC/B,UAAU,KAAK;GACf;GACA,MAAM,OAAO,SAAS,IAAI,OAAO,OAAO,SAAS,GAAI,OAAO;GAC5D,OAAO;GACR,CAAC;;;AAIN,SAAS,cACP,UACA,WACS;AACT,KAAI;AACF,SAAO,SAAS,UAAU,UAAU;SAC9B;AACN,SAAO"}