@wildo-ai/saas-backend-lib 1.1.2 → 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 (1358) 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 +19 -1
  9. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  10. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  11. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
  12. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  13. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
  14. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
  15. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
  16. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
  18. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
  19. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
  20. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
  21. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
  22. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
  23. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
  24. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
  25. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +210 -0
  26. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
  27. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
  28. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  29. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
  30. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  31. package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
  34. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  35. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +27 -6
  36. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  37. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  38. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  39. package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
  40. package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
  41. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
  44. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +220 -25
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  52. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +191 -26
  54. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  55. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +47 -4
  56. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  57. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +96 -29
  58. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  59. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  60. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  61. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  62. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  63. package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  66. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  68. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  70. package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
  72. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +9 -1
  74. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  75. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  76. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  77. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +106 -0
  78. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +266 -20
  80. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  81. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
  83. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  84. package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
  85. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
  86. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  87. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +34 -3
  88. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  89. package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
  90. package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
  91. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
  92. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
  93. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
  94. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
  95. package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
  96. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
  97. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
  98. package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
  99. package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
  100. package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
  101. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  102. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  103. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  104. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
  105. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
  106. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  107. package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
  108. package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
  109. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  110. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  111. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  112. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  113. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  114. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  115. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  116. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  117. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  118. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +571 -45
  119. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  120. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  121. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  122. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  123. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  124. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
  125. package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
  126. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  127. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  128. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  129. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  130. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  131. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  132. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  133. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  134. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  135. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  136. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  137. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  138. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
  139. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
  140. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  141. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  142. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +475 -0
  143. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  144. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
  145. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
  146. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
  147. package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
  148. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  149. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  150. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  151. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  152. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  153. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  154. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  155. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  156. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  157. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  158. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  159. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  160. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  161. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  162. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  163. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  164. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
  165. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  166. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +48 -7
  167. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  168. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +70 -1
  169. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  170. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +98 -2
  171. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  172. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  173. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  174. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  175. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  176. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  177. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  178. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  179. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  180. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  181. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  182. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  183. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  184. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +21 -1
  185. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  186. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +109 -2
  187. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  188. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  189. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  190. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  191. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  192. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
  193. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
  194. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  195. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  196. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +310 -29
  197. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  198. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
  199. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  200. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  201. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  202. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  203. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
  204. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
  205. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
  206. package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
  207. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
  208. package/dist/esm/companion-exports.d.ts.map +1 -1
  209. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
  210. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
  211. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  212. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  213. package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
  214. package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  215. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
  216. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +225 -13
  217. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  218. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +340 -62
  219. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  220. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +350 -10
  221. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  222. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +562 -10
  223. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  224. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  225. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  226. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  227. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +6 -2
  228. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  229. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
  230. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  231. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  232. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  233. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +57 -1
  234. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  235. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  236. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  237. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  238. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  239. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  240. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +52 -0
  241. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  242. package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
  243. package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
  244. package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
  245. package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
  246. package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
  247. package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
  248. package/dist/esm/compliance/index.d.ts.map +1 -1
  249. package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
  250. package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
  251. package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
  252. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  253. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  254. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  255. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  256. package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
  257. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
  258. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
  259. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
  260. package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
  261. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  262. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
  263. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
  264. package/dist/esm/config/models/app-config.backend.schemas.d.ts +145 -49
  265. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  266. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  267. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  268. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
  269. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
  270. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
  271. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
  272. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
  273. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
  274. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
  275. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  276. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  277. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  278. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  279. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
  280. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
  281. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  282. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  283. package/dist/esm/config/services/app-configuration-loader.backend.service.js +71 -76
  284. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  285. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  286. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  287. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  288. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +33 -0
  289. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  290. package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
  291. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  292. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +37 -0
  293. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  294. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +69 -1
  295. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  296. package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
  297. package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
  298. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
  299. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
  300. package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
  301. package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
  302. package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
  303. package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
  304. package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
  305. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
  306. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
  307. package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
  308. package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
  309. package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
  310. package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
  311. package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
  312. package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
  313. package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
  314. package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
  315. package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
  316. package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
  317. package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
  318. package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
  319. package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
  320. package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
  321. package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
  322. package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
  323. package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
  324. package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
  325. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
  326. package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
  327. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
  328. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
  329. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
  330. package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
  331. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
  332. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
  333. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
  334. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
  335. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
  336. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
  337. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
  338. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  339. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
  340. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
  341. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
  342. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
  343. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
  344. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
  345. package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
  346. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
  347. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
  348. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
  349. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
  350. package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
  351. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
  352. package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
  353. package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
  354. package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
  355. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  356. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  357. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  358. package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
  359. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  360. package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
  361. package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
  362. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
  363. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
  364. package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
  365. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
  366. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  367. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  368. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  369. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  370. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  371. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  372. package/dist/esm/errors/services/error-handler.backend.service.js +129 -8
  373. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  374. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  375. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  376. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  377. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  378. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  379. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  380. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  381. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  382. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  383. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  384. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  385. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  386. package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
  387. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
  388. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
  389. package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
  390. package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
  391. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +59 -2
  392. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  393. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +52 -17
  394. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  395. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  396. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  397. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
  398. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  399. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  400. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  401. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +306 -0
  402. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  403. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +379 -0
  404. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  405. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  406. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  407. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  408. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  409. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  410. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  411. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +235 -0
  412. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  413. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  414. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  415. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  416. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  417. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  418. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  419. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  420. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  421. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  422. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  423. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  424. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  425. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  426. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  427. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  428. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  429. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
  430. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  431. package/dist/esm/external-providers/services/document-extraction.backend.service.js +181 -100
  432. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  433. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  434. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  435. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  436. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
  437. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +413 -7
  438. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  439. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +684 -45
  440. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  441. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
  442. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  443. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +84 -5
  444. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  445. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
  446. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
  447. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
  448. package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  449. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
  450. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
  451. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
  452. package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  453. package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
  454. package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  455. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
  456. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
  457. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
  458. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
  459. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
  460. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
  461. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
  462. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  463. package/dist/esm/files/controllers/file.controller.js +21 -13
  464. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  465. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
  466. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
  467. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
  468. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  469. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +260 -36
  470. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  471. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
  472. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
  473. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
  474. package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
  475. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
  476. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
  477. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
  478. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
  479. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
  480. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  481. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  482. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
  483. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  484. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  485. package/dist/esm/files/services/file-scanning.backend.service.js +202 -17
  486. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  487. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  488. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  489. package/dist/esm/files/services/file-text-extraction.backend.service.js +175 -13
  490. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  491. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +53 -2
  492. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  493. package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
  494. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  495. package/dist/esm/files/services/files.backend.service.d.ts +68 -0
  496. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  497. package/dist/esm/files/services/files.backend.service.js +177 -5
  498. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  499. package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
  500. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  501. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  502. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  503. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  504. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
  505. package/dist/esm/files/storage/file-storage-provider.types.d.ts +52 -11
  506. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  507. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  508. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
  509. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
  510. package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
  511. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
  512. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
  513. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
  514. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
  515. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
  516. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  517. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  518. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  519. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  520. package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
  521. package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  522. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  523. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
  524. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
  525. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  526. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  527. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  528. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  529. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  530. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  531. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
  532. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  533. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  534. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
  535. package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
  536. package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
  537. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  538. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  539. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  540. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  541. package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
  542. package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
  543. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  544. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  545. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  546. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  547. package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
  548. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  549. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  550. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  551. package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
  552. package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
  553. package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
  554. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  555. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  556. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  557. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  558. package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
  559. package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
  560. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  561. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  562. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +196 -40
  563. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  564. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  565. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  566. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  567. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  568. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  569. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  570. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  571. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  572. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  573. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  574. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  575. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
  576. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  577. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  578. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  579. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  580. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
  581. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
  582. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  583. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  584. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  585. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  586. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
  587. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  588. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  589. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  590. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +179 -8
  591. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  592. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +436 -34
  593. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  594. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  595. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  596. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  597. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  598. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  599. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  600. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  601. package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
  602. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  603. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  604. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  605. package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
  606. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
  607. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +132 -6
  608. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  609. package/dist/esm/flows-actors/services/agents.backend.service.js +467 -49
  610. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  611. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
  612. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +50 -1
  613. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  614. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +270 -20
  615. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  616. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  617. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  618. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  619. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  620. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  621. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  622. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  623. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  624. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  625. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  626. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  627. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  628. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +371 -0
  629. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  630. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
  631. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
  632. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
  633. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
  634. package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
  635. package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
  636. package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
  637. package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
  638. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  639. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  640. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  641. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  642. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  643. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +17 -4
  644. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  645. package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
  646. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
  647. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  648. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  649. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  650. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  651. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  652. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  653. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
  654. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
  655. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
  656. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
  657. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
  658. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
  659. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
  660. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
  661. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
  662. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
  663. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
  664. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
  665. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
  666. package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
  667. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
  668. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
  669. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  670. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  671. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  672. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  673. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  674. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  675. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  676. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  677. package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
  678. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  679. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  680. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  681. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  682. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
  683. package/dist/esm/index.d.ts +11 -5
  684. package/dist/esm/index.d.ts.map +1 -1
  685. package/dist/esm/index.js +31 -5
  686. package/dist/esm/index.js.map +1 -1
  687. package/dist/esm/inject/models/container.d.ts +10 -0
  688. package/dist/esm/inject/models/container.d.ts.map +1 -1
  689. package/dist/esm/inject/models/container.js +126 -10
  690. package/dist/esm/inject/models/container.js.map +1 -1
  691. package/dist/esm/inject/models/service-types.d.ts +20 -3
  692. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  693. package/dist/esm/inject/models/service-types.js +22 -3
  694. package/dist/esm/inject/models/service-types.js.map +1 -1
  695. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  696. package/dist/esm/mcp/controllers/mcp.controller.js +70 -3
  697. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  698. package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
  699. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  700. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  701. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +56 -1
  702. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  703. package/dist/esm/mcp/services/mcp-server.backend.service.js +107 -11
  704. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  705. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  706. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
  707. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  708. package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
  709. package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
  710. package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
  711. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  712. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  713. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  714. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  715. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  716. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  717. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  718. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  719. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  720. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  721. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  722. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  723. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  724. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  725. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  726. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  727. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  728. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  729. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
  730. package/dist/esm/monitoring/logger/services/logger.service.d.ts +24 -0
  731. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  732. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  733. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  734. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  735. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  736. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  737. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  738. package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
  739. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +313 -0
  740. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  741. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +389 -0
  742. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  743. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  744. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  745. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  746. package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
  747. package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
  748. package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
  749. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  750. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  751. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  752. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  753. package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
  754. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
  755. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
  756. package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
  757. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
  758. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  759. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  760. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  761. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  762. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  763. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  764. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  765. package/dist/esm/notifications/email/services/email.backend.service.d.ts +102 -5
  766. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  767. package/dist/esm/notifications/email/services/email.backend.service.js +222 -70
  768. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  769. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  770. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  771. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  772. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
  773. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
  774. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  775. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  776. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  777. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  778. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +99 -13
  779. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  780. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +422 -66
  781. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  782. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
  783. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
  784. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
  785. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
  786. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
  787. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  788. package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
  789. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  790. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  791. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  792. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  793. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  794. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  795. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  796. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +46 -1
  797. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  798. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  799. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  800. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +16 -6
  801. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  802. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
  803. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
  804. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
  805. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
  806. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  807. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +12 -12
  808. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  809. package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
  810. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
  811. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  812. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  813. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  814. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  815. package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
  816. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  817. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
  818. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  819. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  820. package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
  821. package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
  822. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
  823. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
  824. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  825. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  826. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  827. package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  828. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
  829. package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
  830. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  831. package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
  832. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
  833. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
  834. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
  835. package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
  836. package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
  837. package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
  838. package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
  839. package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
  840. package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
  841. package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
  842. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  843. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  844. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  845. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  846. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  847. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  848. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  849. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  850. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  851. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  852. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  853. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  854. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  855. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  856. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  857. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  858. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  859. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  860. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  861. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  862. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
  863. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
  864. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  865. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  866. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  867. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  868. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
  869. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  870. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  871. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  872. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  873. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  874. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  875. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  876. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  877. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
  878. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
  879. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  880. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  881. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  882. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  883. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  884. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  885. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  886. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  887. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  888. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  889. package/dist/esm/queue/queue.backend.service.js +26 -4
  890. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  891. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
  892. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  893. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  894. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  895. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  896. package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
  897. package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
  898. package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
  899. package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
  900. package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
  901. package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
  902. package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
  903. package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
  904. package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
  905. package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
  906. package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
  907. package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
  908. package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
  909. package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
  910. package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
  911. package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
  912. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  913. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  914. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  915. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  916. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  917. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  918. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  919. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  920. package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
  921. package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
  922. package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
  923. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
  924. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
  925. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
  926. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
  927. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
  928. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
  929. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  930. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  931. package/dist/esm/requests/service/websocket.service.js +81 -9
  932. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  933. package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
  934. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  935. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
  936. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  937. package/dist/esm/resources/models/index.d.ts.map +1 -1
  938. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  939. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  940. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  941. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  942. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  943. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  944. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  945. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  946. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  947. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  948. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
  949. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
  950. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
  951. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
  952. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
  953. package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
  954. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
  955. package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
  956. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
  957. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +83 -5
  958. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  959. package/dist/esm/resources/services/resources-registry.backend.service.js +121 -6
  960. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  961. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
  962. package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
  963. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  964. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  965. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  966. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  967. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  968. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  969. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  970. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  971. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
  972. package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
  973. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
  974. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  975. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  976. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
  977. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  978. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  979. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  980. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  981. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  982. package/dist/esm/runtime/services/http-server.backend.service.js +191 -1
  983. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  984. package/dist/esm/runtime/services/start-application.backend.service.d.ts +19 -1
  985. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  986. package/dist/esm/runtime/services/start-application.backend.service.js +287 -89
  987. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  988. package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
  989. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
  990. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
  991. package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
  992. package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
  993. package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
  994. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
  995. package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
  996. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  997. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  998. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  999. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  1000. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  1001. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  1002. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  1003. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  1004. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
  1005. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
  1006. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  1007. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +113 -4
  1008. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  1009. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  1010. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  1011. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  1012. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  1013. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
  1014. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
  1015. package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
  1016. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  1017. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  1018. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  1019. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  1020. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
  1021. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
  1022. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
  1023. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
  1024. package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
  1025. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  1026. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +30 -0
  1027. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  1028. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  1029. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
  1030. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
  1031. package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
  1032. package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
  1033. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
  1034. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
  1035. package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
  1036. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
  1037. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
  1038. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  1039. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  1040. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  1041. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  1042. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  1043. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  1044. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  1045. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  1046. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  1047. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  1048. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  1049. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  1050. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  1051. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  1052. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  1053. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  1054. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
  1055. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
  1056. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
  1057. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +197 -0
  1058. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  1059. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +384 -53
  1060. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  1061. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
  1062. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
  1063. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  1064. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +68 -1
  1065. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  1066. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  1067. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
  1068. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
  1069. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  1070. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  1071. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  1072. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  1073. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
  1074. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  1075. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +260 -27
  1076. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  1077. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
  1078. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  1079. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +70 -4
  1080. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  1081. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
  1082. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
  1083. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
  1084. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
  1085. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  1086. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  1087. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  1088. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  1089. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
  1090. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -1
  1091. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  1092. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +49 -17
  1093. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  1094. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  1095. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  1096. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  1097. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  1098. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  1099. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  1100. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  1101. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  1102. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  1103. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  1104. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  1105. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
  1106. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
  1107. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  1108. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  1109. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +339 -0
  1110. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  1111. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  1112. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  1113. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  1114. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  1115. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
  1116. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
  1117. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
  1118. package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
  1119. package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
  1120. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  1121. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  1122. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  1123. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  1124. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  1125. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  1126. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  1127. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  1128. package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
  1129. package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
  1130. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
  1131. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
  1132. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
  1133. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  1134. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  1135. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  1136. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
  1137. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  1138. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  1139. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  1140. package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
  1141. package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
  1142. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  1143. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  1144. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  1145. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  1146. package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
  1147. package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
  1148. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
  1149. package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
  1150. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  1151. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  1152. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  1153. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  1154. package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
  1155. package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
  1156. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
  1157. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
  1158. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
  1159. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
  1160. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
  1161. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
  1162. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
  1163. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
  1164. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
  1165. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
  1166. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
  1167. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
  1168. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
  1169. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
  1170. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
  1171. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
  1172. package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
  1173. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  1174. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  1175. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  1176. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  1177. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  1178. package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
  1179. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  1180. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  1181. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  1182. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  1183. package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
  1184. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  1185. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +37 -124
  1186. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  1187. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
  1188. package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
  1189. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  1190. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  1191. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  1192. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  1193. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +133 -0
  1194. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  1195. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +137 -0
  1196. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  1197. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +134 -1
  1198. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  1199. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +152 -5
  1200. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  1201. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +146 -8
  1202. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  1203. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +328 -29
  1204. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  1205. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  1206. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  1207. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  1208. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  1209. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  1210. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  1211. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  1212. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  1213. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +299 -0
  1214. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  1215. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +953 -0
  1216. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  1217. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +99 -0
  1218. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  1219. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  1220. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  1221. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  1222. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  1223. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  1224. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  1225. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +210 -0
  1226. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  1227. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +423 -0
  1228. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  1229. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  1230. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  1231. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  1232. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  1233. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  1234. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  1235. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +282 -0
  1236. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  1237. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +125 -0
  1238. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  1239. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +123 -0
  1240. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  1241. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  1242. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  1243. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  1244. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  1245. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +214 -0
  1246. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  1247. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +430 -0
  1248. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  1249. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  1250. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  1251. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  1252. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  1253. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +98 -0
  1254. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  1255. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  1256. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  1257. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  1258. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  1259. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  1260. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  1261. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  1262. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  1263. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  1264. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  1265. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
  1266. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
  1267. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
  1268. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
  1269. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  1270. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
  1271. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  1272. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
  1273. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
  1274. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
  1275. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +21 -3
  1276. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  1277. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +26 -16
  1278. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  1279. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  1280. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  1281. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  1282. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  1283. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
  1284. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  1285. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
  1286. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
  1287. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
  1288. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
  1289. package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
  1290. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  1291. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  1292. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  1293. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  1294. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  1295. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  1296. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  1297. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  1298. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
  1299. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
  1300. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
  1301. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
  1302. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
  1303. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
  1304. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
  1305. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
  1306. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  1307. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  1308. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  1309. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  1310. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  1311. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  1312. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  1313. package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
  1314. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
  1315. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
  1316. package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
  1317. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  1318. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  1319. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  1320. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  1321. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  1322. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  1323. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  1324. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  1325. package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
  1326. package/dist/esm/testing.d.ts.map +1 -1
  1327. package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
  1328. package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  1329. package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
  1330. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  1331. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  1332. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  1333. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  1334. package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
  1335. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
  1336. package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
  1337. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1338. package/package.json +11 -9
  1339. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
  1340. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
  1341. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
  1342. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
  1343. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  1344. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  1345. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  1346. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  1347. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  1348. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  1349. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  1350. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  1351. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  1352. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  1353. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  1354. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  1355. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  1356. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  1357. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  1358. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"document-extraction.backend.service.js","sourceRoot":"","sources":["../../../../../src/external-providers/services/document-extraction.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Document-extraction execution service — the ONE seam through which the engine turns document\n * BYTES into text using an external provider (OCR).\n *\n * Its only caller is `FileTextExtractionBackendService`, which owns the CHOICE between this\n * provider path and the local `pdfjs-dist` text-layer path. That split is deliberate: this\n * service knows how to talk to a provider and nothing about fallbacks, and the file service knows\n * about fallbacks and nothing about HTTP.\n *\n * ## Selection is by APPLICABILITY CLASS, never by model id (the standing model-selection rule)\n *\n * A caller names a {@link DocumentExtraction_Applicability} class; this service resolves\n * 1. the PROVIDER — the application's `EngineCapability.AI_DOCUMENT_EXTRACTION` selection\n * (`defineSaaSProviders` → `selection[AI_DOCUMENT_EXTRACTION].primary`), independent of the\n * chat and embeddings providers by construction;\n * 2. the MODEL — `resolveDocumentExtractionModelForApplicability` against the framework catalog.\n *\n * ## Why a direct HTTPS call instead of the AI SDK\n *\n * Every sibling provider seam in this package hands an API key to an `@ai-sdk/*` client factory.\n * This one cannot: **`@ai-sdk/mistral@4.0.12` has ZERO OCR support** — the package exports no\n * `ocr` symbol and no client method reaching `POST /v1/ocr`, because the AI SDK models language,\n * embedding and image models and document extraction is none of them. So the request is built\n * here from the provider's declared `baseUrl`, `endpointPath` and `apiKey` header shape.\n *\n * That is a cost, and it is worth naming what it buys back: the contract declares the route and\n * the auth header, so a second provider in this family is a module edit rather than a change here.\n *\n * ## Failure posture — THREE outcomes, not two, and the third is the whole point\n *\n * A caller must be able to distinguish \"these bytes are not a readable document\" from \"I could\n * not ask\". Collapsing them is not a tidiness issue: `RagIngestionBackendService` deletes a\n * field's entire chunk set when an ingestion pass yields no text, so reporting a provider OUTAGE\n * as an unreadable document would silently destroy a live, already-embedded corpus and report\n * success. {@link DocumentExtractionFailureClass} carries that distinction, and\n * `FileTextExtractionBackendService` branches on it.\n *\n * ## Observability\n *\n * Every physical extraction emits ONE agent-call trace through the standard sink chain. Its\n * `input` and `output` are SUMMARIES — mime type, byte length, page count, character count. The\n * document bytes and the extracted text never enter a trace, a log, or an error `context` at any\n * verbosity: an uploaded contract is application content, not telemetry. The API key is read\n * through the standard provider-secret path and is never logged, never placed in an error\n * context, and never included in a diagnostic dump of the request.\n */\n\nimport { injectable, inject, optional } from 'inversify';\nimport {\n EngineCapability,\n ErrorType,\n ErrorCustomMessageReference,\n AgentCallOutcome,\n AgentCallTraceKind,\n AgentTraceabilityLevel,\n type AgentCallTrace,\n type AgentCallTraceSink,\n type AgentTraceabilityPolicy,\n} from '@wildo-ai/saas-models';\nimport {\n DocumentExtraction_Applicability,\n DocumentExtractionProvider_OperationKey,\n ExternalProvider_ExchangeProtocol_Kind,\n resolveDocumentExtractionModelForApplicability,\n type DocumentExtractionProvider_ExtractDocumentTextOutput,\n} from '@wildo-ai/external-connectors-models';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\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 ceiling on the document bytes sent in one extraction request, applied as\n * `min(provider-declared, engine)` — and UNCONDITIONAL, so a provider that declares no limit\n * (the wired one does not; Mistral publishes none) still cannot produce an unbounded request.\n *\n * 24 MB, chosen from measurement rather than convention. Live probes against `POST /v1/ocr` on\n * 2026-08-27, isolating the body-size axis with one-page documents:\n * - 8 MB document (10.7 MB encoded body) → HTTP 200 in 4.9 s\n * - 32 MB document (42.7 MB encoded body) → HTTP 200 in 19.8 s\n * Nothing was refused, so the provider's true maximum is UNESTABLISHED. What the probes DID\n * establish is that latency scales with body size, and 20 s inside a synchronous extraction call\n * is already past the point where the local fallback (240 ms for a 129-page document) is the\n * better answer. So this ceiling exists to bound LATENCY and memory, not to mirror a published\n * limit — because there is no published limit to mirror.\n *\n * Base64 inflates by 4/3, so 24 MB of document is a ~32 MB request body.\n */\nexport const DOCUMENT_EXTRACTION_ENGINE_MAX_DOCUMENT_BYTES = 24 * 1024 * 1024;\n\n/**\n * Wall-clock budget for one extraction request. Measured basis: a 129-page, 994 KB document\n * completed in 4.4 s, and the 32 MB probe took 19.8 s. 120 s leaves generous headroom over both\n * while still guaranteeing the call terminates — an extraction runs inside an ingestion sweep,\n * and a request that hangs forever would stall the sweep rather than merely lose one document.\n */\nexport const DOCUMENT_EXTRACTION_REQUEST_TIMEOUT_MS = 120_000;\n\n/** Attempts per extraction when the provider declares none. See the Mistral module for why 2, not 3. */\nconst DOCUMENT_EXTRACTION_DEFAULT_MAX_ATTEMPTS = 2;\n\n/**\n * The `agentRef` extraction traces carry. Not a registered flows-actors agent — extraction is a\n * protocol-kind execution, not an agent modality — but the trace contract keys analytics spans on\n * `agentRef`, so the engine names its extraction executor stably here.\n */\nexport const DOCUMENT_EXTRACTION_TRACE_AGENT_REF = 'engine:document-extraction';\n\n/**\n * WHY an extraction failed, in the only two senses a caller can act on differently.\n *\n * This is the service's most load-bearing output after the text itself. See the file header: the\n * consequence of confusing the two is corpus deletion, not a misleading log line.\n */\nexport enum DocumentExtractionFailureClass {\n /**\n * The provider read the request and judged the DOCUMENT unprocessable — corrupt bytes, an\n * unsupported format, a password-protected file. PERMANENT: re-sending the same bytes cannot\n * succeed, so a sweep may safely stop retrying and skip the document.\n */\n UNREADABLE_DOCUMENT = 'unreadable_document',\n /**\n * The provider could not be reached, refused the credential, throttled, or failed internally —\n * a network error, a 401/403, a 429, any 5xx, or a timeout. TRANSIENT and, decisively, says\n * NOTHING about the document. A caller must not conclude anything about the bytes from this.\n */\n PROVIDER_UNAVAILABLE = 'provider_unavailable',\n}\n\n/** A failed extraction, classified. Thrown as {@link DocumentExtractionError}. */\nexport class DocumentExtractionError extends Error {\n constructor(\n public readonly failureClass: DocumentExtractionFailureClass,\n message: string,\n /** Provider HTTP status, when the failure came from a response rather than from the transport. */\n public readonly httpStatus?: number,\n ) {\n super(message);\n this.name = 'DocumentExtractionError';\n }\n}\n\n/** The resolved class→provider→model binding for extraction. */\nexport interface DocumentExtractionResolvedBinding {\n applicability: DocumentExtraction_Applicability;\n providerRef: string;\n /** Concrete model id — never authored at a call site. */\n model: string;\n /** MIME types the resolved model can process, from its catalog row. */\n supportedMimeTypes: readonly string[];\n /** Effective document-byte ceiling: `min(provider-declared, engine ceiling)`. */\n maxDocumentBytes: number;\n /** Attempts per call, including the first. */\n maxAttempts: number;\n baseUrl: string;\n endpointPath: string;\n apiKeyHeaderName: string;\n apiKeyPrefix: string;\n}\n\n/** Discriminated \"is provider extraction possible here?\" answer. */\nexport type DocumentExtractionBindingResolution =\n | { configured: true; binding: DocumentExtractionResolvedBinding }\n | {\n configured: false;\n /**\n * Why nothing is configured. Always the BENIGN shape — no provider fills the capability.\n * A provider that IS selected but cannot serve THROWS instead, because a misconfiguration\n * that presented as a deliberate opt-out would never be noticed.\n */\n reason: 'no_provider_for_capability';\n };\n\nexport interface ExtractDocumentTextRequest {\n /**\n * The document. A `Buffer` on the request object rather than a field of a Zod-shaped input, so\n * that no diagnostic path can casually serialize an application's private document — see the\n * input schema's JSDoc in `document-extraction.external-connectors-models.schemas.ts`.\n */\n document: Buffer;\n mimeType: string;\n applicability: DocumentExtraction_Applicability;\n /** Diagnostic correlation only — never sent to the provider. */\n fileId?: string;\n}\n\n/**\n * The shape of the provider's OCR response that this service reads.\n *\n * spec-cite: https://docs.mistral.ai/api/endpoint/ocr — the 200 response carries `pages` (an array\n * of page objects, each with `markdown`), `model`, and `usage_info` with `pages_processed` and\n * `doc_size_bytes`. Confirmed by live call on 2026-08-27, which returned exactly these keys.\n *\n * Deliberately a LOOSE local shape rather than a strict parse of the whole response: the provider\n * documents many fields this engine does not consume (`images`, `tables`, `hyperlinks`, `header`,\n * `footer`, `dimensions`, `confidence_scores`, `blocks`, `document_annotation`), and rejecting a\n * response for carrying a field we do not read would turn every additive vendor change into an\n * outage. What IS validated is the part we depend on, below.\n */\ninterface DocumentExtractionProviderResponse {\n pages?: Array<{ markdown?: unknown }>;\n model?: unknown;\n usage_info?: { pages_processed?: unknown; doc_size_bytes?: unknown };\n}\n\n@injectable()\nexport class DocumentExtractionBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService)\n private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService)\n private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)\n private readonly backendProviderRegistry: BackendProviderRegistryBackendService,\n // Appended LAST deliberately — DI constructor positions are order-sensitive.\n @inject(SAAS_SERVICE_TYPES.AgentCallTraceSink)\n @optional()\n private readonly agentTraceSink?: AgentCallTraceSink,\n @inject(SAAS_SERVICE_TYPES.AgentTraceabilityPolicy)\n @optional()\n private readonly agentTracePolicy?: AgentTraceabilityPolicy,\n ) {\n this.logDebug = this.logger.debugByType('DocumentExtractionBackendService');\n this.logger.setDebugTypeLogging('DocumentExtractionBackendService', false);\n }\n\n /**\n * Resolve the current class→provider→model binding, or report \"not configured\".\n *\n * `configured: false` covers exactly the benign absence (no declared provider fills\n * `AI_DOCUMENT_EXTRACTION`) — an application that ingests only born-digital PDFs may leave the\n * capability unset on purpose, and the file service falls back to the local library. A provider\n * that IS selected but cannot serve — no contract, `extractDocumentText` undeclared, model\n * unresolvable — THROWS a named CONFIGURATION error, because that is an operator mistake and\n * silence would make it indistinguishable from the deliberate opt-out.\n */\n public resolveBinding(applicability: DocumentExtraction_Applicability): DocumentExtractionBindingResolution {\n const providerRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(\n EngineCapability.AI_DOCUMENT_EXTRACTION,\n );\n if (!providerRef) {\n return { configured: false, reason: 'no_provider_for_capability' };\n }\n\n const runtimeContract = this.externalProvidersRegistry.getProviderRuntimeContract(\n providerRef,\n ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER,\n );\n if (runtimeContract?.kind !== 'document-extraction') {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" is selected for AI_DOCUMENT_EXTRACTION but declares no DOCUMENT_EXTRACTION_PROVIDER runtime contract.`,\n },\n });\n }\n\n const semanticOperations = this.externalProvidersRegistry.getDocumentExtractionSemanticOperationKeys(providerRef);\n if (!semanticOperations.includes(DocumentExtractionProvider_OperationKey.EXTRACT_DOCUMENT_TEXT)) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\"'s document-extraction contract does not declare the extractDocumentText operation.`,\n },\n });\n }\n\n const resolution = resolveDocumentExtractionModelForApplicability({ applicability, providerRef });\n // `=== false` rather than `!…`: this compiler configuration narrows the literal-discriminant\n // union on the explicit comparison but not on the truthiness form (the embeddings seam\n // measured this; it is copied deliberately rather than re-derived).\n if (resolution.resolved === false) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n applicability,\n failure: resolution.failure,\n consideredModels: resolution.consideredModels,\n message: `No document-extraction model resolves for applicability class \"${applicability}\" on provider \"${providerRef}\".`,\n },\n });\n }\n\n return {\n configured: true,\n binding: {\n applicability,\n providerRef,\n model: resolution.model,\n supportedMimeTypes: resolution.entry.supportedMimeTypes,\n maxDocumentBytes: Math.min(\n runtimeContract.maxDocumentBytes ?? DOCUMENT_EXTRACTION_ENGINE_MAX_DOCUMENT_BYTES,\n DOCUMENT_EXTRACTION_ENGINE_MAX_DOCUMENT_BYTES,\n ),\n maxAttempts: runtimeContract.maxAttempts ?? DOCUMENT_EXTRACTION_DEFAULT_MAX_ATTEMPTS,\n baseUrl: runtimeContract.baseUrl,\n endpointPath: runtimeContract.endpointPath,\n apiKeyHeaderName: runtimeContract.apiKey.headerName,\n apiKeyPrefix: runtimeContract.apiKey.prefix ?? '',\n },\n };\n }\n\n /**\n * Whether the resolved binding can process this MIME type and this many bytes, WITHOUT making a\n * request. Consulted by the file service before any egress: sending a document the model cannot\n * read spends an egress of application content to learn something the catalog already knew.\n */\n public canServe(binding: DocumentExtractionResolvedBinding, mimeType: string, byteLength: number): boolean {\n return binding.supportedMimeTypes.includes(mimeType.toLowerCase()) && byteLength <= binding.maxDocumentBytes;\n }\n\n /**\n * Extract one document's text through the configured provider.\n *\n * assurance-control: WILDO.INTEGRATION.OUTBOUND_ACTIVITY_AUDIT — this is the ONE egress through\n * which application DOCUMENTS leave the deployment for an external extraction provider; every\n * physical call emits an agent-call trace (provider, model, pages, outcome) through the standard\n * sink chain, so a reviewer can enumerate what was sent and when.\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — only the document bytes reach the\n * provider: no filename, no row context, no identifiers, no organization or user id. The\n * document is sent as an inline data URI rather than uploaded to the provider's file store,\n * which means the provider retains no object of ours to delete (its Files API states a 30-day\n * retention that an inline request never enters). Observability surfaces receive SUMMARIES only\n * — the bytes and the extracted text never enter a trace, a log, or an error context.\n * assurance-control: WILDO.PRIVACY.THIRD_PARTY_PROCESSING — routing documents here makes the\n * provider a PROCESSOR of application content. It is opt-in by construction: no bytes leave\n * unless an application selects a provider for `AI_DOCUMENT_EXTRACTION`, and with no selection\n * the local library serves every extraction with no egress at all.\n *\n * Throws {@link DocumentExtractionError} with a {@link DocumentExtractionFailureClass}. See the\n * file header for why the caller MUST branch on that class rather than treating any failure as\n * an unreadable document.\n */\n public async extractDocumentText(\n request: ExtractDocumentTextRequest,\n ): Promise<DocumentExtractionProvider_ExtractDocumentTextOutput> {\n const resolutionResult = this.resolveBinding(request.applicability);\n if (!resolutionResult.configured) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n applicability: request.applicability,\n message: 'extractDocumentText was called with no AI_DOCUMENT_EXTRACTION provider configured. '\n + 'Callers must consult resolveBinding() first — FileTextExtractionBackendService does, and falls back to the local library.',\n },\n });\n }\n const binding = resolutionResult.binding;\n\n if (!this.canServe(binding, request.mimeType, request.document.length)) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n mimeType: request.mimeType,\n documentByteLength: request.document.length,\n maxDocumentBytes: binding.maxDocumentBytes,\n supportedMimeTypes: binding.supportedMimeTypes,\n message: 'The resolved document-extraction model cannot serve this MIME type or byte length. '\n + 'Callers must consult canServe() first, which is a pure catalog check and costs no egress.',\n },\n });\n }\n\n const protocolKind = ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER;\n const apiKey = this.externalProvidersRegistry.getProviderApiKey(binding.providerRef, protocolKind);\n if (!apiKey) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n protocolKind,\n message: 'API key not found for the document-extraction provider. Configure the provider secret in the application environment.',\n },\n });\n }\n // Read through `backendProviderRegistry` as well, matching the embeddings seam: `resolveBinding`\n // read the contract through the CONFIG registry, and this confirms the RUNTIME registry still\n // agrees. Unreachable unless the registry mutated mid-call; named rather than assumed.\n const contract = this.backendProviderRegistry.getRuntimeContract(binding.providerRef, protocolKind);\n if (contract?.kind !== 'document-extraction') {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n message: 'Document-extraction runtime contract vanished between resolution and invocation.',\n },\n });\n }\n\n const startTime = Date.now();\n const callTimestamp = new Date(startTime).toISOString();\n try {\n const output = await this.invokeWithRetries(binding, apiKey, request);\n await this.emitExtractionTrace(request, binding, {\n outcome: AgentCallOutcome.SUCCESS,\n callTimestamp,\n startTime,\n pageCount: output.pageCount,\n characterCount: output.text.length,\n usage: output.usage,\n });\n return output;\n } catch (error) {\n await this.emitExtractionTrace(request, binding, {\n outcome: AgentCallOutcome.FAILURE,\n callTimestamp,\n startTime,\n error,\n });\n throw error;\n }\n }\n\n /**\n * Attempt the call up to `binding.maxAttempts` times, retrying ONLY\n * {@link DocumentExtractionFailureClass.PROVIDER_UNAVAILABLE}.\n *\n * An `UNREADABLE_DOCUMENT` is never retried, and that asymmetry is the point: the same bytes\n * will be judged the same way, so a retry spends a page of billed quota to receive the identical\n * refusal. The classification is what makes the retry policy expressible at all.\n */\n private async invokeWithRetries(\n binding: DocumentExtractionResolvedBinding,\n apiKey: string,\n request: ExtractDocumentTextRequest,\n ): Promise<DocumentExtractionProvider_ExtractDocumentTextOutput> {\n let lastError: DocumentExtractionError | undefined;\n for (let attempt = 1; attempt <= Math.max(1, binding.maxAttempts); attempt++) {\n try {\n return await this.invokeOnce(binding, apiKey, request);\n } catch (error) {\n if (!(error instanceof DocumentExtractionError)\n || error.failureClass !== DocumentExtractionFailureClass.PROVIDER_UNAVAILABLE) {\n throw error;\n }\n lastError = error;\n this.logDebug('Document extraction attempt failed with a transient provider fault', {\n providerRef: binding.providerRef,\n attempt,\n maxAttempts: binding.maxAttempts,\n httpStatus: error.httpStatus,\n });\n }\n }\n // Unreachable with `maxAttempts >= 1` unless every attempt threw, in which case `lastError` is set.\n throw lastError ?? new DocumentExtractionError(\n DocumentExtractionFailureClass.PROVIDER_UNAVAILABLE,\n 'Document extraction exhausted its attempts without producing a result.',\n );\n }\n\n /** One physical HTTPS request against the provider's declared route. */\n private async invokeOnce(\n binding: DocumentExtractionResolvedBinding,\n apiKey: string,\n request: ExtractDocumentTextRequest,\n ): Promise<DocumentExtractionProvider_ExtractDocumentTextOutput> {\n const url = `${binding.baseUrl.replace(/\\/+$/, '')}/${binding.endpointPath.replace(/^\\/+/, '')}`;\n\n // The document travels as an inline data URI. The provider's document chunk accepts a URL, and\n // a `data:` URI is the form that keeps the bytes inside THIS request — the alternative (upload\n // to the provider's file store, then reference the id) would leave an object of ours sitting in\n // their retention window, and the alternative-alternative (a public URL to our object store)\n // would require exposing application documents to the internet. Verified working against the\n // live API on 2026-08-27 for a 129-page document.\n const documentUrl = `data:${request.mimeType};base64,${request.document.toString('base64')}`;\n\n const abortController = new AbortController();\n const timeout = setTimeout(() => abortController.abort(), DOCUMENT_EXTRACTION_REQUEST_TIMEOUT_MS);\n let response: Response;\n try {\n response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n [binding.apiKeyHeaderName]: `${binding.apiKeyPrefix}${apiKey}`,\n },\n body: JSON.stringify({\n model: binding.model,\n document: { type: 'document_url', document_url: documentUrl },\n // Images are not requested: this seam produces TEXT, and asking for base64 images would\n // multiply the response size by an order of magnitude for bytes nothing here consumes.\n include_image_base64: false,\n }),\n signal: abortController.signal,\n });\n } catch (transportError) {\n // A transport failure — DNS, TCP, TLS, or our own abort. Says nothing about the document.\n throw new DocumentExtractionError(\n DocumentExtractionFailureClass.PROVIDER_UNAVAILABLE,\n `Document-extraction provider \"${binding.providerRef}\" was unreachable: `\n + (transportError instanceof Error ? transportError.message : String(transportError)),\n );\n } finally {\n clearTimeout(timeout);\n }\n\n if (!response.ok) {\n // The status→class mapping, and every boundary in it is deliberate:\n // - 4xx generally means the provider READ our request and refused THIS DOCUMENT → permanent.\n // - 401/403 is a CREDENTIAL fault, not a document fault. Classifying it as unreadable would\n // make a rotated key look like a corpus of corrupt files, and would silently delete\n // chunk sets across every document while the key was wrong.\n // - 408/429 are explicitly retryable by their own definition.\n // - 5xx is the provider's fault, never the document's.\n const isCredentialFault = response.status === 401 || response.status === 403;\n const isThrottleOrTimeout = response.status === 408 || response.status === 429;\n const isServerFault = response.status >= 500;\n const failureClass = isCredentialFault || isThrottleOrTimeout || isServerFault\n ? DocumentExtractionFailureClass.PROVIDER_UNAVAILABLE\n : DocumentExtractionFailureClass.UNREADABLE_DOCUMENT;\n // The response BODY is deliberately not carried into the message: a provider error body can\n // echo request content, and this message reaches logs.\n throw new DocumentExtractionError(\n failureClass,\n `Document-extraction provider \"${binding.providerRef}\" answered HTTP ${response.status}.`,\n response.status,\n );\n }\n\n let parsed: DocumentExtractionProviderResponse;\n try {\n parsed = (await response.json()) as DocumentExtractionProviderResponse;\n } catch (parseError) {\n // A 200 whose body is not JSON is the provider misbehaving, not the document being bad.\n throw new DocumentExtractionError(\n DocumentExtractionFailureClass.PROVIDER_UNAVAILABLE,\n `Document-extraction provider \"${binding.providerRef}\" returned a 200 with an unreadable body: `\n + (parseError instanceof Error ? parseError.message : String(parseError)),\n );\n }\n\n if (!Array.isArray(parsed.pages)) {\n // Validate the ONE field this engine depends on. A response with no `pages` array is not a\n // document with no text — it is a contract violation, and treating it as \"this document is\n // empty\" is precisely how an upstream change would silently empty a corpus.\n throw new DocumentExtractionError(\n DocumentExtractionFailureClass.PROVIDER_UNAVAILABLE,\n `Document-extraction provider \"${binding.providerRef}\" returned a response with no pages array.`,\n );\n }\n\n // Per-page markdown, joined in document order. Non-string page content is skipped rather than\n // stringified — `String(undefined)` in a retrieval corpus is worse than a shorter document.\n const pageTexts = parsed.pages.map((page) => (typeof page?.markdown === 'string' ? page.markdown : ''));\n\n return {\n text: pageTexts.join('\\n'),\n pageCount: parsed.pages.length,\n model: typeof parsed.model === 'string' ? parsed.model : binding.model,\n usage: {\n ...(typeof parsed.usage_info?.pages_processed === 'number'\n ? { pagesProcessed: parsed.usage_info.pages_processed }\n : {}),\n ...(typeof parsed.usage_info?.doc_size_bytes === 'number'\n ? { documentSizeBytes: parsed.usage_info.doc_size_bytes }\n : {}),\n },\n };\n }\n\n /**\n * One trace per physical extraction call — summaries only (file header: the bytes and the\n * extracted text never enter the trace). Best-effort: a sink failure never turns a successful\n * extraction into a failed one (the agents-service discipline).\n */\n private async emitExtractionTrace(\n request: ExtractDocumentTextRequest,\n binding: DocumentExtractionResolvedBinding,\n call: {\n outcome: AgentCallOutcome;\n callTimestamp: string;\n startTime: number;\n pageCount?: number;\n characterCount?: number;\n usage?: { pagesProcessed?: number; documentSizeBytes?: number };\n error?: unknown;\n },\n ): Promise<void> {\n const sink = this.agentTraceSink;\n if (!sink) {\n return;\n }\n const level = this.agentTracePolicy?.level ?? AgentTraceabilityLevel.NONE;\n if (level === AgentTraceabilityLevel.NONE) {\n return;\n }\n const executionTime = Date.now() - call.startTime;\n const trace: AgentCallTrace = {\n agentRef: DOCUMENT_EXTRACTION_TRACE_AGENT_REF,\n // GENERATION rather than a dedicated kind: extraction has no trace kind of its own today,\n // and inventing one is a change to the shared observability vocabulary (and to every sink\n // that switches on it) that this workstream has no evidence to justify. What matters for\n // correctness — that no document content is emitted — is enforced by the payload below, not\n // by the kind. Revisit if a sink ever needs to price or aggregate extraction separately.\n kind: AgentCallTraceKind.GENERATION,\n provider: binding.providerRef,\n model: binding.model,\n callTimestamp: call.callTimestamp,\n outcome: call.outcome,\n // Summaries by contract — never the document, never the extracted text.\n input: {\n applicability: binding.applicability,\n mimeType: request.mimeType,\n documentByteLength: request.document.length,\n ...(request.fileId !== undefined ? { fileId: request.fileId } : {}),\n },\n ...(call.outcome === AgentCallOutcome.SUCCESS\n ? {\n output: {\n pageCount: call.pageCount,\n characterCount: call.characterCount,\n // The provider's own billing unit lives in `output`, not in `usage`: the shared\n // `LLMProvider_UsageSchema` has token dimensions only, and widening it for one\n // protocol would push a page concept onto every LLM and embedding trace. If a sink\n // ever needs to price extraction, that is the moment to add the dimension\n // deliberately — not a side effect of this seam.\n ...(call.usage?.pagesProcessed !== undefined ? { pagesProcessed: call.usage.pagesProcessed } : {}),\n },\n }\n : {}),\n context: {\n callTimestamp: call.callTimestamp,\n executionTime,\n finishedAt: new Date().toISOString(),\n usage: {\n // TRUE, and the value is reasoned rather than copied. `tokenUsageComplete` means \"no\n // token dimension THE OPERATION REQUIRES is missing\". An OCR call requires none — it is\n // billed per page and the provider reports no tokens at all — so the required set is\n // empty and is vacuously satisfied. Writing `false` here would flag every extraction\n // trace as incomplete forever for lacking tokens it structurally cannot have, which is\n // exactly the defect the embeddings arm's operation-aware completeness was written to\n // avoid, one protocol over.\n tokenUsageComplete: true,\n },\n },\n ...(call.outcome === AgentCallOutcome.FAILURE\n ? {\n error: call.error instanceof DocumentExtractionError\n ? { name: call.error.failureClass, message: call.error.message }\n : call.error instanceof Error\n ? { name: call.error.name, message: call.error.message }\n : { message: 'Unknown document-extraction invocation error' },\n }\n : {}),\n };\n try {\n await sink.recordAgentCall({ trace, level });\n } catch (sinkError) {\n this.logDebug('Document-extraction trace sink failed (non-fatal)', {\n providerRef: binding.providerRef,\n error: sinkError instanceof Error ? sinkError.message : String(sinkError),\n });\n }\n }\n}\n"]}
1
+ {"version":3,"file":"document-extraction.backend.service.js","sourceRoot":"","sources":["../../../../src/external-providers/services/document-extraction.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Document-extraction execution service — the ONE seam through which the engine turns document\n * BYTES into text using an external provider (OCR).\n *\n * Its only caller is `FileTextExtractionBackendService`, which owns the CHOICE between this\n * provider path and the local `pdfjs-dist` text-layer path. That split is deliberate: this\n * service knows how to talk to a provider and nothing about fallbacks, and the file service knows\n * about fallbacks and nothing about HTTP.\n *\n * ## Selection is by APPLICABILITY CLASS, never by model id (the standing model-selection rule)\n *\n * A caller names a {@link DocumentExtraction_Applicability} class; this service resolves\n * 1. the PROVIDER — the application's `EngineCapability.AI_DOCUMENT_EXTRACTION` selection\n * (`defineSaaSProviders` → `selection[AI_DOCUMENT_EXTRACTION].primary`), independent of the\n * chat and embeddings providers by construction;\n * 2. the MODEL — `resolveDocumentExtractionModelForApplicability` against the framework catalog.\n *\n * ## Why a direct HTTPS call instead of the AI SDK\n *\n * Every sibling provider seam in this package hands an API key to an `@ai-sdk/*` client factory.\n * This one cannot: **`@ai-sdk/mistral@4.0.12` has ZERO OCR support** — the package exports no\n * `ocr` symbol and no client method reaching `POST /v1/ocr`, because the AI SDK models language,\n * embedding and image models and document extraction is none of them. So this service is the\n * transport, issuing the request itself.\n *\n * ## The line between engine and provider\n *\n * Until 2026-09-09 being the transport had quietly become being the CLIENT. This service composed\n * MISTRAL's `/v1/ocr` request — `document: { type: 'document_url', document_url }` as an inline\n * data URI, `include_image_base64: false` — and read MISTRAL's response — `pages[].markdown`,\n * `usage_info.pages_processed` — while the arm it narrowed to (`kind: DOCUMENT_EXTRACTION`) is a\n * PROTOCOL any provider may declare, and the vendor was named nowhere. A second provider selected\n * for `AI_DOCUMENT_EXTRACTION` would have been sent through Mistral's API carrying its own key,\n * and nothing would have refused it or logged it.\n *\n * It now mirrors `EmailBackendService` and `SMSBackendService`, the two arms that already have a\n * solved shape for this: the provider declares PURE FUNCTIONS on its contract, and the engine owns\n * transport.\n *\n * ENGINE (here) — resolve the provider, the model and the secret; compose the URL from the\n * declared `baseUrl` + `endpointPath` and the API-key header from the declared\n * `apiKey`; apply the engine's own byte ceiling and timeout; issue the request;\n * validate what the provider's parser returns; retry per the failure class.\n * PROVIDER — the request body and its `content-type`, how the bytes travel, and the\n * projection of the vendor's response onto the framework's extraction or onto\n * a {@link DocumentExtraction_FailureClass}.\n *\n * There is deliberately no consumer-side adapter registry of the kind billing uses. That shape\n * exists only because a billing adapter is a CLASS in this package, which the provider package\n * cannot reach without a reverse dependency edge; a document-extraction provider owes two\n * functions over `@wildo-ai/external-connectors-models` types, which it supplies directly.\n *\n * Three floors stay HERE and a provider cannot lower them, because each one's failure mode is\n * corpus deletion rather than a bad log line: a transport failure or timeout never reaches the\n * parser and is `PROVIDER_UNAVAILABLE`; a parser that THROWS is `PROVIDER_UNAVAILABLE` rather\n * than an unclassified crash; and a parser result that violates the standard output schema is\n * `PROVIDER_UNAVAILABLE`, never \"this document has no text\".\n *\n * ## Failure posture — THREE outcomes, not two, and the third is the whole point\n *\n * A caller must be able to distinguish \"these bytes are not a readable document\" from \"I could\n * not ask\". Collapsing them is not a tidiness issue: `RagIngestionBackendService` deletes a\n * field's entire chunk set when an ingestion pass yields no text, so reporting a provider OUTAGE\n * as an unreadable document would silently destroy a live, already-embedded corpus and report\n * success. {@link DocumentExtraction_FailureClass} carries that distinction, and\n * `FileTextExtractionBackendService` branches on it.\n *\n * ## Observability\n *\n * Every physical extraction emits ONE agent-call trace through the standard sink chain. Its\n * `input` and `output` are SUMMARIES — mime type, byte length, page count, character count. The\n * document bytes and the extracted text never enter a trace, a log, or an error `context` at any\n * verbosity: an uploaded contract is application content, not telemetry. The API key is read\n * through the standard provider-secret path and is never logged, never placed in an error\n * context, and never included in a diagnostic dump of the request.\n */\n\nimport { injectable, inject, optional } from 'inversify';\nimport {\n EngineCapability,\n ErrorType,\n ErrorCustomMessageReference,\n AgentCallOutcome,\n AgentCallTraceKind,\n AgentTraceabilityLevel,\n type AgentCallTrace,\n type AgentCallTraceSink,\n type AgentTraceabilityPolicy,\n} from '@wildo-ai/saas-models';\nimport {\n DocumentExtraction_Applicability,\n DocumentExtraction_FailureClass,\n DocumentExtractionProvider_ExtractDocumentTextOutputSchema,\n DocumentExtractionProvider_OperationKey,\n ExternalProvider_ExchangeProtocol_Kind,\n resolveDocumentExtractionModelForApplicability,\n type DocumentExtraction_ProviderExtraction,\n type DocumentExtractionProvider_ExtractDocumentTextOutput,\n ProviderProtocolRuntimeKind,\n} from '@wildo-ai/external-connectors-models';\nimport type {\n DocumentExtractionProviderRequest,\n DocumentExtractionProviderRequestInput,\n DocumentExtractionProviderResponseInput,\n} from '@wildo-ai/external-connectors-private/backend';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\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';\nimport { withEngineOwnedHeaders } from '~wildo-backend-lib/security/outbound/outbound-request-headers.backend.utils';\n\n/**\n * Engine-side ceiling on the document bytes sent in one extraction request, applied as\n * `min(provider-declared, engine)` — and UNCONDITIONAL, so a provider that declares no limit\n * (the wired one does not; Mistral publishes none) still cannot produce an unbounded request.\n *\n * 24 MB, chosen from measurement rather than convention. Live probes against `POST /v1/ocr` on\n * 2026-08-27, isolating the body-size axis with one-page documents:\n * - 8 MB document (10.7 MB encoded body) → HTTP 200 in 4.9 s\n * - 32 MB document (42.7 MB encoded body) → HTTP 200 in 19.8 s\n * Nothing was refused, so the provider's true maximum is UNESTABLISHED. What the probes DID\n * establish is that latency scales with body size, and 20 s inside a synchronous extraction call\n * is already past the point where the local fallback (240 ms for a 129-page document) is the\n * better answer. So this ceiling exists to bound LATENCY and memory, not to mirror a published\n * limit — because there is no published limit to mirror.\n *\n * Base64 inflates by 4/3, so 24 MB of document is a ~32 MB request body.\n */\nexport const DOCUMENT_EXTRACTION_ENGINE_MAX_DOCUMENT_BYTES = 24 * 1024 * 1024;\n\n/**\n * Wall-clock budget for one extraction request. Measured basis: a 129-page, 994 KB document\n * completed in 4.4 s, and the 32 MB probe took 19.8 s. 120 s leaves generous headroom over both\n * while still guaranteeing the call terminates — an extraction runs inside an ingestion sweep,\n * and a request that hangs forever would stall the sweep rather than merely lose one document.\n */\nexport const DOCUMENT_EXTRACTION_REQUEST_TIMEOUT_MS = 120_000;\n\n/** Attempts per extraction when the provider declares none. See the Mistral module for why 2, not 3. */\nconst DOCUMENT_EXTRACTION_DEFAULT_MAX_ATTEMPTS = 2;\n\n/**\n * The `agentRef` extraction traces carry. Not a registered flows-actors agent — extraction is a\n * protocol-kind execution, not an agent modality — but the trace contract keys analytics spans on\n * `agentRef`, so the engine names its extraction executor stably here.\n */\nexport const DOCUMENT_EXTRACTION_TRACE_AGENT_REF = 'engine:document-extraction';\n\n/**\n * A failed extraction, classified.\n *\n * The CLASS lives in `@wildo-ai/external-connectors-models` rather than here, and the move is what\n * made the provider seam possible: a vocabulary a provider module cannot reach is one a provider\n * cannot answer in, so before 2026-09-09 the classification had to be performed by whoever could\n * reach it — this service — which is precisely how one vendor's status semantics became the\n * framework's. The ERROR stays here because it is an engine construct: `FileTextExtractionBackendService`\n * catches it, and a provider never throws.\n */\nexport class DocumentExtractionError extends Error {\n constructor(\n public readonly failureClass: DocumentExtraction_FailureClass,\n message: string,\n /** Provider HTTP status, when the failure came from a response rather than from the transport. */\n public readonly httpStatus?: number,\n ) {\n super(message);\n this.name = 'DocumentExtractionError';\n }\n}\n\n/** The resolved class→provider→model binding for extraction. */\nexport interface DocumentExtractionResolvedBinding {\n applicability: DocumentExtraction_Applicability;\n providerRef: string;\n /** Concrete model id — never authored at a call site. */\n model: string;\n /** MIME types the resolved model can process, from its catalog row. */\n supportedMimeTypes: readonly string[];\n /** Effective document-byte ceiling: `min(provider-declared, engine ceiling)`. */\n maxDocumentBytes: number;\n /** Attempts per call, including the first. */\n maxAttempts: number;\n baseUrl: string;\n endpointPath: string;\n apiKeyHeaderName: string;\n apiKeyPrefix: string;\n /**\n * The provider's own request projection. Carried on the binding rather than re-read at the call\n * site so that `resolveBinding` is the ONE place a contract without an executable wire shape is\n * refused — see the refusal there for why a type is not enough.\n */\n buildExtractRequest: (input: DocumentExtractionProviderRequestInput) => DocumentExtractionProviderRequest;\n /** The provider's own response projection and failure classification. */\n parseExtractResponse: (response: DocumentExtractionProviderResponseInput) => DocumentExtraction_ProviderExtraction;\n}\n\n/** Discriminated \"is provider extraction possible here?\" answer. */\nexport type DocumentExtractionBindingResolution =\n | { configured: true; binding: DocumentExtractionResolvedBinding }\n | {\n configured: false;\n /**\n * Why nothing is configured. Always the BENIGN shape — no provider fills the capability.\n * A provider that IS selected but cannot serve THROWS instead, because a misconfiguration\n * that presented as a deliberate opt-out would never be noticed.\n */\n reason: 'no_provider_for_capability';\n };\n\nexport interface ExtractDocumentTextRequest {\n /**\n * The document. A `Buffer` on the request object rather than a field of a Zod-shaped input, so\n * that no diagnostic path can casually serialize an application's private document — see the\n * input schema's JSDoc in `document-extraction.external-connectors-models.schemas.ts`.\n */\n document: Buffer;\n mimeType: string;\n applicability: DocumentExtraction_Applicability;\n /** Diagnostic correlation only — never sent to the provider. */\n fileId?: string;\n}\n\n@injectable()\nexport class DocumentExtractionBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService)\n private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService)\n private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)\n private readonly backendProviderRegistry: BackendProviderRegistryBackendService,\n // Appended LAST deliberately — DI constructor positions are order-sensitive.\n @inject(SAAS_SERVICE_TYPES.AgentCallTraceSink)\n @optional()\n private readonly agentTraceSink?: AgentCallTraceSink,\n @inject(SAAS_SERVICE_TYPES.AgentTraceabilityPolicy)\n @optional()\n private readonly agentTracePolicy?: AgentTraceabilityPolicy,\n ) {\n this.logDebug = this.logger.debugByType('DocumentExtractionBackendService');\n this.logger.setDebugTypeLogging('DocumentExtractionBackendService', false);\n }\n\n /**\n * Resolve the current class→provider→model binding, or report \"not configured\".\n *\n * `configured: false` covers exactly the benign absence (no declared provider fills\n * `AI_DOCUMENT_EXTRACTION`) — an application that ingests only born-digital PDFs may leave the\n * capability unset on purpose, and the file service falls back to the local library. A provider\n * that IS selected but cannot serve — no contract, `extractDocumentText` undeclared, model\n * unresolvable — THROWS a named CONFIGURATION error, because that is an operator mistake and\n * silence would make it indistinguishable from the deliberate opt-out.\n */\n public resolveBinding(applicability: DocumentExtraction_Applicability): DocumentExtractionBindingResolution {\n const providerRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(\n EngineCapability.AI_DOCUMENT_EXTRACTION,\n );\n if (!providerRef) {\n return { configured: false, reason: 'no_provider_for_capability' };\n }\n\n const runtimeContract = this.externalProvidersRegistry.getProviderRuntimeContract(\n providerRef,\n ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER,\n );\n if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.DOCUMENT_EXTRACTION) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" is selected for AI_DOCUMENT_EXTRACTION but declares no DOCUMENT_EXTRACTION_PROVIDER runtime contract.`,\n },\n });\n }\n\n const semanticOperations = this.externalProvidersRegistry.getDocumentExtractionSemanticOperationKeys(providerRef);\n if (!semanticOperations.includes(DocumentExtractionProvider_OperationKey.EXTRACT_DOCUMENT_TEXT)) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\"'s document-extraction contract does not declare the extractDocumentText operation.`,\n },\n });\n }\n\n /*\n * A contract that reached the registry without an executable wire shape.\n *\n * This is NOT belt-and-braces on top of the type system, and it must not be deleted as such —\n * the SMS arm carries the identical guard for the identical reason. A provider reaches a\n * running application through a COMPANION CONTRIBUTION, and that wire record is deliberately\n * permissive at both ends: `ProviderCompanionContributionSchema`\n * (`@wildo-ai/saas-models`, `src/companion/provider-discovery.shared.schemas.ts`) is a\n * `z.looseObject` so a record from a package version this repository never compiled rides\n * through instead of failing the parse, it announces its `protocols` as bare strings rather\n * than the typed enum, and its `runtimeImportPath` is resolved and imported at runtime. So the\n * module supplying a document-extraction contract can be one no compilation here ever checked.\n *\n * Without this refusal that case is a `TypeError` from inside transport naming no provider —\n * or, worse in this arm, a silent send through whatever shape the engine last knew. With it,\n * the compile-time requirement on the arm and this refusal together are what make \"never\n * silently handed another vendor's shape\" true for every declarer, not only the ones built in\n * this repository. The message NAMES what the engine serves, so an operator learns the arm's\n * requirement rather than a stack trace.\n */\n if (typeof runtimeContract.buildExtractRequest !== 'function'\n || typeof runtimeContract.parseExtractResponse !== 'function') {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" declares no document-extraction wire shape and cannot be used. `\n + 'Its DOCUMENT_EXTRACTION_PROVIDER runtime contract must declare buildExtractRequest and '\n + 'parseExtractResponse: the engine serves the transport (URL from baseUrl + endpointPath, the '\n + 'declared apiKey header, the byte ceiling, the timeout and the retry) and the provider owns the '\n + 'request body and the response projection.',\n },\n });\n }\n\n const resolution = resolveDocumentExtractionModelForApplicability({ applicability, providerRef });\n // `=== false` rather than `!…`: this compiler configuration narrows the literal-discriminant\n // union on the explicit comparison but not on the truthiness form (the embeddings seam\n // measured this; it is copied deliberately rather than re-derived).\n if (resolution.resolved === false) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n applicability,\n failure: resolution.failure,\n consideredModels: resolution.consideredModels,\n message: `No document-extraction model resolves for applicability class \"${applicability}\" on provider \"${providerRef}\".`,\n },\n });\n }\n\n return {\n configured: true,\n binding: {\n applicability,\n providerRef,\n model: resolution.model,\n supportedMimeTypes: resolution.entry.supportedMimeTypes,\n maxDocumentBytes: Math.min(\n runtimeContract.maxDocumentBytes ?? DOCUMENT_EXTRACTION_ENGINE_MAX_DOCUMENT_BYTES,\n DOCUMENT_EXTRACTION_ENGINE_MAX_DOCUMENT_BYTES,\n ),\n maxAttempts: runtimeContract.maxAttempts ?? DOCUMENT_EXTRACTION_DEFAULT_MAX_ATTEMPTS,\n baseUrl: runtimeContract.baseUrl,\n endpointPath: runtimeContract.endpointPath,\n apiKeyHeaderName: runtimeContract.apiKey.headerName,\n apiKeyPrefix: runtimeContract.apiKey.prefix ?? '',\n buildExtractRequest: runtimeContract.buildExtractRequest,\n parseExtractResponse: runtimeContract.parseExtractResponse,\n },\n };\n }\n\n /**\n * Whether the resolved binding can process this MIME type and this many bytes, WITHOUT making a\n * request. Consulted by the file service before any egress: sending a document the model cannot\n * read spends an egress of application content to learn something the catalog already knew.\n */\n public canServe(binding: DocumentExtractionResolvedBinding, mimeType: string, byteLength: number): boolean {\n return binding.supportedMimeTypes.includes(mimeType.toLowerCase()) && byteLength <= binding.maxDocumentBytes;\n }\n\n /**\n * Extract one document's text through the configured provider.\n *\n * assurance-control: WILDO.INTEGRATION.OUTBOUND_ACTIVITY_AUDIT — this is the ONE egress through\n * which application DOCUMENTS leave the deployment for an external extraction provider; every\n * physical call emits an agent-call trace (provider, model, pages, outcome) through the standard\n * sink chain, so a reviewer can enumerate what was sent and when.\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — only the document bytes reach the\n * provider: no filename, no row context, no identifiers, no organization or user id. Since\n * 2026-09-09 that is STRUCTURAL rather than a property of a body this service composes: the\n * provider's `buildExtractRequest` receives `DocumentExtractionProviderRequestInput`, which\n * carries the bytes, the MIME type and the resolved model and nothing else, so no provider can\n * include an identifier it was never given. What FORM the bytes take on the wire is now the\n * provider's decision and is recorded and pinned in its own module — the wired one inlines them\n * as a `data:` URI precisely so no object of ours enters the vendor's file-store retention\n * window. Observability surfaces receive SUMMARIES only — the bytes and the extracted text never\n * enter a trace, a log, or an error context.\n * assurance-control: WILDO.PRIVACY.THIRD_PARTY_PROCESSING — routing documents here makes the\n * provider a PROCESSOR of application content. It is opt-in by construction: no bytes leave\n * unless an application selects a provider for `AI_DOCUMENT_EXTRACTION`, and with no selection\n * the local library serves every extraction with no egress at all.\n *\n * Throws {@link DocumentExtractionError} with a {@link DocumentExtraction_FailureClass}. See the\n * file header for why the caller MUST branch on that class rather than treating any failure as\n * an unreadable document.\n */\n public async extractDocumentText(\n request: ExtractDocumentTextRequest,\n ): Promise<DocumentExtractionProvider_ExtractDocumentTextOutput> {\n const resolutionResult = this.resolveBinding(request.applicability);\n if (!resolutionResult.configured) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n applicability: request.applicability,\n message: 'extractDocumentText was called with no AI_DOCUMENT_EXTRACTION provider configured. '\n + 'Callers must consult resolveBinding() first — FileTextExtractionBackendService does, and falls back to the local library.',\n },\n });\n }\n const binding = resolutionResult.binding;\n\n if (!this.canServe(binding, request.mimeType, request.document.length)) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n mimeType: request.mimeType,\n documentByteLength: request.document.length,\n maxDocumentBytes: binding.maxDocumentBytes,\n supportedMimeTypes: binding.supportedMimeTypes,\n message: 'The resolved document-extraction model cannot serve this MIME type or byte length. '\n + 'Callers must consult canServe() first, which is a pure catalog check and costs no egress.',\n },\n });\n }\n\n const protocolKind = ExternalProvider_ExchangeProtocol_Kind.DOCUMENT_EXTRACTION_PROVIDER;\n const apiKey = this.externalProvidersRegistry.getProviderApiKey(binding.providerRef, protocolKind);\n if (!apiKey) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n protocolKind,\n message: 'API key not found for the document-extraction provider. Configure the provider secret in the application environment.',\n },\n });\n }\n // Read through `backendProviderRegistry` as well, matching the embeddings seam: `resolveBinding`\n // read the contract through the CONFIG registry, and this confirms the RUNTIME registry still\n // agrees. Unreachable unless the registry mutated mid-call; named rather than assumed.\n const contract = this.backendProviderRegistry.getRuntimeContract(binding.providerRef, protocolKind);\n if (contract?.kind !== ProviderProtocolRuntimeKind.DOCUMENT_EXTRACTION) {\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n message: 'Document-extraction runtime contract vanished between resolution and invocation.',\n },\n });\n }\n\n const startTime = Date.now();\n const callTimestamp = new Date(startTime).toISOString();\n try {\n const output = await this.invokeWithRetries(binding, apiKey, request);\n await this.emitExtractionTrace(request, binding, {\n outcome: AgentCallOutcome.SUCCESS,\n callTimestamp,\n startTime,\n pageCount: output.pageCount,\n characterCount: output.text.length,\n usage: output.usage,\n });\n return output;\n } catch (error) {\n await this.emitExtractionTrace(request, binding, {\n outcome: AgentCallOutcome.FAILURE,\n callTimestamp,\n startTime,\n error,\n });\n throw error;\n }\n }\n\n /**\n * Attempt the call up to `binding.maxAttempts` times, retrying ONLY\n * {@link DocumentExtraction_FailureClass.PROVIDER_UNAVAILABLE}.\n *\n * An `UNREADABLE_DOCUMENT` is never retried, and that asymmetry is the point: the same bytes\n * will be judged the same way, so a retry spends a page of billed quota to receive the identical\n * refusal. The classification is what makes the retry policy expressible at all.\n */\n private async invokeWithRetries(\n binding: DocumentExtractionResolvedBinding,\n apiKey: string,\n request: ExtractDocumentTextRequest,\n ): Promise<DocumentExtractionProvider_ExtractDocumentTextOutput> {\n let lastError: DocumentExtractionError | undefined;\n for (let attempt = 1; attempt <= Math.max(1, binding.maxAttempts); attempt++) {\n try {\n return await this.invokeOnce(binding, apiKey, request);\n } catch (error) {\n if (!(error instanceof DocumentExtractionError)\n || error.failureClass !== DocumentExtraction_FailureClass.PROVIDER_UNAVAILABLE) {\n throw error;\n }\n lastError = error;\n this.logDebug('Document extraction attempt failed with a transient provider fault', {\n providerRef: binding.providerRef,\n attempt,\n maxAttempts: binding.maxAttempts,\n httpStatus: error.httpStatus,\n });\n }\n }\n // Unreachable with `maxAttempts >= 1` unless every attempt threw, in which case `lastError` is set.\n throw lastError ?? new DocumentExtractionError(\n DocumentExtraction_FailureClass.PROVIDER_UNAVAILABLE,\n 'Document extraction exhausted its attempts without producing a result.',\n );\n }\n\n /**\n * One physical HTTPS request against the provider's declared route, with the provider's own body\n * and the provider's own reading of the answer.\n *\n * Everything vendor-shaped comes off the contract. The engine contributes the URL, the API-key\n * header and the timeout — note the header is applied AFTER the provider's transport headers, so\n * a provider cannot take authentication over by naming that header.\n */\n private async invokeOnce(\n binding: DocumentExtractionResolvedBinding,\n apiKey: string,\n request: ExtractDocumentTextRequest,\n ): Promise<DocumentExtractionProvider_ExtractDocumentTextOutput> {\n const url = `${binding.baseUrl.replace(/\\/+$/, '')}/${binding.endpointPath.replace(/^\\/+/, '')}`;\n\n // Only the bytes, the MIME type and the resolved model — the input type carries no identifier\n // for a provider to include, which is what makes the data-minimization claim structural.\n const providerRequest = binding.buildExtractRequest({\n document: request.document,\n mimeType: request.mimeType,\n model: binding.model,\n });\n\n const abortController = new AbortController();\n const timeout = setTimeout(() => abortController.abort(), DOCUMENT_EXTRACTION_REQUEST_TIMEOUT_MS);\n let response: Response;\n let responseText: string;\n try {\n response = await fetch(url, {\n method: 'POST',\n headers: withEngineOwnedHeaders(providerRequest.transportHeaders, {\n [binding.apiKeyHeaderName]: `${binding.apiKeyPrefix}${apiKey}`,\n }),\n body: providerRequest.body,\n signal: abortController.signal,\n });\n responseText = await response.text();\n } catch (transportError) {\n // A transport failure — DNS, TCP, TLS, our own abort, or a body that never finished\n // arriving. The parser never runs, so the engine classifies: this says nothing about the\n // document. FLOOR ONE, and a provider cannot lower it.\n throw new DocumentExtractionError(\n DocumentExtraction_FailureClass.PROVIDER_UNAVAILABLE,\n `Document-extraction provider \"${binding.providerRef}\" was unreachable: `\n + (transportError instanceof Error ? transportError.message : String(transportError)),\n );\n } finally {\n clearTimeout(timeout);\n }\n\n const parserInput: DocumentExtractionProviderResponseInput = {\n status: response.status,\n headers: this.responseHeadersToRecord(response.headers),\n body: this.bestEffortParseResponseBody(responseText),\n };\n\n let extraction: DocumentExtraction_ProviderExtraction;\n try {\n extraction = binding.parseExtractResponse(parserInput);\n } catch (parserError) {\n // FLOOR TWO. A provider function that throws has produced no class, and the engine must not\n // invent one — `PROVIDER_UNAVAILABLE` is the member with no destructive consequence, so a\n // broken parser costs a retry and never a corpus.\n throw new DocumentExtractionError(\n DocumentExtraction_FailureClass.PROVIDER_UNAVAILABLE,\n `Document-extraction provider \"${binding.providerRef}\" response parser threw: `\n + (parserError instanceof Error ? parserError.message : String(parserError)),\n response.status,\n );\n }\n\n if (extraction.extracted === false) {\n // The provider's own verdict. `httpStatus` is carried for diagnostics only; the CLASS is\n // what the caller branches on, and the message is the provider's (which the arm's JSDoc\n // requires to be free of response-body and document content).\n throw new DocumentExtractionError(extraction.failureClass, extraction.message, response.status);\n }\n\n /*\n * FLOOR THREE, and the one most easily mistaken for belt-and-braces.\n *\n * A parser that returns `{ extracted: true }` with a missing `text` or a non-numeric\n * `pageCount` produces, after coercion, exactly the shape of a document that legitimately\n * contained no text — and THAT answer deletes a field's chunk set. So a result the standard\n * output schema rejects is a contract violation, reported as `PROVIDER_UNAVAILABLE` rather\n * than allowed to read as an empty document. The validation error is carried; the parser's\n * output is not, because it holds the extracted text.\n */\n const validated = DocumentExtractionProvider_ExtractDocumentTextOutputSchema.safeParse({\n text: extraction.text,\n pageCount: extraction.pageCount,\n model: extraction.model ?? binding.model,\n usage: extraction.usage ?? {},\n });\n if (!validated.success) {\n throw new DocumentExtractionError(\n DocumentExtraction_FailureClass.PROVIDER_UNAVAILABLE,\n `Document-extraction provider \"${binding.providerRef}\" response parser violated `\n + `DocumentExtractionProvider_ExtractDocumentTextOutput: ${validated.error.message}`,\n response.status,\n );\n }\n\n return validated.data;\n }\n\n /** Lower-cased header projection, so a provider's parser can index headers by a stable name. */\n private responseHeadersToRecord(headers: Headers): Record<string, string> {\n const result: Record<string, string> = {};\n headers.forEach((value, key) => {\n result[key.toLowerCase()] = value;\n });\n return result;\n }\n\n /**\n * Decode a response body without assuming it is JSON. A vendor error page is frequently HTML or\n * plain text, and handing the raw string to the provider's parser is more useful than throwing\n * before it gets a chance to classify — the parser is the half that knows what its vendor emits.\n */\n private bestEffortParseResponseBody(responseText: string): unknown {\n if (responseText.length === 0) {\n return undefined;\n }\n try {\n return JSON.parse(responseText);\n } catch {\n return responseText;\n }\n }\n\n /**\n * One trace per physical extraction call — summaries only (file header: the bytes and the\n * extracted text never enter the trace). Best-effort: a sink failure never turns a successful\n * extraction into a failed one (the agents-service discipline).\n */\n private async emitExtractionTrace(\n request: ExtractDocumentTextRequest,\n binding: DocumentExtractionResolvedBinding,\n call: {\n outcome: AgentCallOutcome;\n callTimestamp: string;\n startTime: number;\n pageCount?: number;\n characterCount?: number;\n usage?: { pagesProcessed?: number; documentSizeBytes?: number };\n error?: unknown;\n },\n ): Promise<void> {\n const sink = this.agentTraceSink;\n if (!sink) {\n return;\n }\n const level = this.agentTracePolicy?.level ?? AgentTraceabilityLevel.NONE;\n if (level === AgentTraceabilityLevel.NONE) {\n return;\n }\n const executionTime = Date.now() - call.startTime;\n const trace: AgentCallTrace = {\n agentRef: DOCUMENT_EXTRACTION_TRACE_AGENT_REF,\n // GENERATION rather than a dedicated kind: extraction has no trace kind of its own today,\n // and inventing one is a change to the shared observability vocabulary (and to every sink\n // that switches on it) that this workstream has no evidence to justify. What matters for\n // correctness — that no document content is emitted — is enforced by the payload below, not\n // by the kind. Revisit if a sink ever needs to price or aggregate extraction separately.\n kind: AgentCallTraceKind.GENERATION,\n provider: binding.providerRef,\n model: binding.model,\n callTimestamp: call.callTimestamp,\n outcome: call.outcome,\n // Summaries by contract — never the document, never the extracted text.\n input: {\n applicability: binding.applicability,\n mimeType: request.mimeType,\n documentByteLength: request.document.length,\n ...(request.fileId !== undefined ? { fileId: request.fileId } : {}),\n },\n ...(call.outcome === AgentCallOutcome.SUCCESS\n ? {\n output: {\n pageCount: call.pageCount,\n characterCount: call.characterCount,\n // The provider's own billing unit lives in `output`, not in `usage`: the shared\n // `LLMProvider_UsageSchema` has token dimensions only, and widening it for one\n // protocol would push a page concept onto every LLM and embedding trace. If a sink\n // ever needs to price extraction, that is the moment to add the dimension\n // deliberately — not a side effect of this seam.\n ...(call.usage?.pagesProcessed !== undefined ? { pagesProcessed: call.usage.pagesProcessed } : {}),\n },\n }\n : {}),\n context: {\n callTimestamp: call.callTimestamp,\n executionTime,\n finishedAt: new Date().toISOString(),\n usage: {\n // TRUE, and the value is reasoned rather than copied. `tokenUsageComplete` means \"no\n // token dimension THE OPERATION REQUIRES is missing\". An OCR call requires none — it is\n // billed per page and the provider reports no tokens at all — so the required set is\n // empty and is vacuously satisfied. Writing `false` here would flag every extraction\n // trace as incomplete forever for lacking tokens it structurally cannot have, which is\n // exactly the defect the embeddings arm's operation-aware completeness was written to\n // avoid, one protocol over.\n tokenUsageComplete: true,\n },\n },\n ...(call.outcome === AgentCallOutcome.FAILURE\n ? {\n error: call.error instanceof DocumentExtractionError\n ? { name: call.error.failureClass, message: call.error.message }\n : call.error instanceof Error\n ? { name: call.error.name, message: call.error.message }\n : { message: 'Unknown document-extraction invocation error' },\n }\n : {}),\n };\n try {\n await sink.recordAgentCall({ trace, level });\n } catch (sinkError) {\n this.logDebug('Document-extraction trace sink failed (non-fatal)', {\n providerRef: binding.providerRef,\n error: sinkError instanceof Error ? sinkError.message : String(sinkError),\n });\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/external-providers/services/embeddings.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EAIxB,KAAK,mCAAmC,EACxC,KAAK,8BAA8B,EACpC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;AAC1J,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0FAA0F,CAAC;AAEtJ;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,2GAA2G;AAC3G,MAAM,WAAW,yBAAyB;IACxC,4FAA4F;IAC5F,aAAa,EAAE,wBAAwB,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,uGAAuG;IACvG,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,gBAAgB,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kGAAkG;AAClG,MAAM,MAAM,2BAA2B,GACnC;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,yBAAyB,CAAA;CAAE,GACxD;IACE,UAAU,EAAE,KAAK,CAAC;IAClB;;;OAGG;IACH,MAAM,EAAE,4BAA4B,CAAC;CACtC,CAAC;AAEN,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,8BAA8B,CAAC;IACxC,aAAa,EAAE,wBAAwB,CAAC;CACzC;AAED,qBACa,wBAAwB;IAKjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAGxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAGhC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAhBpC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;gBAI9D,MAAM,EAAE,aAAa,EAErB,YAAY,EAAE,0BAA0B,EAExC,yBAAyB,EAAE,uCAAuC,EAElE,uBAAuB,EAAE,qCAAqC,EAG9D,cAAc,CAAC,EAAE,kBAAkB,EAGnC,gBAAgB,CAAC,EAAE,uBAAuB;IAM7D;;;;;;;;OAQG;IACI,cAAc,CAAC,aAAa,EAAE,wBAAwB,GAAG,2BAA2B;IAiE3F;;;;;;;;;;;;;;;;;OAiBG;IACU,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,mCAAmC,CAAC;IA+GjG;;;;OAIG;YACW,kBAAkB;CAmEjC"}
1
+ {"version":3,"file":"embeddings.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/services/embeddings.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EAIxB,KAAK,mCAAmC,EACxC,KAAK,8BAA8B,EAEpC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAClG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4FAA4F,CAAC;AAC1J,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0FAA0F,CAAC;AAEtJ;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,2GAA2G;AAC3G,MAAM,WAAW,yBAAyB;IACxC,4FAA4F;IAC5F,aAAa,EAAE,wBAAwB,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,uGAAuG;IACvG,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,gBAAgB,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kGAAkG;AAClG,MAAM,MAAM,2BAA2B,GACnC;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,yBAAyB,CAAA;CAAE,GACxD;IACE,UAAU,EAAE,KAAK,CAAC;IAClB;;;OAGG;IACH,MAAM,EAAE,4BAA4B,CAAC;CACtC,CAAC;AAEN,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,8BAA8B,CAAC;IACxC,aAAa,EAAE,wBAAwB,CAAC;CACzC;AAED,qBACa,wBAAwB;IAKjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAE7B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAE1C,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAGxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAGhC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAhBpC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;gBAI9D,MAAM,EAAE,aAAa,EAErB,YAAY,EAAE,0BAA0B,EAExC,yBAAyB,EAAE,uCAAuC,EAElE,uBAAuB,EAAE,qCAAqC,EAG9D,cAAc,CAAC,EAAE,kBAAkB,EAGnC,gBAAgB,CAAC,EAAE,uBAAuB;IAM7D;;;;;;;;OAQG;IACI,cAAc,CAAC,aAAa,EAAE,wBAAwB,GAAG,2BAA2B;IAiE3F;;;;;;;;;;;;;;;;;OAiBG;IACU,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,mCAAmC,CAAC;IA+GjG;;;;OAIG;YACW,kBAAkB;CAmEjC"}
@@ -53,7 +53,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
53
53
  import { injectable, inject, optional } from 'inversify';
54
54
  import { embedMany } from 'ai';
55
55
  import { EngineCapability, ErrorType, ErrorCustomMessageReference, AgentCallOutcome, AgentCallTraceKind, AgentTraceabilityLevel, } from '@wildo-ai/saas-models';
56
- import { EmbeddingsProvider_OperationKey, ExternalProvider_ExchangeProtocol_Kind, resolveEmbeddingsModelForApplicability, } from '@wildo-ai/external-connectors-models';
56
+ import { EmbeddingsProvider_OperationKey, ExternalProvider_ExchangeProtocol_Kind, resolveEmbeddingsModelForApplicability, ProviderProtocolRuntimeKind, } from '@wildo-ai/external-connectors-models';
57
57
  import { SAAS_SERVICE_TYPES } from '../../inject/models/service-types.js';
58
58
  import { ErrorBuilderBackendService } from '../../errors/services/error-builder.backend.service.js';
59
59
  /**
@@ -103,7 +103,7 @@ let EmbeddingsBackendService = class EmbeddingsBackendService {
103
103
  return { configured: false, reason: 'no_provider_for_capability' };
104
104
  }
105
105
  const runtimeContract = this.externalProvidersRegistry.getProviderRuntimeContract(providerRef, ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER);
106
- if (runtimeContract?.kind !== 'embeddings') {
106
+ if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {
107
107
  throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
108
108
  customMessageReference: ErrorCustomMessageReference.CONFIGURATION,
109
109
  context: {
@@ -203,14 +203,14 @@ let EmbeddingsBackendService = class EmbeddingsBackendService {
203
203
  });
204
204
  }
205
205
  const contract = this.backendProviderRegistry.getRuntimeContract(binding.providerRef, protocolKind);
206
- if (contract?.kind !== 'embeddings') {
206
+ if (contract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {
207
207
  // Unreachable past resolveBinding() unless the registry mutated mid-call; named anyway.
208
208
  throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {
209
209
  customMessageReference: ErrorCustomMessageReference.CONFIGURATION,
210
210
  context: { providerRef: binding.providerRef, message: 'Embeddings runtime contract vanished between resolution and invocation.' },
211
211
  });
212
212
  }
213
- const client = contract.sdkFactory(apiKey);
213
+ const client = (await contract.sdkFactory(apiKey));
214
214
  if (typeof client?.textEmbeddingModel !== 'function') {
215
215
  throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {
216
216
  customMessageReference: ErrorCustomMessageReference.CONFIGURATION,
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.backend.service.js","sourceRoot":"","sources":["../../../../../src/external-providers/services/embeddings.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embeddings execution service — the ONE seam through which the engine turns text into vectors\n * (RAG plan §3.d, DL2).\n *\n * Two callers, one code path — which is what keeps their vector spaces identical:\n * - the `rag:embedding-drain` worker embeds CORPUS chunks (`purpose: CORPUS`);\n * - Phase-5 retrieval embeds QUERIES (`purpose: QUERY`) through this same service, so a query\n * vector and the corpus vectors it searches were produced by the same class→model binding.\n *\n * ## Selection is by APPLICABILITY CLASS, never by model id (the standing model-selection rule)\n *\n * A caller names an {@link Embeddings_Applicability} class (`rag-default`); this service resolves\n * 1. the PROVIDER — the application's `EngineCapability.AI_EMBEDDINGS` selection\n * (`defineSaaSProviders` → `selection[AI_EMBEDDINGS].primary`), independent of the chat\n * provider by construction (DL2's whole point);\n * 2. the MODEL — `resolveEmbeddingsModelForApplicability` against the framework catalog.\n * The resolved `(class, model)` pair is what chunk rows are stamped with, and what the drain\n * worker's migration pass compares stamps against — so a preference edit re-binds the class and\n * the corpus converges onto the new model with no call-site changes.\n *\n * ## Failure posture\n *\n * \"Not configured\" (no provider serves `AI_EMBEDDINGS`) is a NON-ERROR state this service reports\n * through {@link resolveBinding}'s discriminated result — embeddings are an enhancement atop an\n * erasable corpus, and the drain worker turns it into one WARN per run, never a boot failure.\n * \"Configured but broken\" (provider selected but the contract/model/key is unusable) THROWS a\n * named CONFIGURATION error — that state is an operator mistake that silence would hide forever.\n *\n * ## Observability (H4)\n *\n * Every physical embedding call emits ONE agent-call trace of kind\n * {@link AgentCallTraceKind.EMBEDDING} through the same sink chain generations use — so the\n * PostHog sink can emit its `$ai_embedding` event and the companion filesystem sink records the\n * call. The trace's `output` is ALWAYS a `{ vectorCount, dims }` summary and its `input` a\n * `{ purpose, textCount, totalTextChars }` summary: raw vectors never enter the trace at any\n * verbosity (a vector is a lossy encoding of the source text, not telemetry), and the raw texts\n * stay out because a batch of corpus chunks is content the payload-gating levels were never\n * calibrated for. Usage completeness is OPERATION-AWARE: an embedding has no completion-token\n * dimension, so `tokenUsageComplete` is judged on input tokens alone.\n */\n\nimport { injectable, inject, optional } from 'inversify';\nimport { embedMany } from 'ai';\nimport {\n EngineCapability,\n ErrorType,\n ErrorCustomMessageReference,\n AgentCallOutcome,\n AgentCallTraceKind,\n AgentTraceabilityLevel,\n type AgentCallTrace,\n type AgentCallTraceSink,\n type AgentTraceabilityPolicy,\n} from '@wildo-ai/saas-models';\nimport {\n Embeddings_Applicability,\n EmbeddingsProvider_OperationKey,\n ExternalProvider_ExchangeProtocol_Kind,\n resolveEmbeddingsModelForApplicability,\n type EmbeddingsProvider_EmbedTextsOutput,\n type EmbeddingsProvider_TextPurpose,\n} from '@wildo-ai/external-connectors-models';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\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 ceiling on texts per physical embedding request, combined with the provider's\n * declared `maxTextsPerBatch` as `min(provider, engine)`. Exists because a provider ceiling\n * (OpenAI: 2048 inputs) bounds REQUEST COUNT, not payload size — 2048 two-kilobyte chunks is a\n * ~4 MB request body; 256 keeps a worst-case batch well under typical body limits while still\n * amortizing per-request overhead across a whole chunk set.\n */\nexport const EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL = 256;\n\n/**\n * The `agentRef` embeddings traces carry. Not a registered flows-actors agent — embeddings are a\n * protocol-kind execution, not an agent modality (DL2) — but the trace contract keys analytics\n * spans on `agentRef`, so the engine names its embedding executor stably here.\n */\nexport const EMBEDDINGS_TRACE_AGENT_REF = 'engine:embeddings';\n\n/** The resolved class→provider→model binding — the stamp identity chunk rows carry (DL2 migration key). */\nexport interface EmbeddingsResolvedBinding {\n /** The applicability class the binding was resolved FOR — persisted as `embeddingClass`. */\n applicability: Embeddings_Applicability;\n providerRef: string;\n /** Concrete model id — persisted as `embeddingModel`. Never authored at a call site. */\n model: string;\n /** The model's catalog dimension — persisted as `embeddingDims`, verified against measured vectors. */\n dims: number;\n /** Effective per-call text ceiling: `min(provider-declared, engine ceiling)`. */\n maxTextsPerBatch: number;\n /** Provider-declared retry posture, forwarded to the AI-SDK call. */\n maxRetries?: number;\n}\n\n/** Discriminated \"is embedding possible here?\" answer — see the file header's failure posture. */\nexport type EmbeddingsBindingResolution =\n | { configured: true; binding: EmbeddingsResolvedBinding }\n | {\n configured: false;\n /**\n * Why nothing is configured — for the drain worker's single WARN. Always the benign shape\n * (capability off / no provider declared); broken-but-selected states THROW instead.\n */\n reason: 'no_provider_for_capability';\n };\n\nexport interface EmbedTextsRequest {\n texts: readonly string[];\n purpose: EmbeddingsProvider_TextPurpose;\n applicability: Embeddings_Applicability;\n}\n\n@injectable()\nexport class EmbeddingsBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService)\n private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService)\n private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)\n private readonly backendProviderRegistry: BackendProviderRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.AgentCallTraceSink)\n @optional()\n private readonly agentTraceSink?: AgentCallTraceSink,\n @inject(SAAS_SERVICE_TYPES.AgentTraceabilityPolicy)\n @optional()\n private readonly agentTracePolicy?: AgentTraceabilityPolicy,\n ) {\n this.logDebug = this.logger.debugByType('EmbeddingsBackendService');\n this.logger.setDebugTypeLogging('EmbeddingsBackendService', false);\n }\n\n /**\n * Resolve the current class→provider→model binding, or report \"not configured\".\n *\n * `configured: false` covers exactly the benign absence (capability disabled, or no declared\n * provider fills `AI_EMBEDDINGS`). A provider that IS selected but cannot serve — contract\n * missing, `embedTexts` undeclared, model unresolvable for the class — THROWS a named\n * CONFIGURATION error: that is an operator mistake, and returning \"not configured\" for it\n * would make a misconfiguration indistinguishable from a deliberate opt-out.\n */\n public resolveBinding(applicability: Embeddings_Applicability): EmbeddingsBindingResolution {\n const providerRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(\n EngineCapability.AI_EMBEDDINGS,\n );\n if (!providerRef) {\n return { configured: false, reason: 'no_provider_for_capability' };\n }\n\n const runtimeContract = this.externalProvidersRegistry.getProviderRuntimeContract(\n providerRef,\n ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER,\n );\n if (runtimeContract?.kind !== 'embeddings') {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" is selected for AI_EMBEDDINGS but declares no EMBEDDINGS_PROVIDER runtime contract.`,\n },\n });\n }\n\n const semanticOperations = this.externalProvidersRegistry.getEmbeddingsSemanticOperationKeys(providerRef);\n if (!semanticOperations.includes(EmbeddingsProvider_OperationKey.EMBED_TEXTS)) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\"'s embeddings contract does not declare the embedTexts operation.`,\n },\n });\n }\n\n const resolution = resolveEmbeddingsModelForApplicability({ applicability, providerRef });\n // `=== false` rather than `!…`: this compiler configuration narrows the literal-discriminant\n // union on the explicit comparison but not on the truthiness form (measured, not assumed).\n if (resolution.resolved === false) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n applicability,\n failure: resolution.failure,\n consideredModels: resolution.consideredModels,\n message: `No embedding model resolves for applicability class \"${applicability}\" on provider \"${providerRef}\".`,\n },\n });\n }\n\n return {\n configured: true,\n binding: {\n applicability,\n providerRef,\n model: resolution.model,\n dims: resolution.entry.dims,\n maxTextsPerBatch: Math.min(\n runtimeContract.maxTextsPerBatch ?? EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL,\n EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL,\n ),\n maxRetries: runtimeContract.maxRetries,\n },\n };\n }\n\n /**\n * Embed ONE batch of texts under an applicability class (≤ the binding's `maxTextsPerBatch` —\n * paging a larger population into batches is the CALLER's job, because the caller owns the\n * run-level bounds and truncation reporting; this service owns one physical call).\n *\n * assurance-control: WILDO.INTEGRATION.OUTBOUND_ACTIVITY_AUDIT — this is the ONE egress through\n * which application text leaves for an external embeddings provider; every physical call emits a\n * kind-EMBEDDING agent-call trace (provider, model, token usage, outcome) through the standard\n * sink chain.\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — only the texts being embedded reach the\n * provider (no row context, no identifiers), and observability surfaces receive SUMMARIES only:\n * raw vectors and raw texts never enter traces, analytics, or logs at any verbosity.\n *\n * Verifies, before anything can be persisted: one vector per text, uniform measured dimension,\n * and measured dimension === the catalog's declared dimension for the resolved model (a\n * wrong-dims write would silently poison the ANN index the dims stamp keys). API keys are read\n * through the standard provider-secret path and never logged.\n */\n public async embedTexts(request: EmbedTextsRequest): Promise<EmbeddingsProvider_EmbedTextsOutput> {\n const resolutionResult = this.resolveBinding(request.applicability);\n if (!resolutionResult.configured) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n applicability: request.applicability,\n message: 'embedTexts was called with no AI_EMBEDDINGS provider configured. '\n + 'Callers must consult resolveBinding() first — the drain worker does, and reports the absence as a WARN.',\n },\n });\n }\n const binding = resolutionResult.binding;\n\n if (request.texts.length === 0 || request.texts.length > binding.maxTextsPerBatch) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n textCount: request.texts.length,\n maxTextsPerBatch: binding.maxTextsPerBatch,\n message: 'embedTexts takes 1..maxTextsPerBatch texts per call — batching a larger population is the caller\\'s job.',\n },\n });\n }\n\n const protocolKind = ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER;\n const apiKey = this.externalProvidersRegistry.getProviderApiKey(binding.providerRef, protocolKind);\n if (!apiKey) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n protocolKind,\n message: 'API key not found for the embeddings provider. Configure the provider secret in the application environment.',\n },\n });\n }\n\n const contract = this.backendProviderRegistry.getRuntimeContract(binding.providerRef, protocolKind);\n if (contract?.kind !== 'embeddings') {\n // Unreachable past resolveBinding() unless the registry mutated mid-call; named anyway.\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: { providerRef: binding.providerRef, message: 'Embeddings runtime contract vanished between resolution and invocation.' },\n });\n }\n const client = contract.sdkFactory(apiKey) as { textEmbeddingModel?: (model: string) => unknown };\n if (typeof client?.textEmbeddingModel !== 'function') {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n message: 'The embeddings provider\\'s SDK client exposes no textEmbeddingModel() — its sdkFactory does not serve the embeddings contract.',\n },\n });\n }\n\n const startTime = Date.now();\n const callTimestamp = new Date(startTime).toISOString();\n try {\n const result = await embedMany({\n model: client.textEmbeddingModel(binding.model) as never,\n values: [...request.texts],\n ...(binding.maxRetries !== undefined ? { maxRetries: binding.maxRetries } : {}),\n });\n\n const vectors = result.embeddings as number[][];\n if (vectors.length !== request.texts.length) {\n throw new Error(\n `Embeddings provider returned ${vectors.length} vectors for ${request.texts.length} texts — refusing a misaligned batch.`,\n );\n }\n const measuredDims = vectors[0]?.length ?? 0;\n if (vectors.some((vector) => vector.length !== measuredDims)) {\n throw new Error('Embeddings provider returned vectors of mixed dimensions within one batch — refusing.');\n }\n if (measuredDims !== binding.dims) {\n // Fail CLOSED: persisting under a wrong dims stamp poisons the per-dims ANN index and\n // every similarity comparison. The batch stays unembedded and the drain retries.\n throw new Error(\n `Embeddings model \"${binding.model}\" returned ${measuredDims}-dimensional vectors but its catalog row declares ${binding.dims} — refusing to stamp a wrong dimension.`,\n );\n }\n\n const inputTokens = typeof result.usage?.tokens === 'number' ? result.usage.tokens : undefined;\n const output: EmbeddingsProvider_EmbedTextsOutput = {\n vectors,\n model: binding.model,\n dims: measuredDims,\n usage: { ...(inputTokens !== undefined ? { inputTokens } : {}) },\n };\n await this.emitEmbeddingTrace(request, binding, {\n outcome: AgentCallOutcome.SUCCESS,\n callTimestamp,\n startTime,\n vectorCount: vectors.length,\n dims: measuredDims,\n inputTokens,\n });\n return output;\n } catch (error) {\n await this.emitEmbeddingTrace(request, binding, {\n outcome: AgentCallOutcome.FAILURE,\n callTimestamp,\n startTime,\n error,\n });\n throw error;\n }\n }\n\n /**\n * One trace per physical embedding call — kind EMBEDDING, summaries only (file header: raw\n * vectors and raw texts never enter the trace). Best-effort: a sink failure never turns a\n * successful embedding into a failed one (the agents-service discipline).\n */\n private async emitEmbeddingTrace(\n request: EmbedTextsRequest,\n binding: EmbeddingsResolvedBinding,\n call: {\n outcome: AgentCallOutcome;\n callTimestamp: string;\n startTime: number;\n vectorCount?: number;\n dims?: number;\n inputTokens?: number;\n error?: unknown;\n },\n ): Promise<void> {\n const sink = this.agentTraceSink;\n if (!sink) {\n return;\n }\n const level = this.agentTracePolicy?.level ?? AgentTraceabilityLevel.NONE;\n if (level === AgentTraceabilityLevel.NONE) {\n return;\n }\n const executionTime = Date.now() - call.startTime;\n const trace: AgentCallTrace = {\n agentRef: EMBEDDINGS_TRACE_AGENT_REF,\n kind: AgentCallTraceKind.EMBEDDING,\n provider: binding.providerRef,\n model: binding.model,\n callTimestamp: call.callTimestamp,\n outcome: call.outcome,\n // Summaries by contract — never the texts, never the vectors (file header).\n input: {\n purpose: request.purpose,\n applicability: binding.applicability,\n textCount: request.texts.length,\n totalTextChars: request.texts.reduce((total, text) => total + text.length, 0),\n },\n ...(call.outcome === AgentCallOutcome.SUCCESS\n ? { output: { vectorCount: call.vectorCount, dims: call.dims } }\n : {}),\n context: {\n callTimestamp: call.callTimestamp,\n executionTime,\n finishedAt: new Date().toISOString(),\n usage: {\n ...(call.inputTokens !== undefined ? { promptTokens: call.inputTokens, totalTokens: call.inputTokens } : {}),\n // Operation-aware completeness (H4): an embedding has no completion-token dimension,\n // so input tokens alone decide — never flagged incomplete for tokens it cannot have.\n tokenUsageComplete: call.inputTokens !== undefined,\n },\n },\n ...(call.outcome === AgentCallOutcome.FAILURE\n ? {\n error: call.error instanceof Error\n ? { name: call.error.name, message: call.error.message }\n : { message: typeof call.error === 'string' ? call.error : 'Unknown embeddings invocation error' },\n }\n : {}),\n };\n try {\n await sink.recordAgentCall({ trace, level });\n } catch (sinkError) {\n this.logDebug('Embedding trace sink failed (non-fatal)', {\n providerRef: binding.providerRef,\n error: sinkError instanceof Error ? sinkError.message : String(sinkError),\n });\n }\n }\n}\n"]}
1
+ {"version":3,"file":"embeddings.backend.service.js","sourceRoot":"","sources":["../../../../src/external-providers/services/embeddings.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embeddings execution service — the ONE seam through which the engine turns text into vectors\n * (RAG plan §3.d, DL2).\n *\n * Two callers, one code path — which is what keeps their vector spaces identical:\n * - the `rag:embedding-drain` worker embeds CORPUS chunks (`purpose: CORPUS`);\n * - Phase-5 retrieval embeds QUERIES (`purpose: QUERY`) through this same service, so a query\n * vector and the corpus vectors it searches were produced by the same class→model binding.\n *\n * ## Selection is by APPLICABILITY CLASS, never by model id (the standing model-selection rule)\n *\n * A caller names an {@link Embeddings_Applicability} class (`rag-default`); this service resolves\n * 1. the PROVIDER — the application's `EngineCapability.AI_EMBEDDINGS` selection\n * (`defineSaaSProviders` → `selection[AI_EMBEDDINGS].primary`), independent of the chat\n * provider by construction (DL2's whole point);\n * 2. the MODEL — `resolveEmbeddingsModelForApplicability` against the framework catalog.\n * The resolved `(class, model)` pair is what chunk rows are stamped with, and what the drain\n * worker's migration pass compares stamps against — so a preference edit re-binds the class and\n * the corpus converges onto the new model with no call-site changes.\n *\n * ## Failure posture\n *\n * \"Not configured\" (no provider serves `AI_EMBEDDINGS`) is a NON-ERROR state this service reports\n * through {@link resolveBinding}'s discriminated result — embeddings are an enhancement atop an\n * erasable corpus, and the drain worker turns it into one WARN per run, never a boot failure.\n * \"Configured but broken\" (provider selected but the contract/model/key is unusable) THROWS a\n * named CONFIGURATION error — that state is an operator mistake that silence would hide forever.\n *\n * ## Observability (H4)\n *\n * Every physical embedding call emits ONE agent-call trace of kind\n * {@link AgentCallTraceKind.EMBEDDING} through the same sink chain generations use — so the\n * PostHog sink can emit its `$ai_embedding` event and the companion filesystem sink records the\n * call. The trace's `output` is ALWAYS a `{ vectorCount, dims }` summary and its `input` a\n * `{ purpose, textCount, totalTextChars }` summary: raw vectors never enter the trace at any\n * verbosity (a vector is a lossy encoding of the source text, not telemetry), and the raw texts\n * stay out because a batch of corpus chunks is content the payload-gating levels were never\n * calibrated for. Usage completeness is OPERATION-AWARE: an embedding has no completion-token\n * dimension, so `tokenUsageComplete` is judged on input tokens alone.\n */\n\nimport { injectable, inject, optional } from 'inversify';\nimport { embedMany } from 'ai';\nimport {\n EngineCapability,\n ErrorType,\n ErrorCustomMessageReference,\n AgentCallOutcome,\n AgentCallTraceKind,\n AgentTraceabilityLevel,\n type AgentCallTrace,\n type AgentCallTraceSink,\n type AgentTraceabilityPolicy,\n} from '@wildo-ai/saas-models';\nimport {\n Embeddings_Applicability,\n EmbeddingsProvider_OperationKey,\n ExternalProvider_ExchangeProtocol_Kind,\n resolveEmbeddingsModelForApplicability,\n type EmbeddingsProvider_EmbedTextsOutput,\n type EmbeddingsProvider_TextPurpose,\n ProviderProtocolRuntimeKind,\n} from '@wildo-ai/external-connectors-models';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\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 ceiling on texts per physical embedding request, combined with the provider's\n * declared `maxTextsPerBatch` as `min(provider, engine)`. Exists because a provider ceiling\n * (OpenAI: 2048 inputs) bounds REQUEST COUNT, not payload size — 2048 two-kilobyte chunks is a\n * ~4 MB request body; 256 keeps a worst-case batch well under typical body limits while still\n * amortizing per-request overhead across a whole chunk set.\n */\nexport const EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL = 256;\n\n/**\n * The `agentRef` embeddings traces carry. Not a registered flows-actors agent — embeddings are a\n * protocol-kind execution, not an agent modality (DL2) — but the trace contract keys analytics\n * spans on `agentRef`, so the engine names its embedding executor stably here.\n */\nexport const EMBEDDINGS_TRACE_AGENT_REF = 'engine:embeddings';\n\n/** The resolved class→provider→model binding — the stamp identity chunk rows carry (DL2 migration key). */\nexport interface EmbeddingsResolvedBinding {\n /** The applicability class the binding was resolved FOR — persisted as `embeddingClass`. */\n applicability: Embeddings_Applicability;\n providerRef: string;\n /** Concrete model id — persisted as `embeddingModel`. Never authored at a call site. */\n model: string;\n /** The model's catalog dimension — persisted as `embeddingDims`, verified against measured vectors. */\n dims: number;\n /** Effective per-call text ceiling: `min(provider-declared, engine ceiling)`. */\n maxTextsPerBatch: number;\n /** Provider-declared retry posture, forwarded to the AI-SDK call. */\n maxRetries?: number;\n}\n\n/** Discriminated \"is embedding possible here?\" answer — see the file header's failure posture. */\nexport type EmbeddingsBindingResolution =\n | { configured: true; binding: EmbeddingsResolvedBinding }\n | {\n configured: false;\n /**\n * Why nothing is configured — for the drain worker's single WARN. Always the benign shape\n * (capability off / no provider declared); broken-but-selected states THROW instead.\n */\n reason: 'no_provider_for_capability';\n };\n\nexport interface EmbedTextsRequest {\n texts: readonly string[];\n purpose: EmbeddingsProvider_TextPurpose;\n applicability: Embeddings_Applicability;\n}\n\n@injectable()\nexport class EmbeddingsBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService)\n private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService)\n private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)\n private readonly backendProviderRegistry: BackendProviderRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.AgentCallTraceSink)\n @optional()\n private readonly agentTraceSink?: AgentCallTraceSink,\n @inject(SAAS_SERVICE_TYPES.AgentTraceabilityPolicy)\n @optional()\n private readonly agentTracePolicy?: AgentTraceabilityPolicy,\n ) {\n this.logDebug = this.logger.debugByType('EmbeddingsBackendService');\n this.logger.setDebugTypeLogging('EmbeddingsBackendService', false);\n }\n\n /**\n * Resolve the current class→provider→model binding, or report \"not configured\".\n *\n * `configured: false` covers exactly the benign absence (capability disabled, or no declared\n * provider fills `AI_EMBEDDINGS`). A provider that IS selected but cannot serve — contract\n * missing, `embedTexts` undeclared, model unresolvable for the class — THROWS a named\n * CONFIGURATION error: that is an operator mistake, and returning \"not configured\" for it\n * would make a misconfiguration indistinguishable from a deliberate opt-out.\n */\n public resolveBinding(applicability: Embeddings_Applicability): EmbeddingsBindingResolution {\n const providerRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(\n EngineCapability.AI_EMBEDDINGS,\n );\n if (!providerRef) {\n return { configured: false, reason: 'no_provider_for_capability' };\n }\n\n const runtimeContract = this.externalProvidersRegistry.getProviderRuntimeContract(\n providerRef,\n ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER,\n );\n if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" is selected for AI_EMBEDDINGS but declares no EMBEDDINGS_PROVIDER runtime contract.`,\n },\n });\n }\n\n const semanticOperations = this.externalProvidersRegistry.getEmbeddingsSemanticOperationKeys(providerRef);\n if (!semanticOperations.includes(EmbeddingsProvider_OperationKey.EMBED_TEXTS)) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\"'s embeddings contract does not declare the embedTexts operation.`,\n },\n });\n }\n\n const resolution = resolveEmbeddingsModelForApplicability({ applicability, providerRef });\n // `=== false` rather than `!…`: this compiler configuration narrows the literal-discriminant\n // union on the explicit comparison but not on the truthiness form (measured, not assumed).\n if (resolution.resolved === false) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n applicability,\n failure: resolution.failure,\n consideredModels: resolution.consideredModels,\n message: `No embedding model resolves for applicability class \"${applicability}\" on provider \"${providerRef}\".`,\n },\n });\n }\n\n return {\n configured: true,\n binding: {\n applicability,\n providerRef,\n model: resolution.model,\n dims: resolution.entry.dims,\n maxTextsPerBatch: Math.min(\n runtimeContract.maxTextsPerBatch ?? EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL,\n EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL,\n ),\n maxRetries: runtimeContract.maxRetries,\n },\n };\n }\n\n /**\n * Embed ONE batch of texts under an applicability class (≤ the binding's `maxTextsPerBatch` —\n * paging a larger population into batches is the CALLER's job, because the caller owns the\n * run-level bounds and truncation reporting; this service owns one physical call).\n *\n * assurance-control: WILDO.INTEGRATION.OUTBOUND_ACTIVITY_AUDIT — this is the ONE egress through\n * which application text leaves for an external embeddings provider; every physical call emits a\n * kind-EMBEDDING agent-call trace (provider, model, token usage, outcome) through the standard\n * sink chain.\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — only the texts being embedded reach the\n * provider (no row context, no identifiers), and observability surfaces receive SUMMARIES only:\n * raw vectors and raw texts never enter traces, analytics, or logs at any verbosity.\n *\n * Verifies, before anything can be persisted: one vector per text, uniform measured dimension,\n * and measured dimension === the catalog's declared dimension for the resolved model (a\n * wrong-dims write would silently poison the ANN index the dims stamp keys). API keys are read\n * through the standard provider-secret path and never logged.\n */\n public async embedTexts(request: EmbedTextsRequest): Promise<EmbeddingsProvider_EmbedTextsOutput> {\n const resolutionResult = this.resolveBinding(request.applicability);\n if (!resolutionResult.configured) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n applicability: request.applicability,\n message: 'embedTexts was called with no AI_EMBEDDINGS provider configured. '\n + 'Callers must consult resolveBinding() first — the drain worker does, and reports the absence as a WARN.',\n },\n });\n }\n const binding = resolutionResult.binding;\n\n if (request.texts.length === 0 || request.texts.length > binding.maxTextsPerBatch) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n textCount: request.texts.length,\n maxTextsPerBatch: binding.maxTextsPerBatch,\n message: 'embedTexts takes 1..maxTextsPerBatch texts per call — batching a larger population is the caller\\'s job.',\n },\n });\n }\n\n const protocolKind = ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER;\n const apiKey = this.externalProvidersRegistry.getProviderApiKey(binding.providerRef, protocolKind);\n if (!apiKey) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n protocolKind,\n message: 'API key not found for the embeddings provider. Configure the provider secret in the application environment.',\n },\n });\n }\n\n const contract = this.backendProviderRegistry.getRuntimeContract(binding.providerRef, protocolKind);\n if (contract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {\n // Unreachable past resolveBinding() unless the registry mutated mid-call; named anyway.\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: { providerRef: binding.providerRef, message: 'Embeddings runtime contract vanished between resolution and invocation.' },\n });\n }\n const client = (await contract.sdkFactory(apiKey)) as { textEmbeddingModel?: (model: string) => unknown };\n if (typeof client?.textEmbeddingModel !== 'function') {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n message: 'The embeddings provider\\'s SDK client exposes no textEmbeddingModel() — its sdkFactory does not serve the embeddings contract.',\n },\n });\n }\n\n const startTime = Date.now();\n const callTimestamp = new Date(startTime).toISOString();\n try {\n const result = await embedMany({\n model: client.textEmbeddingModel(binding.model) as never,\n values: [...request.texts],\n ...(binding.maxRetries !== undefined ? { maxRetries: binding.maxRetries } : {}),\n });\n\n const vectors = result.embeddings as number[][];\n if (vectors.length !== request.texts.length) {\n throw new Error(\n `Embeddings provider returned ${vectors.length} vectors for ${request.texts.length} texts — refusing a misaligned batch.`,\n );\n }\n const measuredDims = vectors[0]?.length ?? 0;\n if (vectors.some((vector) => vector.length !== measuredDims)) {\n throw new Error('Embeddings provider returned vectors of mixed dimensions within one batch — refusing.');\n }\n if (measuredDims !== binding.dims) {\n // Fail CLOSED: persisting under a wrong dims stamp poisons the per-dims ANN index and\n // every similarity comparison. The batch stays unembedded and the drain retries.\n throw new Error(\n `Embeddings model \"${binding.model}\" returned ${measuredDims}-dimensional vectors but its catalog row declares ${binding.dims} — refusing to stamp a wrong dimension.`,\n );\n }\n\n const inputTokens = typeof result.usage?.tokens === 'number' ? result.usage.tokens : undefined;\n const output: EmbeddingsProvider_EmbedTextsOutput = {\n vectors,\n model: binding.model,\n dims: measuredDims,\n usage: { ...(inputTokens !== undefined ? { inputTokens } : {}) },\n };\n await this.emitEmbeddingTrace(request, binding, {\n outcome: AgentCallOutcome.SUCCESS,\n callTimestamp,\n startTime,\n vectorCount: vectors.length,\n dims: measuredDims,\n inputTokens,\n });\n return output;\n } catch (error) {\n await this.emitEmbeddingTrace(request, binding, {\n outcome: AgentCallOutcome.FAILURE,\n callTimestamp,\n startTime,\n error,\n });\n throw error;\n }\n }\n\n /**\n * One trace per physical embedding call — kind EMBEDDING, summaries only (file header: raw\n * vectors and raw texts never enter the trace). Best-effort: a sink failure never turns a\n * successful embedding into a failed one (the agents-service discipline).\n */\n private async emitEmbeddingTrace(\n request: EmbedTextsRequest,\n binding: EmbeddingsResolvedBinding,\n call: {\n outcome: AgentCallOutcome;\n callTimestamp: string;\n startTime: number;\n vectorCount?: number;\n dims?: number;\n inputTokens?: number;\n error?: unknown;\n },\n ): Promise<void> {\n const sink = this.agentTraceSink;\n if (!sink) {\n return;\n }\n const level = this.agentTracePolicy?.level ?? AgentTraceabilityLevel.NONE;\n if (level === AgentTraceabilityLevel.NONE) {\n return;\n }\n const executionTime = Date.now() - call.startTime;\n const trace: AgentCallTrace = {\n agentRef: EMBEDDINGS_TRACE_AGENT_REF,\n kind: AgentCallTraceKind.EMBEDDING,\n provider: binding.providerRef,\n model: binding.model,\n callTimestamp: call.callTimestamp,\n outcome: call.outcome,\n // Summaries by contract — never the texts, never the vectors (file header).\n input: {\n purpose: request.purpose,\n applicability: binding.applicability,\n textCount: request.texts.length,\n totalTextChars: request.texts.reduce((total, text) => total + text.length, 0),\n },\n ...(call.outcome === AgentCallOutcome.SUCCESS\n ? { output: { vectorCount: call.vectorCount, dims: call.dims } }\n : {}),\n context: {\n callTimestamp: call.callTimestamp,\n executionTime,\n finishedAt: new Date().toISOString(),\n usage: {\n ...(call.inputTokens !== undefined ? { promptTokens: call.inputTokens, totalTokens: call.inputTokens } : {}),\n // Operation-aware completeness (H4): an embedding has no completion-token dimension,\n // so input tokens alone decide — never flagged incomplete for tokens it cannot have.\n tokenUsageComplete: call.inputTokens !== undefined,\n },\n },\n ...(call.outcome === AgentCallOutcome.FAILURE\n ? {\n error: call.error instanceof Error\n ? { name: call.error.name, message: call.error.message }\n : { message: typeof call.error === 'string' ? call.error : 'Unknown embeddings invocation error' },\n }\n : {}),\n };\n try {\n await sink.recordAgentCall({ trace, level });\n } catch (sinkError) {\n this.logDebug('Embedding trace sink failed (non-fatal)', {\n providerRef: binding.providerRef,\n error: sinkError instanceof Error ? sinkError.message : String(sinkError),\n });\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"external-api-handler.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/external-providers/services/external-api-handler.backend.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAE9G,qBACa,gCAAgC;IAIN,OAAO,CAAC,QAAQ,CAAC,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJ/E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+D;gBAGlC,MAAM,EAAE,aAAa,EACR,YAAY,EAAE,0BAA0B;CAK5G"}
1
+ {"version":3,"file":"external-api-handler.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/services/external-api-handler.backend.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAE9G,qBACa,gCAAgC;IAIN,OAAO,CAAC,QAAQ,CAAC,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJ/E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+D;gBAGlC,MAAM,EAAE,aAAa,EACR,YAAY,EAAE,0BAA0B;CAK5G"}