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

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 (1056) hide show
  1. package/dist/esm/__tests__/fixture-deep-partial.d.ts.map +1 -1
  2. package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
  3. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  4. package/dist/esm/__tests__/test-container.d.ts.map +1 -1
  5. package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
  7. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  8. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  9. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  10. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  11. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
  12. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
  13. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
  14. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
  15. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
  16. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -1
  18. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -1
  19. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -1
  20. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +12 -1
  21. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -1
  22. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  23. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  24. package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
  26. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
  27. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  28. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  29. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  30. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  31. package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
  34. package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
  36. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +13 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +17 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -1
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
  55. package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  57. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  58. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +57 -0
  61. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +95 -2
  63. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  66. package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
  68. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +14 -3
  70. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
  72. package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
  74. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
  75. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
  76. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
  77. package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
  78. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
  80. package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
  81. package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
  83. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
  86. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  88. package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
  90. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  91. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  92. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  95. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +44 -6
  96. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
  100. package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -1
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -1
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -1
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -1
  105. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -1
  106. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -1
  107. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
  108. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
  109. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +1 -1
  110. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -1
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +5 -4
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -1
  113. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
  114. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
  115. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
  116. package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  118. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  119. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  121. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -1
  122. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -1
  123. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  124. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  125. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
  126. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  127. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  128. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +32 -0
  129. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  130. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +32 -1
  131. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  133. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  135. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  137. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  139. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +9 -6
  140. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  141. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +9 -6
  142. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  143. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -1
  144. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -1
  145. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
  146. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  148. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +50 -3
  149. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  150. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
  151. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  152. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  153. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
  154. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
  155. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
  156. package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
  157. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
  158. package/dist/esm/companion-exports.d.ts.map +1 -1
  159. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
  160. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
  161. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  162. package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
  163. package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  164. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
  165. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  166. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +107 -4
  168. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +176 -5
  170. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  172. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  174. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  177. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -1
  179. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  180. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +21 -0
  181. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  182. package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
  183. package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
  185. package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
  186. package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
  187. package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
  188. package/dist/esm/compliance/index.d.ts.map +1 -1
  189. package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
  190. package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
  191. package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
  192. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  194. package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
  196. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
  197. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
  198. package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  200. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
  201. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.d.ts +4 -4
  203. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  204. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  205. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
  207. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
  208. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
  209. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
  210. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
  211. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
  212. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  213. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  214. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
  215. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
  216. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration-loader.backend.service.js +3 -0
  218. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  219. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  220. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  221. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  222. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  223. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +12 -0
  224. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  225. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +28 -0
  226. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  227. package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
  228. package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
  229. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
  230. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
  231. package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
  232. package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
  233. package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
  234. package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
  235. package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
  236. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
  237. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
  238. package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
  239. package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
  240. package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
  241. package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
  243. package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
  244. package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
  245. package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
  246. package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
  247. package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
  248. package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
  249. package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
  250. package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
  251. package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
  252. package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
  253. package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
  254. package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
  255. package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
  256. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
  257. package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
  258. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
  259. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
  260. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
  261. package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
  262. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
  263. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
  264. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
  265. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
  266. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
  267. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
  268. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
  269. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  270. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
  271. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
  272. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
  273. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
  274. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
  275. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
  276. package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
  277. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
  278. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
  279. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
  280. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
  281. package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
  282. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
  283. package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
  284. package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
  285. package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
  286. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  287. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  288. package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
  289. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  290. package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
  291. package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
  292. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
  293. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
  294. package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
  295. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
  296. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  297. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  298. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  299. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  300. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  301. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  302. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  303. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  304. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  305. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  306. package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
  307. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
  308. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
  309. package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
  310. package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
  311. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  313. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  314. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  315. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
  316. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  317. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  318. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +102 -52
  319. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -1
  320. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +117 -71
  321. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -1
  322. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -1
  323. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -1
  324. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -1
  325. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +26 -7
  326. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -1
  327. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -1
  328. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -1
  329. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  330. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  331. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -1
  332. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -1
  333. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  334. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  335. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
  336. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  337. package/dist/esm/external-providers/services/document-extraction.backend.service.js +179 -98
  338. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  339. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  340. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  341. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
  342. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +121 -0
  343. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  344. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +151 -0
  345. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  346. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
  347. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  348. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +60 -4
  349. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  350. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
  351. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
  352. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
  353. package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  354. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
  355. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
  356. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
  357. package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  358. package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
  359. package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  360. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
  361. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
  363. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
  364. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
  365. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
  366. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
  367. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  368. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  369. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
  370. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
  371. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
  372. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  373. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +221 -21
  374. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  375. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
  376. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
  377. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
  378. package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
  379. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
  380. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
  381. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
  382. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
  383. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
  384. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  385. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  386. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
  387. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  388. package/dist/esm/files/services/file-scanning.backend.service.js +5 -0
  389. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  390. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  391. package/dist/esm/files/services/file-text-extraction.backend.service.js +8 -5
  392. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  393. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  394. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  395. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  396. package/dist/esm/files/services/files.backend.service.js +3 -1
  397. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  398. package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
  399. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -1
  400. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -1
  401. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
  402. package/dist/esm/files/storage/file-storage-provider.types.d.ts +36 -1
  403. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  404. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  405. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
  406. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
  407. package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
  408. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
  409. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
  410. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
  411. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
  412. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
  413. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  414. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  415. package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
  416. package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  417. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  418. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
  419. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
  420. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  421. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  422. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  423. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  424. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
  425. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  426. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  427. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
  428. package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
  429. package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
  430. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -1
  431. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -1
  432. package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
  433. package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
  437. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  439. package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
  440. package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
  442. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  443. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  444. package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
  445. package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
  446. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  447. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  448. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  449. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  450. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  451. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  452. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  453. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
  455. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  457. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
  458. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
  459. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  461. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
  462. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  464. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +107 -16
  465. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  466. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +118 -18
  467. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  468. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  469. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  470. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -1
  471. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -1
  472. package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
  473. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  474. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  475. package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
  476. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
  477. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +104 -5
  478. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  479. package/dist/esm/flows-actors/services/agents.backend.service.js +263 -31
  480. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  481. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
  482. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +46 -1
  483. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  484. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +193 -6
  485. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  486. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  487. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  488. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  489. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  490. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  491. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  492. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -1
  493. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +3 -0
  494. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -1
  495. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
  496. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
  497. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
  498. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
  499. package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
  500. package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
  501. package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
  502. package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
  503. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  504. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  505. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  506. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +9 -0
  507. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  508. package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
  509. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
  510. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  511. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  512. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  513. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  514. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
  515. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
  516. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
  517. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
  518. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
  519. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
  520. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
  521. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
  522. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
  523. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
  524. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
  525. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
  526. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
  527. package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
  528. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
  529. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
  530. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  531. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  532. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -1
  533. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -1
  534. package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
  535. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  536. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  537. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
  538. package/dist/esm/index.d.ts +0 -1
  539. package/dist/esm/index.d.ts.map +1 -1
  540. package/dist/esm/index.js +0 -1
  541. package/dist/esm/index.js.map +1 -1
  542. package/dist/esm/inject/models/container.d.ts +10 -0
  543. package/dist/esm/inject/models/container.d.ts.map +1 -1
  544. package/dist/esm/inject/models/container.js +49 -1
  545. package/dist/esm/inject/models/container.js.map +1 -1
  546. package/dist/esm/inject/models/service-types.d.ts +3 -0
  547. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  548. package/dist/esm/inject/models/service-types.js +3 -0
  549. package/dist/esm/inject/models/service-types.js.map +1 -1
  550. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  551. package/dist/esm/mcp/controllers/mcp.controller.js +50 -3
  552. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  553. package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
  554. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  555. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  556. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  557. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  558. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  559. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  560. package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
  561. package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
  562. package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
  563. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  564. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  565. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -1
  566. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -1
  567. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  568. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  569. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  570. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  571. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  572. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  573. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
  574. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  575. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  576. package/dist/esm/monitoring/logger/services/logger.service.js +3 -3
  577. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  578. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -1
  579. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -1
  580. package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
  581. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +10 -6
  582. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -1
  583. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +10 -6
  584. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -1
  585. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  586. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  587. package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
  588. package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
  589. package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
  590. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  591. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  592. package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
  593. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
  594. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
  595. package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
  596. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
  597. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  599. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  600. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  601. package/dist/esm/notifications/email/services/email.backend.service.d.ts +47 -6
  602. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  603. package/dist/esm/notifications/email/services/email.backend.service.js +86 -36
  604. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  605. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  606. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  607. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
  608. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
  609. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  610. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  611. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  612. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  613. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
  614. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
  615. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
  616. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
  617. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
  618. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  619. package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
  620. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  621. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  622. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  623. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  624. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  625. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  626. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  627. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  628. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
  629. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
  630. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
  631. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
  632. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  633. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  634. package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
  635. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
  636. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  637. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  638. package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
  639. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
  640. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  641. package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
  642. package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
  643. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
  644. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
  645. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  646. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  647. package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  648. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
  649. package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
  650. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  651. package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
  652. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
  653. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
  654. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
  655. package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
  656. package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
  657. package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
  658. package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
  659. package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
  660. package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
  661. package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
  662. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -1
  663. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -1
  664. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -1
  665. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -1
  666. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -1
  667. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -1
  668. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -1
  669. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -1
  670. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  671. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  672. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
  673. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
  674. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  675. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  676. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
  677. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  678. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  679. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  680. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  681. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
  682. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
  683. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  684. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  685. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  686. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  687. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  688. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  689. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
  690. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  691. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  692. package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
  693. package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
  694. package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
  695. package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
  696. package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
  697. package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
  698. package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
  699. package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
  700. package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
  701. package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
  702. package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
  703. package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
  704. package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
  705. package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
  706. package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
  707. package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
  708. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  709. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  710. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  711. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  712. package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
  713. package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
  714. package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
  715. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
  716. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
  717. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
  718. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
  719. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
  720. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
  721. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  722. package/dist/esm/requests/service/websocket.service.js +49 -1
  723. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  724. package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
  725. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  726. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +2 -0
  727. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  728. package/dist/esm/resources/models/index.d.ts.map +1 -1
  729. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  730. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  731. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  732. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  733. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  734. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  735. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
  736. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
  737. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
  738. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
  739. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
  740. package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
  741. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
  742. package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
  743. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
  744. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +23 -0
  745. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  746. package/dist/esm/resources/services/resources-registry.backend.service.js +31 -0
  747. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  748. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
  749. package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
  750. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  751. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  752. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  753. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  754. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
  755. package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
  756. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
  757. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  758. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  759. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
  760. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  761. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  762. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  763. package/dist/esm/runtime/services/http-server.backend.service.js +10 -0
  764. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  765. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  766. package/dist/esm/runtime/services/start-application.backend.service.js +26 -12
  767. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  768. package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
  769. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
  770. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
  771. package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
  772. package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
  773. package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
  774. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
  775. package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
  776. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  777. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  778. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  780. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
  781. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
  782. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +84 -0
  784. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  786. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  787. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
  788. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
  789. package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
  790. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  792. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
  793. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
  794. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
  795. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
  796. package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
  797. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  798. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  799. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  800. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  801. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
  803. package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
  804. package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
  805. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
  807. package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
  808. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
  809. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  811. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  814. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  815. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  816. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  817. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
  819. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
  820. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
  821. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +9 -2
  822. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  823. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +9 -2
  824. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  825. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
  826. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
  827. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  828. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  829. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  830. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
  831. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
  832. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  833. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  834. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
  835. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  836. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +218 -26
  837. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  838. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
  839. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  840. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +36 -0
  841. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  842. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
  843. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
  844. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
  845. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
  846. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  847. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  848. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
  849. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  850. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  851. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  852. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  853. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  854. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  855. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  856. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  857. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
  859. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -1
  860. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +57 -1
  861. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -1
  862. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  863. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  864. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
  865. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
  866. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
  867. package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
  868. package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
  869. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  870. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  871. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  872. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  873. package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
  874. package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
  875. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
  876. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
  877. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
  878. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  879. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  880. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
  881. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  882. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  883. package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
  884. package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
  885. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  886. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  887. package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
  888. package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
  889. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
  890. package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
  891. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  892. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  893. package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
  894. package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
  895. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
  896. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
  897. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
  898. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
  899. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
  900. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
  901. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
  902. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
  903. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
  904. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
  905. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
  906. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
  907. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
  908. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
  909. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
  910. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
  911. package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
  912. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -1
  913. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -1
  914. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  915. package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
  916. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  917. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  918. package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
  919. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  920. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +20 -181
  921. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  922. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
  923. package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
  924. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  925. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  926. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +40 -0
  927. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -1
  928. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +43 -1
  929. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -1
  930. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +27 -17
  931. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  932. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +27 -17
  933. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  934. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +72 -0
  935. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  936. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +153 -10
  937. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  938. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  939. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  940. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -1
  941. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -1
  942. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +139 -1
  943. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -1
  944. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +474 -33
  945. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -1
  946. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +40 -0
  947. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -1
  948. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -1
  949. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -1
  950. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -1
  951. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +19 -0
  952. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -1
  953. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +38 -0
  954. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -1
  955. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  956. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -1
  957. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -1
  958. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +17 -1
  959. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -1
  960. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +14 -0
  961. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -1
  962. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +16 -0
  963. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -1
  964. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -1
  965. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +1 -1
  966. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -1
  967. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +19 -0
  968. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -1
  969. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +45 -2
  970. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -1
  971. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  972. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -1
  973. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +37 -1
  974. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -1
  975. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -1
  976. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -1
  977. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -1
  978. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -1
  979. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -1
  980. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
  981. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
  982. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
  983. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
  984. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  985. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
  986. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  987. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
  988. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
  989. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
  990. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  991. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  992. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  993. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  994. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
  995. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  996. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
  997. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
  998. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
  999. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
  1000. package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
  1001. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  1002. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  1003. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  1004. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  1005. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
  1006. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
  1007. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
  1008. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
  1009. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
  1010. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
  1011. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
  1012. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
  1013. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  1014. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  1015. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  1016. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  1017. package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
  1018. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
  1019. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
  1020. package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
  1021. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  1022. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  1023. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -1
  1024. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -1
  1025. package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
  1026. package/dist/esm/testing.d.ts.map +1 -1
  1027. package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
  1028. package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  1029. package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
  1030. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -1
  1031. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -1
  1032. package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
  1033. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
  1034. package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
  1035. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1036. package/package.json +9 -9
  1037. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
  1038. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
  1039. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
  1040. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
  1041. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -0
  1042. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -0
  1043. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -0
  1044. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -0
  1045. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -0
  1046. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -0
  1047. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -0
  1048. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -0
  1049. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -0
  1050. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -0
  1051. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -0
  1052. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -0
  1053. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -0
  1054. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -0
  1055. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -0
  1056. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"flows-actors-registry.service.js","sourceRoot":"","sources":["../../../../../src/flows-actors/services/flows-actors-registry.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport {\n FlowActorSystem,\n FlowActorSystem_Kind,\n FlowsActors_Agent,\n ActorSystem,\n FlowSystem,\n isLLMAgentConfiguration,\n FlowsActors_McpServer,\n mcpServerDestinationHost,\n mcpServerTransportIsPlaintext,\n} from '@wildo-ai/saas-models';\nimport {\n ErrorType,\n ErrorCustomMessageReference\n} from '@wildo-ai/saas-models';\nimport {\n FlowsActorsRegistry,\n FlowActorSystem_InitializationFactoryMap,\n AgentRegistryIndex\n} from '~wildo-backend-lib/flows-actors/models/flows-actors.backend.schemas';\nimport { resolveModelForApplicability, validateReasoningEffortForModel } from '@wildo-ai/external-connectors-models';\nimport type { FunctionTool } from '~wildo-backend-lib/flows-actors/models/function-tools.backend.definitions';\nimport { flowsActors_Backend_Default_Definition } from '~wildo-backend-lib/flows-actors/models/flows-actors.backend.definitions';\n\n/**\n * FlowsActors Registry Service\n *\n * Central registry for managing flow-actor systems, agents, and their configurations.\n * Similar to ResourcesRegistryBackendService but for flow-actor domain.\n *\n * Features:\n * - Register and retrieve flow systems and actors\n * - Manage agent definitions and capabilities\n * - System validation and lookup\n * - Kind-based filtering and organization\n */\n@injectable()\nexport class FlowsActorsRegistryService {\n\n private registry: FlowsActorsRegistry;\n private isInitialized = false;\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n ) {\n this.registry = {\n agents: {},\n flows: {},\n actors: {},\n mcpServers: {},\n agentRegistryIndex: {\n agents: {},\n agentsByProvider: {},\n agentsByOperation: {},\n },\n functionTools: {},\n };\n\n\n this.logDebug = this.logger.debugByType('FlowsActorsRegistry');\n this.logger.setDebugTypeLogging('FlowsActorsRegistry', false);\n\n this.logDebug('FlowsActors registry service created');\n }\n\n // ================================\n // Initialization\n // ================================\n\n /**\n * Initialize the registry with flow-actor systems and agents\n * Follows the same pattern as ResourcesRegistryBackendService.initialize()\n */\n public async initialize(\n customBackend_FlowActorSystemsFactoryMap?: FlowActorSystem_InitializationFactoryMap,\n customBackend_Agents?: FlowsActors_Agent[],\n customBackend_FunctionTools?: FunctionTool[],\n customBackend_McpServers?: FlowsActors_McpServer[],\n ): Promise<void> {\n if (this.isInitialized) {\n this.logDebug('Registry already initialized, skipping...');\n return;\n }\n\n const defaultSystemsFactoryMap = flowsActors_Backend_Default_Definition.flowActorSystemsFactoryMap;\n const defaultAgents = flowsActors_Backend_Default_Definition.agents;\n const defaultFunctionTools = flowsActors_Backend_Default_Definition.functionTools;\n\n // Merge default with custom backend (custom takes precedence)\n const mergedSystemsFactoryMap: FlowActorSystem_InitializationFactoryMap = {\n ...defaultSystemsFactoryMap,\n ...customBackend_FlowActorSystemsFactoryMap,\n };\n\n const mergedAgents: FlowsActors_Agent[] = [\n ...defaultAgents,\n ...(customBackend_Agents || []),\n ];\n\n const mergedFunctionTools: FunctionTool[] = [\n ...defaultFunctionTools,\n ...(customBackend_FunctionTools || []),\n ];\n\n this.logDebug('Initializing flows-actors registry', {\n defaultSystemsCount: Object.keys(defaultSystemsFactoryMap).length,\n customBackendSystemsCount: customBackend_FlowActorSystemsFactoryMap ? Object.keys(customBackend_FlowActorSystemsFactoryMap).length : 0,\n defaultAgentsCount: defaultAgents.length,\n customBackendAgentsCount: customBackend_Agents?.length || 0,\n });\n\n\n for (const [ref, factory] of Object.entries(mergedSystemsFactoryMap)) {\n try {\n const system = factory();\n this.registerSystem(system);\n } catch (error) {\n throw this.errorBuilder.buildError( ErrorType.INTERNAL, undefined,\n { customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE, context: { systemRef: ref, error: describeCaughtError(error) }});\n }\n }\n\n\n for (const agent of mergedAgents) {\n this.registerAgent(agent);\n }\n\n for (const functionTool of mergedFunctionTools) {\n this.registerFunctionTool(functionTool);\n }\n\n for (const mcpServer of customBackend_McpServers ?? []) {\n this.registerMcpServer(mcpServer);\n }\n\n /**\n * Every agent's `mcpRefs` must name a DECLARED server, checked here rather than in\n * `registerAgent` because registration order is not guaranteed — an agent may register before\n * the servers it names, and a per-registration check would refuse a coherent application for\n * the order its addons happened to load in.\n */\n this.assertDeclaredMcpRefs();\n\n this.isInitialized = true;\n\n this.logDebug('FlowsActors registry initialization completed', {\n totalSystems: Object.keys(this.registry.flows).length + Object.keys(this.registry.actors).length,\n flows: Object.keys(this.registry.flows).length,\n actors: Object.keys(this.registry.actors).length,\n agents: Object.keys(this.registry.agents).length,\n });\n }\n\n // ================================\n // System Registration & Retrieval\n // ================================\n\n /**\n * Register a flow-actor system\n */\n public registerSystem(system: FlowActorSystem): void {\n\n // Captured before the branching so the exhaustiveness arm below can report\n // WHICH system failed: inside that arm `system` is `never`, and reaching\n // through a `never` would need exactly the kind of assertion this change\n // exists to remove.\n const { ref: systemRef, kind: systemKind } = system;\n\n if (system.kind === FlowActorSystem_Kind.FLOW) {\n if (this.registry.flows[system.ref])\n this.logDebug('Flow already registered, updating...', { ref: system.ref });\n\n // `FlowActorSystem` is a discriminated union on `kind`, so this assignment\n // is checked rather than asserted: the branch has already narrowed the\n // value to `FlowSystem`, which is what the registry bucket stores.\n this.registry.flows[system.ref] = system;\n\n } else if (system.kind === FlowActorSystem_Kind.ACTOR) {\n\n if (this.registry.actors[system.ref])\n this.logDebug('Actor already registered, updating...', { ref: system.ref });\n\n this.registry.actors[system.ref] = system;\n\n } else {\n /*\n * Exhaustiveness guard, newly possible because `FlowActorSystem` is a\n * discriminated union. Before it, an added system kind fell through here\n * and was dropped SILENTLY — the method returns void and logs \"System\n * registered\" either way, so the system was simply never resolvable. A\n * new union member now fails the `never` assignment at COMPILE time.\n *\n * The throw covers the runtime residue: this method is public API, so an\n * untyped or asserted caller can still hand over a system whose kind is\n * outside the union. Registration failing loudly at startup beats a\n * registry that reports success and resolves nothing.\n */\n const unhandledSystem: never = system;\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE,\n // `unhandledSystem` is carried into the diagnostic on purpose: an\n // exhaustiveness binding nothing reads looks like dead code, and the\n // next cleanup deletes the only compile-time guard in this method.\n // Here it is load-bearing in both directions — the `never` annotation\n // is the compile-time check, the value is the runtime diagnostic.\n context: { systemRef, kind: systemKind, unhandledSystem },\n });\n }\n\n\n this.logDebug('System registered', {\n ref: system.ref,\n kind: system.kind,\n displayName: system.displayName\n });\n }\n\n /**\n * Get a flow-actor system by reference\n */\n public getSystem(ref: string, kind: FlowActorSystem_Kind): FlowActorSystem | undefined {\n if (kind === FlowActorSystem_Kind.FLOW) {\n return this.registry.flows[ref];\n } else if (kind === FlowActorSystem_Kind.ACTOR) {\n return this.registry.actors[ref];\n }\n return undefined;\n }\n\n /**\n * Get a flow-actor system or throw error\n */\n public getSystemOrThrow(ref: string, kind: FlowActorSystem_Kind): FlowActorSystem {\n const system = this.getSystem(ref, kind);\n if (!system) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined,\n { customMessageReference: ErrorCustomMessageReference.NOT_FOUND, context: { systemRef: ref, kind } });\n }\n return system;\n }\n\n /**\n * Get all systems of a specific kind\n */\n public getSystemsByKind(kind: FlowActorSystem_Kind): FlowActorSystem[] {\n if(kind === FlowActorSystem_Kind.FLOW) {\n return this.getFlows();\n } else if (kind === FlowActorSystem_Kind.ACTOR) {\n return this.getActors();\n }\n return [];\n }\n\n /**\n * Get all flows.\n *\n * Returns `FlowSystem[]`, not the union: the kind is fixed by the accessor,\n * so widening would make every caller re-narrow to reach `steps`/`edges`\n * even though nothing here can be an actor system — and that re-narrowing\n * pressure is precisely what produced the assertions this change removed.\n *\n * These two accessors, not `getSystemsByKind`, are the typed primitives.\n * `getSystemsByKind` takes a kind as a RUNTIME VALUE, which no signature can\n * track without a generic, so it can only ever promise the union; it now\n * delegates here rather than re-reading the buckets, so the kind→bucket\n * mapping is stated once.\n */\n public getFlows(): FlowSystem[] {\n return Object.values(this.registry.flows);\n }\n\n /**\n * Get all actors — `ActorSystem[]`, so `.actors` is reachable on each entry\n * without a cast. See `getFlows`.\n */\n public getActors(): ActorSystem[] {\n return Object.values(this.registry.actors);\n }\n\n /**\n * Check if a system exists\n */\n public hasSystem(ref: string, kind: FlowActorSystem_Kind): boolean {\n if (kind === FlowActorSystem_Kind.FLOW) {\n return !!this.registry.flows[ref];\n } else if (kind === FlowActorSystem_Kind.ACTOR) {\n return !!this.registry.actors[ref];\n }\n return false;\n }\n\n // ================================\n // Agent Registration & Retrieval\n // ================================\n\n /**\n * Register an agent.\n *\n * Fails CLOSED on a `model × reasoningEffort` pair the target model cannot\n * honour. Registration is the authoring-time seam: every agent — engine\n * defaults and app-registered customs alike — funnels through here at\n * startup, so a bad pair surfaces as a named boot error instead of a provider\n * 400 thrown deep inside a long agent pipeline (a deliberation can burn\n * minutes and real money before reaching its first call).\n *\n * The canonical trap this catches: `reasoningEffort: NONE` turns reasoning off\n * on GPT-5.6 and on most of Claude 5, but hard-errors on `claude-fable-5`,\n * whose thinking cannot be disabled — so the pair's validity depends on the\n * MODEL, not even on its family, and swapping a model without re-auditing its\n * reasoning params is exactly how it breaks.\n *\n * Validation fails OPEN for unknown/unverified model ids (custom + fine-tuned\n * deployments are legitimate) — see `validateReasoningEffortForModel`.\n */\n public registerAgent(agent: FlowsActors_Agent): void {\n if (this.registry.agents[agent.ref]) {\n this.logDebug('Agent already registered, updating...', { ref: agent.ref });\n }\n\n /*\n * What gets REGISTERED may differ from what was AUTHORED (a resolved model id, below), and the\n * difference lives on a copy. The authored object is never written. Until 2026-09-09 this\n * method wrote `model` onto the caller's own config object; the dev companion's (since deleted)\n * startup-composition identity fence caught that as a mutated startup graph and crash-looped\n * every companion into `CRASH_RESPAWN_EXHAUSTED`. The fence was a survivor of the digest\n * demolition and went with it, but the registry was the side in the wrong regardless: a\n * resolver has no business changing its input, and the copy stays.\n */\n let registered: FlowsActors_Agent = agent;\n\n // Only the LLM arm of the config union reasons. Narrowed POSITIVELY: this\n // was `!isImageAgentConfiguration(...)`, which meant \"the LLM arm\" only\n // while the union had two members — the coding arm then fell straight into\n // it and the failure surfaced as a missing `reasoningEffort` property.\n if (isLLMAgentConfiguration(agent.config)) {\n /*\n * Resolve the APPLICABILITY axis into a concrete model id, here and only here (#439).\n *\n * An agent declares the KIND of work it does (`modelApplicability`) rather than naming a\n * model — the standing policy, which embeddings and document extraction already followed and\n * the agent path did not: `resolveModelForApplicability` had NO production caller anywhere,\n * and the field its own JSDoc named was declared by no configuration type.\n *\n * Registration is the chokepoint because it is where the config stops being authored and\n * starts being used: everything downstream reads `config.model` off the REGISTRY, so\n * resolving once here leaves all ~17 consumers untouched and keeps the invariant simple —\n * **a registered agent always carries a concrete model.** Resolving lazily at call time would\n * put a failure that belongs at startup inside a paid request.\n *\n * FAILS CLOSED, with the resolver's own named failure and the candidates it considered. An\n * applicability no model of this provider serves is a misconfiguration, and substituting some\n * other model would be the exact defect the axis exists to remove: the author asked for a\n * KIND, and quietly handing them a different kind is worse than refusing.\n */\n let llmConfig = agent.config;\n if (llmConfig.modelApplicability !== undefined) {\n const resolution = resolveModelForApplicability({\n applicability: llmConfig.modelApplicability,\n providerRef: llmConfig.providerRef,\n });\n if (resolution.resolved === false) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined,\n { customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'Agent declares a model applicability no model of its provider can serve',\n agentRef: agent.ref,\n providerRef: llmConfig.providerRef,\n modelApplicability: llmConfig.modelApplicability,\n failure: resolution.failure,\n consideredModels: resolution.consideredModels,\n } });\n }\n // A COPY carrying the resolved id. The spread keeps the `isLLMAgentConfiguration` narrowing\n // for the reasoning validation immediately below — which must run on the RESOLVED model,\n // being model-dependent — so nothing here needs to write onto the authored object.\n llmConfig = { ...llmConfig, model: resolution.model };\n registered = { ...agent, config: llmConfig };\n }\n\n const reasoningViolation = validateReasoningEffortForModel(llmConfig.model, llmConfig.reasoningEffort);\n if (reasoningViolation) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined,\n { customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE,\n context: { agentRef: agent.ref, model: llmConfig.model, reasoningEffort: llmConfig.reasoningEffort, error: reasoningViolation } });\n }\n }\n\n this.registry.agents[registered.ref] = registered;\n\n // Create index entries for quick lookup\n this.registry.agentRegistryIndex.agents[registered.ref] = registered;\n\n // Index by provider\n if (!this.registry.agentRegistryIndex.agentsByProvider[registered.config.providerRef]) {\n this.registry.agentRegistryIndex.agentsByProvider[registered.config.providerRef] = [];\n }\n this.registry.agentRegistryIndex.agentsByProvider[registered.config.providerRef].push(registered);\n\n // Index by operation\n if (!this.registry.agentRegistryIndex.agentsByOperation[registered.config.operationKey]) {\n this.registry.agentRegistryIndex.agentsByOperation[registered.config.operationKey] = [];\n }\n this.registry.agentRegistryIndex.agentsByOperation[registered.config.operationKey].push(registered);\n\n this.logDebug('Agent registered', {\n ref: registered.ref,\n displayName: registered.displayName,\n operationKey: registered.config.operationKey,\n providerRef: registered.config.providerRef\n });\n }\n\n /**\n * Get an agent by reference\n */\n public getAgent(ref: string): FlowsActors_Agent | undefined {\n return this.registry.agents[ref];\n }\n\n /**\n * Get an agent or throw error\n */\n public getAgentOrThrow(ref: string): FlowsActors_Agent {\n const agent = this.getAgent(ref);\n\n if (!agent) {\n throw this.errorBuilder.buildError( ErrorType.NOT_FOUND, undefined,\n {customMessageReference: ErrorCustomMessageReference.NOT_FOUND,context: { agentRef: ref } });\n }\n return agent;\n }\n\n /**\n * Get agents by provider\n */\n public getAgentsByProvider(providerRef: string): FlowsActors_Agent[] {\n return this.registry.agentRegistryIndex.agentsByProvider[providerRef] || [];\n }\n\n /**\n * Get agents by operation key\n */\n public getAgentsByOperation(operationKey: string): FlowsActors_Agent[] {\n return this.registry.agentRegistryIndex.agentsByOperation[operationKey] || [];\n }\n\n /**\n * Check if an agent exists\n */\n public hasAgent(ref: string): boolean {\n return !!this.registry.agents[ref];\n }\n\n // ================================\n // Function Tools\n // ================================\n\n /**\n * Register an executable function tool, indexed by its `functionRef`. Agents\n * reference it via `capabilities.tools.functionRefs`; `AgentsBackendService`\n * resolves it into an AI-SDK tool at invocation time.\n */\n public registerFunctionTool(functionTool: FunctionTool): void {\n this.registry.functionTools[functionTool.functionRef] = functionTool;\n this.logDebug('Registered function tool', { functionRef: functionTool.functionRef });\n }\n\n /** Get a function tool by ref. */\n public getFunctionTool(ref: string): FunctionTool | undefined {\n return this.registry.functionTools[ref];\n }\n\n /** Get a function tool or throw NOT_FOUND. */\n public getFunctionToolOrThrow(ref: string): FunctionTool {\n const functionTool = this.getFunctionTool(ref);\n if (!functionTool) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined,\n { customMessageReference: ErrorCustomMessageReference.NOT_FOUND, context: { functionRef: ref } });\n }\n return functionTool;\n }\n\n /** Check if a function tool exists. */\n public hasFunctionTool(ref: string): boolean {\n return !!this.registry.functionTools[ref];\n }\n\n // ================================\n // MCP Server Registration & Retrieval\n // ================================\n\n /**\n * Register an MCP server the application permits its agents to reach, indexed by the ref an\n * agent's `capabilities.tools.mcpRefs` names (#491).\n *\n * REFUSES a plaintext endpoint. An MCP call carries a delegated credential to a third party, so\n * `http://` would put a bearer token on the wire in clear — and unlike the webhook lane, where a\n * plaintext endpoint is the operator's own declared destination and is reported rather than\n * blocked, nothing here is the application's to expose on someone else's behalf.\n */\n public registerMcpServer(mcpServer: FlowsActors_McpServer): void {\n if (mcpServerTransportIsPlaintext(mcpServer.url)) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE,\n context: {\n mcpServerRef: mcpServer.ref,\n destinationHost: mcpServerDestinationHost(mcpServer.url),\n reason: 'mcp_server_endpoint_is_plaintext',\n },\n });\n }\n this.registry.mcpServers[mcpServer.ref] = mcpServer;\n this.logDebug('Registered MCP server', {\n ref: mcpServer.ref,\n transport: mcpServer.transport,\n destinationHost: mcpServerDestinationHost(mcpServer.url),\n });\n }\n\n /** Get a declared MCP server by ref. */\n public getMcpServer(ref: string): FlowsActors_McpServer | undefined {\n return this.registry.mcpServers[ref];\n }\n\n /** Check if an MCP server is declared. */\n public hasMcpServer(ref: string): boolean {\n return !!this.registry.mcpServers[ref];\n }\n\n /**\n * Refuse an agent whose `mcpRefs` name a server the application never declared.\n *\n * FAIL-CLOSED, and deliberately stricter than `functionRefs`, which skip an unknown ref with a\n * debug line. The asymmetry has a measured reason: an unknown `functionRef` costs an agent one\n * tool, while `mcpRefs` were RENDERED to a person as a capability, and every ref that ever\n * existed — `filesystem-mcp`, `git-mcp`, `browser-mcp`, `mongodb-mcp` — named no server anywhere,\n * because the field could be authored against nothing (#491). A refusal is what makes that state\n * unreachable rather than merely fixed once.\n *\n * The engine's own law, measured at `start-application.backend.service.ts`: a declaration gets\n * made if and only if the framework refuses to start without it.\n */\n private assertDeclaredMcpRefs(): void {\n const undeclared: { agentRef: string; mcpRef: string }[] = [];\n for (const agent of Object.values(this.registry.agents)) {\n for (const mcpRef of agent.capabilities?.tools?.mcpRefs ?? []) {\n if (!this.hasMcpServer(mcpRef)) undeclared.push({ agentRef: agent.ref, mcpRef });\n }\n }\n if (undeclared.length === 0) return;\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE,\n context: {\n reason: 'agent_mcp_ref_names_no_declared_server',\n undeclared,\n declaredMcpServerRefs: Object.keys(this.registry.mcpServers),\n },\n });\n }\n\n // ================================\n // Registry Access\n // ================================\n\n /**\n * Get the complete registry\n */\n public getRegistry(): FlowsActorsRegistry {\n return this.registry;\n }\n\n /**\n * Get the agent registry index\n */\n public getAgentRegistryIndex(): AgentRegistryIndex {\n return this.registry.agentRegistryIndex;\n }\n\n // ================================\n // Debug Methods\n // ================================\n\n public getDebugInfo(): {\n isInitialized: boolean;\n totalSystems: number;\n flowsCount: number;\n actorsCount: number;\n agentsCount: number;\n systemRefs: string[];\n agentRefs: string[];\n } {\n return {\n isInitialized: this.isInitialized,\n totalSystems: Object.keys(this.registry.flows).length + Object.keys(this.registry.actors).length,\n flowsCount: Object.keys(this.registry.flows).length,\n actorsCount: Object.keys(this.registry.actors).length,\n agentsCount: Object.keys(this.registry.agents).length,\n systemRefs: Object.keys(this.registry.flows).concat(Object.keys(this.registry.actors)),\n agentRefs: Object.keys(this.registry.agents),\n };\n }\n\n public displayRegistryInfo(): void {\n this.logDebug('\\n=== 🤖 FLOWS-ACTORS REGISTRY SUMMARY ===\\n');\n\n const info = this.getDebugInfo();\n\n this.logDebug(`📊 STATISTICS:`);\n this.logDebug(` Total Systems: ${info.totalSystems}`);\n this.logDebug(` Flows: ${info.flowsCount}`);\n this.logDebug(` Actors: ${info.actorsCount}`);\n this.logDebug(` Agents: ${info.agentsCount}`);\n this.logDebug(` Initialized: ${info.isInitialized}`);\n\n if (info.systemRefs.length > 0) {\n this.logDebug('\\n🔄 REGISTERED SYSTEMS:');\n info.systemRefs.forEach(ref => {\n const system = this.registry.flows[ref];\n this.logDebug(` - ${ref} (${system.kind}): ${system.displayName}`);\n });\n }\n\n if (info.agentRefs.length > 0) {\n this.logDebug('\\n🤖 REGISTERED AGENTS:');\n info.agentRefs.forEach(ref => {\n const agent = this.registry.agentRegistryIndex.agents[ref];\n this.logDebug(` - ${ref}: ${agent.displayName} [${agent.config.providerRef}/${agent.config.operationKey}]`);\n });\n }\n\n this.logDebug('=================================\\n');\n }\n}\n\n"]}
1
+ {"version":3,"file":"flows-actors-registry.service.js","sourceRoot":"","sources":["../../../../src/flows-actors/services/flows-actors-registry.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport {\n FlowActorSystem,\n FlowActorSystem_Kind,\n FlowsActors_Agent,\n ActorSystem,\n FlowSystem,\n isLLMAgentConfiguration,\n FlowsActors_McpServer,\n mcpServerDestinationHost,\n mcpServerTransportIsPlaintext,\n} from '@wildo-ai/saas-models';\nimport {\n ErrorType,\n ErrorCustomMessageReference\n} from '@wildo-ai/saas-models';\nimport {\n FlowsActorsRegistry,\n FlowActorSystem_InitializationFactoryMap,\n AgentRegistryIndex\n} from '~wildo-backend-lib/flows-actors/models/flows-actors.backend.schemas';\nimport { resolveModelForApplicability, validateReasoningEffortForModel } from '@wildo-ai/external-connectors-models';\nimport type { FunctionTool } from '~wildo-backend-lib/flows-actors/models/function-tools.backend.definitions';\nimport { flowsActors_Backend_Default_Definition } from '~wildo-backend-lib/flows-actors/models/flows-actors.backend.definitions';\n\n/**\n * FlowsActors Registry Service\n *\n * Central registry for managing flow-actor systems, agents, and their configurations.\n * Similar to ResourcesRegistryBackendService but for flow-actor domain.\n *\n * Features:\n * - Register and retrieve flow systems and actors\n * - Manage agent definitions and capabilities\n * - System validation and lookup\n * - Kind-based filtering and organization\n */\n@injectable()\nexport class FlowsActorsRegistryService {\n\n private registry: FlowsActorsRegistry;\n private isInitialized = false;\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n ) {\n this.registry = {\n agents: {},\n flows: {},\n actors: {},\n mcpServers: {},\n agentRegistryIndex: {\n agents: {},\n agentsByProvider: {},\n agentsByOperation: {},\n },\n functionTools: {},\n };\n\n\n this.logDebug = this.logger.debugByType('FlowsActorsRegistry');\n this.logger.setDebugTypeLogging('FlowsActorsRegistry', false);\n\n this.logDebug('FlowsActors registry service created');\n }\n\n // ================================\n // Initialization\n // ================================\n\n /**\n * Initialize the registry with flow-actor systems and agents\n * Follows the same pattern as ResourcesRegistryBackendService.initialize()\n */\n public async initialize(\n customBackend_FlowActorSystemsFactoryMap?: FlowActorSystem_InitializationFactoryMap,\n customBackend_Agents?: FlowsActors_Agent[],\n customBackend_FunctionTools?: FunctionTool[],\n customBackend_McpServers?: FlowsActors_McpServer[],\n ): Promise<void> {\n if (this.isInitialized) {\n this.logDebug('Registry already initialized, skipping...');\n return;\n }\n\n const defaultSystemsFactoryMap = flowsActors_Backend_Default_Definition.flowActorSystemsFactoryMap;\n const defaultAgents = flowsActors_Backend_Default_Definition.agents;\n const defaultFunctionTools = flowsActors_Backend_Default_Definition.functionTools;\n\n // Merge default with custom backend (custom takes precedence)\n const mergedSystemsFactoryMap: FlowActorSystem_InitializationFactoryMap = {\n ...defaultSystemsFactoryMap,\n ...customBackend_FlowActorSystemsFactoryMap,\n };\n\n const mergedAgents: FlowsActors_Agent[] = [\n ...defaultAgents,\n ...(customBackend_Agents || []),\n ];\n\n const mergedFunctionTools: FunctionTool[] = [\n ...defaultFunctionTools,\n ...(customBackend_FunctionTools || []),\n ];\n\n this.logDebug('Initializing flows-actors registry', {\n defaultSystemsCount: Object.keys(defaultSystemsFactoryMap).length,\n customBackendSystemsCount: customBackend_FlowActorSystemsFactoryMap ? Object.keys(customBackend_FlowActorSystemsFactoryMap).length : 0,\n defaultAgentsCount: defaultAgents.length,\n customBackendAgentsCount: customBackend_Agents?.length || 0,\n });\n\n\n for (const [ref, factory] of Object.entries(mergedSystemsFactoryMap)) {\n try {\n const system = factory();\n this.registerSystem(system);\n } catch (error) {\n throw this.errorBuilder.buildError( ErrorType.INTERNAL, undefined,\n { customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE, context: { systemRef: ref, error: describeCaughtError(error) }});\n }\n }\n\n\n for (const agent of mergedAgents) {\n this.registerAgent(agent);\n }\n\n for (const functionTool of mergedFunctionTools) {\n this.registerFunctionTool(functionTool);\n }\n\n for (const mcpServer of customBackend_McpServers ?? []) {\n this.registerMcpServer(mcpServer);\n }\n\n /**\n * Every agent's `mcpRefs` must name a DECLARED server, checked here rather than in\n * `registerAgent` because registration order is not guaranteed — an agent may register before\n * the servers it names, and a per-registration check would refuse a coherent application for\n * the order its addons happened to load in.\n */\n this.assertDeclaredMcpRefs();\n\n this.isInitialized = true;\n\n this.logDebug('FlowsActors registry initialization completed', {\n totalSystems: Object.keys(this.registry.flows).length + Object.keys(this.registry.actors).length,\n flows: Object.keys(this.registry.flows).length,\n actors: Object.keys(this.registry.actors).length,\n agents: Object.keys(this.registry.agents).length,\n });\n }\n\n // ================================\n // System Registration & Retrieval\n // ================================\n\n /**\n * Register a flow-actor system\n */\n public registerSystem(system: FlowActorSystem): void {\n\n // Captured before the branching so the exhaustiveness arm below can report\n // WHICH system failed: inside that arm `system` is `never`, and reaching\n // through a `never` would need exactly the kind of assertion this change\n // exists to remove.\n const { ref: systemRef, kind: systemKind } = system;\n\n if (system.kind === FlowActorSystem_Kind.FLOW) {\n if (this.registry.flows[system.ref])\n this.logDebug('Flow already registered, updating...', { ref: system.ref });\n\n // `FlowActorSystem` is a discriminated union on `kind`, so this assignment\n // is checked rather than asserted: the branch has already narrowed the\n // value to `FlowSystem`, which is what the registry bucket stores.\n this.registry.flows[system.ref] = system;\n\n } else if (system.kind === FlowActorSystem_Kind.ACTOR) {\n\n if (this.registry.actors[system.ref])\n this.logDebug('Actor already registered, updating...', { ref: system.ref });\n\n this.registry.actors[system.ref] = system;\n\n } else {\n /*\n * Exhaustiveness guard, newly possible because `FlowActorSystem` is a\n * discriminated union. Before it, an added system kind fell through here\n * and was dropped SILENTLY — the method returns void and logs \"System\n * registered\" either way, so the system was simply never resolvable. A\n * new union member now fails the `never` assignment at COMPILE time.\n *\n * The throw covers the runtime residue: this method is public API, so an\n * untyped or asserted caller can still hand over a system whose kind is\n * outside the union. Registration failing loudly at startup beats a\n * registry that reports success and resolves nothing.\n */\n const unhandledSystem: never = system;\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE,\n // `unhandledSystem` is carried into the diagnostic on purpose: an\n // exhaustiveness binding nothing reads looks like dead code, and the\n // next cleanup deletes the only compile-time guard in this method.\n // Here it is load-bearing in both directions — the `never` annotation\n // is the compile-time check, the value is the runtime diagnostic.\n context: { systemRef, kind: systemKind, unhandledSystem },\n });\n }\n\n\n this.logDebug('System registered', {\n ref: system.ref,\n kind: system.kind,\n displayName: system.displayName\n });\n }\n\n /**\n * Get a flow-actor system by reference\n */\n public getSystem(ref: string, kind: FlowActorSystem_Kind): FlowActorSystem | undefined {\n if (kind === FlowActorSystem_Kind.FLOW) {\n return this.registry.flows[ref];\n } else if (kind === FlowActorSystem_Kind.ACTOR) {\n return this.registry.actors[ref];\n }\n return undefined;\n }\n\n /**\n * Get a flow-actor system or throw error\n */\n public getSystemOrThrow(ref: string, kind: FlowActorSystem_Kind): FlowActorSystem {\n const system = this.getSystem(ref, kind);\n if (!system) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined,\n { customMessageReference: ErrorCustomMessageReference.NOT_FOUND, context: { systemRef: ref, kind } });\n }\n return system;\n }\n\n /**\n * Get all systems of a specific kind\n */\n public getSystemsByKind(kind: FlowActorSystem_Kind): FlowActorSystem[] {\n if(kind === FlowActorSystem_Kind.FLOW) {\n return this.getFlows();\n } else if (kind === FlowActorSystem_Kind.ACTOR) {\n return this.getActors();\n }\n return [];\n }\n\n /**\n * Get all flows.\n *\n * Returns `FlowSystem[]`, not the union: the kind is fixed by the accessor,\n * so widening would make every caller re-narrow to reach `steps`/`edges`\n * even though nothing here can be an actor system — and that re-narrowing\n * pressure is precisely what produced the assertions this change removed.\n *\n * These two accessors, not `getSystemsByKind`, are the typed primitives.\n * `getSystemsByKind` takes a kind as a RUNTIME VALUE, which no signature can\n * track without a generic, so it can only ever promise the union; it now\n * delegates here rather than re-reading the buckets, so the kind→bucket\n * mapping is stated once.\n */\n public getFlows(): FlowSystem[] {\n return Object.values(this.registry.flows);\n }\n\n /**\n * Get all actors — `ActorSystem[]`, so `.actors` is reachable on each entry\n * without a cast. See `getFlows`.\n */\n public getActors(): ActorSystem[] {\n return Object.values(this.registry.actors);\n }\n\n /**\n * Check if a system exists\n */\n public hasSystem(ref: string, kind: FlowActorSystem_Kind): boolean {\n if (kind === FlowActorSystem_Kind.FLOW) {\n return !!this.registry.flows[ref];\n } else if (kind === FlowActorSystem_Kind.ACTOR) {\n return !!this.registry.actors[ref];\n }\n return false;\n }\n\n // ================================\n // Agent Registration & Retrieval\n // ================================\n\n /**\n * Register an agent.\n *\n * Fails CLOSED on a `model × reasoningEffort` pair the target model cannot\n * honour. Registration is the authoring-time seam: every agent — engine\n * defaults and app-registered customs alike — funnels through here at\n * startup, so a bad pair surfaces as a named boot error instead of a provider\n * 400 thrown deep inside a long agent pipeline (a deliberation can burn\n * minutes and real money before reaching its first call).\n *\n * The canonical trap this catches: `reasoningEffort: NONE` turns reasoning off\n * on GPT-5.6 and on most of Claude 5, but hard-errors on `claude-fable-5`,\n * whose thinking cannot be disabled — so the pair's validity depends on the\n * MODEL, not even on its family, and swapping a model without re-auditing its\n * reasoning params is exactly how it breaks.\n *\n * Validation fails OPEN for unknown/unverified model ids (custom + fine-tuned\n * deployments are legitimate) — see `validateReasoningEffortForModel`.\n */\n public registerAgent(agent: FlowsActors_Agent): void {\n if (this.registry.agents[agent.ref]) {\n this.logDebug('Agent already registered, updating...', { ref: agent.ref });\n }\n\n /*\n * What gets REGISTERED may differ from what was AUTHORED (a resolved model id, below), and the\n * difference lives on a copy. The authored object is never written. Until 2026-09-09 this\n * method wrote `model` onto the caller's own config object; the dev companion's (since deleted)\n * startup-composition identity fence caught that as a mutated startup graph and crash-looped\n * every companion into `CRASH_RESPAWN_EXHAUSTED`. The fence was a survivor of the digest\n * demolition and went with it, but the registry was the side in the wrong regardless: a\n * resolver has no business changing its input, and the copy stays.\n */\n let registered: FlowsActors_Agent = agent;\n\n // Only the LLM arm of the config union reasons. Narrowed POSITIVELY: this\n // was `!isImageAgentConfiguration(...)`, which meant \"the LLM arm\" only\n // while the union had two members — the coding arm then fell straight into\n // it and the failure surfaced as a missing `reasoningEffort` property.\n if (isLLMAgentConfiguration(agent.config)) {\n /*\n * Resolve the APPLICABILITY axis into a concrete model id, here and only here (#439).\n *\n * An agent declares the KIND of work it does (`modelApplicability`) rather than naming a\n * model — the standing policy, which embeddings and document extraction already followed and\n * the agent path did not: `resolveModelForApplicability` had NO production caller anywhere,\n * and the field its own JSDoc named was declared by no configuration type.\n *\n * Registration is the chokepoint because it is where the config stops being authored and\n * starts being used: everything downstream reads `config.model` off the REGISTRY, so\n * resolving once here leaves all ~17 consumers untouched and keeps the invariant simple —\n * **a registered agent always carries a concrete model.** Resolving lazily at call time would\n * put a failure that belongs at startup inside a paid request.\n *\n * FAILS CLOSED, with the resolver's own named failure and the candidates it considered. An\n * applicability no model of this provider serves is a misconfiguration, and substituting some\n * other model would be the exact defect the axis exists to remove: the author asked for a\n * KIND, and quietly handing them a different kind is worse than refusing.\n */\n let llmConfig = agent.config;\n if (llmConfig.modelApplicability !== undefined) {\n const resolution = resolveModelForApplicability({\n applicability: llmConfig.modelApplicability,\n providerRef: llmConfig.providerRef,\n });\n if (resolution.resolved === false) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined,\n { customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'Agent declares a model applicability no model of its provider can serve',\n agentRef: agent.ref,\n providerRef: llmConfig.providerRef,\n modelApplicability: llmConfig.modelApplicability,\n failure: resolution.failure,\n consideredModels: resolution.consideredModels,\n } });\n }\n // A COPY carrying the resolved id. The spread keeps the `isLLMAgentConfiguration` narrowing\n // for the reasoning validation immediately below — which must run on the RESOLVED model,\n // being model-dependent — so nothing here needs to write onto the authored object.\n llmConfig = { ...llmConfig, model: resolution.model };\n registered = { ...agent, config: llmConfig };\n }\n\n const reasoningViolation = validateReasoningEffortForModel(llmConfig.model, llmConfig.reasoningEffort);\n if (reasoningViolation) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined,\n { customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE,\n context: { agentRef: agent.ref, model: llmConfig.model, reasoningEffort: llmConfig.reasoningEffort, error: reasoningViolation } });\n }\n }\n\n this.registry.agents[registered.ref] = registered;\n\n // Create index entries for quick lookup\n this.registry.agentRegistryIndex.agents[registered.ref] = registered;\n\n // Index by provider\n if (!this.registry.agentRegistryIndex.agentsByProvider[registered.config.providerRef]) {\n this.registry.agentRegistryIndex.agentsByProvider[registered.config.providerRef] = [];\n }\n this.registry.agentRegistryIndex.agentsByProvider[registered.config.providerRef].push(registered);\n\n // Index by operation\n if (!this.registry.agentRegistryIndex.agentsByOperation[registered.config.operationKey]) {\n this.registry.agentRegistryIndex.agentsByOperation[registered.config.operationKey] = [];\n }\n this.registry.agentRegistryIndex.agentsByOperation[registered.config.operationKey].push(registered);\n\n this.logDebug('Agent registered', {\n ref: registered.ref,\n displayName: registered.displayName,\n operationKey: registered.config.operationKey,\n providerRef: registered.config.providerRef\n });\n }\n\n /**\n * Get an agent by reference\n */\n public getAgent(ref: string): FlowsActors_Agent | undefined {\n return this.registry.agents[ref];\n }\n\n /**\n * Get an agent or throw error\n */\n public getAgentOrThrow(ref: string): FlowsActors_Agent {\n const agent = this.getAgent(ref);\n\n if (!agent) {\n throw this.errorBuilder.buildError( ErrorType.NOT_FOUND, undefined,\n {customMessageReference: ErrorCustomMessageReference.NOT_FOUND,context: { agentRef: ref } });\n }\n return agent;\n }\n\n /**\n * Get agents by provider\n */\n public getAgentsByProvider(providerRef: string): FlowsActors_Agent[] {\n return this.registry.agentRegistryIndex.agentsByProvider[providerRef] || [];\n }\n\n /**\n * Get agents by operation key\n */\n public getAgentsByOperation(operationKey: string): FlowsActors_Agent[] {\n return this.registry.agentRegistryIndex.agentsByOperation[operationKey] || [];\n }\n\n /**\n * Check if an agent exists\n */\n public hasAgent(ref: string): boolean {\n return !!this.registry.agents[ref];\n }\n\n // ================================\n // Function Tools\n // ================================\n\n /**\n * Register an executable function tool, indexed by its `functionRef`. Agents\n * reference it via `capabilities.tools.functionRefs`; `AgentsBackendService`\n * resolves it into an AI-SDK tool at invocation time.\n */\n public registerFunctionTool(functionTool: FunctionTool): void {\n this.registry.functionTools[functionTool.functionRef] = functionTool;\n this.logDebug('Registered function tool', { functionRef: functionTool.functionRef });\n }\n\n /** Get a function tool by ref. */\n public getFunctionTool(ref: string): FunctionTool | undefined {\n return this.registry.functionTools[ref];\n }\n\n /** Get a function tool or throw NOT_FOUND. */\n public getFunctionToolOrThrow(ref: string): FunctionTool {\n const functionTool = this.getFunctionTool(ref);\n if (!functionTool) {\n throw this.errorBuilder.buildError(ErrorType.NOT_FOUND, undefined,\n { customMessageReference: ErrorCustomMessageReference.NOT_FOUND, context: { functionRef: ref } });\n }\n return functionTool;\n }\n\n /** Check if a function tool exists. */\n public hasFunctionTool(ref: string): boolean {\n return !!this.registry.functionTools[ref];\n }\n\n // ================================\n // MCP Server Registration & Retrieval\n // ================================\n\n /**\n * Register an MCP server the application permits its agents to reach, indexed by the ref an\n * agent's `capabilities.tools.mcpRefs` names (#491).\n *\n * REFUSES a plaintext endpoint. An MCP call carries a delegated credential to a third party, so\n * `http://` would put a bearer token on the wire in clear — and unlike the webhook lane, where a\n * plaintext endpoint is the operator's own declared destination and is reported rather than\n * blocked, nothing here is the application's to expose on someone else's behalf.\n */\n public registerMcpServer(mcpServer: FlowsActors_McpServer): void {\n if (mcpServerTransportIsPlaintext(mcpServer.url)) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE,\n context: {\n mcpServerRef: mcpServer.ref,\n destinationHost: mcpServerDestinationHost(mcpServer.url),\n reason: 'mcp_server_endpoint_is_plaintext',\n },\n });\n }\n this.registry.mcpServers[mcpServer.ref] = mcpServer;\n this.logDebug('Registered MCP server', {\n ref: mcpServer.ref,\n transport: mcpServer.transport,\n destinationHost: mcpServerDestinationHost(mcpServer.url),\n });\n }\n\n /** Get a declared MCP server by ref. */\n public getMcpServer(ref: string): FlowsActors_McpServer | undefined {\n return this.registry.mcpServers[ref];\n }\n\n /** Check if an MCP server is declared. */\n public hasMcpServer(ref: string): boolean {\n return !!this.registry.mcpServers[ref];\n }\n\n /**\n * Refuse an agent whose `mcpRefs` name a server the application never declared.\n *\n * FAIL-CLOSED, and deliberately stricter than `functionRefs`, which skip an unknown ref with a\n * debug line. The asymmetry has a measured reason: an unknown `functionRef` costs an agent one\n * tool, while `mcpRefs` were RENDERED to a person as a capability, and every ref that ever\n * existed — `filesystem-mcp`, `git-mcp`, `browser-mcp`, `mongodb-mcp` — named no server anywhere,\n * because the field could be authored against nothing (#491). A refusal is what makes that state\n * unreachable rather than merely fixed once.\n *\n * The engine's own law, measured at `start-application.backend.service.ts`: a declaration gets\n * made if and only if the framework refuses to start without it.\n */\n private assertDeclaredMcpRefs(): void {\n const undeclared: { agentRef: string; mcpRef: string }[] = [];\n for (const agent of Object.values(this.registry.agents)) {\n for (const mcpRef of agent.capabilities?.tools?.mcpRefs ?? []) {\n if (!this.hasMcpServer(mcpRef)) undeclared.push({ agentRef: agent.ref, mcpRef });\n }\n }\n if (undeclared.length === 0) return;\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.INFRASTRUCTURE,\n context: {\n reason: 'agent_mcp_ref_names_no_declared_server',\n undeclared,\n declaredMcpServerRefs: Object.keys(this.registry.mcpServers),\n },\n });\n }\n\n // ================================\n // Registry Access\n // ================================\n\n /**\n * Get the complete registry\n */\n public getRegistry(): FlowsActorsRegistry {\n return this.registry;\n }\n\n /**\n * Get the agent registry index\n */\n public getAgentRegistryIndex(): AgentRegistryIndex {\n return this.registry.agentRegistryIndex;\n }\n\n // ================================\n // Debug Methods\n // ================================\n\n public getDebugInfo(): {\n isInitialized: boolean;\n totalSystems: number;\n flowsCount: number;\n actorsCount: number;\n agentsCount: number;\n systemRefs: string[];\n agentRefs: string[];\n } {\n return {\n isInitialized: this.isInitialized,\n totalSystems: Object.keys(this.registry.flows).length + Object.keys(this.registry.actors).length,\n flowsCount: Object.keys(this.registry.flows).length,\n actorsCount: Object.keys(this.registry.actors).length,\n agentsCount: Object.keys(this.registry.agents).length,\n systemRefs: Object.keys(this.registry.flows).concat(Object.keys(this.registry.actors)),\n agentRefs: Object.keys(this.registry.agents),\n };\n }\n\n public displayRegistryInfo(): void {\n this.logDebug('\\n=== 🤖 FLOWS-ACTORS REGISTRY SUMMARY ===\\n');\n\n const info = this.getDebugInfo();\n\n this.logDebug(`📊 STATISTICS:`);\n this.logDebug(` Total Systems: ${info.totalSystems}`);\n this.logDebug(` Flows: ${info.flowsCount}`);\n this.logDebug(` Actors: ${info.actorsCount}`);\n this.logDebug(` Agents: ${info.agentsCount}`);\n this.logDebug(` Initialized: ${info.isInitialized}`);\n\n if (info.systemRefs.length > 0) {\n this.logDebug('\\n🔄 REGISTERED SYSTEMS:');\n info.systemRefs.forEach(ref => {\n const system = this.registry.flows[ref];\n this.logDebug(` - ${ref} (${system.kind}): ${system.displayName}`);\n });\n }\n\n if (info.agentRefs.length > 0) {\n this.logDebug('\\n🤖 REGISTERED AGENTS:');\n info.agentRefs.forEach(ref => {\n const agent = this.registry.agentRegistryIndex.agents[ref];\n this.logDebug(` - ${ref}: ${agent.displayName} [${agent.config.providerRef}/${agent.config.operationKey}]`);\n });\n }\n\n this.logDebug('=================================\\n');\n }\n}\n\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"flows.backend.services.d.ts","sourceRoot":"","sources":["../../../../../src/flows-actors/services/flows.backend.services.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAWhE,OAAO,EACL,UAAU,EACV,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,qBACa,mBAAmB;IAKO,OAAO,CAAC,QAAQ,CAAC,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,YAAY;IACtB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IANjF,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,EACR,YAAY,EAAE,0BAA0B,EACjC,mBAAmB,EAAE,0BAA0B,EACrD,aAAa,EAAE,oBAAoB;IAYvG;;;OAGG;IACU,WAAW,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4BxF;;OAEG;YACW,gBAAgB;IA6C9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACI,iBAAiB,IAAI,UAAU,EAAE;IAMxC;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAQvD;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAmB3C,YAAY,IAAI;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB;CAUF"}
1
+ {"version":3,"file":"flows.backend.services.d.ts","sourceRoot":"","sources":["../../../../src/flows-actors/services/flows.backend.services.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAWhE,OAAO,EACL,UAAU,EACV,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,qBACa,mBAAmB;IAKO,OAAO,CAAC,QAAQ,CAAC,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,YAAY;IACtB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IANjF,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,EACR,YAAY,EAAE,0BAA0B,EACjC,mBAAmB,EAAE,0BAA0B,EACrD,aAAa,EAAE,oBAAoB;IAYvG;;;OAGG;IACU,WAAW,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4BxF;;OAEG;YACW,gBAAgB;IA6C9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACI,iBAAiB,IAAI,UAAU,EAAE;IAMxC;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAQvD;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAmB3C,YAAY,IAAI;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB;CAUF"}
@@ -1 +1 @@
1
- {"version":3,"file":"flows.backend.services.js","sourceRoot":"","sources":["../../../../../src/flows-actors/services/flows.backend.services.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { FlowsActorsRegistryService } from './flows-actors-registry.service';\nimport { AgentsBackendService } from './agents.backend.service';\nimport {\n FlowActorSystem,\n FlowActorSystem_Kind,\n FlowActorSystem_Status,\n Flow_Node_RelationshipSchema,\n} from '@wildo-ai/saas-models';\nimport {\n ErrorType,\n ErrorCustomMessageReference\n} from '@wildo-ai/saas-models';\nimport {\n FlowSystem,\n FlowSystem_Execution,\n} from '@wildo-ai/saas-models';\n\n/**\n * Flows Backend Service\n *\n * Manages flow execution and orchestration.\n * Coordinates step execution, agent invocations, and data flow.\n *\n * Features:\n * - Flow execution management\n * - Step orchestration\n * - Agent coordination\n * - Data flow and transformation\n * - Error handling and recovery\n * - Checkpoint management\n */\n@injectable()\nexport class FlowsBackendService {\n\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.FlowsActorsRegistryService) private readonly flowsActorsRegistry: FlowsActorsRegistryService,\n @inject(SAAS_SERVICE_TYPES.AgentsBackendService) private readonly agentsService: AgentsBackendService,\n ) {\n this.logDebug = this.logger.debugByType('FlowsBackend');\n this.logger.setDebugTypeLogging('FlowsBackend', true);\n\n this.logDebug('Flows backend service created');\n }\n\n // ================================\n // Flow Execution\n // ================================\n\n /**\n * Execute a flow\n * Accepts FlowSystem_Execution and executes it\n */\n public async executeFlow(execution: FlowSystem_Execution): Promise<FlowSystem_Execution> {\n this.logDebug('Executing flow', {\n flowRef: execution.systemRef,\n executionId: execution._id,\n hasInitiator: !!execution.initiator\n });\n\n // Get flow from registry\n const flow = this.flowsActorsRegistry.getSystemOrThrow(execution.systemRef, FlowActorSystem_Kind.FLOW);\n\n // Validate it's a flow\n this.validateIsFlow(flow);\n\n // Validate flow status\n this.validateFlowStatus(flow);\n\n // Execute flow steps\n const updatedExecution = await this.executeFlowSteps(flow, execution);\n\n this.logDebug('Flow execution completed', {\n flowRef: execution.systemRef,\n executionId: updatedExecution._id || 'unknown',\n status: updatedExecution.status\n });\n\n return updatedExecution;\n }\n\n /**\n * Execute flow steps\n */\n private async executeFlowSteps(\n flow: FlowActorSystem,\n execution: FlowSystem_Execution\n ): Promise<FlowSystem_Execution> {\n this.logDebug('Executing flow steps', {\n flowRef: flow.ref,\n executionId: execution._id\n });\n\n /*\n * Step execution is not built. It refuses rather than reporting success.\n *\n * This returned the execution stamped COMPLETED with a finish timestamp, having run nothing:\n * no step parsed, no agent called, no data moved between steps, no node state touched. A\n * caller could not tell that apart from a flow that genuinely ran, and neither could a stored\n * record afterwards, so the absence would have been discovered as a flow that \"worked\" and\n * produced nothing.\n *\n * Refusing is safe here and would not have been once callers exist: nothing in the engine, the\n * platform or either dogfood application calls `executeFlow` today. The actor lane is the one\n * that runs; the flow lane is declared and unbuilt.\n *\n * What is still owed, kept from the original note: parse the flow configuration, execute steps\n * in order, handle agent calls, move data between steps, checkpoint and handle errors, and\n * update `nodeStates` as steps complete.\n */\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n // diagnostic (log-only)\n message: 'Flow step execution is not implemented; no step was run and no status was advanced.',\n flowRef: flow.ref,\n executionId: execution._id,\n },\n },\n );\n }\n\n // ================================\n // Flow Validation\n // ================================\n\n /**\n * Validate system is a flow\n */\n private validateIsFlow(system: FlowActorSystem): void {\n if (system.kind !== FlowActorSystem_Kind.FLOW) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FLOW_INVALID_KIND,\n context: {\n // diagnostic (log-only)\n systemRef: system.ref,\n kind: system.kind,\n }\n }\n );\n }\n }\n\n /**\n * Validate flow status before execution\n */\n private validateFlowStatus(flow: FlowActorSystem): void {\n if (flow.status !== FlowActorSystem_Status.ACTIVE) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FLOW_NOT_ACTIVE,\n context: {\n // diagnostic (log-only)\n flowRef: flow.ref,\n status: flow.status,\n }\n }\n );\n }\n }\n\n // ================================\n // Execution Context Management\n // ================================\n\n\n // ================================\n // Flow Discovery\n // ================================\n\n /**\n * Get all available flows\n */\n public getAvailableFlows(): FlowSystem[] {\n return this.flowsActorsRegistry.getFlows().filter(\n flow => flow.status === FlowActorSystem_Status.ACTIVE\n );\n }\n\n /**\n * Get flow by reference\n */\n public getFlow(flowRef: string): FlowSystem | undefined {\n const system = this.flowsActorsRegistry.getSystem(flowRef, FlowActorSystem_Kind.FLOW);\n if (system && system.kind === FlowActorSystem_Kind.FLOW) {\n return system;\n }\n return undefined;\n }\n\n /**\n * Get flow or throw\n */\n public getFlowOrThrow(flowRef: string): FlowSystem {\n const flow = this.getFlow(flowRef);\n if (!flow) {\n throw this.errorBuilder.buildError(\n ErrorType.NOT_FOUND,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.NOT_FOUND,\n context: { flowRef }\n }\n );\n }\n return flow;\n }\n\n // ================================\n // Debug Methods\n // ================================\n\n public getDebugInfo(): {\n totalFlows: number;\n activeFlows: number;\n flowRefs: string[];\n } {\n const allFlows = this.flowsActorsRegistry.getFlows();\n const activeFlows = allFlows.filter(f => f.status === FlowActorSystem_Status.ACTIVE);\n\n return {\n totalFlows: allFlows.length,\n activeFlows: activeFlows.length,\n flowRefs: allFlows.map(f => f.ref),\n };\n }\n}\n\n"]}
1
+ {"version":3,"file":"flows.backend.services.js","sourceRoot":"","sources":["../../../../src/flows-actors/services/flows.backend.services.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { FlowsActorsRegistryService } from './flows-actors-registry.service';\nimport { AgentsBackendService } from './agents.backend.service';\nimport {\n FlowActorSystem,\n FlowActorSystem_Kind,\n FlowActorSystem_Status,\n Flow_Node_RelationshipSchema,\n} from '@wildo-ai/saas-models';\nimport {\n ErrorType,\n ErrorCustomMessageReference\n} from '@wildo-ai/saas-models';\nimport {\n FlowSystem,\n FlowSystem_Execution,\n} from '@wildo-ai/saas-models';\n\n/**\n * Flows Backend Service\n *\n * Manages flow execution and orchestration.\n * Coordinates step execution, agent invocations, and data flow.\n *\n * Features:\n * - Flow execution management\n * - Step orchestration\n * - Agent coordination\n * - Data flow and transformation\n * - Error handling and recovery\n * - Checkpoint management\n */\n@injectable()\nexport class FlowsBackendService {\n\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.FlowsActorsRegistryService) private readonly flowsActorsRegistry: FlowsActorsRegistryService,\n @inject(SAAS_SERVICE_TYPES.AgentsBackendService) private readonly agentsService: AgentsBackendService,\n ) {\n this.logDebug = this.logger.debugByType('FlowsBackend');\n this.logger.setDebugTypeLogging('FlowsBackend', true);\n\n this.logDebug('Flows backend service created');\n }\n\n // ================================\n // Flow Execution\n // ================================\n\n /**\n * Execute a flow\n * Accepts FlowSystem_Execution and executes it\n */\n public async executeFlow(execution: FlowSystem_Execution): Promise<FlowSystem_Execution> {\n this.logDebug('Executing flow', {\n flowRef: execution.systemRef,\n executionId: execution._id,\n hasInitiator: !!execution.initiator\n });\n\n // Get flow from registry\n const flow = this.flowsActorsRegistry.getSystemOrThrow(execution.systemRef, FlowActorSystem_Kind.FLOW);\n\n // Validate it's a flow\n this.validateIsFlow(flow);\n\n // Validate flow status\n this.validateFlowStatus(flow);\n\n // Execute flow steps\n const updatedExecution = await this.executeFlowSteps(flow, execution);\n\n this.logDebug('Flow execution completed', {\n flowRef: execution.systemRef,\n executionId: updatedExecution._id || 'unknown',\n status: updatedExecution.status\n });\n\n return updatedExecution;\n }\n\n /**\n * Execute flow steps\n */\n private async executeFlowSteps(\n flow: FlowActorSystem,\n execution: FlowSystem_Execution\n ): Promise<FlowSystem_Execution> {\n this.logDebug('Executing flow steps', {\n flowRef: flow.ref,\n executionId: execution._id\n });\n\n /*\n * Step execution is not built. It refuses rather than reporting success.\n *\n * This returned the execution stamped COMPLETED with a finish timestamp, having run nothing:\n * no step parsed, no agent called, no data moved between steps, no node state touched. A\n * caller could not tell that apart from a flow that genuinely ran, and neither could a stored\n * record afterwards, so the absence would have been discovered as a flow that \"worked\" and\n * produced nothing.\n *\n * Refusing is safe here and would not have been once callers exist: nothing in the engine, the\n * platform or either dogfood application calls `executeFlow` today. The actor lane is the one\n * that runs; the flow lane is declared and unbuilt.\n *\n * What is still owed, kept from the original note: parse the flow configuration, execute steps\n * in order, handle agent calls, move data between steps, checkpoint and handle errors, and\n * update `nodeStates` as steps complete.\n */\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n // diagnostic (log-only)\n message: 'Flow step execution is not implemented; no step was run and no status was advanced.',\n flowRef: flow.ref,\n executionId: execution._id,\n },\n },\n );\n }\n\n // ================================\n // Flow Validation\n // ================================\n\n /**\n * Validate system is a flow\n */\n private validateIsFlow(system: FlowActorSystem): void {\n if (system.kind !== FlowActorSystem_Kind.FLOW) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FLOW_INVALID_KIND,\n context: {\n // diagnostic (log-only)\n systemRef: system.ref,\n kind: system.kind,\n }\n }\n );\n }\n }\n\n /**\n * Validate flow status before execution\n */\n private validateFlowStatus(flow: FlowActorSystem): void {\n if (flow.status !== FlowActorSystem_Status.ACTIVE) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.FLOW_NOT_ACTIVE,\n context: {\n // diagnostic (log-only)\n flowRef: flow.ref,\n status: flow.status,\n }\n }\n );\n }\n }\n\n // ================================\n // Execution Context Management\n // ================================\n\n\n // ================================\n // Flow Discovery\n // ================================\n\n /**\n * Get all available flows\n */\n public getAvailableFlows(): FlowSystem[] {\n return this.flowsActorsRegistry.getFlows().filter(\n flow => flow.status === FlowActorSystem_Status.ACTIVE\n );\n }\n\n /**\n * Get flow by reference\n */\n public getFlow(flowRef: string): FlowSystem | undefined {\n const system = this.flowsActorsRegistry.getSystem(flowRef, FlowActorSystem_Kind.FLOW);\n if (system && system.kind === FlowActorSystem_Kind.FLOW) {\n return system;\n }\n return undefined;\n }\n\n /**\n * Get flow or throw\n */\n public getFlowOrThrow(flowRef: string): FlowSystem {\n const flow = this.getFlow(flowRef);\n if (!flow) {\n throw this.errorBuilder.buildError(\n ErrorType.NOT_FOUND,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.NOT_FOUND,\n context: { flowRef }\n }\n );\n }\n return flow;\n }\n\n // ================================\n // Debug Methods\n // ================================\n\n public getDebugInfo(): {\n totalFlows: number;\n activeFlows: number;\n flowRefs: string[];\n } {\n const allFlows = this.flowsActorsRegistry.getFlows();\n const activeFlows = allFlows.filter(f => f.status === FlowActorSystem_Status.ACTIVE);\n\n return {\n totalFlows: allFlows.length,\n activeFlows: activeFlows.length,\n flowRefs: allFlows.map(f => f.ref),\n };\n }\n}\n\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"llm-observability-agent-call-trace-sink.backend.d.ts","sourceRoot":"","sources":["../../../../../src/flows-actors/services/llm-observability-agent-call-trace-sink.backend.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AASxF,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;AAC1J,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0FAA0F,CAAC;AAEtJ;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,kCAAmC,YAAW,kBAAkB;IAMzE,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAP1C,yGAAyG;IACzG,OAAO,CAAC,YAAY,CAAoD;gBAIrD,yBAAyB,EAAE,uCAAuC,EAElE,uBAAuB,EAAE,qCAAqC;IAGjF;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAkCtB;;;;OAIG;IACI,QAAQ,IAAI,OAAO;IAInB,eAAe,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxC"}
1
+ {"version":3,"file":"llm-observability-agent-call-trace-sink.backend.d.ts","sourceRoot":"","sources":["../../../../src/flows-actors/services/llm-observability-agent-call-trace-sink.backend.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AASxF,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;AAC1J,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0FAA0F,CAAC;AAEtJ;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,kCAAmC,YAAW,kBAAkB;IAMzE,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAP1C,yGAAyG;IACzG,OAAO,CAAC,YAAY,CAAoD;gBAIrD,yBAAyB,EAAE,uCAAuC,EAElE,uBAAuB,EAAE,qCAAqC;IAGjF;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAkCtB;;;;OAIG;IACI,QAAQ,IAAI,OAAO;IAInB,eAAe,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"llm-observability-agent-call-trace-sink.backend.js","sourceRoot":"","sources":["../../../../../src/flows-actors/services/llm-observability-agent-call-trace-sink.backend.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;GAKG;AACH,OAAO,EAAE,mCAAmC,EAAE,MAAM,uDAAuD,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAIpF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEI,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAM1B;IAEA;IAPnB,yGAAyG;IACjG,YAAY,GAA0C,SAAS,CAAC;IAExE,YAEmB,yBAAkE,EAElE,uBAA8D;QAF9D,8BAAyB,GAAzB,yBAAyB,CAAyC;QAElE,4BAAuB,GAAvB,uBAAuB,CAAuC;IAC9E,CAAC;IAEJ;;;;;;OAMG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,qCAAqC,CACtF,gBAAgB,CAAC,iBAAiB,CACnC,CAAC;YACF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,mCAAmC,CACrD,MAAM,EACN;gBACE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,MAAM;gBACpE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;oBAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;oBAC/C,CAAC,CAAC,SAAS;aACd,EACD,OAAO,CACR,IAAI,IAAI,CAAC;YACV,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC;IACxC,CAAC;IAEM,eAAe,CAAC,QAAgC;QACrD,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEM,QAAQ;QACb,kFAAkF;QAClF,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,CAAC;CACF,CAAA;AArEY,kCAAkC;IAD9C,UAAU,EAAE;IAMR,WAAA,MAAM,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,CAAA;IAE3D,WAAA,MAAM,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAA;;GAPjD,kCAAkC,CAqE9C","sourcesContent":["import { injectable, inject } from 'inversify';\nimport { EngineCapability } from '@wildo-ai/saas-models';\nimport type { AgentCallTraceSink, AgentCallTraceEmission } from '@wildo-ai/saas-models';\n/*\n * `/backend-runtime`, not `/backend` (#330). The two barrels expose the same builder; `/backend` also\n * re-exports the engine's EAGERLY composed provider catalogue, and ES module semantics mean that one\n * value import evaluates all twenty-two provider modules — six of them pulling an `@ai-sdk/*` client\n * — into whatever process imports this file. This file is in every backend's boot graph.\n */\nimport { buildLlmObservabilitySinkFromModule } from '@wildo-ai/external-connectors-private/backend-runtime';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { ExternalProvidersRegistryBackendService } from '~wildo-backend-lib/external-providers/services/external-providers-registry.backend.service';\nimport type { BackendProviderRegistryBackendService } from '~wildo-backend-lib/external-providers/services/backend-provider-registry.backend.service';\n\n/**\n * Engine-side `AgentCallTraceSink` that resolves its concrete provider sink (e.g.\n * PostHog) LAZILY, honouring the app's `defineSaaSProviders` selection for\n * `EngineCapability.LLM_OBSERVABILITY`.\n *\n * **Why lazy, not eager.** The selection-aware registry\n * ({@link ExternalProvidersRegistryBackendService}) only knows the chosen provider\n * AFTER it is `initialize()`-d, which happens during the startup sequence — well\n * after the DI container is built. Two consumers also cache their sink reference at\n * construction: `AgentsBackendService` (`@optional()`-injects it once) and the dev\n * companion (composes it into a `CompositeAgentCallTraceSink` at companion-container\n * build, BEFORE the registry is initialized). A post-init `rebind` would therefore\n * be invisible to both. So this object is bound EAGERLY (a stable reference both can\n * hold) but defers the actual provider resolution to the first `recordAgentCall` /\n * `isActive()` — by which point (an actual agent call) the registry is initialized.\n * This mirrors `EmailBackendService`, which injects the same registry and resolves\n * its provider per-send.\n *\n * **Resolution.** `getPrimaryProviderForEngineCapability(LLM_OBSERVABILITY)` returns\n * the app's selected provider ref (respecting the active backend/companion scope,\n * the `selection[...].primary`, and capability-enabled gating); the provider MODULE\n * (with its `agentCallTraceSinkFactory`) is then fetched from the\n * {@link BackendProviderRegistryBackendService} and constructed by\n * {@link buildLlmObservabilitySinkFromModule} (which owns secret resolution). No\n * provider selected, or its secret absent → this stays a no-op (no I/O), so output\n * is byte-identical when LLM-obs is off.\n */\n@injectable()\nexport class LlmObservabilityAgentCallTraceSink implements AgentCallTraceSink {\n /** `undefined` = not yet resolved; `null` = resolved to \"no active provider\"; else the provider sink. */\n private resolvedSink: AgentCallTraceSink | null | undefined = undefined;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService)\n private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)\n private readonly backendProviderRegistry: BackendProviderRegistryBackendService,\n ) {}\n\n /**\n * Resolve (once) the concrete provider sink from the app's LLM-obs selection.\n * Caches the result — including the `null` \"no provider\" verdict. If the registry\n * is not yet initialized (a resolution attempted before startup completes), the\n * attempt is NOT cached so a later call retries; in practice the first call is an\n * actual agent invocation, long after init.\n */\n private ensureResolved(): AgentCallTraceSink | null {\n if (this.resolvedSink !== undefined) {\n return this.resolvedSink;\n }\n try {\n const providerRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(\n EngineCapability.LLM_OBSERVABILITY,\n );\n if (!providerRef) {\n this.resolvedSink = null;\n return null;\n }\n const module = this.backendProviderRegistry.getProvider(providerRef);\n if (!module) {\n this.resolvedSink = null;\n return null;\n }\n this.resolvedSink = buildLlmObservabilitySinkFromModule(\n module,\n {\n captureContent: process.env.WILDO_LLM_OBS_CAPTURE_CONTENT === 'true',\n sampleRate: process.env.WILDO_LLM_OBS_SAMPLE_RATE\n ? Number(process.env.WILDO_LLM_OBS_SAMPLE_RATE)\n : undefined,\n },\n console,\n ) ?? null;\n return this.resolvedSink;\n } catch {\n // Registry not yet initialized — stay unresolved, retry on the next call.\n return null;\n }\n }\n\n /**\n * Whether an LLM-observability provider is selected + configured. Drives the\n * engine `AgentTraceabilityPolicy` level (active → DEBUG, inactive → NONE) so a\n * backend with no LLM-obs provider keeps the byte-identical NONE-skip.\n */\n public isActive(): boolean {\n return this.ensureResolved() !== null;\n }\n\n public recordAgentCall(emission: AgentCallTraceEmission): void | Promise<void> {\n return this.ensureResolved()?.recordAgentCall(emission);\n }\n\n public shutdown(): void | Promise<void> {\n // Flush only an already-resolved real sink; never trigger resolution on shutdown.\n return this.resolvedSink ? this.resolvedSink.shutdown?.() : undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"llm-observability-agent-call-trace-sink.backend.js","sourceRoot":"","sources":["../../../../src/flows-actors/services/llm-observability-agent-call-trace-sink.backend.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;GAKG;AACH,OAAO,EAAE,mCAAmC,EAAE,MAAM,uDAAuD,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAIpF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEI,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAM1B;IAEA;IAPnB,yGAAyG;IACjG,YAAY,GAA0C,SAAS,CAAC;IAExE,YAEmB,yBAAkE,EAElE,uBAA8D;QAF9D,8BAAyB,GAAzB,yBAAyB,CAAyC;QAElE,4BAAuB,GAAvB,uBAAuB,CAAuC;IAC9E,CAAC;IAEJ;;;;;;OAMG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,qCAAqC,CACtF,gBAAgB,CAAC,iBAAiB,CACnC,CAAC;YACF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,mCAAmC,CACrD,MAAM,EACN;gBACE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,MAAM;gBACpE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;oBAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;oBAC/C,CAAC,CAAC,SAAS;aACd,EACD,OAAO,CACR,IAAI,IAAI,CAAC;YACV,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC;IACxC,CAAC;IAEM,eAAe,CAAC,QAAgC;QACrD,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEM,QAAQ;QACb,kFAAkF;QAClF,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,CAAC;CACF,CAAA;AArEY,kCAAkC;IAD9C,UAAU,EAAE;IAMR,WAAA,MAAM,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,CAAA;IAE3D,WAAA,MAAM,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,CAAA;;GAPjD,kCAAkC,CAqE9C","sourcesContent":["import { injectable, inject } from 'inversify';\nimport { EngineCapability } from '@wildo-ai/saas-models';\nimport type { AgentCallTraceSink, AgentCallTraceEmission } from '@wildo-ai/saas-models';\n/*\n * `/backend-runtime`, not `/backend` (#330). The two barrels expose the same builder; `/backend` also\n * re-exports the engine's EAGERLY composed provider catalogue, and ES module semantics mean that one\n * value import evaluates all twenty-two provider modules — six of them pulling an `@ai-sdk/*` client\n * — into whatever process imports this file. This file is in every backend's boot graph.\n */\nimport { buildLlmObservabilitySinkFromModule } from '@wildo-ai/external-connectors-private/backend-runtime';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { ExternalProvidersRegistryBackendService } from '~wildo-backend-lib/external-providers/services/external-providers-registry.backend.service';\nimport type { BackendProviderRegistryBackendService } from '~wildo-backend-lib/external-providers/services/backend-provider-registry.backend.service';\n\n/**\n * Engine-side `AgentCallTraceSink` that resolves its concrete provider sink (e.g.\n * PostHog) LAZILY, honouring the app's `defineSaaSProviders` selection for\n * `EngineCapability.LLM_OBSERVABILITY`.\n *\n * **Why lazy, not eager.** The selection-aware registry\n * ({@link ExternalProvidersRegistryBackendService}) only knows the chosen provider\n * AFTER it is `initialize()`-d, which happens during the startup sequence — well\n * after the DI container is built. Two consumers also cache their sink reference at\n * construction: `AgentsBackendService` (`@optional()`-injects it once) and the dev\n * companion (composes it into a `CompositeAgentCallTraceSink` at companion-container\n * build, BEFORE the registry is initialized). A post-init `rebind` would therefore\n * be invisible to both. So this object is bound EAGERLY (a stable reference both can\n * hold) but defers the actual provider resolution to the first `recordAgentCall` /\n * `isActive()` — by which point (an actual agent call) the registry is initialized.\n * This mirrors `EmailBackendService`, which injects the same registry and resolves\n * its provider per-send.\n *\n * **Resolution.** `getPrimaryProviderForEngineCapability(LLM_OBSERVABILITY)` returns\n * the app's selected provider ref (respecting the active backend/companion scope,\n * the `selection[...].primary`, and capability-enabled gating); the provider MODULE\n * (with its `agentCallTraceSinkFactory`) is then fetched from the\n * {@link BackendProviderRegistryBackendService} and constructed by\n * {@link buildLlmObservabilitySinkFromModule} (which owns secret resolution). No\n * provider selected, or its secret absent → this stays a no-op (no I/O), so output\n * is byte-identical when LLM-obs is off.\n */\n@injectable()\nexport class LlmObservabilityAgentCallTraceSink implements AgentCallTraceSink {\n /** `undefined` = not yet resolved; `null` = resolved to \"no active provider\"; else the provider sink. */\n private resolvedSink: AgentCallTraceSink | null | undefined = undefined;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService)\n private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)\n private readonly backendProviderRegistry: BackendProviderRegistryBackendService,\n ) {}\n\n /**\n * Resolve (once) the concrete provider sink from the app's LLM-obs selection.\n * Caches the result — including the `null` \"no provider\" verdict. If the registry\n * is not yet initialized (a resolution attempted before startup completes), the\n * attempt is NOT cached so a later call retries; in practice the first call is an\n * actual agent invocation, long after init.\n */\n private ensureResolved(): AgentCallTraceSink | null {\n if (this.resolvedSink !== undefined) {\n return this.resolvedSink;\n }\n try {\n const providerRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(\n EngineCapability.LLM_OBSERVABILITY,\n );\n if (!providerRef) {\n this.resolvedSink = null;\n return null;\n }\n const module = this.backendProviderRegistry.getProvider(providerRef);\n if (!module) {\n this.resolvedSink = null;\n return null;\n }\n this.resolvedSink = buildLlmObservabilitySinkFromModule(\n module,\n {\n captureContent: process.env.WILDO_LLM_OBS_CAPTURE_CONTENT === 'true',\n sampleRate: process.env.WILDO_LLM_OBS_SAMPLE_RATE\n ? Number(process.env.WILDO_LLM_OBS_SAMPLE_RATE)\n : undefined,\n },\n console,\n ) ?? null;\n return this.resolvedSink;\n } catch {\n // Registry not yet initialized — stay unresolved, retry on the next call.\n return null;\n }\n }\n\n /**\n * Whether an LLM-observability provider is selected + configured. Drives the\n * engine `AgentTraceabilityPolicy` level (active → DEBUG, inactive → NONE) so a\n * backend with no LLM-obs provider keeps the byte-identical NONE-skip.\n */\n public isActive(): boolean {\n return this.ensureResolved() !== null;\n }\n\n public recordAgentCall(emission: AgentCallTraceEmission): void | Promise<void> {\n return this.ensureResolved()?.recordAgentCall(emission);\n }\n\n public shutdown(): void | Promise<void> {\n // Flush only an already-resolved real sink; never trigger resolution on shutdown.\n return this.resolvedSink ? this.resolvedSink.shutdown?.() : undefined;\n }\n}\n"]}
@@ -1 +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"}
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;IAWzE;;;;;;;;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"}
@@ -187,6 +187,9 @@ let McpClientBackendService = class McpClientBackendService {
187
187
  * genuinely private target, so the guard is proven rather than worked around.
188
188
  */
189
189
  performFetch(url, init) {
190
+ // outbound-deadline: a forwarding seam. Each of the three callers arms its own
191
+ // `AbortController` from the server's declared `timeouts.discoveryMs` / `timeouts.callMs` and
192
+ // passes it in `init.signal` — the budget is per SERVER, so it cannot be decided here.
190
193
  return fetch(url, init);
191
194
  }
192
195
  // ================================
@@ -1 +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"]}
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 // outbound-deadline: a forwarding seam. Each of the three callers arms its own\n // `AbortController` from the server's declared `timeouts.discoveryMs` / `timeouts.callMs` and\n // passes it in `init.signal` — the budget is per SERVER, so it cannot be decided here.\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"]}
@@ -0,0 +1,99 @@
1
+ import type { FlowsActors_McpServer } from '@wildo-ai/saas-models';
2
+ import type { OrganizationProviderCredentialResolverPort } from '../../security/connected-accounts/organization-provider-credential-resolver.port';
3
+ import type { UserProviderCredentialResolverPort } from '../../security/connected-accounts/user-provider-credential-resolver.port';
4
+ /** Whose stored credential answered. Recorded so an audit row can say who the far server saw. */
5
+ export declare enum McpCredentialSource {
6
+ USER = "user",
7
+ ORGANIZATION = "organization"
8
+ }
9
+ /**
10
+ * How the credential lookup ended.
11
+ *
12
+ * ONE string-enum discriminant, uniform with the client's `McpOutcomeKind`, and that uniformity is
13
+ * not only taste. This package compiles with `strict: false`, so `strictNullChecks` is off — and a
14
+ * union discriminated on a BOOLEAN literal does not narrow on its false branch under that setting.
15
+ * `{ resolved: true } | { resolved: false; reason }` type-checks at the declaration and then refuses
16
+ * to give a consumer `reason`, which is a compile error at every call site and no error here. A
17
+ * string discriminant narrows in both directions regardless.
18
+ *
19
+ * The three failure kinds are kept apart because they have three different remedies and only one of
20
+ * them is anybody's fault.
21
+ */
22
+ export declare enum McpCredentialOutcomeKind {
23
+ /** Found, opened, spendable. */
24
+ RESOLVED = "resolved",
25
+ /**
26
+ * Nobody has connected this provider — the ordinary state, and the one a user fixes by connecting
27
+ * an account. The turn should say WHICH provider rather than reporting a failure.
28
+ */
29
+ NOT_CONNECTED = "not_connected",
30
+ /**
31
+ * The call has no acting identity for the subject the server declares — a `USER` server reached by
32
+ * an unattended turn, or an `ORGANIZATION` server reached outside any tenant. A configuration
33
+ * mismatch between who the server expects and who is calling, not a missing connection.
34
+ */
35
+ NO_ACTING_IDENTITY = "no_acting_identity",
36
+ /**
37
+ * The resolver port is not bound in this deployment, so the question could not be ASKED.
38
+ *
39
+ * Distinct from NOT_CONNECTED on the rule that governs this whole subsystem: an unanswerable
40
+ * question must never be reported as a negative answer. Reporting it as "not connected" would send
41
+ * a user to connect an account that would then still not be readable.
42
+ */
43
+ RESOLVER_UNAVAILABLE = "resolver_unavailable"
44
+ }
45
+ export type McpCredentialOutcome = {
46
+ kind: McpCredentialOutcomeKind.RESOLVED;
47
+ /** The plaintext credential. Never logged, never stored, never returned to a client. */
48
+ token: string;
49
+ source: McpCredentialSource;
50
+ /** The row it came from, for the audit trail. */
51
+ credentialId: string;
52
+ } | {
53
+ kind: Exclude<McpCredentialOutcomeKind, McpCredentialOutcomeKind.RESOLVED>;
54
+ };
55
+ /** Who the turn is acting as. Both are absent for an unattended run with no tenant. */
56
+ export interface McpActingIdentity {
57
+ userId?: string;
58
+ organizationId?: string;
59
+ }
60
+ /**
61
+ * Resolves the credential an MCP tool call carries, honouring the server's declared subject (#491).
62
+ *
63
+ * ## Why it reuses the provider-credential ports
64
+ *
65
+ * Decided 2026-09-09. `userProviderCredentials` and `organizationProviderCredentials` already exist,
66
+ * carry per-tenant isolation by construction, and have the connect and consent flow in front of
67
+ * them. A store invented for MCP would be a second thing to rotate, audit and leak, holding the same
68
+ * kind of secret for the same kind of purpose.
69
+ *
70
+ * ## Why the user's credential is preferred
71
+ *
72
+ * A tool call reaching a third party on a person's behalf should be attributable to that person AT
73
+ * THE FAR END — that is what makes it revocable there and auditable by the party being called. An
74
+ * application-wide service identity loses exactly that: every user's call looks identical to the
75
+ * server, and one leaked credential exposes every tenant.
76
+ *
77
+ * The organization fallback exists because without it an agent acting for a user who has never
78
+ * connected the server would have no path at all, which would make every unattended and batch turn
79
+ * impossible. A server that must not be reached that way declares `USER`, and then there is no
80
+ * fallback — the port itself refuses to have one, for the same reason.
81
+ */
82
+ export declare class McpCredentialResolverBackendService {
83
+ /**
84
+ * OPTIONAL, matching how the external-providers registry consults the same ports. A deployment
85
+ * that has not bound them is a real shape, and the absence is reported as RESOLVER_UNAVAILABLE
86
+ * rather than collapsing into "nothing is connected".
87
+ */
88
+ private readonly userResolver?;
89
+ private readonly organizationResolver?;
90
+ constructor(
91
+ /**
92
+ * OPTIONAL, matching how the external-providers registry consults the same ports. A deployment
93
+ * that has not bound them is a real shape, and the absence is reported as RESOLVER_UNAVAILABLE
94
+ * rather than collapsing into "nothing is connected".
95
+ */
96
+ userResolver?: UserProviderCredentialResolverPort, organizationResolver?: OrganizationProviderCredentialResolverPort);
97
+ resolve(server: FlowsActors_McpServer, actor: McpActingIdentity): Promise<McpCredentialOutcome>;
98
+ }
99
+ //# sourceMappingURL=mcp-credential-resolver.backend.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-credential-resolver.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/flows-actors/services/mcp-credential-resolver.backend.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAInE,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,+FAA+F,CAAC;AAChK,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,uFAAuF,CAAC;AAEhJ,iGAAiG;AACjG,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,YAAY,iBAAiB;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,oBAAY,wBAAwB;IAClC,gCAAgC;IAChC,QAAQ,aAAa;IACrB;;;OAGG;IACH,aAAa,kBAAkB;IAC/B;;;;OAIG;IACH,kBAAkB,uBAAuB;IACzC;;;;;;OAMG;IACH,oBAAoB,yBAAyB;CAC9C;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,wBAAwB,CAAC,QAAQ,CAAC;IACxC,wFAAwF;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;IAC5B,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IAAE,IAAI,EAAE,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAC;AAEnF,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,mCAAmC;IAE5C;;;;OAIG;IAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;;IARtC;;;;OAIG;IAEc,YAAY,CAAC,EAAE,kCAAkC,EAEjD,oBAAoB,CAAC,EAAE,0CAA0C;IAGvE,OAAO,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA4D7G"}