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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (972) hide show
  1. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  2. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
  3. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  4. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  5. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
  6. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  7. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
  8. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
  9. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
  10. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
  11. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
  12. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
  13. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
  14. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
  15. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
  16. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
  18. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  19. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts +14 -3
  20. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  21. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +138 -24
  22. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  23. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts +3 -1
  24. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js +8 -3
  26. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  27. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts +11 -0
  28. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  29. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js +11 -2
  30. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js.map +1 -1
  31. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  32. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
  34. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  36. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +48 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +102 -30
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js +16 -0
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts +20 -6
  55. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +96 -32
  57. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  58. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts +3 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js +32 -7
  61. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts +8 -5
  63. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.js.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +80 -0
  66. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +298 -23
  68. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts +71 -1
  70. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +85 -5
  72. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +21 -0
  74. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  75. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +146 -4
  76. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  77. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  78. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  80. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts +3 -26
  81. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js +3 -68
  83. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  86. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  88. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  90. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  91. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  92. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +533 -43
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  95. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  96. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  100. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  105. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  106. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  107. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  108. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  109. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  110. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  113. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
  114. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  115. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  116. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  118. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  119. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  121. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  122. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  123. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  124. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  125. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  126. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  127. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  128. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  129. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  130. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  131. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +54 -13
  133. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
  135. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
  137. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  139. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  140. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  141. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  142. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  143. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  144. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  145. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  146. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  148. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  149. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
  150. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  151. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
  152. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  153. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  154. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  155. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  156. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  157. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  158. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  159. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
  160. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  161. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  162. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  163. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  164. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  165. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  166. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +263 -13
  168. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +376 -58
  170. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +264 -7
  172. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +414 -5
  174. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  177. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +16 -0
  179. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -0
  180. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +140 -0
  181. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -0
  182. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  183. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +65 -6
  185. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  186. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  187. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  188. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  189. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  190. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  191. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +45 -0
  192. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  194. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  196. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  197. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  198. package/dist/esm/config/custom/application-config-controller.backend.service.js +7 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.js.map +1 -1
  200. package/dist/esm/config/models/app-config.backend.schemas.d.ts +146 -46
  201. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  203. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  204. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  205. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  207. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  208. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  209. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  210. package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
  211. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  212. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  213. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  214. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  215. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +43 -1
  216. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration.backend.utils.js +52 -3
  218. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  219. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
  220. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  221. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
  222. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  223. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts +2 -2
  224. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js +2 -2
  225. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js.map +1 -1
  226. package/dist/esm/databases/models/filter.backend.schemas.js +2 -2
  227. package/dist/esm/databases/models/filter.backend.schemas.js.map +1 -1
  228. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  229. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js +20 -1
  230. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js.map +1 -1
  231. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  232. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  233. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  234. package/dist/esm/databases/services/redis.service.d.ts +27 -0
  235. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  236. package/dist/esm/databases/services/redis.service.js +29 -0
  237. package/dist/esm/databases/services/redis.service.js.map +1 -1
  238. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  239. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  240. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  241. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  242. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  243. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  244. package/dist/esm/errors/services/error-handler.backend.service.js +134 -8
  245. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  246. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  247. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  248. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  249. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  250. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  251. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  252. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  253. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  254. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  255. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  256. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  257. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  258. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts +41 -0
  259. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -0
  260. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js +40 -0
  261. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js.map +1 -0
  262. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts +64 -0
  263. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -0
  264. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js +193 -0
  265. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js.map +1 -0
  266. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +72 -4
  267. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  268. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +60 -19
  269. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  270. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  271. package/dist/esm/external-data/external-data-transform.backend.js +7 -1
  272. package/dist/esm/external-data/external-data-transform.backend.js.map +1 -1
  273. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts +2 -0
  274. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  275. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js +13 -0
  276. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js.map +1 -1
  277. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  278. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  279. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  280. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
  281. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  282. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
  283. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  284. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  285. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  286. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  287. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  288. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  289. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  290. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
  291. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  292. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  293. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  294. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  295. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  296. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  297. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  298. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  299. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  300. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  301. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  302. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  303. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  304. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  305. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  306. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  307. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  308. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  309. package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
  310. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  311. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  313. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  314. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +306 -7
  315. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  316. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +539 -45
  317. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  318. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  319. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
  320. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  321. package/dist/esm/files/controllers/file.controller.d.ts +24 -1
  322. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  323. package/dist/esm/files/controllers/file.controller.js +83 -11
  324. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  325. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts +17 -0
  326. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -0
  327. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js +1 -0
  328. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -0
  329. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +5 -1
  330. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  331. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +76 -13
  332. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  333. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts +18 -0
  334. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  335. package/dist/esm/files/services/file-operation-handler.backend.service.js +36 -28
  336. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  337. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  338. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  339. package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
  340. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  341. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  342. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  343. package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
  344. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  345. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +214 -0
  346. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -0
  347. package/dist/esm/files/services/file-upload-grant.backend.service.js +566 -0
  348. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -0
  349. package/dist/esm/files/services/files.backend.service.d.ts +87 -0
  350. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  351. package/dist/esm/files/services/files.backend.service.js +252 -19
  352. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  353. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  354. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  355. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  356. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  357. package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
  358. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  359. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  360. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  361. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  363. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  364. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  365. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  366. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  367. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  368. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  369. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  370. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  371. package/dist/esm/files/utils/file-uploader.utils.js +12 -0
  372. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  373. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  374. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  375. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  376. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  377. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  378. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  379. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  380. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  381. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  382. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  383. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  384. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  385. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  386. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  387. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  388. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  389. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  390. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +200 -44
  391. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  392. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  393. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  394. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  395. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  396. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  397. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  398. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  399. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  400. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  401. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  402. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  403. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  404. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  405. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  406. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  407. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  408. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  409. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  410. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  411. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  412. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  413. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  414. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
  415. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  416. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
  417. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  418. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  419. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  420. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  421. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  422. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  423. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  424. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  425. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  426. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  427. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  428. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +107 -1
  429. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  430. package/dist/esm/flows-actors/services/agents.backend.service.js +519 -56
  431. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  432. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
  433. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
  435. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  437. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  439. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  440. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  442. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  443. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  444. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  445. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  446. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  447. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  448. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
  449. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  450. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  451. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  452. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  453. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts +151 -41
  455. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +308 -143
  457. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  458. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  459. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  461. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  462. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  464. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  465. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  466. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  467. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  468. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  469. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  470. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  471. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  472. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  473. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  474. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  475. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  476. package/dist/esm/index.d.ts +15 -5
  477. package/dist/esm/index.d.ts.map +1 -1
  478. package/dist/esm/index.js +45 -5
  479. package/dist/esm/index.js.map +1 -1
  480. package/dist/esm/inject/models/container.d.ts.map +1 -1
  481. package/dist/esm/inject/models/container.js +82 -10
  482. package/dist/esm/inject/models/container.js.map +1 -1
  483. package/dist/esm/inject/models/service-types.d.ts +20 -3
  484. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  485. package/dist/esm/inject/models/service-types.js +21 -3
  486. package/dist/esm/inject/models/service-types.js.map +1 -1
  487. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  488. package/dist/esm/mcp/controllers/mcp.controller.js +32 -4
  489. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  490. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts +34 -0
  491. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  492. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js +42 -0
  493. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  494. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +84 -1
  495. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  496. package/dist/esm/mcp/services/mcp-server.backend.service.js +235 -11
  497. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  498. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts +64 -2
  499. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  500. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +152 -6
  501. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  502. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  503. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  504. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  505. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  506. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  507. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  508. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  509. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  510. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  511. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  512. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  513. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  514. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  515. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  516. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  517. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  518. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  519. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  520. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  521. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  522. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  523. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  524. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  525. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  526. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  527. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  528. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
  529. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  530. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
  531. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  532. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  533. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  534. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  535. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  536. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  537. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  538. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  539. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  540. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  541. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  542. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  543. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  544. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  545. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  546. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  547. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  548. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  549. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  550. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  551. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  552. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  553. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  554. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  555. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  556. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  557. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  558. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
  559. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  560. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  561. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  562. package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
  563. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  564. package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
  565. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  566. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  567. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  568. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  569. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  570. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  571. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  572. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  573. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +108 -13
  574. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  575. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +432 -101
  576. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  577. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
  578. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  579. package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
  580. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  581. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  582. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  583. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  584. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  585. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  586. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  587. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +54 -7
  588. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  589. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts +5 -5
  590. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  591. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js +14 -13
  592. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js.map +1 -1
  593. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts +2 -1
  594. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  595. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +18 -8
  596. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  597. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +20 -18
  599. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  600. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  601. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  602. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  603. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  604. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  605. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  606. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  607. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  608. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  609. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  610. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  611. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js +4 -1
  612. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js.map +1 -1
  613. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  614. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  615. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  616. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  617. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  618. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  619. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  620. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  621. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  622. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  623. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  624. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  625. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  626. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  627. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  628. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  629. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  630. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  631. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  632. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  633. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  634. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  635. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  636. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  637. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  638. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  639. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  640. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  641. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  642. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  643. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  644. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  645. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  646. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  647. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  648. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  649. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  650. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  651. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  652. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  653. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  654. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  655. package/dist/esm/queue/queue.backend.service.js +26 -4
  656. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  657. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  658. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  659. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  660. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  661. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  662. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  663. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  664. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  665. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  666. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  667. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  668. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  669. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  670. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  671. package/dist/esm/requests/service/websocket.service.js +88 -15
  672. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  673. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  674. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
  675. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  676. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  677. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  678. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  679. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  680. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  681. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  682. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  683. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  684. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  685. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  686. package/dist/esm/resources/services/resource-id.backend.service.js +3 -3
  687. package/dist/esm/resources/services/resource-id.backend.service.js.map +1 -1
  688. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
  689. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  690. package/dist/esm/resources/services/resources-registry.backend.service.js +91 -7
  691. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  692. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  693. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  694. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  695. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  696. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  697. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  698. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  699. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  700. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  701. package/dist/esm/runtime/services/execution-context-creator.backend.service.js +13 -7
  702. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  703. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  704. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  705. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  706. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  707. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  708. package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
  709. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  710. package/dist/esm/runtime/services/start-application.backend.service.d.ts +47 -1
  711. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  712. package/dist/esm/runtime/services/start-application.backend.service.js +343 -77
  713. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  714. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  715. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  716. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  717. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  718. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  719. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  720. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  721. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  722. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  723. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
  724. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  725. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  726. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  727. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  728. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  729. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  730. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  731. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  732. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  733. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts +3 -23
  734. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  735. package/dist/esm/security/authentications/models/jwt.backend.schemas.js +20 -45
  736. package/dist/esm/security/authentications/models/jwt.backend.schemas.js.map +1 -1
  737. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  738. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  739. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  740. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  741. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  742. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  743. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  744. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  745. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  746. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  747. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  748. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  749. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  750. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  751. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  752. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  753. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  754. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  755. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  756. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
  757. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  758. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
  759. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  760. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts +9 -1
  761. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  762. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +77 -2
  763. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  764. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  765. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js +5 -3
  766. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js.map +1 -1
  767. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  768. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  769. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  770. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  771. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  772. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
  773. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  774. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  775. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
  776. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  777. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  778. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  780. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  781. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +41 -1
  782. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +87 -4
  784. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  786. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  787. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  788. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  789. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  790. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  792. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  793. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  794. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  795. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  796. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  797. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  798. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
  799. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  800. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  801. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  803. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  804. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  805. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  807. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  808. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  809. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  811. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  814. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  815. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  816. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  817. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  819. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  820. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  821. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  822. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  823. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  824. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  825. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  826. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  827. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  828. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  829. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  830. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  831. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js +24 -1
  832. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js.map +1 -1
  833. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  834. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  835. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  836. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  837. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  838. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
  839. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  840. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts +117 -0
  841. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -0
  842. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js +104 -0
  843. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js.map +1 -0
  844. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  845. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  846. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  847. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  848. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
  849. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  850. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
  851. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  852. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
  853. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  854. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
  855. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  856. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +175 -14
  857. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +385 -49
  859. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  860. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  861. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  862. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  863. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  864. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  865. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  866. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  867. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  868. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
  869. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  870. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
  871. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  872. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
  873. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  874. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  875. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  876. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  877. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  878. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  879. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  880. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
  881. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  882. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
  883. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  884. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  885. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  886. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  887. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  888. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  889. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  890. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
  891. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  892. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
  893. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  894. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
  895. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  896. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  897. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  898. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  899. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  900. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
  901. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  902. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
  903. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  904. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  905. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  906. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  907. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  908. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
  909. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  910. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  911. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  912. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  913. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  914. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  915. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  916. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  917. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  918. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  919. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  920. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts +18 -1
  921. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  922. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js +110 -74
  923. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js.map +1 -1
  924. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts +22 -0
  925. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -0
  926. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js +22 -0
  927. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js.map +1 -0
  928. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts +17 -3
  929. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  930. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js +12 -0
  931. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js.map +1 -1
  932. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +41 -3
  933. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  934. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +83 -20
  935. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  936. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  937. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  938. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  939. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  940. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  941. package/dist/esm/security/jwt/services/jwt.backend.service.js +1 -18
  942. package/dist/esm/security/jwt/services/jwt.backend.service.js.map +1 -1
  943. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  944. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  945. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  946. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  947. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  948. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  949. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  950. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  951. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  952. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  953. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  954. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  955. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  956. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  957. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  958. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  959. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  960. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  961. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  962. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  963. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  964. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  965. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  966. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  967. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  968. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  969. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  970. package/dist/tsconfig.build.tsbuildinfo +1 -1
  971. package/package.json +17 -9
  972. package/dist/esm/.builder.pid +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"acp-session-runner.backend.utils.js","sourceRoot":"","sources":["../../../../../src/flows-actors/utils/acp-session-runner.backend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Client Protocol session runner.\n *\n * Drives one coding turn: spawn the agent, negotiate `initialize`, open a\n * session against a confined working directory, send one `session/prompt`, and\n * settle when the agent reports a stop reason — answering the agent's callbacks\n * along the way.\n *\n * # Why the transport is written here rather than taken from a package\n *\n * ACP is JSON-RPC 2.0 over newline-delimited stdio, and an official TypeScript\n * SDK exists. This runner speaks the wire directly instead, for two reasons.\n * The mechanical one: adopting the SDK adds a third-party runtime dependency to\n * an engine package, which is a toolchain-baseline decision with a version pin,\n * and it must not be taken incidentally inside a feature slice. The substantive\n * one: everything below is the part Wildo must OWN anyway — which protocol\n * versions are acceptable, who answers a permission request, what a working\n * directory may be, how long a turn may run. An SDK would have supplied the\n * framing, which is the cheap half.\n *\n * Revisit if ACP 2 lands: version negotiation is one place, and adopting the\n * SDK then is a contained change.\n *\n * # The permission ceiling is enforced HERE, not by the agent's session mode\n *\n * Agents advertise their own session modes (`default`, `acceptEdits`,\n * `bypassPermissions`, …) and those identifiers are agent-specific strings. The\n * runner will select a matching mode when one is advertised, because it saves\n * round-trips — but it NEVER relies on that for the guarantee. The ceiling is\n * enforced by this runner's answer to every `session/request_permission`, so an\n * agent that advertises no modes at all, or renames the ones it has, is still\n * held to the authored ceiling. Mode selection is an optimisation; the handler\n * is the mechanism.\n */\n\nimport { spawn, type ChildProcessWithoutNullStreams } from 'node:child_process';\nimport { realpathSync } from 'node:fs';\nimport { readFile, writeFile, mkdir } from 'node:fs/promises';\nimport { dirname, isAbsolute, relative, resolve, sep } from 'node:path';\n\nimport {\n AgentClientProtocol_PermissionCeiling,\n CodingAgent_StopReason,\n agentClientProtocolPermissionCeilingRank,\n type CodingAgent_Usage,\n} from '@wildo-ai/external-connectors-models';\n\n/** Milliseconds allowed for the agent to honour `session/cancel` before it is killed. */\nconst COOPERATIVE_CANCEL_GRACE_MS = 10_000;\n/** Extra grace after SIGKILL so an unreapable child cannot hang a caller. */\nconst TERMINATION_SETTLE_GRACE_MS = 1_000;\n/** Default ceiling on persisted session-event bytes. Truncates; never fails the run. */\nconst DEFAULT_MAX_RECORDED_EVENT_BYTES = 4 * 1024 * 1024;\n\nexport class ACPSessionRunnerError extends Error {\n constructor(\n message: string,\n public readonly details: Record<string, unknown>,\n ) {\n super(message);\n this.name = 'ACPSessionRunnerError';\n }\n}\n\n/** One `session/update` notification, recorded for the caller's traceability sink. */\nexport interface ACPSessionEvent {\n readonly kind: string;\n readonly payload: unknown;\n}\n\nexport interface ACPPermissionRequest {\n readonly toolCallTitle: string | undefined;\n readonly toolKind: string | undefined;\n /** Absolute paths the tool call declares it will touch, when it declares any. */\n readonly locations: readonly string[];\n readonly optionKinds: readonly string[];\n}\n\nexport interface ACPCodingSessionResult {\n readonly finalMessage: string;\n readonly stopReason: CodingAgent_StopReason;\n /** The agent's verbatim value when `stopReason` is `UNRECOGNISED`. */\n readonly rawStopReason?: string;\n readonly usage?: CodingAgent_Usage;\n readonly reportedFileLocations: readonly string[];\n readonly sessionId: string;\n readonly negotiatedProtocolVersion: number;\n readonly agentName?: string;\n readonly agentVersion?: string;\n /** The agent-declared mode the turn ran under, when one was selectable. */\n readonly sessionModeId?: string;\n readonly events: readonly ACPSessionEvent[];\n /** True when the event log hit its byte ceiling and stopped recording. */\n readonly eventsTruncated: boolean;\n /** Permission requests denied by the ceiling or by the scope predicate. */\n readonly deniedPermissionCount: number;\n /**\n * One record per permission request, in order, with the REASON it was decided.\n *\n * A count alone is not diagnosable. A run under an UNRESTRICTED ceiling came back with two\n * denials and no files, and the recorded evidence could not say whether the scope predicate\n * had refused a path or the agent had simply offered no `allow_once` option — two very\n * different defects with the same visible outcome. This makes the decision auditable without\n * re-running an agent to find out.\n *\n * Carries no prompt or file CONTENT: tool kind, paths, the option kinds offered, and the\n * decision. Bounded by {@link PERMISSION_DECISION_RECORD_LIMIT}.\n */\n readonly permissionDecisions: readonly ACPPermissionDecisionRecord[];\n}\n\n/** Why a permission request was allowed or refused. */\nexport enum ACPPermissionDecisionReason {\n /** The declared ceiling does not admit this tool kind. */\n CEILING_REFUSED = 'ceiling_refused',\n /** A location the task's mutation scope does not authorise. */\n LOCATION_OUT_OF_SCOPE = 'location_out_of_scope',\n /** Admitted, and an `allow_once` option existed to say so with. */\n ALLOWED_ONCE = 'allowed_once',\n /**\n * Admitted by the ceiling and the scope, then refused anyway because the agent offered no\n * option this client is willing to select. `allow_always` is deliberately never chosen below\n * an UNRESTRICTED ceiling — it carries a session-wide permission change — so a request that\n * offers only that option has no answer other than refusal.\n */\n NO_SELECTABLE_OPTION = 'no_selectable_option',\n}\n\nexport interface ACPPermissionDecisionRecord {\n readonly allowed: boolean;\n readonly reason: ACPPermissionDecisionReason;\n /** The ACP tool kind (`edit`, `execute`, …), when the agent declared one. */\n readonly toolKind?: string;\n /** Paths the request declared. Empty when the agent declared none — which is why an\n * `execute` request cannot be scope-checked at all. */\n readonly locations: readonly string[];\n /** The option KINDS the agent offered, so a refusal for lack of a selectable one is visible. */\n readonly offeredOptionKinds: readonly string[];\n}\n\n/** Bounds the recorded decisions; a runaway agent must not grow this without limit. */\nconst PERMISSION_DECISION_RECORD_LIMIT = 200;\n\nexport interface ACPCodingSessionOptions {\n command: string;\n args?: readonly string[];\n /** Already resolved and confined by `resolveTrustedWorkingDirectory`. */\n cwd: string;\n env: NodeJS.ProcessEnv;\n prompt: string;\n /** Protocol majors the caller will accept in the `initialize` response. */\n supportedProtocolVersions: readonly number[];\n permissionCeiling: AgentClientProtocol_PermissionCeiling;\n /**\n * Additional, caller-owned refusal on top of the ceiling — used to hold an\n * agent to a task's declared mutation scope. Returning false DENIES, whatever\n * the ceiling says. It can only narrow.\n */\n isPermittedLocation?: (absolutePath: string) => boolean;\n /** Opaque `_meta` for `session/new`; agent-specific by construction. */\n sessionMetaExtensions?: Record<string, unknown>;\n turnTimeoutMs?: number;\n maxRecordedEventBytes?: number;\n /**\n * Operator-initiated cancellation.\n *\n * Handled exactly like the timeout, and deliberately so: `session/cancel`\n * first, kill only if the agent does not honour it. An operator who stops a\n * run wants it to STOP, but a coding agent killed mid-edit leaves a worktree\n * nobody can characterise — whereas one that settles as `cancelled` leaves a\n * partial change set the caller knows is partial.\n */\n abortSignal?: AbortSignal;\n /** Live progress sink. Never allowed to fail the run. */\n onEvent?: (event: ACPSessionEvent) => void;\n}\n\n/**\n * Agent-declared mode ids preferred for each ceiling.\n *\n * EVERY ceiling asks for the MOST-ESCALATING mode, and that is the correction\n * that matters. The obvious mapping — `AUTO_ACCEPT_EDITS` → the agent's own\n * `acceptEdits`, `UNRESTRICTED` → `bypassPermissions` — hands the decision to\n * the agent, which is exactly what this runner must not do. Measured live on\n * 2026-08-27: under `acceptEdits`, Claude's adapter auto-approved a mutating\n * shell command that wrote OUTSIDE the task's declared mutation scope, with no\n * permission request reaching the client at all. Under `default` the identical\n * prompt escalated, was denied, and nothing was written.\n *\n * Keeping the agent maximally escalating means every decision reaches\n * {@link permissionAllowedByCeiling}, where the ceiling means what it says —\n * and where the caller's mutation scope can still refuse a path.\n */\nconst PREFERRED_MODE_IDS: Record<AgentClientProtocol_PermissionCeiling, readonly string[]> = {\n [AgentClientProtocol_PermissionCeiling.PROMPT_ALWAYS]: ['default'],\n // Same reasoning as every other ceiling: the read-only lane is expressed by ANSWERING the\n // permission requests, never by asking the agent to stop raising them. An agent mode that\n // pre-approves reads on the agent's side would decide which calls count as reads, which is the\n // decision this runner exists to keep.\n [AgentClientProtocol_PermissionCeiling.AUTO_ACCEPT_READS]: ['default'],\n [AgentClientProtocol_PermissionCeiling.AUTO_ACCEPT_EDITS]: ['default'],\n // Even here: an ungated ceiling is expressed by ANSWERING yes, not by asking\n // the agent to stop reporting. The event stream stays complete, so a run is\n // still auditable after the fact.\n [AgentClientProtocol_PermissionCeiling.UNRESTRICTED]: ['default'],\n};\n\n/** Tool kinds that count as an EDIT for the AUTO_ACCEPT_EDITS ceiling. */\nconst EDIT_TOOL_KINDS = new Set(['edit', 'delete', 'move']);\n\n/**\n * Tool kinds the Agent Client Protocol itself classes as NON-MUTATING, for the AUTO_ACCEPT_READS\n * ceiling.\n *\n * Taken from the protocol's own tool-kind categorisation rather than invented here, so the set does\n * not drift from what an agent means when it declares a kind.\n * spec-cite: Agent Client Protocol — Tool Calls, tool-kind list\n * (https://agentclientprotocol.com/protocol/tool-calls): `read`, `search`, `fetch` and `think` are\n * the non-mutating kinds; `edit`, `delete` and `move` are the mutating ones.\n *\n * `execute` is deliberately EXCLUDED: a command can mutate anything, and a runner cannot tell a\n * read-only command from a destructive one by its kind. `other` is excluded because it is the\n * protocol's unclassified catch-all — measured 2026-08-29, the agent's own `ToolSearch` arrived as\n * `other`, so admitting it would mean admitting whatever an agent declines to classify.\n */\nconst NON_MUTATING_TOOL_KINDS = new Set(['read', 'search', 'fetch', 'think']);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Decide one permission request from the ceiling alone (before the caller's\n * scope predicate narrows it further).\n *\n * Exported for direct testing: this is the security decision of the whole\n * transport, and it should be provable without spawning anything.\n */\nexport function permissionAllowedByCeiling(\n ceiling: AgentClientProtocol_PermissionCeiling,\n toolKind: string | undefined,\n): boolean {\n switch (ceiling) {\n case AgentClientProtocol_PermissionCeiling.UNRESTRICTED:\n return true;\n case AgentClientProtocol_PermissionCeiling.AUTO_ACCEPT_EDITS:\n // Edits are pre-approved; anything else (executing a command, fetching a\n // URL, an unrecognised kind) still requires a decision this runner cannot\n // make on its own, so it is denied rather than guessed.\n //\n // This is only true because the runner keeps the agent in its\n // most-escalating mode — see PREFERRED_MODE_IDS. Delegating to the\n // agent's own `acceptEdits` mode made `execute` bypass this branch\n // entirely, measured live.\n return toolKind !== undefined && EDIT_TOOL_KINDS.has(toolKind);\n case AgentClientProtocol_PermissionCeiling.AUTO_ACCEPT_READS:\n /*\n * Non-mutating kinds are pre-approved; everything else is denied rather than guessed — the\n * same posture AUTO_ACCEPT_EDITS takes for its complement, and for the same reason: with no\n * human at the other end there is nobody to ask.\n *\n * An UNDECLARED kind is denied. An agent that does not say what it is doing does not get the\n * benefit of the doubt on a ceiling whose whole promise is \"nothing mutates\".\n */\n return toolKind !== undefined && NON_MUTATING_TOOL_KINDS.has(toolKind);\n case AgentClientProtocol_PermissionCeiling.PROMPT_ALWAYS:\n // Nothing is pre-approved. With no human at the other end of this\n // transport, \"prompt\" resolves to \"deny\": a coding run that needed an\n // authorisation nobody could give did not have it.\n return false;\n default: {\n // An unknown ceiling is not a reason to proceed. Fail closed rather than\n // fall through to a permissive branch.\n const exhaustive: never = ceiling;\n void exhaustive;\n return false;\n }\n }\n}\n\n/**\n * Map an ACP stop-reason wire value onto the named vocabulary.\n *\n * An unknown value DEGRADES rather than throwing. This runs after the turn — so\n * after the workspace may already have been mutated — and throwing here would\n * turn a completed run into an error whose change set nobody records. The caller\n * gets `UNRECOGNISED` plus the verbatim value and can refuse it as a working\n * result while still capturing what changed.\n */\nexport function parseStopReason(raw: unknown): { stopReason: CodingAgent_StopReason; rawStopReason?: string } {\n const known = (Object.values(CodingAgent_StopReason) as string[])\n .filter((value) => value !== CodingAgent_StopReason.UNRECOGNISED);\n if (typeof raw === 'string' && known.includes(raw)) {\n return { stopReason: raw as CodingAgent_StopReason };\n }\n return {\n stopReason: CodingAgent_StopReason.UNRECOGNISED,\n rawStopReason: typeof raw === 'string' ? raw : JSON.stringify(raw ?? null),\n };\n}\n\n/** Project ACP's usage shapes onto the coding-agent usage contract. */\nexport function projectUsage(\n turnUsage: unknown,\n lastUsageUpdate: unknown,\n): CodingAgent_Usage | undefined {\n const usage: Record<string, unknown> = {};\n if (isRecord(turnUsage)) {\n for (const key of ['inputTokens', 'outputTokens', 'cachedReadTokens', 'cachedWriteTokens', 'totalTokens']) {\n if (typeof turnUsage[key] === 'number') usage[key] = turnUsage[key];\n }\n }\n if (isRecord(lastUsageUpdate)) {\n if (typeof lastUsageUpdate.used === 'number') usage.contextUsed = lastUsageUpdate.used;\n if (typeof lastUsageUpdate.size === 'number') usage.contextWindowSize = lastUsageUpdate.size;\n const cost = lastUsageUpdate.cost;\n if (isRecord(cost) && typeof cost.amount === 'number' && typeof cost.currency === 'string') {\n usage.cost = { amount: cost.amount, currency: cost.currency };\n }\n }\n return Object.keys(usage).length > 0 ? (usage as CodingAgent_Usage) : undefined;\n}\n\n/**\n * True when `candidate` resolves inside `root`. Both must be absolute.\n *\n * Compares against the root AND its physical realpath. Agents report canonical\n * paths, so a root reached through a symlink (`/var/...` → `/private/var/...` on\n * macOS) would otherwise reject every request — a guard that silently denies\n * everything, which reads as the agent failing rather than the guard misfiring.\n * The same defect was found live in the companion's scope predicate.\n */\nexport function isPathWithin(root: string, candidate: string): boolean {\n if (!isAbsolute(root) || !isAbsolute(candidate)) return false;\n const roots = [root];\n try {\n const physical = realpathSync.native(root);\n if (physical !== root) roots.push(physical);\n } catch {\n // An unresolvable root stays as given; the containment check below still applies.\n }\n const resolved = resolve(candidate);\n return roots.some((candidateRoot) => {\n const rel = relative(candidateRoot, resolved);\n return rel !== '..' && !rel.startsWith(`..${sep}`) && !isAbsolute(rel);\n });\n}\n\nexport async function runACPCodingSession(options: ACPCodingSessionOptions): Promise<ACPCodingSessionResult> {\n const maxRecordedEventBytes = options.maxRecordedEventBytes ?? DEFAULT_MAX_RECORDED_EVENT_BYTES;\n const child: ChildProcessWithoutNullStreams = spawn(options.command, [...(options.args ?? [])], {\n cwd: options.cwd,\n env: options.env,\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n const state = {\n nextId: 1,\n buffer: '',\n stderrTail: '',\n unparsedStdoutTail: '',\n events: [] as ACPSessionEvent[],\n recordedBytes: 0,\n eventsTruncated: false,\n finalMessage: '',\n reportedFileLocations: new Set<string>(),\n lastUsageUpdate: undefined as unknown,\n deniedPermissionCount: 0,\n permissionDecisions: [] as ACPPermissionDecisionRecord[],\n settled: false,\n };\n const pending = new Map<number, { resolve: (value: unknown) => void; reject: (error: unknown) => void }>();\n\n const write = (payload: unknown): void => {\n if (child.stdin.writable) child.stdin.write(`${JSON.stringify(payload)}\\n`);\n };\n const request = (method: string, params: unknown): Promise<unknown> => {\n const id = state.nextId++;\n return new Promise<unknown>((resolvePromise, rejectPromise) => {\n pending.set(id, { resolve: resolvePromise, reject: rejectPromise });\n write({ jsonrpc: '2.0', id, method, params });\n });\n };\n const respond = (id: number, result: unknown): void => write({ jsonrpc: '2.0', id, result });\n const respondError = (id: number, message: string): void =>\n write({ jsonrpc: '2.0', id, error: { code: -32603, message } });\n\n const recordEvent = (event: ACPSessionEvent): void => {\n if (!state.eventsTruncated) {\n const size = JSON.stringify(event).length;\n if (state.recordedBytes + size > maxRecordedEventBytes) {\n // Truncate, never reject. Losing the tail of a transcript is a reporting\n // loss; failing the run here would discard work already written to the\n // workspace, which is the mistake the transport this replaces made.\n state.eventsTruncated = true;\n } else {\n state.recordedBytes += size;\n state.events.push(event);\n }\n }\n try {\n options.onEvent?.(event);\n } catch {\n // A progress sink must never be able to fail the run it observes.\n }\n };\n\n const decidePermission = (params: Record<string, unknown>): { allowed: boolean; optionId?: string } => {\n const toolCall = isRecord(params.toolCall) ? params.toolCall : {};\n const toolKind = typeof toolCall.kind === 'string' ? toolCall.kind : undefined;\n const locations = Array.isArray(toolCall.locations)\n ? toolCall.locations.flatMap((entry) => (isRecord(entry) && typeof entry.path === 'string' ? [entry.path] : []))\n : [];\n\n const rawOptions = Array.isArray(params.options) ? params.options : [];\n const offeredOptionKinds = rawOptions.flatMap((entry) => (isRecord(entry) && typeof entry.kind === 'string' ? [entry.kind] : []));\n const record = (allowed: boolean, reason: ACPPermissionDecisionReason): void => {\n if (state.permissionDecisions.length >= PERMISSION_DECISION_RECORD_LIMIT) return;\n state.permissionDecisions.push({\n allowed,\n reason,\n ...(toolKind !== undefined ? { toolKind } : {}),\n locations,\n offeredOptionKinds,\n });\n };\n\n if (!permissionAllowedByCeiling(options.permissionCeiling, toolKind)) {\n record(false, ACPPermissionDecisionReason.CEILING_REFUSED);\n return { allowed: false };\n }\n // The caller's scope predicate can only NARROW. A location the task did not\n // authorise is denied even under an UNRESTRICTED ceiling.\n if (options.isPermittedLocation && locations.some((path) => !options.isPermittedLocation!(path))) {\n record(false, ACPPermissionDecisionReason.LOCATION_OUT_OF_SCOPE);\n return { allowed: false };\n }\n // `allow_always` is never selected. Measured against Claude's adapter, that\n // option carries a `_meta` permission change that switches the SESSION into\n // an auto-accepting mode — so answering one request with it silently raises\n // the ceiling for every request after it.\n const once = rawOptions.find((entry) => isRecord(entry) && entry.kind === 'allow_once');\n if (isRecord(once) && typeof once.optionId === 'string') {\n record(true, ACPPermissionDecisionReason.ALLOWED_ONCE);\n return { allowed: true, optionId: once.optionId };\n }\n record(false, ACPPermissionDecisionReason.NO_SELECTABLE_OPTION);\n return { allowed: false };\n };\n\n const handleAgentRequest = async (id: number, method: string, params: Record<string, unknown>): Promise<void> => {\n switch (method) {\n case 'session/request_permission': {\n const decision = decidePermission(params);\n if (decision.allowed && decision.optionId) {\n respond(id, { outcome: { outcome: 'selected', optionId: decision.optionId } });\n return;\n }\n state.deniedPermissionCount++;\n const rawOptions = Array.isArray(params.options) ? params.options : [];\n const reject = rawOptions.find((entry) => isRecord(entry) && entry.kind === 'reject_once');\n if (isRecord(reject) && typeof reject.optionId === 'string') {\n respond(id, { outcome: { outcome: 'selected', optionId: reject.optionId } });\n } else {\n // No refusal option offered: cancelling the request is the only\n // remaining way to say no, and saying no is required.\n respond(id, { outcome: { outcome: 'cancelled' } });\n }\n return;\n }\n case 'fs/read_text_file': {\n const path = typeof params.path === 'string' ? params.path : '';\n if (!isPathWithin(options.cwd, path)) {\n respondError(id, 'Path is outside the session working directory');\n return;\n }\n try {\n respond(id, { content: await readFile(path, 'utf8') });\n } catch (error) {\n respondError(id, `Unable to read file: ${(error as Error).message}`);\n }\n return;\n }\n case 'fs/write_text_file': {\n const path = typeof params.path === 'string' ? params.path : '';\n if (!isPathWithin(options.cwd, path)) {\n respondError(id, 'Path is outside the session working directory');\n return;\n }\n if (options.isPermittedLocation && !options.isPermittedLocation(path)) {\n respondError(id, 'Path is outside the task mutation scope');\n return;\n }\n try {\n await mkdir(dirname(path), { recursive: true });\n await writeFile(path, typeof params.content === 'string' ? params.content : '', 'utf8');\n respond(id, null);\n } catch (error) {\n respondError(id, `Unable to write file: ${(error as Error).message}`);\n }\n return;\n }\n default:\n // Deliberately including every `terminal/*` method: this runner does NOT\n // advertise the terminal capability, so an agent calling one has ignored\n // the negotiated capability set. Refusing names that plainly.\n respondError(id, `Unsupported client method: ${method}`);\n }\n };\n\n const onLine = (line: string): void => {\n let message: unknown;\n try {\n message = JSON.parse(line);\n } catch {\n /*\n * Non-JSON stdout is the agent's own logging — and it IS our concern when the turn fails.\n *\n * This used to `return` with the comment \"not our concern\", and that is how an agent could\n * exit with code 0 in the middle of a turn while the only thing we could report was \"Agent\n * process exited before the turn completed\". A process that exits SUCCESSFULLY has almost\n * always said why, and a CLI says it in prose — which by definition does not parse as JSON-RPC\n * and so landed exactly here, in a discard.\n *\n * Kept in a bounded tail, mirroring `stderrTail`, and surfaced only on failure. The protocol\n * frames are excluded by construction: they parse, so they never reach this branch, and the\n * tail cannot fill with the session's own traffic.\n */\n state.unparsedStdoutTail = `${state.unparsedStdoutTail}${line}\\n`.slice(-4_000);\n return;\n }\n if (!isRecord(message)) return;\n\n if (message.method === 'session/update') {\n const update = isRecord(message.params) && isRecord(message.params.update) ? message.params.update : {};\n const kind = typeof update.sessionUpdate === 'string' ? update.sessionUpdate : 'unknown';\n if (kind === 'agent_message_chunk') {\n const content = isRecord(update.content) ? update.content : {};\n if (typeof content.text === 'string') state.finalMessage += content.text;\n }\n if (kind === 'usage_update') state.lastUsageUpdate = update;\n if (kind === 'tool_call' || kind === 'tool_call_update') {\n if (Array.isArray(update.locations)) {\n for (const entry of update.locations) {\n if (isRecord(entry) && typeof entry.path === 'string') state.reportedFileLocations.add(entry.path);\n }\n }\n }\n recordEvent({ kind, payload: update });\n return;\n }\n\n if (typeof message.method === 'string' && typeof message.id === 'number') {\n void handleAgentRequest(message.id, message.method, isRecord(message.params) ? message.params : {});\n return;\n }\n\n if (typeof message.id === 'number' && pending.has(message.id)) {\n const waiter = pending.get(message.id)!;\n pending.delete(message.id);\n if (message.error !== undefined) waiter.reject(message.error);\n else waiter.resolve(message.result);\n }\n };\n\n child.stdout.setEncoding('utf8');\n child.stdout.on('data', (chunk: string) => {\n state.buffer += chunk;\n let index: number;\n while ((index = state.buffer.indexOf('\\n')) >= 0) {\n const line = state.buffer.slice(0, index).trim();\n state.buffer = state.buffer.slice(index + 1);\n if (line) onLine(line);\n }\n });\n child.stderr.setEncoding('utf8');\n child.stderr.on('data', (chunk: string) => {\n state.stderrTail = `${state.stderrTail}${chunk}`.slice(-4_000);\n });\n\n const terminate = (): void => {\n if (!child.killed) child.kill('SIGTERM');\n setTimeout(() => {\n if (!child.killed) child.kill('SIGKILL');\n }, TERMINATION_SETTLE_GRACE_MS).unref?.();\n };\n\n const failed = (message: string, details: Record<string, unknown>): ACPSessionRunnerError =>\n new ACPSessionRunnerError(message, {\n ...details,\n stderrTail: state.stderrTail.trim().slice(-1_000),\n stdoutTail: state.unparsedStdoutTail.trim().slice(-1_000),\n });\n\n const spawnFailure = new Promise<never>((_, rejectPromise) => {\n child.on('error', (error) => rejectPromise(failed(`Agent process failed to start: ${error.message}`, {})));\n child.on('exit', (code, signal) => {\n if (!state.settled) {\n rejectPromise(failed('Agent process exited before the turn completed', { exitCode: code, signal }));\n }\n });\n });\n\n try {\n // --- initialize ---------------------------------------------------------\n const initializeResult = await Promise.race([\n request('initialize', {\n protocolVersion: Math.max(...options.supportedProtocolVersions),\n clientCapabilities: {\n // `fs` is implemented above and confined to the session directory.\n fs: { readTextFile: true, writeTextFile: true },\n // `terminal` is NOT advertised. An agent that wants to run a command\n // runs it itself — measured, that is what the default agent does even\n // when the capability IS offered — so advertising it would add an\n // unexercised execution surface for no observed gain.\n terminal: false,\n },\n }),\n spawnFailure,\n ]);\n if (!isRecord(initializeResult)) {\n throw failed('Agent returned a malformed initialize result', { initializeResult });\n }\n const negotiatedProtocolVersion = initializeResult.protocolVersion;\n if (typeof negotiatedProtocolVersion !== 'number' || !options.supportedProtocolVersions.includes(negotiatedProtocolVersion)) {\n // Refused rather than attempted. A version we do not implement is not a\n // version we can hold to a permission ceiling.\n throw failed('Agent negotiated an unsupported ACP protocol version', {\n negotiatedProtocolVersion,\n supportedProtocolVersions: [...options.supportedProtocolVersions],\n });\n }\n const agentInfo = isRecord(initializeResult.agentInfo) ? initializeResult.agentInfo : {};\n\n // --- session/new --------------------------------------------------------\n const sessionResult = await Promise.race([\n request('session/new', {\n cwd: options.cwd,\n mcpServers: [],\n ...(options.sessionMetaExtensions ? { _meta: options.sessionMetaExtensions } : {}),\n }),\n spawnFailure,\n ]);\n if (!isRecord(sessionResult) || typeof sessionResult.sessionId !== 'string') {\n throw failed('Agent returned a malformed session/new result', { sessionResult });\n }\n const sessionId = sessionResult.sessionId;\n\n // --- best-effort mode selection (an optimisation, never the guarantee) ---\n let sessionModeId: string | undefined;\n const modes = isRecord(sessionResult.modes) ? sessionResult.modes : undefined;\n const available = modes && Array.isArray(modes.availableModes) ? modes.availableModes : [];\n const preferred = PREFERRED_MODE_IDS[options.permissionCeiling] ?? [];\n const match = available.find((entry) => isRecord(entry) && typeof entry.id === 'string' && preferred.includes(entry.id));\n if (isRecord(match) && typeof match.id === 'string') {\n try {\n // Raced against the death signal: before this, a `session/set_mode` sent\n // to an agent that then died left a promise nobody would ever settle,\n // with the turn timeout not yet armed — the run hung forever.\n await Promise.race([request('session/set_mode', { sessionId, modeId: match.id }), spawnFailure]);\n sessionModeId = match.id;\n } catch {\n // The ceiling is still enforced by the permission handler, so a mode we\n // could not set costs round-trips, not safety.\n sessionModeId = undefined;\n }\n } else if (typeof modes?.currentModeId === 'string') {\n sessionModeId = modes.currentModeId;\n }\n\n // --- the turn -----------------------------------------------------------\n let timedOut = false;\n let timer: NodeJS.Timeout | undefined;\n const cancelTurn = (): void => {\n write({ jsonrpc: '2.0', method: 'session/cancel', params: { sessionId } });\n setTimeout(() => {\n if (!state.settled) terminate();\n }, COOPERATIVE_CANCEL_GRACE_MS).unref?.();\n };\n const turnPromise = request('session/prompt', {\n sessionId,\n prompt: [{ type: 'text', text: options.prompt }],\n });\n if (options.turnTimeoutMs !== undefined) {\n timer = setTimeout(() => {\n timedOut = true;\n // Cooperative first: ACP requires the agent to answer a cancelled turn\n // with stop reason `cancelled`, which lets the caller distinguish an\n // interrupted run from a completed one. Kill only if it does not.\n cancelTurn();\n }, options.turnTimeoutMs);\n timer.unref?.();\n }\n\n if (options.abortSignal) {\n if (options.abortSignal.aborted) cancelTurn();\n else options.abortSignal.addEventListener('abort', cancelTurn, { once: true });\n }\n\n const turnResult = await Promise.race([turnPromise, spawnFailure]);\n if (timer) clearTimeout(timer);\n state.settled = true;\n\n if (!isRecord(turnResult)) {\n throw failed('Agent returned a malformed session/prompt result', { turnResult, timedOut });\n }\n const { stopReason, rawStopReason } = parseStopReason(turnResult.stopReason);\n\n return {\n finalMessage: state.finalMessage,\n stopReason,\n ...(rawStopReason ? { rawStopReason } : {}),\n usage: projectUsage(turnResult.usage, state.lastUsageUpdate),\n reportedFileLocations: [...state.reportedFileLocations],\n sessionId,\n negotiatedProtocolVersion,\n ...(typeof agentInfo.name === 'string' ? { agentName: agentInfo.name } : {}),\n ...(typeof agentInfo.version === 'string' ? { agentVersion: agentInfo.version } : {}),\n ...(sessionModeId ? { sessionModeId } : {}),\n events: state.events,\n eventsTruncated: state.eventsTruncated,\n deniedPermissionCount: state.deniedPermissionCount,\n permissionDecisions: state.permissionDecisions,\n };\n } finally {\n state.settled = true;\n terminate();\n }\n}\n\n/** Re-exported so callers reason about ceilings through one ordering definition. */\nexport { agentClientProtocolPermissionCeilingRank };\n"]}
1
+ {"version":3,"file":"acp-session-runner.backend.utils.js","sourceRoot":"","sources":["../../../../../src/flows-actors/utils/acp-session-runner.backend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Client Protocol session runner.\n *\n * Two shapes over one transport:\n *\n * - {@link startACPAgentSession} opens a LIVE session — spawn the agent,\n * negotiate `initialize`, open (or `session/load`-resume) a session against a\n * confined working directory — and returns a handle whose `promptTurn` drives\n * ONE turn at a time. The caller decides whether to send another prompt on\n * the same session, which is what makes the interactive/continuation lane\n * possible: a turn that ended with a question is answered by the next\n * `promptTurn`, on the same `sessionId`, with the agent's context intact.\n * - {@link runACPCodingSession} is the single-turn wrapper kept for every\n * existing caller: start, one turn, close.\n *\n * # Why the transport is written here rather than taken from a package\n *\n * ACP is JSON-RPC 2.0 over newline-delimited stdio, and an official TypeScript\n * SDK exists. This runner speaks the wire directly instead, for two reasons.\n * The mechanical one: adopting the SDK adds a third-party runtime dependency to\n * an engine package, which is a toolchain-baseline decision with a version pin,\n * and it must not be taken incidentally inside a feature slice. The substantive\n * one: everything below is the part Wildo must OWN anyway — which protocol\n * versions are acceptable, who answers a permission request, what a working\n * directory may be, how long a turn may run. An SDK would have supplied the\n * framing, which is the cheap half.\n *\n * Revisit if ACP 2 lands: version negotiation is one place, and adopting the\n * SDK then is a contained change.\n *\n * # The permission ceiling is enforced HERE, not by the agent's session mode\n *\n * Agents advertise their own session modes (`default`, `acceptEdits`,\n * `bypassPermissions`, …) and those identifiers are agent-specific strings. The\n * runner will select a matching mode when one is advertised, because it saves\n * round-trips — but it NEVER relies on that for the guarantee. The ceiling is\n * enforced by this runner's answer to every `session/request_permission`, so an\n * agent that advertises no modes at all, or renames the ones it has, is still\n * held to the authored ceiling. Mode selection is an optimisation; the handler\n * is the mechanism.\n */\n\nimport { spawn, type ChildProcessWithoutNullStreams } from 'node:child_process';\nimport { realpathSync } from 'node:fs';\nimport { readFile, writeFile, mkdir } from 'node:fs/promises';\nimport { dirname, isAbsolute, relative, resolve, sep } from 'node:path';\n\nimport {\n AgentClientProtocol_PermissionCeiling,\n CodingAgent_StopReason,\n agentClientProtocolPermissionCeilingRank,\n type CodingAgent_Usage,\n} from '@wildo-ai/external-connectors-models';\n\n/** Milliseconds allowed for the agent to honour `session/cancel` before it is killed. */\nconst COOPERATIVE_CANCEL_GRACE_MS = 10_000;\n/** Extra grace after SIGKILL so an unreapable child cannot hang a caller. */\nconst TERMINATION_SETTLE_GRACE_MS = 1_000;\n/** Default ceiling on persisted session-event bytes. Truncates; never fails the run. */\nconst DEFAULT_MAX_RECORDED_EVENT_BYTES = 4 * 1024 * 1024;\n\nexport class ACPSessionRunnerError extends Error {\n constructor(\n message: string,\n public readonly details: Record<string, unknown>,\n ) {\n super(message);\n this.name = 'ACPSessionRunnerError';\n }\n}\n\n/** One `session/update` notification, recorded for the caller's traceability sink. */\nexport interface ACPSessionEvent {\n readonly kind: string;\n readonly payload: unknown;\n}\n\nexport interface ACPPermissionRequest {\n readonly toolCallTitle: string | undefined;\n readonly toolKind: string | undefined;\n /** Absolute paths the tool call declares it will touch, when it declares any. */\n readonly locations: readonly string[];\n readonly optionKinds: readonly string[];\n}\n\n/** Why a permission request was allowed or refused. */\nexport enum ACPPermissionDecisionReason {\n /** The declared ceiling does not admit this tool kind. */\n CEILING_REFUSED = 'ceiling_refused',\n /** A location the task's mutation scope does not authorise. */\n LOCATION_OUT_OF_SCOPE = 'location_out_of_scope',\n /** Admitted, and an `allow_once` option existed to say so with. */\n ALLOWED_ONCE = 'allowed_once',\n /**\n * Admitted by the ceiling and the scope, then refused anyway because the agent offered no\n * option this client is willing to select. `allow_always` is deliberately never chosen below\n * an UNRESTRICTED ceiling — it carries a session-wide permission change — so a request that\n * offers only that option has no answer other than refusal.\n */\n NO_SELECTABLE_OPTION = 'no_selectable_option',\n}\n\nexport interface ACPPermissionDecisionRecord {\n readonly allowed: boolean;\n readonly reason: ACPPermissionDecisionReason;\n /** The ACP tool kind (`edit`, `execute`, …), when the agent declared one. */\n readonly toolKind?: string;\n /** Paths the request declared. Empty when the agent declared none — which is why an\n * `execute` request cannot be scope-checked at all. */\n readonly locations: readonly string[];\n /** The option KINDS the agent offered, so a refusal for lack of a selectable one is visible. */\n readonly offeredOptionKinds: readonly string[];\n}\n\n/** Bounds the recorded decisions; a runaway agent must not grow this without limit. */\nconst PERMISSION_DECISION_RECORD_LIMIT = 200;\n\n/**\n * Options common to opening a session and running a one-shot turn.\n *\n * The single-turn {@link ACPCodingSessionOptions} extends this with `prompt`,\n * `turnTimeoutMs` and `abortSignal` — the per-turn concerns the live handle\n * takes as arguments to `promptTurn` instead.\n */\nexport interface ACPStartSessionOptions {\n command: string;\n args?: readonly string[];\n /** Already resolved and confined by `resolveTrustedWorkingDirectory`. */\n cwd: string;\n env: NodeJS.ProcessEnv;\n /** Protocol majors the caller will accept in the `initialize` response. */\n supportedProtocolVersions: readonly number[];\n permissionCeiling: AgentClientProtocol_PermissionCeiling;\n /**\n * Additional, caller-owned refusal on top of the ceiling — used to hold an\n * agent to a task's declared mutation scope. Returning false DENIES, whatever\n * the ceiling says. It can only narrow.\n */\n isPermittedLocation?: (absolutePath: string) => boolean;\n /**\n * The agent's OWN session-mode ids to prefer, most-preferred first.\n *\n * Supplied by the caller from the provider contract rather than derived here:\n * mode ids are agent vocabulary, and a map hardcoded in this neutral runner\n * matched `default` for every ceiling — correct for one adapter and silently\n * empty for an agent whose modes are, say, `build`/`plan`. An unmatched or\n * unsettable mode costs round-trips, never safety: the ceiling is enforced by\n * this runner's answer to every permission request.\n */\n preferredSessionModeIds?: readonly string[];\n /**\n * Set the model over ACP as a session config option, before the first prompt.\n *\n * Only for agents whose provider declares the `session-config-option`\n * delivery channel; agents that read the model from their environment have it\n * in `env` already. A rejected call FAILS the session rather than proceeding:\n * an unset model means the agent silently runs its own default while the run\n * records the model that was requested.\n */\n modelSelection?: { configId: string; model: string };\n /** Opaque `_meta` for `session/new`; agent-specific by construction. */\n sessionMetaExtensions?: Record<string, unknown>;\n maxRecordedEventBytes?: number;\n /** Live progress sink. Never allowed to fail the run. */\n onEvent?: (event: ACPSessionEvent) => void;\n /**\n * Resume a prior session by id instead of opening a new one.\n *\n * When set, the runner calls `session/load` rather than `session/new`, so the\n * agent restores the earlier conversation's context. REQUIRES the agent to\n * advertise the `loadSession` capability at `initialize`; a resume asked of an\n * agent that does not is REFUSED, not silently degraded to a fresh session —\n * presenting a context-less turn as a continuation is the failure this guards.\n * The replayed history is consumed and discarded: it is already on the durable\n * record from the run that parked, and re-recording it would double it.\n */\n resumeSessionId?: string;\n}\n\nexport interface ACPCodingSessionOptions extends ACPStartSessionOptions {\n prompt: string;\n turnTimeoutMs?: number;\n /**\n * Operator-initiated cancellation.\n *\n * Handled exactly like the timeout, and deliberately so: `session/cancel`\n * first, kill only if the agent does not honour it. An operator who stops a\n * run wants it to STOP, but a coding agent killed mid-edit leaves a worktree\n * nobody can characterise — whereas one that settles as `cancelled` leaves a\n * partial change set the caller knows is partial.\n */\n abortSignal?: AbortSignal;\n}\n\n/** Per-turn arguments to {@link ACPAgentSession.promptTurn}. */\nexport interface ACPPromptTurnOptions {\n turnTimeoutMs?: number;\n /** See {@link ACPCodingSessionOptions.abortSignal}. Scoped to this one turn. */\n abortSignal?: AbortSignal;\n}\n\n/** The outcome of one prompt turn on a live session. */\nexport interface ACPTurnResult {\n readonly finalMessage: string;\n readonly stopReason: CodingAgent_StopReason;\n /** The agent's verbatim value when `stopReason` is `UNRECOGNISED`. */\n readonly rawStopReason?: string;\n readonly usage?: CodingAgent_Usage;\n /** File paths the agent reported touching DURING THIS TURN. */\n readonly reportedFileLocations: readonly string[];\n /** `session/update` notifications recorded DURING THIS TURN. */\n readonly events: readonly ACPSessionEvent[];\n /** True when the session's cumulative event log hit its byte ceiling. */\n readonly eventsTruncated: boolean;\n /** Permission requests refused during this turn. */\n readonly deniedPermissionCount: number;\n /** Per-request decisions recorded during this turn, with the reason each was decided. */\n readonly permissionDecisions: readonly ACPPermissionDecisionRecord[];\n}\n\n/** What the agent declared about itself and the session at `initialize`/setup time. */\nexport interface ACPAgentSession {\n readonly sessionId: string;\n readonly negotiatedProtocolVersion: number;\n readonly agentName?: string;\n readonly agentVersion?: string;\n /** The agent-declared mode the session runs under, when one was selectable. */\n readonly sessionModeId?: string;\n /** Capabilities the agent advertised — the ones this runner branches on. */\n readonly capabilities: { readonly loadSession: boolean };\n /** Drive one turn. May be called repeatedly to continue the conversation. */\n promptTurn(prompt: string, options?: ACPPromptTurnOptions): Promise<ACPTurnResult>;\n /** Terminate the agent process. Idempotent; safe after any turn. */\n close(): void;\n}\n\nexport interface ACPCodingSessionResult {\n readonly finalMessage: string;\n readonly stopReason: CodingAgent_StopReason;\n /** The agent's verbatim value when `stopReason` is `UNRECOGNISED`. */\n readonly rawStopReason?: string;\n readonly usage?: CodingAgent_Usage;\n readonly reportedFileLocations: readonly string[];\n readonly sessionId: string;\n readonly negotiatedProtocolVersion: number;\n readonly agentName?: string;\n readonly agentVersion?: string;\n /** The agent-declared mode the turn ran under, when one was selectable. */\n readonly sessionModeId?: string;\n readonly events: readonly ACPSessionEvent[];\n /** True when the event log hit its byte ceiling and stopped recording. */\n readonly eventsTruncated: boolean;\n /** Permission requests denied by the ceiling or by the scope predicate. */\n readonly deniedPermissionCount: number;\n /**\n * One record per permission request, in order, with the REASON it was decided.\n *\n * A count alone is not diagnosable. A run under an UNRESTRICTED ceiling came back with two\n * denials and no files, and the recorded evidence could not say whether the scope predicate\n * had refused a path or the agent had simply offered no `allow_once` option — two very\n * different defects with the same visible outcome. This makes the decision auditable without\n * re-running an agent to find out.\n *\n * Carries no prompt or file CONTENT: tool kind, paths, the option kinds offered, and the\n * decision. Bounded by {@link PERMISSION_DECISION_RECORD_LIMIT}.\n */\n readonly permissionDecisions: readonly ACPPermissionDecisionRecord[];\n}\n\n/**\n * Agent-declared mode ids preferred for each ceiling.\n *\n * EVERY ceiling asks for the MOST-ESCALATING mode, and that is the correction\n * that matters. The obvious mapping — `AUTO_ACCEPT_EDITS` → the agent's own\n * `acceptEdits`, `UNRESTRICTED` → `bypassPermissions` — hands the decision to\n * the agent, which is exactly what this runner must not do. Measured live on\n * 2026-08-27: under `acceptEdits`, Claude's adapter auto-approved a mutating\n * shell command that wrote OUTSIDE the task's declared mutation scope, with no\n * permission request reaching the client at all. Under `default` the identical\n * prompt escalated, was denied, and nothing was written.\n *\n * Keeping the agent maximally escalating means every decision reaches\n * {@link permissionAllowedByCeiling}, where the ceiling means what it says —\n * and where the caller's mutation scope can still refuse a path.\n */\n\n/** Tool kinds that count as an EDIT for the AUTO_ACCEPT_EDITS ceiling. */\nconst EDIT_TOOL_KINDS = new Set(['edit', 'delete', 'move']);\n\n/**\n * Tool kinds the Agent Client Protocol itself classes as NON-MUTATING, for the AUTO_ACCEPT_READS\n * ceiling.\n *\n * Taken from the protocol's own tool-kind categorisation rather than invented here, so the set does\n * not drift from what an agent means when it declares a kind.\n * spec-cite: Agent Client Protocol — Tool Calls, tool-kind list\n * (https://agentclientprotocol.com/protocol/tool-calls): `read`, `search`, `fetch` and `think` are\n * the non-mutating kinds; `edit`, `delete` and `move` are the mutating ones.\n *\n * `execute` is deliberately EXCLUDED: a command can mutate anything, and a runner cannot tell a\n * read-only command from a destructive one by its kind. `other` is excluded because it is the\n * protocol's unclassified catch-all — measured 2026-08-29, the agent's own `ToolSearch` arrived as\n * `other`, so admitting it would mean admitting whatever an agent declines to classify.\n */\nconst NON_MUTATING_TOOL_KINDS = new Set(['read', 'search', 'fetch', 'think']);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Decide one permission request from the ceiling alone (before the caller's\n * scope predicate narrows it further).\n *\n * Exported for direct testing: this is the security decision of the whole\n * transport, and it should be provable without spawning anything.\n */\nexport function permissionAllowedByCeiling(\n ceiling: AgentClientProtocol_PermissionCeiling,\n toolKind: string | undefined,\n): boolean {\n switch (ceiling) {\n case AgentClientProtocol_PermissionCeiling.UNRESTRICTED:\n return true;\n case AgentClientProtocol_PermissionCeiling.AUTO_ACCEPT_EDITS:\n // Edits are pre-approved; anything else (executing a command, fetching a\n // URL, an unrecognised kind) still requires a decision this runner cannot\n // make on its own, so it is denied rather than guessed.\n //\n // This is only true because the agent is kept in its most-escalating\n // mode — `sessionModeIdsByPermissionCeiling` on the provider contract,\n // passed in as `preferredSessionModeIds`. (The runner-local\n // `PREFERRED_MODE_IDS` this used to name was deleted on 2026-09-04: mode\n // ids are agent vocabulary, so a map hardcoded here matched nothing for\n // every agent but the one it was written for.) Delegating to the agent's\n // own `acceptEdits` mode made `execute` bypass this branch entirely,\n // measured live.\n return toolKind !== undefined && EDIT_TOOL_KINDS.has(toolKind);\n case AgentClientProtocol_PermissionCeiling.AUTO_ACCEPT_READS_AND_EDITS:\n // The union of the two sets above, refusing exactly what both refuse:\n // `execute` (a command can mutate anything) and `other` (unclassified,\n // fail-closed). The evidence-persisting research lane's ceiling — the\n // location predicate is what keeps its writes inside the store.\n return toolKind !== undefined && (NON_MUTATING_TOOL_KINDS.has(toolKind) || EDIT_TOOL_KINDS.has(toolKind));\n case AgentClientProtocol_PermissionCeiling.AUTO_ACCEPT_READS:\n /*\n * Non-mutating kinds are pre-approved; everything else is denied rather than guessed — the\n * same posture AUTO_ACCEPT_EDITS takes for its complement, and for the same reason: with no\n * human at the other end there is nobody to ask.\n *\n * An UNDECLARED kind is denied. An agent that does not say what it is doing does not get the\n * benefit of the doubt on a ceiling whose whole promise is \"nothing mutates\".\n */\n return toolKind !== undefined && NON_MUTATING_TOOL_KINDS.has(toolKind);\n case AgentClientProtocol_PermissionCeiling.PROMPT_ALWAYS:\n // Nothing is pre-approved. With no human at the other end of this\n // transport, \"prompt\" resolves to \"deny\": a coding run that needed an\n // authorisation nobody could give did not have it.\n return false;\n default: {\n // An unknown ceiling is not a reason to proceed. Fail closed rather than\n // fall through to a permissive branch.\n const exhaustive: never = ceiling;\n void exhaustive;\n return false;\n }\n }\n}\n\n/**\n * Map an ACP stop-reason wire value onto the named vocabulary.\n *\n * An unknown value DEGRADES rather than throwing. This runs after the turn — so\n * after the workspace may already have been mutated — and throwing here would\n * turn a completed run into an error whose change set nobody records. The caller\n * gets `UNRECOGNISED` plus the verbatim value and can refuse it as a working\n * result while still capturing what changed.\n */\nexport function parseStopReason(raw: unknown): { stopReason: CodingAgent_StopReason; rawStopReason?: string } {\n const known = (Object.values(CodingAgent_StopReason) as string[])\n .filter((value) => value !== CodingAgent_StopReason.UNRECOGNISED);\n if (typeof raw === 'string' && known.includes(raw)) {\n return { stopReason: raw as CodingAgent_StopReason };\n }\n return {\n stopReason: CodingAgent_StopReason.UNRECOGNISED,\n rawStopReason: typeof raw === 'string' ? raw : JSON.stringify(raw ?? null),\n };\n}\n\n/** Project ACP's usage shapes onto the coding-agent usage contract. */\nexport function projectUsage(\n turnUsage: unknown,\n lastUsageUpdate: unknown,\n): CodingAgent_Usage | undefined {\n const usage: Record<string, unknown> = {};\n if (isRecord(turnUsage)) {\n for (const key of ['inputTokens', 'outputTokens', 'cachedReadTokens', 'cachedWriteTokens', 'totalTokens']) {\n if (typeof turnUsage[key] === 'number') usage[key] = turnUsage[key];\n }\n }\n if (isRecord(lastUsageUpdate)) {\n if (typeof lastUsageUpdate.used === 'number') usage.contextUsed = lastUsageUpdate.used;\n if (typeof lastUsageUpdate.size === 'number') usage.contextWindowSize = lastUsageUpdate.size;\n const cost = lastUsageUpdate.cost;\n if (isRecord(cost) && typeof cost.amount === 'number' && typeof cost.currency === 'string') {\n usage.cost = { amount: cost.amount, currency: cost.currency };\n }\n }\n return Object.keys(usage).length > 0 ? (usage as CodingAgent_Usage) : undefined;\n}\n\n/**\n * True when `candidate` resolves inside `root`. Both must be absolute.\n *\n * Compares against the root AND its physical realpath. Agents report canonical\n * paths, so a root reached through a symlink (`/var/...` → `/private/var/...` on\n * macOS) would otherwise reject every request — a guard that silently denies\n * everything, which reads as the agent failing rather than the guard misfiring.\n * The same defect was found live in the companion's scope predicate.\n */\nexport function isPathWithin(root: string, candidate: string): boolean {\n if (!isAbsolute(root) || !isAbsolute(candidate)) return false;\n const roots = [root];\n try {\n const physical = realpathSync.native(root);\n if (physical !== root) roots.push(physical);\n } catch {\n // An unresolvable root stays as given; the containment check below still applies.\n }\n const resolved = resolve(candidate);\n return roots.some((candidateRoot) => {\n const rel = relative(candidateRoot, resolved);\n return rel !== '..' && !rel.startsWith(`..${sep}`) && !isAbsolute(rel);\n });\n}\n\n/**\n * Open a live ACP session and return a handle whose `promptTurn` drives one\n * turn at a time.\n *\n * The caller owns the turn cadence — this is the whole point of the handle. A\n * turn that ends with a question is not the end of the session; the caller\n * inspects it and may `promptTurn` again with the answer.\n */\nexport async function startACPAgentSession(options: ACPStartSessionOptions): Promise<ACPAgentSession> {\n const maxRecordedEventBytes = options.maxRecordedEventBytes ?? DEFAULT_MAX_RECORDED_EVENT_BYTES;\n const child: ChildProcessWithoutNullStreams = spawn(options.command, [...(options.args ?? [])], {\n cwd: options.cwd,\n env: options.env,\n stdio: ['pipe', 'pipe', 'pipe'],\n });\n\n // Cumulative session state. Per-turn slices are taken from these by index.\n const session = {\n nextId: 1,\n buffer: '',\n stderrTail: '',\n unparsedStdoutTail: '',\n events: [] as ACPSessionEvent[],\n recordedBytes: 0,\n eventsTruncated: false,\n reportedFileLocations: [] as string[],\n permissionDecisions: [] as ACPPermissionDecisionRecord[],\n deniedPermissionCount: 0,\n // Reset at the start of each turn.\n turnFinalMessage: '',\n turnLastUsageUpdate: undefined as unknown,\n // True while `session/load` replay is streaming: replayed history is\n // consumed and discarded (it is already on the durable record).\n replaying: false,\n // Set once the child exits; a later `promptTurn` refuses rather than hanging.\n childExited: false,\n // Set BEFORE a deliberate terminate() so the exit handler does not reject\n // the exit promise for a shutdown the caller asked for.\n closed: false,\n };\n const pending = new Map<number, { resolve: (value: unknown) => void; reject: (error: unknown) => void }>();\n\n const write = (payload: unknown): void => {\n if (child.stdin.writable) child.stdin.write(`${JSON.stringify(payload)}\\n`);\n };\n const request = (method: string, params: unknown): Promise<unknown> => {\n const id = session.nextId++;\n return new Promise<unknown>((resolvePromise, rejectPromise) => {\n pending.set(id, { resolve: resolvePromise, reject: rejectPromise });\n write({ jsonrpc: '2.0', id, method, params });\n });\n };\n const respond = (id: number, result: unknown): void => write({ jsonrpc: '2.0', id, result });\n const respondError = (id: number, message: string): void =>\n write({ jsonrpc: '2.0', id, error: { code: -32603, message } });\n\n const recordEvent = (event: ACPSessionEvent): void => {\n // Replayed `session/load` history is neither persisted nor forwarded: it is\n // already recorded from the run that produced it, and re-emitting it would\n // double every earlier frame on the resuming run's record.\n if (session.replaying) return;\n if (!session.eventsTruncated) {\n const size = JSON.stringify(event).length;\n if (session.recordedBytes + size > maxRecordedEventBytes) {\n // Truncate, never reject. Losing the tail of a transcript is a reporting\n // loss; failing the run here would discard work already written to the\n // workspace, which is the mistake the transport this replaces made.\n session.eventsTruncated = true;\n } else {\n session.recordedBytes += size;\n session.events.push(event);\n }\n }\n try {\n options.onEvent?.(event);\n } catch {\n // A progress sink must never be able to fail the run it observes.\n }\n };\n\n const decidePermission = (params: Record<string, unknown>): { allowed: boolean; optionId?: string } => {\n const toolCall = isRecord(params.toolCall) ? params.toolCall : {};\n const toolKind = typeof toolCall.kind === 'string' ? toolCall.kind : undefined;\n const locations = Array.isArray(toolCall.locations)\n ? toolCall.locations.flatMap((entry) => (isRecord(entry) && typeof entry.path === 'string' ? [entry.path] : []))\n : [];\n\n const rawOptions = Array.isArray(params.options) ? params.options : [];\n const offeredOptionKinds = rawOptions.flatMap((entry) => (isRecord(entry) && typeof entry.kind === 'string' ? [entry.kind] : []));\n const record = (allowed: boolean, reason: ACPPermissionDecisionReason): void => {\n if (session.permissionDecisions.length >= PERMISSION_DECISION_RECORD_LIMIT) return;\n session.permissionDecisions.push({\n allowed,\n reason,\n ...(toolKind !== undefined ? { toolKind } : {}),\n locations,\n offeredOptionKinds,\n });\n };\n\n if (!permissionAllowedByCeiling(options.permissionCeiling, toolKind)) {\n record(false, ACPPermissionDecisionReason.CEILING_REFUSED);\n return { allowed: false };\n }\n // The caller's scope predicate can only NARROW. A location the task did not\n // authorise is denied even under an UNRESTRICTED ceiling.\n if (options.isPermittedLocation && locations.some((path) => !options.isPermittedLocation!(path))) {\n record(false, ACPPermissionDecisionReason.LOCATION_OUT_OF_SCOPE);\n return { allowed: false };\n }\n // `allow_always` is never selected. Measured against Claude's adapter, that\n // option carries a `_meta` permission change that switches the SESSION into\n // an auto-accepting mode — so answering one request with it silently raises\n // the ceiling for every request after it.\n const once = rawOptions.find((entry) => isRecord(entry) && entry.kind === 'allow_once');\n if (isRecord(once) && typeof once.optionId === 'string') {\n record(true, ACPPermissionDecisionReason.ALLOWED_ONCE);\n return { allowed: true, optionId: once.optionId };\n }\n record(false, ACPPermissionDecisionReason.NO_SELECTABLE_OPTION);\n return { allowed: false };\n };\n\n const handleAgentRequest = async (id: number, method: string, params: Record<string, unknown>): Promise<void> => {\n switch (method) {\n case 'session/request_permission': {\n const decision = decidePermission(params);\n if (decision.allowed && decision.optionId) {\n respond(id, { outcome: { outcome: 'selected', optionId: decision.optionId } });\n return;\n }\n session.deniedPermissionCount++;\n const rawOptions = Array.isArray(params.options) ? params.options : [];\n const reject = rawOptions.find((entry) => isRecord(entry) && entry.kind === 'reject_once');\n if (isRecord(reject) && typeof reject.optionId === 'string') {\n respond(id, { outcome: { outcome: 'selected', optionId: reject.optionId } });\n } else {\n // No refusal option offered: cancelling the request is the only\n // remaining way to say no, and saying no is required.\n respond(id, { outcome: { outcome: 'cancelled' } });\n }\n return;\n }\n case 'fs/read_text_file': {\n const path = typeof params.path === 'string' ? params.path : '';\n if (!isPathWithin(options.cwd, path)) {\n respondError(id, 'Path is outside the session working directory');\n return;\n }\n try {\n respond(id, { content: await readFile(path, 'utf8') });\n } catch (error) {\n respondError(id, `Unable to read file: ${(error as Error).message}`);\n }\n return;\n }\n case 'fs/write_text_file': {\n const path = typeof params.path === 'string' ? params.path : '';\n if (!isPathWithin(options.cwd, path)) {\n respondError(id, 'Path is outside the session working directory');\n return;\n }\n if (options.isPermittedLocation && !options.isPermittedLocation(path)) {\n respondError(id, 'Path is outside the task mutation scope');\n return;\n }\n try {\n await mkdir(dirname(path), { recursive: true });\n await writeFile(path, typeof params.content === 'string' ? params.content : '', 'utf8');\n respond(id, null);\n } catch (error) {\n respondError(id, `Unable to write file: ${(error as Error).message}`);\n }\n return;\n }\n default:\n // Deliberately including every `terminal/*` method: this runner does NOT\n // advertise the terminal capability, so an agent calling one has ignored\n // the negotiated capability set. Refusing names that plainly.\n respondError(id, `Unsupported client method: ${method}`);\n }\n };\n\n const onLine = (line: string): void => {\n let message: unknown;\n try {\n message = JSON.parse(line);\n } catch {\n /*\n * Non-JSON stdout is the agent's own logging — and it IS our concern when the turn fails.\n *\n * This used to `return` with the comment \"not our concern\", and that is how an agent could\n * exit with code 0 in the middle of a turn while the only thing we could report was \"Agent\n * process exited before the turn completed\". A process that exits SUCCESSFULLY has almost\n * always said why, and a CLI says it in prose — which by definition does not parse as JSON-RPC\n * and so landed exactly here, in a discard.\n *\n * Kept in a bounded tail, mirroring `stderrTail`, and surfaced only on failure. The protocol\n * frames are excluded by construction: they parse, so they never reach this branch, and the\n * tail cannot fill with the session's own traffic.\n */\n session.unparsedStdoutTail = `${session.unparsedStdoutTail}${line}\\n`.slice(-4_000);\n return;\n }\n if (!isRecord(message)) return;\n\n if (message.method === 'session/update') {\n const update = isRecord(message.params) && isRecord(message.params.update) ? message.params.update : {};\n const kind = typeof update.sessionUpdate === 'string' ? update.sessionUpdate : 'unknown';\n if (!session.replaying) {\n if (kind === 'agent_message_chunk') {\n const content = isRecord(update.content) ? update.content : {};\n if (typeof content.text === 'string') session.turnFinalMessage += content.text;\n }\n if (kind === 'usage_update') session.turnLastUsageUpdate = update;\n if (kind === 'tool_call' || kind === 'tool_call_update') {\n if (Array.isArray(update.locations)) {\n for (const entry of update.locations) {\n if (isRecord(entry) && typeof entry.path === 'string' && !session.reportedFileLocations.includes(entry.path)) {\n session.reportedFileLocations.push(entry.path);\n }\n }\n }\n }\n }\n recordEvent({ kind, payload: update });\n return;\n }\n\n if (typeof message.method === 'string' && typeof message.id === 'number') {\n void handleAgentRequest(message.id, message.method, isRecord(message.params) ? message.params : {});\n return;\n }\n\n if (typeof message.id === 'number' && pending.has(message.id)) {\n const waiter = pending.get(message.id)!;\n pending.delete(message.id);\n if (message.error !== undefined) {\n /*\n * A JSON-RPC error is an OBJECT ({code, message, data?}), and rejecting with it raw is how a\n * real adapter answer became \"[object Object]\" at the choreography seam and \"Unknown agent\n * invocation error\" in the trace — three layers each normalizing for Error-or-string and\n * discarding everything else. The adapter names its failures; carry the name. (Found\n * 2026-09-03: a research turn's session/prompt error cost a full diagnosis cycle because all\n * that survived was the coercion.)\n */\n const rpcError = message.error as { code?: unknown; message?: unknown; data?: unknown };\n const detail = typeof rpcError?.message === 'string' ? rpcError.message : JSON.stringify(message.error)?.slice(0, 500);\n const rejection = new Error(`ACP agent error${typeof rpcError?.code === 'number' ? ` ${rpcError.code}` : ''}: ${detail}`);\n (rejection as Error & { acpError?: unknown }).acpError = message.error;\n waiter.reject(rejection);\n } else waiter.resolve(message.result);\n }\n };\n\n child.stdout.setEncoding('utf8');\n child.stdout.on('data', (chunk: string) => {\n session.buffer += chunk;\n let index: number;\n while ((index = session.buffer.indexOf('\\n')) >= 0) {\n const line = session.buffer.slice(0, index).trim();\n session.buffer = session.buffer.slice(index + 1);\n if (line) onLine(line);\n }\n });\n child.stderr.setEncoding('utf8');\n child.stderr.on('data', (chunk: string) => {\n session.stderrTail = `${session.stderrTail}${chunk}`.slice(-4_000);\n });\n\n const terminate = (): void => {\n // Mark the shutdown as deliberate BEFORE killing so the exit handler does\n // not reject the exit promise for a close the caller asked for.\n session.closed = true;\n if (!child.killed) child.kill('SIGTERM');\n setTimeout(() => {\n if (!child.killed) child.kill('SIGKILL');\n }, TERMINATION_SETTLE_GRACE_MS).unref?.();\n };\n\n const failed = (message: string, details: Record<string, unknown>): ACPSessionRunnerError =>\n new ACPSessionRunnerError(message, {\n ...details,\n stderrTail: session.stderrTail.trim().slice(-1_000),\n stdoutTail: session.unparsedStdoutTail.trim().slice(-1_000),\n });\n\n // ONE persistent \"the child died\" promise, raced against every awaited\n // request. It rejects at most once, only for an UNDELIBERATE exit — a close()\n // the caller asked for sets `closed` first and leaves it pending. Raced at\n // `initialize`, so it always carries a rejection handler and a later reject\n // (e.g. a crash between turns) never surfaces as an unhandled rejection.\n const exitPromise = new Promise<never>((_, rejectPromise) => {\n child.on('error', (error) => {\n session.childExited = true;\n if (!session.closed) rejectPromise(failed(`Agent process failed to start: ${error.message}`, {}));\n });\n child.on('exit', (code, signal) => {\n session.childExited = true;\n if (!session.closed) rejectPromise(failed('Agent process exited before the turn completed', { exitCode: code, signal }));\n });\n });\n\n try {\n // --- initialize ---------------------------------------------------------\n const initializeResult = await Promise.race([\n request('initialize', {\n protocolVersion: Math.max(...options.supportedProtocolVersions),\n clientCapabilities: {\n // `fs` is implemented above and confined to the session directory.\n fs: { readTextFile: true, writeTextFile: true },\n // `terminal` is NOT advertised. An agent that wants to run a command\n // runs it itself — measured, that is what the default agent does even\n // when the capability IS offered — so advertising it would add an\n // unexercised execution surface for no observed gain.\n terminal: false,\n },\n }),\n exitPromise,\n ]);\n if (!isRecord(initializeResult)) {\n throw failed('Agent returned a malformed initialize result', { initializeResult });\n }\n const negotiatedProtocolVersion = initializeResult.protocolVersion;\n if (typeof negotiatedProtocolVersion !== 'number' || !options.supportedProtocolVersions.includes(negotiatedProtocolVersion)) {\n // Refused rather than attempted. A version we do not implement is not a\n // version we can hold to a permission ceiling.\n throw failed('Agent negotiated an unsupported ACP protocol version', {\n negotiatedProtocolVersion,\n supportedProtocolVersions: [...options.supportedProtocolVersions],\n });\n }\n const agentInfo = isRecord(initializeResult.agentInfo) ? initializeResult.agentInfo : {};\n const agentCapabilities = isRecord(initializeResult.agentCapabilities) ? initializeResult.agentCapabilities : {};\n const loadSessionSupported = agentCapabilities.loadSession === true;\n\n let sessionId: string;\n let sessionModeId: string | undefined;\n\n if (options.resumeSessionId !== undefined) {\n // --- session/load (resume) -------------------------------------------\n if (!loadSessionSupported) {\n // Refused, not degraded. Starting a fresh session here would present a\n // context-less turn as a continuation of a parked one.\n throw failed('Agent does not advertise the loadSession capability; cannot resume the session', {\n resumeSessionId: options.resumeSessionId,\n });\n }\n session.replaying = true;\n await Promise.race([\n request('session/load', {\n sessionId: options.resumeSessionId,\n cwd: options.cwd,\n mcpServers: [],\n }),\n exitPromise,\n ]);\n session.replaying = false;\n sessionId = options.resumeSessionId;\n // Modes are reported by session/new, not session/load. The permission\n // handler is the guarantee regardless, so a resumed session simply runs\n // without a reselected mode.\n } else {\n // --- session/new ------------------------------------------------------\n const sessionResult = await Promise.race([\n request('session/new', {\n cwd: options.cwd,\n mcpServers: [],\n ...(options.sessionMetaExtensions ? { _meta: options.sessionMetaExtensions } : {}),\n }),\n exitPromise,\n ]);\n if (!isRecord(sessionResult) || typeof sessionResult.sessionId !== 'string') {\n throw failed('Agent returned a malformed session/new result', { sessionResult });\n }\n sessionId = sessionResult.sessionId;\n\n // --- best-effort mode selection (an optimisation, never the guarantee) -\n const modes = isRecord(sessionResult.modes) ? sessionResult.modes : undefined;\n const available = modes && Array.isArray(modes.availableModes) ? modes.availableModes : [];\n const preferred = options.preferredSessionModeIds ?? [];\n const match = available.find((entry) => isRecord(entry) && typeof entry.id === 'string' && preferred.includes(entry.id));\n if (isRecord(match) && typeof match.id === 'string') {\n try {\n // Raced against the death signal: before this, a `session/set_mode` sent\n // to an agent that then died left a promise nobody would ever settle,\n // with the turn timeout not yet armed — the run hung forever.\n await Promise.race([request('session/set_mode', { sessionId, modeId: match.id }), exitPromise]);\n sessionModeId = match.id;\n } catch {\n // The ceiling is still enforced by the permission handler, so a mode we\n // could not set costs round-trips, not safety.\n sessionModeId = undefined;\n }\n } else if (typeof modes?.currentModeId === 'string') {\n sessionModeId = modes.currentModeId;\n }\n }\n\n // --- model delivery, when the agent takes it over ACP -------------------\n //\n // Unlike the mode selection above, this is NOT best-effort. A model that\n // could not be set means the agent runs its own default while the run\n // records the model that was requested — a false result rather than a\n // degraded one, which is precisely the failure the provider-declared\n // delivery channel exists to end. So a rejection fails the session before\n // any prompt is sent, i.e. before the agent has touched the workspace.\n if (options.modelSelection) {\n const setModelResult = await Promise.race([\n request('session/set_config_option', {\n sessionId,\n configId: options.modelSelection.configId,\n value: options.modelSelection.model,\n }),\n exitPromise,\n ]).catch((error: unknown) => {\n throw failed(\n `Agent refused the model selection: ${error instanceof Error ? error.message : String(error)}`,\n { configId: options.modelSelection?.configId, model: options.modelSelection?.model },\n );\n });\n void setModelResult;\n }\n\n const promptTurn = async (prompt: string, turnOptions?: ACPPromptTurnOptions): Promise<ACPTurnResult> => {\n if (session.childExited) {\n throw failed('Agent process is no longer running; cannot start a turn', { sessionId });\n }\n\n // Per-turn slices are the cumulative arrays from this point on.\n const eventStart = session.events.length;\n const permissionStart = session.permissionDecisions.length;\n const deniedStart = session.deniedPermissionCount;\n const fileLocStart = session.reportedFileLocations.length;\n session.turnFinalMessage = '';\n session.turnLastUsageUpdate = undefined;\n\n let settled = false;\n let timedOut = false;\n let timer: NodeJS.Timeout | undefined;\n const cancelTurn = (): void => {\n write({ jsonrpc: '2.0', method: 'session/cancel', params: { sessionId } });\n setTimeout(() => {\n if (!settled) terminate();\n }, COOPERATIVE_CANCEL_GRACE_MS).unref?.();\n };\n const onAbort = (): void => cancelTurn();\n\n const turnPromise = request('session/prompt', {\n sessionId,\n prompt: [{ type: 'text', text: prompt }],\n });\n if (turnOptions?.turnTimeoutMs !== undefined) {\n timer = setTimeout(() => {\n timedOut = true;\n // Cooperative first: ACP requires the agent to answer a cancelled turn\n // with stop reason `cancelled`, which lets the caller distinguish an\n // interrupted run from a completed one. Kill only if it does not.\n cancelTurn();\n }, turnOptions.turnTimeoutMs);\n timer.unref?.();\n }\n if (turnOptions?.abortSignal) {\n if (turnOptions.abortSignal.aborted) cancelTurn();\n else turnOptions.abortSignal.addEventListener('abort', onAbort, { once: true });\n }\n\n try {\n const turnResult = await Promise.race([turnPromise, exitPromise]);\n settled = true;\n if (!isRecord(turnResult)) {\n throw failed('Agent returned a malformed session/prompt result', { turnResult, timedOut });\n }\n const { stopReason, rawStopReason } = parseStopReason(turnResult.stopReason);\n return {\n finalMessage: session.turnFinalMessage,\n stopReason,\n ...(rawStopReason ? { rawStopReason } : {}),\n usage: projectUsage(turnResult.usage, session.turnLastUsageUpdate),\n reportedFileLocations: session.reportedFileLocations.slice(fileLocStart),\n events: session.events.slice(eventStart),\n eventsTruncated: session.eventsTruncated,\n deniedPermissionCount: session.deniedPermissionCount - deniedStart,\n permissionDecisions: session.permissionDecisions.slice(permissionStart),\n };\n } finally {\n settled = true;\n if (timer) clearTimeout(timer);\n turnOptions?.abortSignal?.removeEventListener('abort', onAbort);\n }\n };\n\n return {\n sessionId,\n negotiatedProtocolVersion,\n ...(typeof agentInfo.name === 'string' ? { agentName: agentInfo.name } : {}),\n ...(typeof agentInfo.version === 'string' ? { agentVersion: agentInfo.version } : {}),\n ...(sessionModeId ? { sessionModeId } : {}),\n capabilities: { loadSession: loadSessionSupported },\n promptTurn,\n close: terminate,\n };\n } catch (error) {\n // Setup failed: the child must not be left running.\n terminate();\n throw error;\n }\n}\n\n/**\n * Drive exactly one coding turn end to end: open a session, send one prompt,\n * settle, and close.\n *\n * The compatibility surface for every caller that does not need the turn\n * cadence. It is a thin composition of {@link startACPAgentSession} +\n * `promptTurn` + `close`, so its behaviour tracks the handle by construction.\n */\nexport async function runACPCodingSession(options: ACPCodingSessionOptions): Promise<ACPCodingSessionResult> {\n const agentSession = await startACPAgentSession(options);\n try {\n const turn = await agentSession.promptTurn(options.prompt, {\n ...(options.turnTimeoutMs !== undefined ? { turnTimeoutMs: options.turnTimeoutMs } : {}),\n ...(options.abortSignal ? { abortSignal: options.abortSignal } : {}),\n });\n return {\n finalMessage: turn.finalMessage,\n stopReason: turn.stopReason,\n ...(turn.rawStopReason ? { rawStopReason: turn.rawStopReason } : {}),\n usage: turn.usage,\n reportedFileLocations: turn.reportedFileLocations,\n sessionId: agentSession.sessionId,\n negotiatedProtocolVersion: agentSession.negotiatedProtocolVersion,\n ...(agentSession.agentName ? { agentName: agentSession.agentName } : {}),\n ...(agentSession.agentVersion ? { agentVersion: agentSession.agentVersion } : {}),\n ...(agentSession.sessionModeId ? { sessionModeId: agentSession.sessionModeId } : {}),\n events: turn.events,\n eventsTruncated: turn.eventsTruncated,\n deniedPermissionCount: turn.deniedPermissionCount,\n permissionDecisions: turn.permissionDecisions,\n };\n } finally {\n agentSession.close();\n }\n}\n\n/** Re-exported so callers reason about ceilings through one ordering definition. */\nexport { agentClientProtocolPermissionCeilingRank };\n"]}
@@ -9,175 +9,6 @@
9
9
  export type JsonValue = null | boolean | number | string | readonly JsonValue[] | {
10
10
  readonly [key: string]: JsonValue;
11
11
  };
12
- /** Canonical bytes for one content-addressed semantic artifact. */
13
- export declare function canonicalArtifactJsonBytes(value: unknown): Uint8Array;
14
- /** Deterministic UUID-v4-shaped identity for replay-stable semantic records. */
15
- export declare function deriveMetaWorkflowLowercaseUuidV4(scope: string, value: string): string;
16
- /**
17
- * Literal domain separators for every digest-bearing portable meta-workflow
18
- * record.
19
- *
20
- * This enum is deliberately exhaustive and is the sole runtime source for
21
- * these strings. A new digest-bearing record must extend both this enum and
22
- * {@link META_WORKFLOW_SEMANTIC_DIGEST_POLICIES}; reusing a nearby domain
23
- * would collapse two semantically distinct identities.
24
- */
25
- export declare enum MetaWorkflowSemanticDigestDomain {
26
- PROVIDER_USAGE_PRICING_AUTHORITY = "wildo:provider-usage-pricing-authority:v1",
27
- WORK_CYCLE_BUDGET_ALLOCATION = "wildo:work-cycle-budget-allocation:v1",
28
- DRIVER_INVOCATION_RESOURCE_AUTHORITY = "wildo:driver-invocation-resource-authority:v1",
29
- WORK_CYCLE_BUDGET_RESERVATION = "wildo:work-cycle-budget-reservation:v1",
30
- WORK_CYCLE_BUDGET_SETTLEMENT = "wildo:work-cycle-budget-settlement:v1",
31
- BUDGET_RESERVATION_VERIFICATION = "wildo:budget-reservation-verification:v1",
32
- WORK_CYCLE_BUDGET_CONTINUATION_POLICY = "wildo:work-cycle-budget-continuation-policy:v1",
33
- WORK_CYCLE_BUDGET_BALANCE = "wildo:work-cycle-budget-balance:v1",
34
- WORK_CYCLE_BUDGET_STOP = "wildo:work-cycle-budget-stop:v1",
35
- WORK_CYCLE_BUDGET_CONTINUATION_DECISION = "wildo:work-cycle-budget-continuation-decision:v1",
36
- WORK_CYCLE_RECOVERY_RELATION = "wildo:work-cycle-recovery-relation:v1",
37
- WORK_CYCLE_RECOVERY_AUTHORIZATION = "wildo:work-cycle-recovery-authorization:v1",
38
- MODEL_INVOCATION_CAPACITY = "wildo:model-invocation-capacity:v1",
39
- STRUCTURED_GENERATION_PLAN = "wildo:structured-generation-plan:v1",
40
- ACTION_DEFINITION = "wildo:meta-workflow-action-definition:v1",
41
- STRUCTURED_ARTIFACT_ACTION_DEFINITION = "wildo:meta-workflow-structured-artifact-action-definition:v1",
42
- MODEL_INVOCATION_RETRY_POLICY = "wildo:meta-workflow-model-invocation-retry-policy:v1",
43
- ACTION_BINDING = "wildo:meta-workflow-action-binding:v1",
44
- DRIVER_DESCRIPTOR = "wildo:meta-workflow-driver-descriptor:v1",
45
- DRIVER_REQUEST = "wildo:meta-workflow-driver-request:v1",
46
- DRIVER_ADMISSION = "wildo:meta-workflow-driver-admission:v1",
47
- DRIVER_CHECKPOINT = "wildo:meta-workflow-driver-checkpoint:v1",
48
- DRIVER_RESULT = "wildo:meta-workflow-driver-result:v1",
49
- STRUCTURED_ARTIFACT_MODEL_INVOCATION_RECEIPT = "wildo:meta-workflow-structured-artifact-model-invocation-receipt:v1",
50
- NORMALIZED_ACTION_OUTCOME = "wildo:meta-workflow-normalized-action-outcome:v1",
51
- SEALED_ARTIFACT_SET = "wildo:meta-workflow-sealed-artifact-set:v1",
52
- OUTPUT_CONTRACT_VALIDATION_RECEIPT = "wildo:meta-workflow-output-contract-validation-receipt:v1",
53
- DECISION_POINT_DEFINITION = "wildo:meta-workflow-decision-point-definition:v1",
54
- EVALUATION_CRITERION_DEFINITION = "wildo:meta-workflow-evaluation-criterion-definition:v1",
55
- EVALUATION_PROTOCOL_DEFINITION = "wildo:meta-workflow-evaluation-protocol-definition:v1",
56
- EVALUATION_TREATMENT_DEFINITION = "wildo:meta-workflow-evaluation-treatment-definition:v1",
57
- EVIDENCE_REQUIREMENT = "wildo:meta-workflow-evidence-requirement:v1",
58
- EVIDENCE_ASSESSMENT_RECEIPT = "wildo:meta-workflow-evidence-assessment-receipt:v1",
59
- SEALED_EVIDENCE_SET = "wildo:meta-workflow-sealed-evidence-set:v1",
60
- EVALUATOR_DESCRIPTOR = "wildo:meta-workflow-evaluator-descriptor:v1",
61
- EVALUATOR_BINDING_POLICY = "wildo:meta-workflow-evaluator-binding-policy:v1",
62
- EVALUATOR_BINDING = "wildo:meta-workflow-evaluator-binding:v1",
63
- EVALUATOR_SELECTION_DECISION = "wildo:meta-workflow-evaluator-selection-decision:v1",
64
- EVALUATOR_EXECUTION_RESULT = "wildo:meta-workflow-evaluator-execution-result:v1",
65
- STRUCTURED_SEMANTIC_EVALUATION_CANDIDATE = "wildo:meta-workflow-structured-semantic-evaluation-candidate:v1",
66
- EVALUATION_RESULT = "wildo:meta-workflow-evaluation-result:v1",
67
- EVIDENCE_ADMISSION_RECEIPT = "wildo:meta-workflow-evidence-admission-receipt:v1",
68
- DECISION_RULE = "wildo:meta-workflow-decision-rule:v1",
69
- DECISION_RULE_RESULT = "wildo:meta-workflow-decision-rule-result:v1",
70
- AUTHORITY_REQUIREMENT = "wildo:meta-workflow-authority-requirement:v1",
71
- AUTHORITY_REQUEST = "wildo:meta-workflow-authority-request:v1",
72
- AUTHORITY_DECISION = "wildo:meta-workflow-authority-decision:v1",
73
- CONTINUATION_POLICY = "wildo:meta-workflow-continuation-policy:v1",
74
- CONTINUATION_RECEIPT = "wildo:meta-workflow-continuation-receipt:v1",
75
- EVALUATION_TREATMENT_BOUND_FACT_PAYLOAD = "wildo:meta-workflow-evaluation-treatment-bound-fact-payload:v2",
76
- DECISION_POINT_STATE_TRANSITION_FACT = "wildo:meta-workflow-decision-point-state-transition-fact:v1",
77
- PLAYBOOK_RUN_ADMISSION_DECISION = "wildo:meta-workflow-run-admission-decision:v1",
78
- PLAYBOOK_RUN_ACKNOWLEDGEMENT = "wildo:meta-workflow-run-acknowledgement:v1",
79
- PLAYBOOK_WORKING_ADMISSION_DECISION = "wildo:meta-workflow-working-admission-decision:v1",
80
- PLAYBOOK_WORKING_ADMISSION_ACKNOWLEDGEMENT = "wildo:meta-workflow-working-admission-acknowledgement:v1",
81
- OUTPUT_CONTRACT_DESCRIPTOR = "wildo:meta-workflow-output-contract-descriptor:v1",
82
- BINDING_REGISTRY_CONTRACT_DESCRIPTOR = "wildo:meta-workflow-binding-registry-contract:v1",
83
- TRANSLATED_PLAYBOOK_DEFINITION = "wildo:meta-workflow-playbook-definition:v2",
84
- CATALOG = "wildo:meta-workflow-catalog:v2",
85
- RUNNER_CONTRACT = "wildo:meta-workflow-runner-contract:v2",
86
- RUNTIME_SUPPORT_INVENTORY = "wildo:meta-workflow-runtime-support-inventory:v2",
87
- RUNTIME_IMPLEMENTATION_ARTIFACT_SET = "wildo:meta-workflow-runtime-artifact-set:v1",
88
- RUNTIME_IMPLEMENTATION_PROVENANCE = "wildo:meta-workflow-runtime-implementation-provenance:v1",
89
- APPLICATION_OWNED_OVERRIDE = "wildo:meta-workflow-catalog-override:v2",
90
- CATALOG_BUNDLE = "wildo:meta-workflow-catalog-bundle:v2",
91
- SUPPORT_ASSESSMENT = "wildo:meta-workflow-support-assessment:v2",
92
- CATALOG_ACTIVATION = "wildo:meta-workflow-catalog-activation:v2"
93
- }
94
- /**
95
- * The only root fields excluded when deriving one domain's semantic payload.
96
- *
97
- * Exclusions are domain-specific on purpose. A blanket "timestamp" or
98
- * "*Digest" filter would silently erase fields that are semantic in another
99
- * record, such as a source content digest or an authority response time.
100
- */
101
- export interface MetaWorkflowSemanticDigestPolicy {
102
- readonly ownDigestField: string;
103
- readonly observationalFields: readonly string[];
104
- }
105
- /**
106
- * Auditable digest-exclusion policy paired one-for-one with the domain enum.
107
- *
108
- * `generatedAt` and `observedAt` are excluded only on records whose contract
109
- * declares them observational. All other timestamps, nested digests,
110
- * provenance, ordered entries, and policy inputs remain semantic.
111
- */
112
- export declare const META_WORKFLOW_SEMANTIC_DIGEST_POLICIES: Readonly<{
113
- "wildo:provider-usage-pricing-authority:v1": MetaWorkflowSemanticDigestPolicy;
114
- "wildo:work-cycle-budget-allocation:v1": MetaWorkflowSemanticDigestPolicy;
115
- "wildo:driver-invocation-resource-authority:v1": MetaWorkflowSemanticDigestPolicy;
116
- "wildo:work-cycle-budget-reservation:v1": MetaWorkflowSemanticDigestPolicy;
117
- "wildo:work-cycle-budget-settlement:v1": MetaWorkflowSemanticDigestPolicy;
118
- "wildo:budget-reservation-verification:v1": MetaWorkflowSemanticDigestPolicy;
119
- "wildo:work-cycle-budget-continuation-policy:v1": MetaWorkflowSemanticDigestPolicy;
120
- "wildo:work-cycle-budget-balance:v1": MetaWorkflowSemanticDigestPolicy;
121
- "wildo:work-cycle-budget-stop:v1": MetaWorkflowSemanticDigestPolicy;
122
- "wildo:work-cycle-budget-continuation-decision:v1": MetaWorkflowSemanticDigestPolicy;
123
- "wildo:work-cycle-recovery-relation:v1": MetaWorkflowSemanticDigestPolicy;
124
- "wildo:work-cycle-recovery-authorization:v1": MetaWorkflowSemanticDigestPolicy;
125
- "wildo:model-invocation-capacity:v1": MetaWorkflowSemanticDigestPolicy;
126
- "wildo:structured-generation-plan:v1": MetaWorkflowSemanticDigestPolicy;
127
- "wildo:meta-workflow-action-definition:v1": MetaWorkflowSemanticDigestPolicy;
128
- "wildo:meta-workflow-structured-artifact-action-definition:v1": MetaWorkflowSemanticDigestPolicy;
129
- "wildo:meta-workflow-model-invocation-retry-policy:v1": MetaWorkflowSemanticDigestPolicy;
130
- "wildo:meta-workflow-action-binding:v1": MetaWorkflowSemanticDigestPolicy;
131
- "wildo:meta-workflow-driver-descriptor:v1": MetaWorkflowSemanticDigestPolicy;
132
- "wildo:meta-workflow-driver-request:v1": MetaWorkflowSemanticDigestPolicy;
133
- "wildo:meta-workflow-driver-admission:v1": MetaWorkflowSemanticDigestPolicy;
134
- "wildo:meta-workflow-driver-checkpoint:v1": MetaWorkflowSemanticDigestPolicy;
135
- "wildo:meta-workflow-driver-result:v1": MetaWorkflowSemanticDigestPolicy;
136
- "wildo:meta-workflow-structured-artifact-model-invocation-receipt:v1": MetaWorkflowSemanticDigestPolicy;
137
- "wildo:meta-workflow-normalized-action-outcome:v1": MetaWorkflowSemanticDigestPolicy;
138
- "wildo:meta-workflow-sealed-artifact-set:v1": MetaWorkflowSemanticDigestPolicy;
139
- "wildo:meta-workflow-output-contract-validation-receipt:v1": MetaWorkflowSemanticDigestPolicy;
140
- "wildo:meta-workflow-decision-point-definition:v1": MetaWorkflowSemanticDigestPolicy;
141
- "wildo:meta-workflow-evaluation-criterion-definition:v1": MetaWorkflowSemanticDigestPolicy;
142
- "wildo:meta-workflow-evaluation-protocol-definition:v1": MetaWorkflowSemanticDigestPolicy;
143
- "wildo:meta-workflow-evaluation-treatment-definition:v1": MetaWorkflowSemanticDigestPolicy;
144
- "wildo:meta-workflow-evidence-requirement:v1": MetaWorkflowSemanticDigestPolicy;
145
- "wildo:meta-workflow-evidence-assessment-receipt:v1": MetaWorkflowSemanticDigestPolicy;
146
- "wildo:meta-workflow-sealed-evidence-set:v1": MetaWorkflowSemanticDigestPolicy;
147
- "wildo:meta-workflow-evaluator-descriptor:v1": MetaWorkflowSemanticDigestPolicy;
148
- "wildo:meta-workflow-evaluator-binding-policy:v1": MetaWorkflowSemanticDigestPolicy;
149
- "wildo:meta-workflow-evaluator-binding:v1": MetaWorkflowSemanticDigestPolicy;
150
- "wildo:meta-workflow-evaluator-selection-decision:v1": MetaWorkflowSemanticDigestPolicy;
151
- "wildo:meta-workflow-evaluator-execution-result:v1": MetaWorkflowSemanticDigestPolicy;
152
- "wildo:meta-workflow-structured-semantic-evaluation-candidate:v1": MetaWorkflowSemanticDigestPolicy;
153
- "wildo:meta-workflow-evaluation-result:v1": MetaWorkflowSemanticDigestPolicy;
154
- "wildo:meta-workflow-evidence-admission-receipt:v1": MetaWorkflowSemanticDigestPolicy;
155
- "wildo:meta-workflow-decision-rule:v1": MetaWorkflowSemanticDigestPolicy;
156
- "wildo:meta-workflow-decision-rule-result:v1": MetaWorkflowSemanticDigestPolicy;
157
- "wildo:meta-workflow-authority-requirement:v1": MetaWorkflowSemanticDigestPolicy;
158
- "wildo:meta-workflow-authority-request:v1": MetaWorkflowSemanticDigestPolicy;
159
- "wildo:meta-workflow-authority-decision:v1": MetaWorkflowSemanticDigestPolicy;
160
- "wildo:meta-workflow-continuation-policy:v1": MetaWorkflowSemanticDigestPolicy;
161
- "wildo:meta-workflow-continuation-receipt:v1": MetaWorkflowSemanticDigestPolicy;
162
- "wildo:meta-workflow-evaluation-treatment-bound-fact-payload:v2": MetaWorkflowSemanticDigestPolicy;
163
- "wildo:meta-workflow-decision-point-state-transition-fact:v1": MetaWorkflowSemanticDigestPolicy;
164
- "wildo:meta-workflow-run-admission-decision:v1": MetaWorkflowSemanticDigestPolicy;
165
- "wildo:meta-workflow-run-acknowledgement:v1": MetaWorkflowSemanticDigestPolicy;
166
- "wildo:meta-workflow-working-admission-decision:v1": MetaWorkflowSemanticDigestPolicy;
167
- "wildo:meta-workflow-working-admission-acknowledgement:v1": MetaWorkflowSemanticDigestPolicy;
168
- "wildo:meta-workflow-output-contract-descriptor:v1": MetaWorkflowSemanticDigestPolicy;
169
- "wildo:meta-workflow-binding-registry-contract:v1": MetaWorkflowSemanticDigestPolicy;
170
- "wildo:meta-workflow-playbook-definition:v2": MetaWorkflowSemanticDigestPolicy;
171
- "wildo:meta-workflow-catalog:v2": MetaWorkflowSemanticDigestPolicy;
172
- "wildo:meta-workflow-runner-contract:v2": MetaWorkflowSemanticDigestPolicy;
173
- "wildo:meta-workflow-runtime-support-inventory:v2": MetaWorkflowSemanticDigestPolicy;
174
- "wildo:meta-workflow-runtime-artifact-set:v1": MetaWorkflowSemanticDigestPolicy;
175
- "wildo:meta-workflow-runtime-implementation-provenance:v1": MetaWorkflowSemanticDigestPolicy;
176
- "wildo:meta-workflow-catalog-override:v2": MetaWorkflowSemanticDigestPolicy;
177
- "wildo:meta-workflow-catalog-bundle:v2": MetaWorkflowSemanticDigestPolicy;
178
- "wildo:meta-workflow-support-assessment:v2": MetaWorkflowSemanticDigestPolicy;
179
- "wildo:meta-workflow-catalog-activation:v2": MetaWorkflowSemanticDigestPolicy;
180
- }>;
181
12
  /**
182
13
  * A fail-closed canonicalization error with the structural location of the
183
14
  * invalid value. Error messages intentionally describe shape/type only and do
@@ -206,42 +37,4 @@ export declare function canonicalizeMetaWorkflowJson(value: unknown): string;
206
37
  * byte offset/length are respected by Node's hash implementation.
207
38
  */
208
39
  export declare function computeMetaWorkflowRawByteDigest(bytes: Uint8Array): string;
209
- /** Stable identity for a named schema/validator contract and its profile. */
210
- export declare function computeMetaWorkflowNamedContractDigest(input: {
211
- contractRef: string;
212
- contractVersion: number;
213
- profileRef: string;
214
- }): string;
215
- /**
216
- * Derive the semantic root object for a digest-bearing meta-workflow record.
217
- *
218
- * Only the domain's own digest and explicitly observational root fields are
219
- * omitted. The remaining graph is copied into strict JSON data so later caller
220
- * mutation cannot change the returned payload through shared object identity.
221
- */
222
- export declare function createMetaWorkflowSemanticPayload(domain: MetaWorkflowSemanticDigestDomain, record: unknown): JsonValue;
223
- /**
224
- * Derive a semantic payload from one explicit policy without consulting the
225
- * permanent meta-workflow digest registry.
226
- *
227
- * This low-level seam lets contained migration code keep its short-lived
228
- * domain in a migration-owned module. Production catalog codecs therefore do
229
- * not compile against migration-only semantic identities.
230
- */
231
- export declare function createMetaWorkflowSemanticPayloadWithPolicy(record: unknown, policy: MetaWorkflowSemanticDigestPolicy): JsonValue;
232
- /**
233
- * Compute the plan's semantic identity formula:
234
- *
235
- * `sha256(UTF8(domain + NUL + JCS(domain-policy(record))))`
236
- *
237
- * The policy application is internal so callers cannot accidentally include a
238
- * record's existing self-digest or observational generation time.
239
- */
240
- export declare function computeMetaWorkflowSemanticDigest(domain: MetaWorkflowSemanticDigestDomain, payload: unknown): string;
241
- /**
242
- * Compute a domain-separated semantic digest from an explicit exclusion
243
- * policy. Callers must own the domain and policy together; permanent
244
- * meta-workflow records should use {@link computeMetaWorkflowSemanticDigest}.
245
- */
246
- export declare function computeMetaWorkflowSemanticDigestWithPolicy(domain: string, payload: unknown, policy: MetaWorkflowSemanticDigestPolicy): string;
247
40
  //# sourceMappingURL=meta-workflow-canonical-json.backend.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-workflow-canonical-json.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/flows-actors/utils/meta-workflow-canonical-json.backend.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-workflow-canonical-json.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/flows-actors/utils/meta-workflow-canonical-json.backend.utils.ts"],"names":[],"mappings":"AAYA;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,SAAS,SAAS,EAAE,GACpB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE1C;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,SAAS;IAC3D,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAKhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGnE;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAK1E"}