@wildo-ai/saas-backend-lib 1.1.2 → 1.1.3

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 (853) hide show
  1. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  2. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
  3. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  4. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  5. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
  6. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  7. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
  8. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
  9. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
  10. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
  11. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
  12. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
  13. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
  14. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
  15. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
  16. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
  18. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  19. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  20. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +27 -6
  21. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  22. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  23. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  24. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
  25. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  26. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  27. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  28. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
  29. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  30. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +47 -4
  31. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +96 -29
  33. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  34. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  35. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  36. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +9 -1
  44. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +49 -0
  46. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  47. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +171 -18
  48. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
  51. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +20 -0
  54. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  55. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  56. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  57. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  58. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  59. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  60. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  61. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  62. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  63. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  64. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  65. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  66. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +529 -41
  68. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  69. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  70. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  72. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  73. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  74. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  75. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  76. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  77. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  78. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  79. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  80. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  81. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  82. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  83. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  84. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  85. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  86. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  87. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
  88. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  89. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  90. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  91. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  92. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  93. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  94. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  95. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  96. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  97. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  98. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  99. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  100. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  101. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  102. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  103. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  104. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  105. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  106. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +48 -7
  107. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  108. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
  109. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  110. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
  111. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  112. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  113. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  114. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  115. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  116. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  117. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  118. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  119. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  120. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  121. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  122. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  123. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
  124. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  125. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
  126. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  127. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  128. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  129. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  130. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  131. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  132. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  133. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
  134. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  135. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  136. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  137. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  138. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  139. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  140. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  141. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +225 -13
  142. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  143. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +340 -62
  144. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  145. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +244 -7
  146. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  147. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +386 -5
  148. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  149. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  150. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  151. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  152. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +6 -2
  153. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  154. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
  155. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  156. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  157. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  158. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +57 -1
  159. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  160. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  161. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  162. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  163. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  164. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  165. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +31 -0
  166. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  167. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  168. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  169. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  170. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  171. package/dist/esm/config/models/app-config.backend.schemas.d.ts +142 -46
  172. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  173. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  174. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  175. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  176. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  177. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  178. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  179. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  180. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  181. package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
  182. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  183. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  184. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  185. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  186. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +33 -0
  187. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  188. package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
  189. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  190. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
  191. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  192. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
  193. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  194. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  195. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  196. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  197. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  198. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  199. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  200. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  201. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  202. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  203. package/dist/esm/errors/services/error-handler.backend.service.js +129 -8
  204. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  205. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  206. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  207. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  208. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  209. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  210. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  211. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  212. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  213. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  214. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  215. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  216. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  217. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +59 -2
  218. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  219. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +52 -17
  220. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  221. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  222. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  223. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  224. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
  225. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  226. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
  227. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  228. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  229. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  230. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  231. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  232. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  233. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  234. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
  235. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  236. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  237. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  238. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  239. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  240. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  241. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  242. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  243. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  244. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  245. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  246. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  247. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  248. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  249. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  250. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  251. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  252. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  253. package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
  254. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  255. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  256. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  257. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  258. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +292 -7
  259. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  260. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +533 -45
  261. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  262. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  263. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
  264. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  265. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  266. package/dist/esm/files/controllers/file.controller.js +21 -13
  267. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  268. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  269. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +39 -15
  270. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  271. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  272. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  273. package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
  274. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  275. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  276. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  277. package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
  278. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  279. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +53 -2
  280. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  281. package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
  282. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  283. package/dist/esm/files/services/files.backend.service.d.ts +68 -0
  284. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  285. package/dist/esm/files/services/files.backend.service.js +175 -5
  286. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  287. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  288. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  289. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  290. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  291. package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
  292. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  293. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  294. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  295. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  296. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  297. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  298. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  299. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  300. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  301. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  302. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  303. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  304. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  305. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  306. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  307. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  308. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  309. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  310. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  311. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  312. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  313. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  314. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  315. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  316. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  317. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  318. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  319. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  320. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  321. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +196 -40
  322. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  323. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  324. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  325. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  326. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  327. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  328. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  329. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  330. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  331. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  332. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  333. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  334. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  335. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  336. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  337. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  338. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  339. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  340. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  341. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  342. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  343. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  344. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  345. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
  346. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  347. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
  348. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  349. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  350. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  351. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  352. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  353. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  354. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  355. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  356. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  357. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  358. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  359. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +28 -1
  360. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  361. package/dist/esm/flows-actors/services/agents.backend.service.js +204 -18
  362. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  363. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
  364. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  365. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
  366. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  367. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  368. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  369. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  370. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  371. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  372. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  373. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  374. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  375. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  376. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  377. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  378. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  379. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
  380. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  381. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  382. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  383. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  384. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  385. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  386. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +8 -4
  387. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  388. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  389. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  390. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  391. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  392. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  393. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  394. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  395. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  396. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  397. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  398. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  399. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  400. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  401. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  402. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  403. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  404. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  405. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  406. package/dist/esm/index.d.ts +11 -4
  407. package/dist/esm/index.d.ts.map +1 -1
  408. package/dist/esm/index.js +31 -4
  409. package/dist/esm/index.js.map +1 -1
  410. package/dist/esm/inject/models/container.d.ts.map +1 -1
  411. package/dist/esm/inject/models/container.js +78 -10
  412. package/dist/esm/inject/models/container.js.map +1 -1
  413. package/dist/esm/inject/models/service-types.d.ts +17 -3
  414. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  415. package/dist/esm/inject/models/service-types.js +19 -3
  416. package/dist/esm/inject/models/service-types.js.map +1 -1
  417. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  418. package/dist/esm/mcp/controllers/mcp.controller.js +20 -0
  419. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  420. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +56 -1
  421. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  422. package/dist/esm/mcp/services/mcp-server.backend.service.js +107 -11
  423. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  424. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  425. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
  426. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  427. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  428. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  429. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  430. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  431. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  432. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  433. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  434. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  435. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  436. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  437. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  438. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  439. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  440. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  441. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  442. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  443. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  444. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  445. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  446. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  447. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  448. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  449. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  450. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  451. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  452. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  453. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
  454. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  455. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
  456. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  457. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  458. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  459. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  460. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  461. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  462. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  463. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  464. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  465. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  466. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  467. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  468. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  469. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  470. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  471. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  472. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  473. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  474. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  475. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  476. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  477. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  478. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  479. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  480. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  481. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  482. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  483. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
  484. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  485. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  486. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  487. package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
  488. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  489. package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
  490. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  491. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  492. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  493. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  494. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  495. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  496. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  497. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  498. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +99 -13
  499. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  500. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +422 -66
  501. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  502. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
  503. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  504. package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
  505. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  506. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  507. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  508. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  509. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  510. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  511. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  512. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +46 -1
  513. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  514. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  515. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +16 -6
  516. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  517. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  518. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +12 -12
  519. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  520. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  521. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  522. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  523. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  524. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  525. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  526. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  527. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  528. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  529. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  530. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  531. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  532. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  533. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  534. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  535. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  536. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  537. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  538. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  539. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  540. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  541. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  542. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  543. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  544. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  545. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  546. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  547. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  548. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  549. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  550. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  551. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  552. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  553. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  554. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  555. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  556. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  557. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  558. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  559. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  560. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  561. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  562. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  563. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  564. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  565. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  566. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  567. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  568. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  569. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  570. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  571. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  572. package/dist/esm/queue/queue.backend.service.js +26 -4
  573. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  574. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  575. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  576. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  577. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  578. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  579. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  580. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  581. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  582. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  583. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  584. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  585. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  586. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  587. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  588. package/dist/esm/requests/service/websocket.service.js +32 -8
  589. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  590. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  591. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +14 -2
  592. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  593. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  594. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  595. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  596. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  597. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  598. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  599. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  600. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  601. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  602. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  603. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
  604. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  605. package/dist/esm/resources/services/resources-registry.backend.service.js +90 -6
  606. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  607. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  608. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  609. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  610. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  611. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  612. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  613. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  614. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  615. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  616. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  617. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  618. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  619. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  620. package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
  621. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  622. package/dist/esm/runtime/services/start-application.backend.service.d.ts +19 -1
  623. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  624. package/dist/esm/runtime/services/start-application.backend.service.js +261 -77
  625. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  626. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  627. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  628. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  629. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  630. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  631. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  632. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  633. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  634. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  635. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
  636. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  637. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  638. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  639. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  640. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  641. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  642. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  643. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  644. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  645. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  646. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  647. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  648. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  649. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  650. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  651. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  652. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  653. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  654. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  655. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  656. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  657. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  658. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  659. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  660. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  661. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  662. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  663. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  664. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
  665. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  666. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
  667. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  668. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  669. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +68 -1
  670. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  671. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  672. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  673. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  674. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  675. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  676. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
  677. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  678. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  679. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
  680. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  681. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  682. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  683. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  684. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  685. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -1
  686. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  687. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +49 -17
  688. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  689. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  690. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  691. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  692. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  693. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  694. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  695. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  696. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  697. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  698. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  699. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  700. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  701. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  702. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
  703. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  704. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  705. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  706. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  707. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  708. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  709. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  710. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  711. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  712. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  713. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  714. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  715. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  716. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  717. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  718. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  719. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  720. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  721. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  722. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  723. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  724. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  725. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  726. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  727. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  728. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  729. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  730. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  731. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  732. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  733. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  734. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  735. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  736. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  737. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  738. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  739. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
  740. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  741. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  742. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  743. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  744. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  745. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
  746. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  747. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
  748. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  749. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
  750. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  751. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
  752. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  753. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +74 -8
  754. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  755. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +175 -19
  756. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  757. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  758. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  759. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  760. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  761. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  762. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  763. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  764. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  765. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
  766. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  767. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
  768. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  769. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
  770. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  771. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  772. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  773. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  774. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  775. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  776. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  777. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
  778. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  779. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
  780. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  781. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  782. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  783. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  784. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  785. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  786. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  787. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
  788. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  789. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
  790. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  791. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
  792. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  793. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  794. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  795. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  796. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  797. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
  798. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  799. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
  800. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  801. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  802. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  803. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  804. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  805. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
  806. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  807. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  808. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  809. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  810. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  811. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  812. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  813. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  814. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  815. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  816. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  817. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +21 -3
  818. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  819. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +26 -16
  820. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  821. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  822. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  823. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  824. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  825. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  826. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  827. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  828. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  829. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  830. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  831. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  832. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  833. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  834. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  835. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  836. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  837. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  838. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  839. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  840. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  841. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  842. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  843. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  844. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  845. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  846. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  847. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  848. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  849. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  850. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  851. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  852. package/dist/tsconfig.build.tsbuildinfo +1 -1
  853. package/package.json +11 -9
@@ -0,0 +1,90 @@
1
+ import type { FlowsActors_McpServer } from '@wildo-ai/saas-models';
2
+ import { type McpDiscoveryOutcome, type McpSession, type McpToolCallOutcome } from '../../flows-actors/models/mcp-client.backend.definitions';
3
+ /**
4
+ * An MCP client over the Streamable HTTP transport.
5
+ *
6
+ * ## Why this is hand-written rather than an SDK
7
+ *
8
+ * The subset an agent turn needs is three methods — `initialize`, `tools/list`, `tools/call` — over
9
+ * JSON-RPC. Taking a runtime dependency for that would put the parts this engine must own most
10
+ * (which targets are refusable, what a timeout costs, what reaches an audit row, what a failure
11
+ * means to an agent) behind somebody else's abstractions, and it runs against the standing position
12
+ * that Wildo does not take runtime dependencies on third-party integration packages.
13
+ *
14
+ * ## What it is NOT
15
+ *
16
+ * Not a second kind of local function (#491). Every method returns a typed OUTCOME and never throws
17
+ * into the turn, because the failure modes an agent must distinguish — refused, unreachable, timed
18
+ * out, malformed, or the tool's own error — do not exist for a local call and cannot be flattened
19
+ * into one exception without losing the distinction that decides what happens next.
20
+ *
21
+ * spec-cite: MCP 2025-06-18 — Transports §Streamable HTTP for the request shape, session header and
22
+ * dual response content types; Lifecycle for the initialize/initialized handshake; Tools for
23
+ * `tools/list` and `tools/call`.
24
+ */
25
+ export declare class McpClientBackendService {
26
+ /**
27
+ * Open a session and discover the server's tools, bounded by the server's DISCOVERY budget.
28
+ *
29
+ * Discovery is where an unreachable server is meant to be found. A server that does not answer
30
+ * here contributes no tools to the turn, and the agent is never offered a capability it cannot
31
+ * use — fail-closed on the CLAIM, fail-open on the turn.
32
+ */
33
+ openSession(server: FlowsActors_McpServer, accessToken: string | null): Promise<McpDiscoveryOutcome>;
34
+ /**
35
+ * Call one tool, bounded by the server's CALL budget — a separate and larger budget than
36
+ * discovery, because doing the work legitimately takes longer than listing what can be done.
37
+ */
38
+ callTool(session: McpSession, toolName: string, args: Record<string, unknown>, accessToken: string | null): Promise<McpToolCallOutcome>;
39
+ /**
40
+ * Release a session, best-effort.
41
+ *
42
+ * Deliberately returns nothing and reports nothing. A server MAY refuse to let a client terminate
43
+ * a session, so a failure here is an expected shape rather than a fault — and a turn that has
44
+ * already produced its answer must not fail on tidying up after itself.
45
+ */
46
+ closeSession(session: McpSession, accessToken: string | null): Promise<void>;
47
+ /**
48
+ * The one place this service touches the network.
49
+ *
50
+ * A protected seam rather than an injected `fetch`, so nothing in production can substitute it and
51
+ * the DI binding stays parameterless. Tests subclass to drive the protocol deterministically —
52
+ * which they must, because the outbound guard REFUSES loopback and every private range, so a real
53
+ * local double could only ever produce `REFUSED_TARGET`. That refusal is itself pinned, against a
54
+ * genuinely private target, so the guard is proven rather than worked around.
55
+ */
56
+ protected performFetch(url: string, init: RequestInit): Promise<Response>;
57
+ /**
58
+ * The outbound guard, applied before EVERY request rather than once at registration.
59
+ *
60
+ * Registration refuses a plaintext endpoint; this refuses the deeper set — a private or reserved
61
+ * address, credentials embedded in the URL, a special-use hostname. It runs per call because a
62
+ * hostname's meaning can change between registration and use, and because an application-declared
63
+ * URL pointed at a third party is precisely the shape that turns this server into a
64
+ * request-forgery tool.
65
+ */
66
+ private refuseTarget;
67
+ private headers;
68
+ /** Send a JSON-RPC REQUEST and resolve its response, from either answer shape. */
69
+ private request;
70
+ /**
71
+ * Send a JSON-RPC NOTIFICATION, whose success is an HTTP status and not a body.
72
+ *
73
+ * spec-cite: MCP 2025-06-18 — Transports §Sending Messages to the Server (for a notification, "the
74
+ * server MUST return HTTP status code 202 Accepted with no body"). Any 2xx is accepted here rather
75
+ * than 202 exactly, because a proxy that rewrites a 202 to a 200 is not a protocol fault and
76
+ * refusing it would break a deployment for no gain in correctness.
77
+ */
78
+ private notify;
79
+ /**
80
+ * Read the JSON-RPC response for `id` out of an SSE body.
81
+ *
82
+ * The stream may carry server-initiated requests and notifications BEFORE the response, so this
83
+ * cannot take the first event — it matches on the id and ignores everything else. Returns `null`
84
+ * if the stream ends without one, which the caller reports as a protocol error rather than as a
85
+ * timeout: the connection closed, so no budget was exceeded.
86
+ */
87
+ private readJsonRpcFromEventStream;
88
+ private failure;
89
+ }
90
+ //# sourceMappingURL=mcp-client.backend.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/flows-actors/services/mcp-client.backend.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnE,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,kBAAkB,EAGxB,MAAM,uEAAuE,CAAC;AAK/E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,uBAAuB;IAClC;;;;;;OAMG;IACU,WAAW,CAAC,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6EjH;;;OAGG;IACU,QAAQ,CACnB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,kBAAkB,CAAC;IAuC9B;;;;;;OAMG;IACU,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzF;;;;;;;;OAQG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQzE;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAaf,kFAAkF;YACpE,OAAO;IAkErB;;;;;;;OAOG;YACW,MAAM;IAyBpB;;;;;;;OAOG;YACW,0BAA0B;IA2CxC,OAAO,CAAC,OAAO;CAYhB"}
@@ -0,0 +1,368 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { injectable } from 'inversify';
8
+ import { mcpServerDestinationHost } from '@wildo-ai/saas-models';
9
+ import { MCP_CLIENT_INFO, MCP_CLIENT_PROTOCOL_VERSION, McpOutcomeKind, } from '../../flows-actors/models/mcp-client.backend.definitions.js';
10
+ import { classifyOutboundTargetUrl, } from '../../security/ssrf/outbound-target-guard.backend.utils.js';
11
+ /**
12
+ * An MCP client over the Streamable HTTP transport.
13
+ *
14
+ * ## Why this is hand-written rather than an SDK
15
+ *
16
+ * The subset an agent turn needs is three methods — `initialize`, `tools/list`, `tools/call` — over
17
+ * JSON-RPC. Taking a runtime dependency for that would put the parts this engine must own most
18
+ * (which targets are refusable, what a timeout costs, what reaches an audit row, what a failure
19
+ * means to an agent) behind somebody else's abstractions, and it runs against the standing position
20
+ * that Wildo does not take runtime dependencies on third-party integration packages.
21
+ *
22
+ * ## What it is NOT
23
+ *
24
+ * Not a second kind of local function (#491). Every method returns a typed OUTCOME and never throws
25
+ * into the turn, because the failure modes an agent must distinguish — refused, unreachable, timed
26
+ * out, malformed, or the tool's own error — do not exist for a local call and cannot be flattened
27
+ * into one exception without losing the distinction that decides what happens next.
28
+ *
29
+ * spec-cite: MCP 2025-06-18 — Transports §Streamable HTTP for the request shape, session header and
30
+ * dual response content types; Lifecycle for the initialize/initialized handshake; Tools for
31
+ * `tools/list` and `tools/call`.
32
+ */
33
+ let McpClientBackendService = class McpClientBackendService {
34
+ /**
35
+ * Open a session and discover the server's tools, bounded by the server's DISCOVERY budget.
36
+ *
37
+ * Discovery is where an unreachable server is meant to be found. A server that does not answer
38
+ * here contributes no tools to the turn, and the agent is never offered a capability it cannot
39
+ * use — fail-closed on the CLAIM, fail-open on the turn.
40
+ */
41
+ async openSession(server, accessToken) {
42
+ const refusal = this.refuseTarget(server);
43
+ if (refusal)
44
+ return refusal;
45
+ const initialize = await this.request(server, {
46
+ method: 'initialize',
47
+ params: {
48
+ protocolVersion: MCP_CLIENT_PROTOCOL_VERSION,
49
+ // Declared EMPTY on purpose. `roots`, `sampling` and `elicitation` are client capabilities a
50
+ // server may then exercise — sampling in particular asks this process to run a model on the
51
+ // server's behalf. Declaring a capability we do not implement would invite a request we
52
+ // cannot answer; adding one is a deliberate decision, not a default.
53
+ capabilities: {},
54
+ clientInfo: MCP_CLIENT_INFO,
55
+ },
56
+ accessToken,
57
+ sessionId: null,
58
+ timeoutMs: server.timeouts.discoveryMs,
59
+ });
60
+ if (initialize.kind !== McpOutcomeKind.OK)
61
+ return initialize;
62
+ /*
63
+ * The session id arrives on the InitializeResult's HTTP response and must be echoed afterwards.
64
+ * A server that assigns none is stateless, which is a supported shape rather than a failure.
65
+ */
66
+ const sessionId = initialize.sessionId;
67
+ /*
68
+ * The `initialized` notification. A notification carries no id and expects 202 with no body, so
69
+ * its failure cannot be read from a JSON-RPC result — only from the HTTP status, which
70
+ * `notify` reports. It is sent BEFORE `tools/list` because a server SHOULD NOT be asked for
71
+ * anything else until it arrives.
72
+ */
73
+ const initialized = await this.notify(server, {
74
+ method: 'notifications/initialized',
75
+ accessToken,
76
+ sessionId,
77
+ timeoutMs: server.timeouts.discoveryMs,
78
+ });
79
+ if (initialized.kind !== McpOutcomeKind.OK)
80
+ return initialized;
81
+ const listed = await this.request(server, {
82
+ method: 'tools/list',
83
+ params: {},
84
+ accessToken,
85
+ sessionId,
86
+ timeoutMs: server.timeouts.discoveryMs,
87
+ });
88
+ if (listed.kind !== McpOutcomeKind.OK)
89
+ return listed;
90
+ const rawTools = listed.result?.tools;
91
+ if (!Array.isArray(rawTools)) {
92
+ return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, 'tools/list returned no tools array');
93
+ }
94
+ /*
95
+ * Every entry is validated. A tool descriptor reaches a model as a callable contract, so one
96
+ * missing its name or its input schema must be DROPPED rather than passed through half-formed:
97
+ * the model would be offered a tool it cannot correctly call, which is the same shape of defect
98
+ * as advertising a server that does not exist.
99
+ */
100
+ const tools = [];
101
+ for (const candidate of rawTools) {
102
+ const tool = candidate;
103
+ if (typeof tool?.name !== 'string' || tool.name.length === 0)
104
+ continue;
105
+ if (typeof tool.inputSchema !== 'object' || tool.inputSchema === null)
106
+ continue;
107
+ tools.push({
108
+ name: tool.name,
109
+ title: typeof tool.title === 'string' ? tool.title : undefined,
110
+ description: typeof tool.description === 'string' ? tool.description : undefined,
111
+ inputSchema: tool.inputSchema,
112
+ });
113
+ }
114
+ return { kind: McpOutcomeKind.OK, session: { server, sessionId, tools } };
115
+ }
116
+ /**
117
+ * Call one tool, bounded by the server's CALL budget — a separate and larger budget than
118
+ * discovery, because doing the work legitimately takes longer than listing what can be done.
119
+ */
120
+ async callTool(session, toolName, args, accessToken) {
121
+ const { server } = session;
122
+ const refusal = this.refuseTarget(server);
123
+ if (refusal)
124
+ return refusal;
125
+ const called = await this.request(server, {
126
+ method: 'tools/call',
127
+ params: { name: toolName, arguments: args },
128
+ accessToken,
129
+ sessionId: session.sessionId,
130
+ timeoutMs: server.timeouts.callMs,
131
+ });
132
+ if (called.kind !== McpOutcomeKind.OK)
133
+ return called;
134
+ const result = called.result;
135
+ /*
136
+ * `isError: true` is a TOOL failure on a working protocol, and it is reported as its own kind.
137
+ * The server did everything right; the tool did not. An agent can read that and try something
138
+ * else, and an operator should not be paged for it.
139
+ */
140
+ if (result?.isError === true) {
141
+ return this.failure(server, McpOutcomeKind.TOOL_ERROR, `tool "${toolName}" reported isError`);
142
+ }
143
+ if (!Array.isArray(result?.content)) {
144
+ return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `tools/call for "${toolName}" returned no content array`);
145
+ }
146
+ return {
147
+ kind: McpOutcomeKind.OK,
148
+ content: result.content,
149
+ structuredContent: typeof result.structuredContent === 'object' && result.structuredContent !== null
150
+ ? result.structuredContent
151
+ : undefined,
152
+ };
153
+ }
154
+ /**
155
+ * Release a session, best-effort.
156
+ *
157
+ * Deliberately returns nothing and reports nothing. A server MAY refuse to let a client terminate
158
+ * a session, so a failure here is an expected shape rather than a fault — and a turn that has
159
+ * already produced its answer must not fail on tidying up after itself.
160
+ */
161
+ async closeSession(session, accessToken) {
162
+ if (session.sessionId === null)
163
+ return;
164
+ const controller = new AbortController();
165
+ const timer = setTimeout(() => controller.abort(), session.server.timeouts.discoveryMs);
166
+ try {
167
+ await this.performFetch(session.server.url, {
168
+ method: 'DELETE',
169
+ headers: this.headers(accessToken, session.sessionId),
170
+ signal: controller.signal,
171
+ });
172
+ }
173
+ catch {
174
+ // Intentionally swallowed — see the docstring.
175
+ }
176
+ finally {
177
+ clearTimeout(timer);
178
+ }
179
+ }
180
+ /**
181
+ * The one place this service touches the network.
182
+ *
183
+ * A protected seam rather than an injected `fetch`, so nothing in production can substitute it and
184
+ * the DI binding stays parameterless. Tests subclass to drive the protocol deterministically —
185
+ * which they must, because the outbound guard REFUSES loopback and every private range, so a real
186
+ * local double could only ever produce `REFUSED_TARGET`. That refusal is itself pinned, against a
187
+ * genuinely private target, so the guard is proven rather than worked around.
188
+ */
189
+ performFetch(url, init) {
190
+ return fetch(url, init);
191
+ }
192
+ // ================================
193
+ // Transport
194
+ // ================================
195
+ /**
196
+ * The outbound guard, applied before EVERY request rather than once at registration.
197
+ *
198
+ * Registration refuses a plaintext endpoint; this refuses the deeper set — a private or reserved
199
+ * address, credentials embedded in the URL, a special-use hostname. It runs per call because a
200
+ * hostname's meaning can change between registration and use, and because an application-declared
201
+ * URL pointed at a third party is precisely the shape that turns this server into a
202
+ * request-forgery tool.
203
+ */
204
+ refuseTarget(server) {
205
+ const rejection = classifyOutboundTargetUrl(server.url, { admittedProtocols: ['https:'] });
206
+ if (!rejection)
207
+ return null;
208
+ return this.failure(server, McpOutcomeKind.REFUSED_TARGET, rejection);
209
+ }
210
+ headers(accessToken, sessionId) {
211
+ const headers = {
212
+ 'content-type': 'application/json',
213
+ // Both content types are listed because the server chooses which to answer with, and a client
214
+ // that named only one would be refusing a response shape the transport permits.
215
+ accept: 'application/json, text/event-stream',
216
+ 'mcp-protocol-version': MCP_CLIENT_PROTOCOL_VERSION,
217
+ };
218
+ if (sessionId !== null)
219
+ headers['mcp-session-id'] = sessionId;
220
+ if (accessToken !== null)
221
+ headers.authorization = `Bearer ${accessToken}`;
222
+ return headers;
223
+ }
224
+ /** Send a JSON-RPC REQUEST and resolve its response, from either answer shape. */
225
+ async request(server, input) {
226
+ const id = 1;
227
+ const controller = new AbortController();
228
+ const timer = setTimeout(() => controller.abort(), input.timeoutMs);
229
+ let response;
230
+ try {
231
+ response = await this.performFetch(server.url, {
232
+ method: 'POST',
233
+ headers: this.headers(input.accessToken, input.sessionId),
234
+ body: JSON.stringify({ jsonrpc: '2.0', id, method: input.method, params: input.params }),
235
+ signal: controller.signal,
236
+ });
237
+ }
238
+ catch (error) {
239
+ // An abort and a connection failure arrive through the same catch and mean different things:
240
+ // a slow server is not a down one, and the remedies differ.
241
+ const kind = controller.signal.aborted ? McpOutcomeKind.TIMED_OUT : McpOutcomeKind.UNREACHABLE;
242
+ return this.failure(server, kind, `${input.method}: ${kind === McpOutcomeKind.TIMED_OUT ? `exceeded ${input.timeoutMs}ms` : 'request failed'}`);
243
+ }
244
+ finally {
245
+ clearTimeout(timer);
246
+ }
247
+ if (!response.ok) {
248
+ return this.failure(server, McpOutcomeKind.UNREACHABLE, `${input.method}: HTTP ${response.status}`);
249
+ }
250
+ // Only present on the initialize response in practice, and read from every response so a server
251
+ // that assigns one later is not ignored.
252
+ const sessionId = response.headers.get('mcp-session-id') ?? input.sessionId;
253
+ let envelope;
254
+ try {
255
+ envelope = (response.headers.get('content-type') ?? '').includes('text/event-stream')
256
+ ? await this.readJsonRpcFromEventStream(response, id)
257
+ : (await response.json());
258
+ }
259
+ catch {
260
+ return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `${input.method}: response was not readable JSON-RPC`);
261
+ }
262
+ if (!envelope) {
263
+ return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `${input.method}: no JSON-RPC response for the request`);
264
+ }
265
+ if (envelope.error) {
266
+ // The server's own message is NOT forwarded: it is third-party text that would land in a log
267
+ // and an audit row. The code identifies the fault; the message is the server's to keep.
268
+ return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `${input.method}: JSON-RPC error ${envelope.error.code ?? 'unknown'}`);
269
+ }
270
+ if (envelope.result === undefined) {
271
+ return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `${input.method}: response carried neither result nor error`);
272
+ }
273
+ return { kind: McpOutcomeKind.OK, result: envelope.result, sessionId };
274
+ }
275
+ /**
276
+ * Send a JSON-RPC NOTIFICATION, whose success is an HTTP status and not a body.
277
+ *
278
+ * spec-cite: MCP 2025-06-18 — Transports §Sending Messages to the Server (for a notification, "the
279
+ * server MUST return HTTP status code 202 Accepted with no body"). Any 2xx is accepted here rather
280
+ * than 202 exactly, because a proxy that rewrites a 202 to a 200 is not a protocol fault and
281
+ * refusing it would break a deployment for no gain in correctness.
282
+ */
283
+ async notify(server, input) {
284
+ const controller = new AbortController();
285
+ const timer = setTimeout(() => controller.abort(), input.timeoutMs);
286
+ try {
287
+ const response = await this.performFetch(server.url, {
288
+ method: 'POST',
289
+ headers: this.headers(input.accessToken, input.sessionId),
290
+ body: JSON.stringify({ jsonrpc: '2.0', method: input.method }),
291
+ signal: controller.signal,
292
+ });
293
+ if (!response.ok) {
294
+ return this.failure(server, McpOutcomeKind.UNREACHABLE, `${input.method}: HTTP ${response.status}`);
295
+ }
296
+ return { kind: McpOutcomeKind.OK };
297
+ }
298
+ catch {
299
+ const kind = controller.signal.aborted ? McpOutcomeKind.TIMED_OUT : McpOutcomeKind.UNREACHABLE;
300
+ return this.failure(server, kind, `${input.method}: ${kind === McpOutcomeKind.TIMED_OUT ? `exceeded ${input.timeoutMs}ms` : 'request failed'}`);
301
+ }
302
+ finally {
303
+ clearTimeout(timer);
304
+ }
305
+ }
306
+ /**
307
+ * Read the JSON-RPC response for `id` out of an SSE body.
308
+ *
309
+ * The stream may carry server-initiated requests and notifications BEFORE the response, so this
310
+ * cannot take the first event — it matches on the id and ignores everything else. Returns `null`
311
+ * if the stream ends without one, which the caller reports as a protocol error rather than as a
312
+ * timeout: the connection closed, so no budget was exceeded.
313
+ */
314
+ async readJsonRpcFromEventStream(response, id) {
315
+ const body = response.body;
316
+ if (!body)
317
+ return null;
318
+ const reader = body.getReader();
319
+ const decoder = new TextDecoder();
320
+ let buffered = '';
321
+ try {
322
+ for (;;) {
323
+ const { done, value } = await reader.read();
324
+ if (done)
325
+ return null;
326
+ buffered += decoder.decode(value, { stream: true });
327
+ // Events are separated by a blank line; a partial trailing event stays buffered.
328
+ let boundary = buffered.indexOf('\n\n');
329
+ while (boundary !== -1) {
330
+ const rawEvent = buffered.slice(0, boundary);
331
+ buffered = buffered.slice(boundary + 2);
332
+ const data = rawEvent
333
+ .split('\n')
334
+ .filter((line) => line.startsWith('data:'))
335
+ .map((line) => line.slice('data:'.length).trim())
336
+ .join('');
337
+ if (data.length > 0) {
338
+ try {
339
+ const parsed = JSON.parse(data);
340
+ if (parsed?.id === id)
341
+ return parsed;
342
+ }
343
+ catch {
344
+ // A single unparseable event does not end the stream — the response may still arrive.
345
+ }
346
+ }
347
+ boundary = buffered.indexOf('\n\n');
348
+ }
349
+ }
350
+ }
351
+ finally {
352
+ await reader.cancel().catch(() => { });
353
+ }
354
+ }
355
+ failure(server, kind, detail) {
356
+ return {
357
+ kind,
358
+ mcpServerRef: server.ref,
359
+ destinationHost: mcpServerDestinationHost(server.url),
360
+ detail,
361
+ };
362
+ }
363
+ };
364
+ McpClientBackendService = __decorate([
365
+ injectable()
366
+ ], McpClientBackendService);
367
+ export { McpClientBackendService };
368
+ //# sourceMappingURL=mcp-client.backend.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.backend.service.js","sourceRoot":"","sources":["../../../../../src/flows-actors/services/mcp-client.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { injectable } from 'inversify';\n\nimport type { FlowsActors_McpServer } from '@wildo-ai/saas-models';\nimport { mcpServerDestinationHost } from '@wildo-ai/saas-models';\n\nimport {\n MCP_CLIENT_INFO,\n MCP_CLIENT_PROTOCOL_VERSION,\n McpOutcomeKind,\n type McpDiscoveryOutcome,\n type McpSession,\n type McpToolCallOutcome,\n type McpToolDescriptor,\n type McpFailureOutcome,\n} from '~wildo-backend-lib/flows-actors/models/mcp-client.backend.definitions';\nimport {\n classifyOutboundTargetUrl,\n} from '~wildo-backend-lib/security/ssrf/outbound-target-guard.backend.utils';\n\n/**\n * An MCP client over the Streamable HTTP transport.\n *\n * ## Why this is hand-written rather than an SDK\n *\n * The subset an agent turn needs is three methods — `initialize`, `tools/list`, `tools/call` — over\n * JSON-RPC. Taking a runtime dependency for that would put the parts this engine must own most\n * (which targets are refusable, what a timeout costs, what reaches an audit row, what a failure\n * means to an agent) behind somebody else's abstractions, and it runs against the standing position\n * that Wildo does not take runtime dependencies on third-party integration packages.\n *\n * ## What it is NOT\n *\n * Not a second kind of local function (#491). Every method returns a typed OUTCOME and never throws\n * into the turn, because the failure modes an agent must distinguish — refused, unreachable, timed\n * out, malformed, or the tool's own error — do not exist for a local call and cannot be flattened\n * into one exception without losing the distinction that decides what happens next.\n *\n * spec-cite: MCP 2025-06-18 — Transports §Streamable HTTP for the request shape, session header and\n * dual response content types; Lifecycle for the initialize/initialized handshake; Tools for\n * `tools/list` and `tools/call`.\n */\n@injectable()\nexport class McpClientBackendService {\n /**\n * Open a session and discover the server's tools, bounded by the server's DISCOVERY budget.\n *\n * Discovery is where an unreachable server is meant to be found. A server that does not answer\n * here contributes no tools to the turn, and the agent is never offered a capability it cannot\n * use — fail-closed on the CLAIM, fail-open on the turn.\n */\n public async openSession(server: FlowsActors_McpServer, accessToken: string | null): Promise<McpDiscoveryOutcome> {\n const refusal = this.refuseTarget(server);\n if (refusal) return refusal;\n\n const initialize = await this.request(server, {\n method: 'initialize',\n params: {\n protocolVersion: MCP_CLIENT_PROTOCOL_VERSION,\n // Declared EMPTY on purpose. `roots`, `sampling` and `elicitation` are client capabilities a\n // server may then exercise — sampling in particular asks this process to run a model on the\n // server's behalf. Declaring a capability we do not implement would invite a request we\n // cannot answer; adding one is a deliberate decision, not a default.\n capabilities: {},\n clientInfo: MCP_CLIENT_INFO,\n },\n accessToken,\n sessionId: null,\n timeoutMs: server.timeouts.discoveryMs,\n });\n if (initialize.kind !== McpOutcomeKind.OK) return initialize;\n\n /*\n * The session id arrives on the InitializeResult's HTTP response and must be echoed afterwards.\n * A server that assigns none is stateless, which is a supported shape rather than a failure.\n */\n const sessionId = initialize.sessionId;\n\n /*\n * The `initialized` notification. A notification carries no id and expects 202 with no body, so\n * its failure cannot be read from a JSON-RPC result — only from the HTTP status, which\n * `notify` reports. It is sent BEFORE `tools/list` because a server SHOULD NOT be asked for\n * anything else until it arrives.\n */\n const initialized = await this.notify(server, {\n method: 'notifications/initialized',\n accessToken,\n sessionId,\n timeoutMs: server.timeouts.discoveryMs,\n });\n if (initialized.kind !== McpOutcomeKind.OK) return initialized;\n\n const listed = await this.request(server, {\n method: 'tools/list',\n params: {},\n accessToken,\n sessionId,\n timeoutMs: server.timeouts.discoveryMs,\n });\n if (listed.kind !== McpOutcomeKind.OK) return listed;\n\n const rawTools = (listed.result as { tools?: unknown })?.tools;\n if (!Array.isArray(rawTools)) {\n return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, 'tools/list returned no tools array');\n }\n\n /*\n * Every entry is validated. A tool descriptor reaches a model as a callable contract, so one\n * missing its name or its input schema must be DROPPED rather than passed through half-formed:\n * the model would be offered a tool it cannot correctly call, which is the same shape of defect\n * as advertising a server that does not exist.\n */\n const tools: McpToolDescriptor[] = [];\n for (const candidate of rawTools) {\n const tool = candidate as Partial<McpToolDescriptor>;\n if (typeof tool?.name !== 'string' || tool.name.length === 0) continue;\n if (typeof tool.inputSchema !== 'object' || tool.inputSchema === null) continue;\n tools.push({\n name: tool.name,\n title: typeof tool.title === 'string' ? tool.title : undefined,\n description: typeof tool.description === 'string' ? tool.description : undefined,\n inputSchema: tool.inputSchema as Record<string, unknown>,\n });\n }\n\n return { kind: McpOutcomeKind.OK, session: { server, sessionId, tools } };\n }\n\n /**\n * Call one tool, bounded by the server's CALL budget — a separate and larger budget than\n * discovery, because doing the work legitimately takes longer than listing what can be done.\n */\n public async callTool(\n session: McpSession,\n toolName: string,\n args: Record<string, unknown>,\n accessToken: string | null,\n ): Promise<McpToolCallOutcome> {\n const { server } = session;\n const refusal = this.refuseTarget(server);\n if (refusal) return refusal;\n\n const called = await this.request(server, {\n method: 'tools/call',\n params: { name: toolName, arguments: args },\n accessToken,\n sessionId: session.sessionId,\n timeoutMs: server.timeouts.callMs,\n });\n if (called.kind !== McpOutcomeKind.OK) return called;\n\n const result = called.result as { content?: unknown; structuredContent?: unknown; isError?: unknown };\n\n /*\n * `isError: true` is a TOOL failure on a working protocol, and it is reported as its own kind.\n * The server did everything right; the tool did not. An agent can read that and try something\n * else, and an operator should not be paged for it.\n */\n if (result?.isError === true) {\n return this.failure(server, McpOutcomeKind.TOOL_ERROR, `tool \"${toolName}\" reported isError`);\n }\n\n if (!Array.isArray(result?.content)) {\n return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `tools/call for \"${toolName}\" returned no content array`);\n }\n\n return {\n kind: McpOutcomeKind.OK,\n content: result.content,\n structuredContent:\n typeof result.structuredContent === 'object' && result.structuredContent !== null\n ? (result.structuredContent as Record<string, unknown>)\n : undefined,\n };\n }\n\n /**\n * Release a session, best-effort.\n *\n * Deliberately returns nothing and reports nothing. A server MAY refuse to let a client terminate\n * a session, so a failure here is an expected shape rather than a fault — and a turn that has\n * already produced its answer must not fail on tidying up after itself.\n */\n public async closeSession(session: McpSession, accessToken: string | null): Promise<void> {\n if (session.sessionId === null) return;\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), session.server.timeouts.discoveryMs);\n try {\n await this.performFetch(session.server.url, {\n method: 'DELETE',\n headers: this.headers(accessToken, session.sessionId),\n signal: controller.signal,\n });\n } catch {\n // Intentionally swallowed — see the docstring.\n } finally {\n clearTimeout(timer);\n }\n }\n\n /**\n * The one place this service touches the network.\n *\n * A protected seam rather than an injected `fetch`, so nothing in production can substitute it and\n * the DI binding stays parameterless. Tests subclass to drive the protocol deterministically —\n * which they must, because the outbound guard REFUSES loopback and every private range, so a real\n * local double could only ever produce `REFUSED_TARGET`. That refusal is itself pinned, against a\n * genuinely private target, so the guard is proven rather than worked around.\n */\n protected performFetch(url: string, init: RequestInit): Promise<Response> {\n return fetch(url, init);\n }\n\n // ================================\n // Transport\n // ================================\n\n /**\n * The outbound guard, applied before EVERY request rather than once at registration.\n *\n * Registration refuses a plaintext endpoint; this refuses the deeper set — a private or reserved\n * address, credentials embedded in the URL, a special-use hostname. It runs per call because a\n * hostname's meaning can change between registration and use, and because an application-declared\n * URL pointed at a third party is precisely the shape that turns this server into a\n * request-forgery tool.\n */\n private refuseTarget(server: FlowsActors_McpServer): McpFailureOutcome | null {\n const rejection = classifyOutboundTargetUrl(server.url, { admittedProtocols: ['https:'] });\n if (!rejection) return null;\n return this.failure(server, McpOutcomeKind.REFUSED_TARGET, rejection);\n }\n\n private headers(accessToken: string | null, sessionId: string | null): Record<string, string> {\n const headers: Record<string, string> = {\n 'content-type': 'application/json',\n // Both content types are listed because the server chooses which to answer with, and a client\n // that named only one would be refusing a response shape the transport permits.\n accept: 'application/json, text/event-stream',\n 'mcp-protocol-version': MCP_CLIENT_PROTOCOL_VERSION,\n };\n if (sessionId !== null) headers['mcp-session-id'] = sessionId;\n if (accessToken !== null) headers.authorization = `Bearer ${accessToken}`;\n return headers;\n }\n\n /** Send a JSON-RPC REQUEST and resolve its response, from either answer shape. */\n private async request(\n server: FlowsActors_McpServer,\n input: {\n method: string;\n params: Record<string, unknown>;\n accessToken: string | null;\n sessionId: string | null;\n timeoutMs: number;\n },\n ): Promise<\n | { kind: McpOutcomeKind.OK; result: unknown; sessionId: string | null }\n | McpFailureOutcome\n > {\n const id = 1;\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), input.timeoutMs);\n\n let response: Response;\n try {\n response = await this.performFetch(server.url, {\n method: 'POST',\n headers: this.headers(input.accessToken, input.sessionId),\n body: JSON.stringify({ jsonrpc: '2.0', id, method: input.method, params: input.params }),\n signal: controller.signal,\n });\n } catch (error) {\n // An abort and a connection failure arrive through the same catch and mean different things:\n // a slow server is not a down one, and the remedies differ.\n const kind = controller.signal.aborted ? McpOutcomeKind.TIMED_OUT : McpOutcomeKind.UNREACHABLE;\n return this.failure(server, kind, `${input.method}: ${kind === McpOutcomeKind.TIMED_OUT ? `exceeded ${input.timeoutMs}ms` : 'request failed'}`);\n } finally {\n clearTimeout(timer);\n }\n\n if (!response.ok) {\n return this.failure(server, McpOutcomeKind.UNREACHABLE, `${input.method}: HTTP ${response.status}`);\n }\n\n // Only present on the initialize response in practice, and read from every response so a server\n // that assigns one later is not ignored.\n const sessionId = response.headers.get('mcp-session-id') ?? input.sessionId;\n\n let envelope: { result?: unknown; error?: { code?: number; message?: string } } | null;\n try {\n envelope = (response.headers.get('content-type') ?? '').includes('text/event-stream')\n ? await this.readJsonRpcFromEventStream(response, id)\n : ((await response.json()) as typeof envelope);\n } catch {\n return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `${input.method}: response was not readable JSON-RPC`);\n }\n\n if (!envelope) {\n return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `${input.method}: no JSON-RPC response for the request`);\n }\n if (envelope.error) {\n // The server's own message is NOT forwarded: it is third-party text that would land in a log\n // and an audit row. The code identifies the fault; the message is the server's to keep.\n return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `${input.method}: JSON-RPC error ${envelope.error.code ?? 'unknown'}`);\n }\n if (envelope.result === undefined) {\n return this.failure(server, McpOutcomeKind.PROTOCOL_ERROR, `${input.method}: response carried neither result nor error`);\n }\n\n return { kind: McpOutcomeKind.OK, result: envelope.result, sessionId };\n }\n\n /**\n * Send a JSON-RPC NOTIFICATION, whose success is an HTTP status and not a body.\n *\n * spec-cite: MCP 2025-06-18 — Transports §Sending Messages to the Server (for a notification, \"the\n * server MUST return HTTP status code 202 Accepted with no body\"). Any 2xx is accepted here rather\n * than 202 exactly, because a proxy that rewrites a 202 to a 200 is not a protocol fault and\n * refusing it would break a deployment for no gain in correctness.\n */\n private async notify(\n server: FlowsActors_McpServer,\n input: { method: string; accessToken: string | null; sessionId: string | null; timeoutMs: number },\n ): Promise<{ kind: McpOutcomeKind.OK } | McpFailureOutcome> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), input.timeoutMs);\n try {\n const response = await this.performFetch(server.url, {\n method: 'POST',\n headers: this.headers(input.accessToken, input.sessionId),\n body: JSON.stringify({ jsonrpc: '2.0', method: input.method }),\n signal: controller.signal,\n });\n if (!response.ok) {\n return this.failure(server, McpOutcomeKind.UNREACHABLE, `${input.method}: HTTP ${response.status}`);\n }\n return { kind: McpOutcomeKind.OK };\n } catch {\n const kind = controller.signal.aborted ? McpOutcomeKind.TIMED_OUT : McpOutcomeKind.UNREACHABLE;\n return this.failure(server, kind, `${input.method}: ${kind === McpOutcomeKind.TIMED_OUT ? `exceeded ${input.timeoutMs}ms` : 'request failed'}`);\n } finally {\n clearTimeout(timer);\n }\n }\n\n /**\n * Read the JSON-RPC response for `id` out of an SSE body.\n *\n * The stream may carry server-initiated requests and notifications BEFORE the response, so this\n * cannot take the first event — it matches on the id and ignores everything else. Returns `null`\n * if the stream ends without one, which the caller reports as a protocol error rather than as a\n * timeout: the connection closed, so no budget was exceeded.\n */\n private async readJsonRpcFromEventStream(\n response: Response,\n id: number,\n ): Promise<{ result?: unknown; error?: { code?: number; message?: string } } | null> {\n const body = response.body;\n if (!body) return null;\n\n const reader = body.getReader();\n const decoder = new TextDecoder();\n let buffered = '';\n\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) return null;\n buffered += decoder.decode(value, { stream: true });\n\n // Events are separated by a blank line; a partial trailing event stays buffered.\n let boundary = buffered.indexOf('\\n\\n');\n while (boundary !== -1) {\n const rawEvent = buffered.slice(0, boundary);\n buffered = buffered.slice(boundary + 2);\n const data = rawEvent\n .split('\\n')\n .filter((line) => line.startsWith('data:'))\n .map((line) => line.slice('data:'.length).trim())\n .join('');\n if (data.length > 0) {\n try {\n const parsed = JSON.parse(data) as { id?: unknown; result?: unknown; error?: { code?: number; message?: string } };\n if (parsed?.id === id) return parsed;\n } catch {\n // A single unparseable event does not end the stream — the response may still arrive.\n }\n }\n boundary = buffered.indexOf('\\n\\n');\n }\n }\n } finally {\n await reader.cancel().catch(() => {});\n }\n }\n\n private failure(\n server: FlowsActors_McpServer,\n kind: Exclude<McpOutcomeKind, McpOutcomeKind.OK>,\n detail: string,\n ): McpFailureOutcome {\n return {\n kind,\n mcpServerRef: server.ref,\n destinationHost: mcpServerDestinationHost(server.url),\n detail,\n };\n }\n}\n"]}
@@ -24,13 +24,17 @@ export declare class PromptCompilerBackendService {
24
24
  */
25
25
  compile(agent: FlowsActors_Agent, invocation: FlowsActors_Agent_Invocation<any, any, any>, context: PromptIR_ContextItem[], userPromptContent: string): Promise<PromptIR_CompiledPrompt>;
26
26
  /**
27
- * Resolve prompt format from provider profile or infer from providerRef
27
+ * Resolve the prompt format from the provider's LLM runtime contract.
28
+ *
29
+ * A provider that declares no `promptFormatPreference` gets the NEUTRAL format
30
+ * (`MARKDOWN_HEADINGS`). This used to fall back to sniffing the provider ref for
31
+ * substrings ('anthropic', 'claude', 'openai', 'gpt') — a provider-ref branch in
32
+ * disguise that the guard test could not see, and dead for every engine provider
33
+ * since all six LLM modules declare the preference. Retired 2026-09-05 (#327):
34
+ * the contract is the only source; a provider that wants a non-neutral format
35
+ * declares it.
28
36
  */
29
37
  private resolveFormat;
30
- /**
31
- * Infer format from well-known providers
32
- */
33
- private inferFormat;
34
38
  /**
35
39
  * Render the prompt using the specified format
36
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-compiler.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/flows-actors/services/prompt-compiler.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;AACrJ,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAE5B,uBAAuB,EACvB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AA2D/B,qBACa,4BAA4B;IAKF,OAAO,CAAC,QAAQ,CAAC,MAAM;IAE1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAPlC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;gBAG3B,MAAM,EAAE,aAAa,EAExD,iBAAiB,EAAE,uCAAuC,EAE1D,eAAe,EAAE,6BAA6B;IAQjE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;;;;;;;OAQG;IACG,OAAO,CACX,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,4BAA4B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACvD,OAAO,EAAE,oBAAoB,EAAE,EAC/B,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,uBAAuB,CAAC;IAiCnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;OAEG;IACH,OAAO,CAAC,MAAM;IAsBd;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,SAAS;IAoJjB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,WAAW;IAsJnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,cAAc;IAuJtB;;OAEG;IACH,OAAO,CAAC,WAAW;CA2BpB"}
1
+ {"version":3,"file":"prompt-compiler.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/flows-actors/services/prompt-compiler.backend.service.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;AACrJ,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAE5B,uBAAuB,EACvB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AA4D/B,qBACa,4BAA4B;IAKF,OAAO,CAAC,QAAQ,CAAC,MAAM;IAE1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAPlC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;gBAG3B,MAAM,EAAE,aAAa,EAExD,iBAAiB,EAAE,uCAAuC,EAE1D,eAAe,EAAE,6BAA6B;IAQjE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;;;;;;;OAQG;IACG,OAAO,CACX,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,4BAA4B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACvD,OAAO,EAAE,oBAAoB,EAAE,EAC/B,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,uBAAuB,CAAC;IAiCnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACH,OAAO,CAAC,MAAM;IAsBd;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,SAAS;IAoJjB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,WAAW;IAsJnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,cAAc;IAuJtB;;OAEG;IACH,OAAO,CAAC,WAAW;CA2BpB"}
@@ -17,7 +17,7 @@ import { LoggerService } from '../../monitoring/logger/services/logger.service.j
17
17
  import { ExternalProvidersRegistryBackendService } from '../../external-providers/services/external-providers-registry.backend.service.js';
18
18
  import { ContextCurationBackendService } from './context-curation.backend.service.js';
19
19
  import { FlowsActors_Agent_Skill_Type, } from '@wildo-ai/saas-models';
20
- import { ExternalProvider_ExchangeProtocol_Kind, LLMProvider_PromptFormat, } from '@wildo-ai/external-connectors-models';
20
+ import { ExternalProvider_ExchangeProtocol_Kind, LLMProvider_PromptFormat, ProviderProtocolRuntimeKind, } from '@wildo-ai/external-connectors-models';
21
21
  /**
22
22
  * Prompt Compiler Backend Service
23
23
  *
@@ -125,30 +125,25 @@ let PromptCompilerBackendService = class PromptCompilerBackendService {
125
125
  return compiled;
126
126
  }
127
127
  /**
128
- * Resolve prompt format from provider profile or infer from providerRef
128
+ * Resolve the prompt format from the provider's LLM runtime contract.
129
+ *
130
+ * A provider that declares no `promptFormatPreference` gets the NEUTRAL format
131
+ * (`MARKDOWN_HEADINGS`). This used to fall back to sniffing the provider ref for
132
+ * substrings ('anthropic', 'claude', 'openai', 'gpt') — a provider-ref branch in
133
+ * disguise that the guard test could not see, and dead for every engine provider
134
+ * since all six LLM modules declare the preference. Retired 2026-09-05 (#327):
135
+ * the contract is the only source; a provider that wants a non-neutral format
136
+ * declares it.
129
137
  */
130
138
  resolveFormat(providerRef) {
131
139
  try {
132
140
  const runtimeContract = this.providersRegistry.getProviderRuntimeContract(providerRef, ExternalProvider_ExchangeProtocol_Kind.LLM_PROVIDER);
133
- if (runtimeContract?.kind === 'llm' && runtimeContract.promptFormatPreference) {
141
+ if (runtimeContract?.kind === ProviderProtocolRuntimeKind.LLM && runtimeContract.promptFormatPreference) {
134
142
  return runtimeContract.promptFormatPreference;
135
143
  }
136
144
  }
137
145
  catch {
138
- // Fall through to inference
139
- }
140
- return this.inferFormat(providerRef);
141
- }
142
- /**
143
- * Infer format from well-known providers
144
- */
145
- inferFormat(providerRef) {
146
- const lower = providerRef.toLowerCase();
147
- if (lower.includes('anthropic') || lower.includes('claude')) {
148
- return LLMProvider_PromptFormat.XML_BOUNDARIES;
149
- }
150
- if (lower.includes('openai') || lower.includes('gpt')) {
151
- return LLMProvider_PromptFormat.MESSAGE_ROLES;
146
+ // A registry that cannot answer yields the neutral format below.
152
147
  }
153
148
  return LLMProvider_PromptFormat.MARKDOWN_HEADINGS;
154
149
  }