@wildo-ai/saas-models 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  2. package/dist/esm/_inspect.d.ts.map +1 -1
  3. package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
  4. package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
  5. package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
  7. package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
  8. package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
  9. package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
  10. package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
  11. package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
  12. package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
  13. package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
  14. package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
  15. package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
  16. package/dist/esm/billing/billing-types.shared.schemas.d.ts +1 -0
  17. package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
  18. package/dist/esm/billing/billing-types.shared.schemas.js +45 -0
  19. package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
  20. package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
  21. package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
  22. package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
  23. package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
  24. package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
  25. package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
  26. package/dist/esm/billing/price.shared.schemas.js.map +1 -1
  27. package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
  28. package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
  29. package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
  30. package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
  31. package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
  32. package/dist/esm/billing/product.shared.schemas.js.map +1 -1
  33. package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
  34. package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
  35. package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
  36. package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
  37. package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
  38. package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
  39. package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
  40. package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
  41. package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
  42. package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
  43. package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
  44. package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
  45. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +2 -0
  46. package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
  47. package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
  48. package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
  49. package/dist/esm/companion-exports.d.ts.map +1 -1
  50. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  51. package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
  52. package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
  53. package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
  54. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
  55. package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
  56. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +178 -6
  57. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
  58. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +326 -4
  59. package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
  60. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
  61. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +22 -0
  62. package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
  63. package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
  64. package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
  65. package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
  66. package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +1 -1
  67. package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
  68. package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
  69. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +27 -0
  70. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
  71. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +36 -2
  72. package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
  73. package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
  74. package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
  75. package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
  76. package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
  77. package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
  78. package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
  79. package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
  80. package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
  81. package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
  82. package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
  83. package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
  84. package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
  85. package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
  86. package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
  87. package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
  88. package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
  89. package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
  90. package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
  91. package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
  92. package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
  93. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +14 -14
  94. package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
  95. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts +139 -3
  96. package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
  97. package/dist/esm/config/frontend/chart-registration-alignment.shared.js +151 -4
  98. package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
  99. package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
  100. package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
  101. package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
  102. package/dist/esm/config-authoring.entry.d.ts.map +1 -1
  103. package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
  104. package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
  105. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +6 -0
  106. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
  107. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +6 -0
  108. package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
  109. package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
  110. package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
  111. package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
  112. package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
  113. package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
  114. package/dist/esm/external-data.exports.d.ts.map +1 -1
  115. package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
  116. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +7 -0
  117. package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
  118. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +7 -0
  119. package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
  120. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
  121. package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
  122. package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
  123. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +4 -0
  124. package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
  125. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
  126. package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
  127. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
  128. package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
  129. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +57 -0
  130. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
  131. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +29 -0
  132. package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
  133. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts +175 -0
  134. package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -0
  135. package/dist/esm/external-providers/frontend-provider-public-config.shared.js +207 -0
  136. package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -0
  137. package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
  138. package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
  139. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +18 -8
  140. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
  141. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +10 -4
  142. package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
  143. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts +165 -0
  144. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -0
  145. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js +39 -0
  146. package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -0
  147. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
  148. package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
  149. package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
  150. package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
  151. package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
  152. package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
  153. package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -1
  154. package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -1
  155. package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
  156. package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
  157. package/dist/esm/features/application-features.shared.resources-config.schemas.js +12 -0
  158. package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
  159. package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
  160. package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
  161. package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
  162. package/dist/esm/features/feature-builders.shared.js.map +1 -1
  163. package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
  164. package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
  165. package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
  166. package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
  167. package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
  168. package/dist/esm/features/user-features.shared.resources-config.schemas.js +12 -0
  169. package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
  170. package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts +73 -0
  171. package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -0
  172. package/dist/esm/files/file-remote-reference-link.shared.schemas.js +62 -0
  173. package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -0
  174. package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
  175. package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
  176. package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
  177. package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
  178. package/dist/esm/files/files.shared.schemas.js.map +1 -1
  179. package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
  180. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  181. package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
  182. package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
  183. package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
  184. package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
  185. package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
  186. package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
  187. package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
  188. package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
  189. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +6 -6
  190. package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts.map +1 -1
  191. package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts.map +1 -1
  192. package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
  193. package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
  194. package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
  195. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
  196. package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
  197. package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
  198. package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
  199. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
  200. package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
  201. package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
  202. package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
  203. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
  204. package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
  205. package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
  206. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
  207. package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
  208. package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
  209. package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
  210. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts +2 -0
  211. package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
  212. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +11 -0
  213. package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
  214. package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -1
  215. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +1 -1
  216. package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +1 -1
  217. package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -1
  218. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
  219. package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
  220. package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts.map +1 -1
  221. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
  222. package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
  223. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +1 -1
  224. package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +1 -1
  225. package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -1
  226. package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
  227. package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts.map +1 -1
  228. package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
  229. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +112 -0
  230. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -0
  231. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +113 -0
  232. package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -0
  233. package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
  234. package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
  235. package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
  236. package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
  237. package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
  238. package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
  239. package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
  240. package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
  241. package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
  242. package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
  243. package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
  244. package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
  245. package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
  246. package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
  247. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
  248. package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
  249. package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
  250. package/dist/esm/index.d.ts +6 -0
  251. package/dist/esm/index.d.ts.map +1 -1
  252. package/dist/esm/index.js +6 -0
  253. package/dist/esm/index.js.map +1 -1
  254. package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
  255. package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
  256. package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
  257. package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
  258. package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
  259. package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
  260. package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
  261. package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
  262. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
  263. package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
  264. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
  265. package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
  266. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
  267. package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
  268. package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
  269. package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
  270. package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
  271. package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
  272. package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
  273. package/dist/esm/notifications/notifications.shared.schemas.d.ts +51 -0
  274. package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
  275. package/dist/esm/notifications/notifications.shared.schemas.js +51 -0
  276. package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
  277. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
  278. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +13 -0
  279. package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
  280. package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
  281. package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
  282. package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
  283. package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
  284. package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
  285. package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  286. package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
  287. package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
  288. package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
  289. package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
  290. package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
  291. package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
  292. package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
  293. package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
  294. package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
  295. package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
  296. package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
  297. package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
  298. package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
  299. package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
  300. package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
  301. package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
  302. package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
  303. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +13 -0
  304. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
  305. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +13 -0
  306. package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
  307. package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
  308. package/dist/esm/public-runtime/index.d.ts +22 -0
  309. package/dist/esm/public-runtime/index.d.ts.map +1 -1
  310. package/dist/esm/public-runtime/index.js +14 -0
  311. package/dist/esm/public-runtime/index.js.map +1 -1
  312. package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
  313. package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
  314. package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
  315. package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
  316. package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
  317. package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
  318. package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
  319. package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
  320. package/dist/esm/requests/manual-controllers-routes-documentation.js +57 -3
  321. package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
  322. package/dist/esm/requests/manual-controllers-routes-urls.d.ts +47 -0
  323. package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
  324. package/dist/esm/requests/manual-controllers-routes-urls.js +51 -0
  325. package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
  326. package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
  327. package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
  328. package/dist/esm/requests/websocket.shared.schemas.d.ts +9 -7
  329. package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
  330. package/dist/esm/requests/websocket.shared.schemas.js +17 -0
  331. package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
  332. package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
  333. package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
  334. package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
  335. package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
  336. package/dist/esm/resources/resources-config.shared.factory.js +98 -5
  337. package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
  338. package/dist/esm/resources/resources-config.shared.schemas.d.ts +48 -1
  339. package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
  340. package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
  341. package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
  342. package/dist/esm/resources/resources-registry.shared.core.definitions.js +54 -0
  343. package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
  344. package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
  345. package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
  346. package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
  347. package/dist/esm/resources/resources.shared.core.definitions.d.ts +17 -0
  348. package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
  349. package/dist/esm/resources/resources.shared.core.definitions.js +18 -0
  350. package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
  351. package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
  352. package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
  353. package/dist/esm/resources/resources.shared.utils.d.ts +32 -7
  354. package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
  355. package/dist/esm/resources/resources.shared.utils.js +32 -7
  356. package/dist/esm/resources/resources.shared.utils.js.map +1 -1
  357. package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
  358. package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
  359. package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
  360. package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
  361. package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
  362. package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -1
  363. package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -1
  364. package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
  365. package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
  366. package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
  367. package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
  368. package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
  369. package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
  370. package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
  371. package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
  372. package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
  373. package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
  374. package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
  375. package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
  376. package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
  377. package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
  378. package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
  379. package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
  380. package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
  381. package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
  382. package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
  383. package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
  384. package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
  385. package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
  386. package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
  387. package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
  388. package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
  389. package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
  390. package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
  391. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
  392. package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
  393. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
  394. package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
  395. package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
  396. package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
  397. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +1 -1
  398. package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
  399. package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
  400. package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
  401. package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
  402. package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
  403. package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
  404. package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
  405. package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
  406. package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
  407. package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
  408. package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
  409. package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
  410. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
  411. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
  412. package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
  413. package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
  414. package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
  415. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
  416. package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
  417. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
  418. package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
  419. package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
  420. package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
  421. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +3 -3
  422. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
  423. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +35 -5
  424. package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
  425. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
  426. package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
  427. package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
  428. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +2 -0
  429. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
  430. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +15 -0
  431. package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
  432. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +45 -2
  433. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
  434. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +45 -2
  435. package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
  436. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts +35 -0
  437. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts.map +1 -0
  438. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +257 -0
  439. package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -0
  440. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts +143 -0
  441. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -0
  442. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js +219 -0
  443. package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -0
  444. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
  445. package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
  446. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +23 -0
  447. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
  448. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js +24 -0
  449. package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
  450. package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
  451. package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
  452. package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
  453. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
  454. package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
  455. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
  456. package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -1
  457. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +57 -0
  458. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -1
  459. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +44 -0
  460. package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
  461. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
  462. package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
  463. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
  464. package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
  465. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
  466. package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
  467. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
  468. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
  469. package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
  470. package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
  471. package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
  472. package/dist/esm/testing.d.ts.map +1 -1
  473. package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
  474. package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
  475. package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
  476. package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
  477. package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
  478. package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
  479. package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
  480. package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
  481. package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
  482. package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
  483. package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  484. package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  485. package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
  486. package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
  487. package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
  488. package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
  489. package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
  490. package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
  491. package/dist/esm/users/users.shared.schemas.d.ts +17 -1
  492. package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
  493. package/dist/esm/users/users.shared.schemas.js +18 -2
  494. package/dist/esm/users/users.shared.schemas.js.map +1 -1
  495. package/dist/tsconfig.build.tsbuildinfo +1 -1
  496. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.shared.schemas.js","sourceRoot":"","sources":["../../../../src/requests/websocket.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { DataMode } from '../resources/resources-config.shared.schemas';\nimport { FrontendDisplayHintsSchema } from '../notifications/notifications.shared.schemas';\nimport { ValueMomentRole, ValueMomentScope } from '../config/analytics-value-moments.shared.schemas';\nimport { OnboardingStatus } from '../config/frontend/onboarding.shared.schemas';\nimport { GuidanceFlowScope, GuidanceRenderMode } from '../guidance/guidance-flow.shared.schemas';\nimport { ProgressionScope, MilestoneRewardType } from '../guidance/milestone-definition.shared.schemas';\nimport { LifecycleStage, LifecycleScope } from '../guidance/lifecycle-state.shared.schemas';\nimport { ResourceOperationVariantType } from '../resources/resources.shared.schemas';\nimport { ResourcePrimaryScope } from '../resources/resources.shared.schemas';\n\n// =====================================================\n// WebSocket Event Types (Core Framework Events)\n// =====================================================\n\n/**\n * Core WebSocket events defined by the engine.\n * Custom events use the RESOURCE_CUSTOM type with eventName field.\n */\nexport enum CoreWebSocketEvent {\n // === Room Management Events (client → server) ===\n RESOURCE_SUBSCRIBE = 'resource:subscribe',\n RESOURCE_UNSUBSCRIBE = 'resource:unsubscribe',\n RESOURCE_SUBSCRIBED = 'resource:subscribed', // Server confirmation\n RESOURCE_UNSUBSCRIBED = 'resource:unsubscribed', // Server confirmation\n\n // === Target-Based Notification Events (server → client, via identity rooms) ===\n RESOURCE_NOTIFICATION = 'resource:notification',\n USER_NOTIFICATION = 'user:notification', // Direct user notification (not tied to resource operation)\n BADGE_UPDATE = 'badge:update',\n BADGE_GET = 'badge:get',\n BADGE_GET_ALL = 'badge:get-all',\n\n // === Resource Room Events (bidirectional, via resource rooms) ===\n RESOURCE_UPDATED = 'resource:updated',\n RESOURCE_DELETED = 'resource:deleted',\n RESOURCE_EDITING_START = 'resource:editing:start',\n RESOURCE_EDITING_END = 'resource:editing:end',\n RESOURCE_EDITING_STARTED = 'resource:editing:started', // Server confirmation\n RESOURCE_EDITING_ERROR = 'resource:editing:error',\n RESOURCE_LOCKED = 'resource:locked',\n RESOURCE_UNLOCKED = 'resource:unlocked',\n RESOURCE_CUSTOM = 'resource:custom',\n RESOURCE_CUSTOM_ERROR = 'resource:custom:error',\n\n // === FlowsActors Events (bidirectional) ===\n FLOWS_ACTORS_START = 'flows-actors:start',\n FLOWS_ACTORS_STARTED = 'flows-actors:started',\n FLOWS_ACTORS_MESSAGE = 'flows-actors:message',\n FLOWS_ACTORS_APPROVAL_REQUEST = 'flows-actors:approval-request',\n FLOWS_ACTORS_APPROVAL_RESPONSE = 'flows-actors:approval-response',\n FLOWS_ACTORS_STATUS_UPDATE = 'flows-actors:status-update',\n FLOWS_ACTORS_COMPLETED = 'flows-actors:completed',\n FLOWS_ACTORS_ERROR = 'flows-actors:error',\n\n // === Billing Events (server → client, invalidation triggers) ===\n BILLING_STATUS_CHANGED = 'billing:status_changed',\n BILLING_SUBSCRIPTION_UPDATED = 'billing:subscription_updated',\n BILLING_ACCOUNT_CHANGED = 'billing:account_changed',\n BILLING_USAGE_UPDATED = 'billing:usage_updated',\n BILLING_CREDIT_POOL_UPDATED = 'billing:credit_pool_updated',\n BILLING_FEATURES_UPDATED = 'billing:features_updated',\n\n // === Analytics Events ===\n ANALYTICS_MOMENT_ACHIEVED = 'analytics:moment-achieved',\n\n // === Guidance Events ===\n GUIDANCE_STATE_CHANGED = 'guidance:state-changed',\n\n // === Progression Events ===\n MILESTONE_ACHIEVED = 'progression:milestone-achieved',\n /**\n * Emitted after a milestone-triggering operation increments a scope's\n * `operationCounts` — even when NO milestone was achieved. Lets the frontend\n * advance in-progress milestone bars live (e.g. 8/10 → 9/10) instead of only\n * on achievement or a page reload.\n */\n PROGRESSION_UPDATED = 'progression:updated',\n\n // === Lifecycle Events ===\n LIFECYCLE_STAGE_CHANGED = 'lifecycle:stage-changed',\n\n // === System Events ===\n AUTH_REFRESH = 'auth:refresh',\n ORGANIZATION_SWITCH = 'organization:switch',\n SYSTEM_TOKEN_REFRESHED = 'system:token-refreshed',\n SYSTEM_ERROR = 'system:error',\n}\n\n/**\n * Machine-readable codes attached to a Socket.IO handshake rejection.\n *\n * A rejecting server-side auth middleware calls `next(err)`; Socket.IO forwards\n * the error's `data` field verbatim to the client's `connect_error` handler as\n * `err.data`. Emitting a stable code there lets the client react to WHY the\n * handshake was rejected WITHOUT matching on the human-readable error message\n * (which is localisation- and refactor-fragile).\n *\n * `AUTHENTICATION_FAILED` specifically flags an access-token problem the client\n * can self-heal: the frontend re-runs its token-renewal handler and reconnects\n * with a fresh token. This is what keeps a backgrounded / unfocused tab's socket\n * alive across access-token expiry, when no HTTP traffic is flowing to trigger a\n * reactive refresh (background real-time jobs keep delivering instead of stalling\n * until the user refocuses the window).\n */\nexport enum CoreWebSocketConnectionErrorCode {\n AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED',\n}\n\nexport enum ResourceAction {\n CREATED = 'created',\n UPDATED = 'updated',\n DELETED = 'deleted',\n}\n\nexport const ResourceActionSchema = z.union([z.enum(ResourceAction), z.string()]);\n\nexport enum WebSocketResourceDeliveryTarget {\n RESOURCE_ROOM_SYNC = 'resource-room-sync',\n RESOURCE_ROOM_NOTIFICATION = 'resource-room-notification',\n SCOPE_ROOM_NOTIFICATION = 'scope-room-notification',\n}\n\nexport const WebSocketResourceDeliveryTargetSchema = z.enum(WebSocketResourceDeliveryTarget);\n\n/**\n * Union type for WebSocket event names (core + custom string events)\n */\nexport type WebSocketEventName = CoreWebSocketEvent | `custom:${string}`;\n\n// =====================================================\n// Common Schemas (reusable across payloads)\n// =====================================================\n\nexport const ContextResourceIdentifiersSchema = z.record(z.string(), z.string());\nexport type ContextResourceIdentifiers = z.infer<typeof ContextResourceIdentifiersSchema>;\n\nconst WebSocketTimestampInputSchema = z.union([\n z.date(),\n z.string().datetime({ offset: true }),\n]);\nconst WebSocketTimestampSchema = WebSocketTimestampInputSchema.pipe(z.coerce.date());\nconst WebSocketOptionalTimestampSchema = WebSocketTimestampSchema.optional();\n\n\n// =====================================================\n// Room Management Payloads (client → server)\n// =====================================================\n\nconst WS_ResourceSubscribePayloadBaseSchema = z.object({\n resourceType: z.string().min(1),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n});\n\n/** Subscribe to a specific resource room. */\nconst WS_ResourceSubscribeSinglePayloadSchema = WS_ResourceSubscribePayloadBaseSchema.extend({\n resourceId: z.string().min(1),\n scopeKey: z.undefined().optional(),\n scopeId: z.undefined().optional(),\n});\n\n/** Subscribe to a scoped collection room. */\nconst WS_ResourceSubscribeScopePayloadSchema = WS_ResourceSubscribePayloadBaseSchema.extend({\n resourceId: z.undefined().optional(),\n scopeKey: z.string().min(1),\n scopeId: z.string().min(1),\n});\n\n/** Subscribe to a resource room - either single-resource or scoped collection. */\nexport const WS_ResourceSubscribePayloadSchema = z.union([\n WS_ResourceSubscribeSinglePayloadSchema,\n WS_ResourceSubscribeScopePayloadSchema,\n]);\nexport type WS_ResourceSubscribePayload = z.infer<typeof WS_ResourceSubscribePayloadSchema>;\n\n/** Server confirmation of subscription */\nexport const WS_ResourceSubscribedPayloadSchema = z.object({\n roomName: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n /** List of user IDs currently editing this resource (only for single resource subscriptions) */\n editingUsers: z.array(z.string()).optional(),\n});\nexport type WS_ResourceSubscribedPayload = z.infer<typeof WS_ResourceSubscribedPayloadSchema>;\n\n// =====================================================\n// Notification Payloads (server → client, target-based)\n// =====================================================\n\n/**\n * Notification level enum for typed notifications\n */\nexport enum NotificationLevel {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n\nexport const NotificationLevelSchema = z.enum(NotificationLevel);\n\n/** Resource notification via identity rooms (org, role, user) */\nexport const WS_ResourceNotificationPayloadSchema = z.object({\n // Operation path fields (for EventBus matching)\n resourceType: z.string(),\n operationIdentifier: z.string(),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().default(false),\n isBulkOperation: z.boolean().default(false),\n variantKey: z.string().optional(),\n\n // Context for scoped matching\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(),\n\n // Notification data\n action: ResourceActionSchema,\n /** Explicit notification level (overrides action-based default) */\n notificationLevel: NotificationLevelSchema.optional(),\n affectedIds: z.array(z.string()),\n notificationIdentifier: z.string().optional(),\n initiatorUserId: z.string().optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n\n /**\n * Frontend display hints (only populated for FRONT_END_SUCCESS channel).\n * Contains optional celebration mode and next-step suggestion.\n * Backend passes these through without interpreting them — the frontend\n * reads them to decide rendering (toast vs overlay vs confetti, with or without CTA).\n */\n frontendDisplayHints: FrontendDisplayHintsSchema.optional(),\n});\nexport type WS_ResourceNotificationPayload = z.infer<typeof WS_ResourceNotificationPayloadSchema>;\n\n/** Badge count update */\nexport const WS_BadgeUpdatePayloadSchema = z.object({\n badgeReference: z.string(),\n badgeCount: z.number().int().min(0),\n organizationId: z.string().optional(),\n});\nexport type WS_BadgeUpdatePayload = z.infer<typeof WS_BadgeUpdatePayloadSchema>;\n\n/**\n * Display target enum for user notifications\n */\nexport enum NotificationDisplayTarget {\n TOAST = 'toast',\n CENTER = 'center',\n BOTH = 'both',\n}\n\nexport const NotificationDisplayTargetSchema = z.enum(NotificationDisplayTarget);\n\n/**\n * Direct user notification (not tied to resource operation)\n * Used for arbitrary backend-initiated notifications like:\n * - \"Your export is ready\"\n * - \"Payment received\"\n * - \"System maintenance scheduled\"\n */\nexport const WS_UserNotificationPayloadSchema = z.object({\n /** Notification level (info, success, warning, error) */\n notificationLevel: NotificationLevelSchema,\n /** i18n identifier for message lookup (FrontendNotificationCustomMessageRefs) */\n identifier: z.string().optional(),\n /** Direct message (fallback if identifier not found or not provided) */\n message: z.string().optional(),\n /** Optional notification title */\n title: z.string().optional(),\n /** Additional context data */\n data: z.record(z.string(), z.unknown()).optional(),\n /** Where to display the notification */\n displayTarget: NotificationDisplayTargetSchema.default(NotificationDisplayTarget.BOTH),\n /** Organization context (if notification is org-scoped) */\n organizationId: z.string().optional(),\n /** Timestamp */\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\nexport type WS_UserNotificationPayload = z.infer<typeof WS_UserNotificationPayloadSchema>;\n\n// =====================================================\n// Analytics Payloads (server → client)\n// =====================================================\n\n/** Analytics moment achievement notification */\nexport const WS_AnalyticsMomentAchievedPayloadSchema = z.object({\n momentIdentifier: z.string(),\n role: z.enum(ValueMomentRole),\n scope: z.enum(ValueMomentScope),\n scopeEntityId: z.string(),\n achievedAt: WebSocketTimestampSchema,\n triggerSource: z.enum(['frontend', 'backend'] as const),\n});\nexport type WS_AnalyticsMomentAchievedPayload = z.infer<typeof WS_AnalyticsMomentAchievedPayloadSchema>;\n\n// =====================================================\n// Guidance Event Payloads\n// =====================================================\n\n/** Guidance state changed event — pushed by backend or frontend for real-time sync */\nexport const GuidanceRealtimeStatusSchema = z.union([\n z.literal(OnboardingStatus.IN_PROGRESS),\n z.literal(OnboardingStatus.COMPLETED),\n z.literal(OnboardingStatus.DISMISSED),\n]);\n\n/** Guidance state changed event — only statuses broadcast through the realtime bridge. */\nexport const WS_GuidanceStateChangedPayloadSchema = z.object({\n flowRef: z.string(),\n status: GuidanceRealtimeStatusSchema,\n elementRef: z.string().optional(),\n triggerSource: z.enum(['frontend', 'backend'] as const),\n /** Which scope this event pertains to — determines how frontend routes state updates */\n scope: z.enum(GuidanceFlowScope),\n renderMode: z.enum(GuidanceRenderMode).optional(),\n});\nexport type WS_GuidanceStateChangedPayload = z.infer<typeof WS_GuidanceStateChangedPayloadSchema>;\n\n// =====================================================\n// Progression Event Payloads\n// =====================================================\n\n/** Milestone achieved event — pushed by backend when a milestone condition is met */\nexport const WS_MilestoneAchievedPayloadSchema = z.object({\n milestoneRef: z.string(),\n category: z.string(),\n points: z.number().int().optional(),\n /** Which scope this milestone belongs to — determines how frontend routes state updates */\n scope: z.enum(ProgressionScope),\n reward: z.object({\n type: z.enum(MilestoneRewardType),\n featureRef: z.string().optional(),\n guidanceFlowRef: z.string().optional(),\n celebrationLevel: z.enum(['low', 'medium', 'high']).optional(),\n }),\n /** Phase 5 integration: lifecycle transition triggered by this milestone */\n lifecycleTransition: z.object({\n from: z.string(),\n to: z.string(),\n }).optional(),\n /** Timestamp of achievement */\n achievedAt: WebSocketTimestampSchema,\n /** Updated total points (post-achievement) */\n totalPoints: z.number().int(),\n});\nexport type WS_MilestoneAchievedPayload = z.infer<typeof WS_MilestoneAchievedPayloadSchema>;\n\n/**\n * Progression progress event — pushed by backend after a milestone-triggering\n * operation increments the scope's `operationCounts`, regardless of whether a\n * milestone was achieved. Carries the authoritative post-increment counts so\n * the frontend can advance in-progress bars without a refetch (the backend\n * evaluation is fire-and-forget, so the frontend cannot re-read counts\n * race-free on its own).\n */\nexport const WS_ProgressionUpdatedPayloadSchema = z.object({\n /** Which scope's progression state changed. */\n scope: z.enum(ProgressionScope),\n /** Full post-increment operation-count map for the scope (`{ 'todos:create': 9 }`). */\n operationCounts: z.record(z.string(), z.number().int()),\n /** Current total points for the scope (unchanged unless a milestone also fired). */\n totalPoints: z.number().int(),\n /** When the increment was applied. */\n updatedAt: WebSocketTimestampSchema,\n});\nexport type WS_ProgressionUpdatedPayload = z.infer<typeof WS_ProgressionUpdatedPayloadSchema>;\n\n// =====================================================\n// Lifecycle Event Payloads\n// =====================================================\n\n/** Lifecycle stage changed event — pushed by backend when a lifecycle transition occurs */\nexport const WS_LifecycleStageChangedPayloadSchema = z.object({\n /** Previous stage before transition */\n previousStage: z.enum(LifecycleStage),\n /** New stage after transition */\n newStage: z.enum(LifecycleStage),\n /** Which scope this lifecycle state belongs to */\n scope: z.enum(LifecycleScope),\n /** What triggered the transition */\n trigger: z.string().optional(),\n /** When the transition occurred */\n changedAt: WebSocketTimestampSchema,\n /** Activation progress snapshot (for SIGNED_UP → ACTIVATED tracking) */\n activationCriteriaMet: z.record(z.string(), z.boolean()).optional(),\n});\nexport type WS_LifecycleStageChangedPayload = z.infer<typeof WS_LifecycleStageChangedPayloadSchema>;\n\n// =====================================================\n// CRDT Field Metadata (shared between backend + frontend)\n// =====================================================\n\n/**\n * Per-field CRDT metadata: server-authoritative timestamp + last editor.\n * `meta` is an extensibility slot for future per-field metadata (e.g. merge strategy hints,\n * conflict resolution context) without requiring a schema migration.\n */\nexport const FieldMetaEntrySchema = z.object({\n ts: z.number(),\n by: z.string(),\n meta: z.record(z.string(), z.unknown()).optional(),\n});\nexport type FieldMetaEntry = z.infer<typeof FieldMetaEntrySchema>;\n\nexport const FieldMetaMapSchema = z.record(z.string(), FieldMetaEntrySchema);\nexport type FieldMetaMap = z.infer<typeof FieldMetaMapSchema>;\n\n// =====================================================\n// Resource Room Payloads (path-independent collaboration)\n// =====================================================\n\nconst ResourceUpdateSyncActionSchema = z.union([\n z.literal(ResourceAction.CREATED),\n z.literal(ResourceAction.UPDATED),\n]);\n\nconst WS_ResourceEventCommonPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n affectedIds: z.array(z.string()).optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\n\nconst WS_ResourceUpdateNotificationPayloadCommonSchema = WS_ResourceEventCommonPayloadSchema.extend({\n affectedIds: z.array(z.string()).min(1),\n action: ResourceActionSchema,\n operationIdentifier: z.string().optional(),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n version: z.number().optional(),\n resourceData: z.unknown().optional(),\n fieldMeta: FieldMetaMapSchema.optional(),\n // DataMode values match directly: DataMode.RAW === 'raw', etc.\n dataMode: z.enum(DataMode).optional(),\n});\n/** Notification-grade resource update event delivered to scope rooms. */\nexport const WS_ScopeRoomUpdateNotificationPayloadSchema = WS_ResourceUpdateNotificationPayloadCommonSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION),\n});\nexport type WS_ScopeRoomUpdateNotificationPayload = z.infer<typeof WS_ScopeRoomUpdateNotificationPayloadSchema>;\n\n/** Notification-grade resource update event delivered to resource rooms. */\nexport const WS_ResourceRoomUpdateNotificationPayloadSchema = WS_ResourceUpdateNotificationPayloadCommonSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_NOTIFICATION),\n});\nexport type WS_ResourceRoomUpdateNotificationPayload = z.infer<typeof WS_ResourceRoomUpdateNotificationPayloadSchema>;\n\nexport const WS_ResourceUpdateNotificationPayloadSchema = z.discriminatedUnion('deliveryTarget', [\n WS_ScopeRoomUpdateNotificationPayloadSchema,\n WS_ResourceRoomUpdateNotificationPayloadSchema,\n]);\nexport type WS_ResourceUpdateNotificationPayload = z.infer<typeof WS_ResourceUpdateNotificationPayloadSchema>;\n\n/** Synchronization-grade resource update event (resource rooms, RMM replay). */\nexport const WS_ResourceSyncUpdatedPayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: ResourceUpdateSyncActionSchema,\n operationIdentifier: z.string().min(1),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n version: z.number(),\n resourceData: z.record(z.string(), z.unknown()),\n fieldMeta: FieldMetaMapSchema.optional(),\n dataMode: z.enum(DataMode).optional(),\n});\nexport type WS_ResourceSyncUpdatedPayload = z.infer<typeof WS_ResourceSyncUpdatedPayloadSchema>;\n\n/** Update events can be either notification-grade or sync-grade, distinguished explicitly. */\nexport const WS_ResourceUpdatedPayloadSchema = z.discriminatedUnion('deliveryTarget', [\n WS_ScopeRoomUpdateNotificationPayloadSchema,\n WS_ResourceRoomUpdateNotificationPayloadSchema,\n WS_ResourceSyncUpdatedPayloadSchema,\n]);\nexport type WS_ResourceUpdatedPayload = z.infer<typeof WS_ResourceUpdatedPayloadSchema>;\n\n/** Resource deleted event for resource rooms. */\nexport const WS_ResourceDeletedPayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: z.literal(ResourceAction.DELETED),\n operationIdentifier: z.string().min(1),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n});\nexport type WS_ResourceDeletedPayload = z.infer<typeof WS_ResourceDeletedPayloadSchema>;\n\n/** Lightweight resource-room state payload for lock/unlock style events. */\nexport const WS_ResourceRoomStatePayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: ResourceActionSchema.optional(),\n operationIdentifier: z.string().optional(),\n initiatorUserId: z.string().optional(),\n});\nexport type WS_ResourceRoomStatePayload = z.infer<typeof WS_ResourceRoomStatePayloadSchema>;\n\n/**\n * Editing start/end payload\n * - Incoming: contextResourceIdentifiers REQUIRED for UPDATE authorization\n * - Outgoing (broadcast): contextResourceIdentifiers omitted\n */\nexport const WS_ResourceEditingPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(), // Required on input\n initiatorUserId: z.string().optional(),\n timestamp: WebSocketOptionalTimestampSchema,\n reason: z.enum(['manual', 'disconnect', 'timeout', 'auth_refresh', 'organization_switch']).optional(), // For editing:end\n});\nexport type WS_ResourceEditingPayload = z.infer<typeof WS_ResourceEditingPayloadSchema>;\n\n/** Editing confirmation/error */\nexport const WS_ResourceEditingResultPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n});\nexport type WS_ResourceEditingResultPayload = z.infer<typeof WS_ResourceEditingResultPayloadSchema>;\n\n/**\n * Custom collaboration event\n * - Incoming: contextResourceIdentifiers REQUIRED for READ authorization\n * - Outgoing (broadcast): contextResourceIdentifiers omitted\n */\nexport const WS_ResourceCustomEventPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n eventName: z.string().min(1), // Custom event name (e.g., 'cursor:move', 'comment:add')\n data: z.unknown().optional(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(), // Required on input\n initiatorUserId: z.string().optional(),\n includeSelf: z.boolean().optional(), // Only for outgoing\n timestamp: WebSocketOptionalTimestampSchema,\n // Phase 7.1: Optional resource data for custom events with resource context\n // When included, will be validated against appropriate DTO based on dataMode.\n resourceData: z.unknown().optional(),\n // DataMode values match directly: DataMode.RAW === 'raw', etc.\n dataMode: z.enum(DataMode).optional(),\n});\nexport type WS_ResourceCustomEventPayload = z.infer<typeof WS_ResourceCustomEventPayloadSchema>;\n\n/** Error response for custom events */\nexport const WS_ResourceCustomErrorPayloadSchema = z.object({\n eventName: z.string(),\n error: z.string(),\n});\nexport type WS_ResourceCustomErrorPayload = z.infer<typeof WS_ResourceCustomErrorPayloadSchema>;\n\n// =====================================================\n// Badge Request/Response Payloads\n// =====================================================\n\n/** Badge get request (client → server) */\nexport const WS_BadgeGetRequestSchema = z.object({\n identifier: z.string(),\n scope: z.string(),\n scopeId: z.string(),\n});\n\nexport type WS_BadgeGetRequest = z.infer<typeof WS_BadgeGetRequestSchema>;\n\n/** Badge get-all request (client → server) */\nexport const WS_BadgeGetAllRequestSchema = z.object({\n scope: z.string(),\n scopeId: z.string(),\n});\nexport type WS_BadgeGetAllRequest = z.infer<typeof WS_BadgeGetAllRequestSchema>;\n\n/** Badge get-all response (server → client) */\nexport const WS_BadgeGetAllResponseSchema = z.array(z.object({\n identifier: z.string(),\n count: z.number().min(0),\n}));\nexport type WS_BadgeGetAllResponse = z.infer<typeof WS_BadgeGetAllResponseSchema>;\n\n// =====================================================\n// FlowsActors Payloads (bidirectional)\n// =====================================================\n\n/** Start a FlowActorSystem execution (client → server) */\nexport const WS_FlowsActorsStartPayloadSchema = z.object({\n systemRef: z.string().min(1),\n executionId: z.string().optional(), // Server generates if not provided\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n initialInput: z.record(z.string(), z.unknown()).optional(),\n});\nexport type WS_FlowsActorsStartPayload = z.infer<typeof WS_FlowsActorsStartPayloadSchema>;\n\n/** Confirmation of FlowActorSystem start (server → client) */\nexport const WS_FlowsActorsStartedPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n});\nexport type WS_FlowsActorsStartedPayload = z.infer<typeof WS_FlowsActorsStartedPayloadSchema>;\n\n/** Message from agent/flow (server → client) */\nexport const WS_FlowsActorsMessagePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n messageType: z.enum(['text', 'markdown', 'progress', 'data']),\n content: z.string(),\n data: z.record(z.string(), z.unknown()).optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n\n /**\n * Correlates streamed token deltas to a single logical message. When present,\n * consecutive `messageId`-sharing events belong to the same assistant turn:\n * non-final events (`isFinal !== true`) carry an incremental delta to APPEND to\n * that message's content; the final event (`isFinal === true`) carries the FULL\n * assembled content as the authoritative value. When absent, the event is a\n * standalone message (legacy/one-shot behavior — append a new entry).\n */\n messageId: z.string().optional(),\n /** True on the terminal event of a streamed message (`content` is the full text). */\n isFinal: z.boolean().optional(),\n});\nexport type WS_FlowsActorsMessagePayload = z.infer<typeof WS_FlowsActorsMessagePayloadSchema>;\n\n/**\n * The approval announcement that is ACTUALLY sent, carried in the `data` bag of a\n * `FLOWS_ACTORS_MESSAGE` of type `PROGRESS`.\n *\n * It is a named schema rather than a shape both ends open-code, because the `data` bag is\n * `z.record(z.string(), z.unknown())` — so nothing typed the announcement, and the browser\n * listened on `FLOWS_ACTORS_APPROVAL_REQUEST` instead, an event **nothing has ever emitted**.\n * The result: `pendingApproval` was never set, no shipped screen could observe a paused turn,\n * and `resourceServerInstanceRef` — which the server sends precisely so a decision can echo it —\n * was discarded, leaving an approval raised on a NAMED agent instance unresumable (#528).\n *\n * Producer: `persistApprovalSuspension`. Consumer: `FlowsActorsContext`.\n */\nexport const WS_FlowsActorsApprovalAnnouncementDataSchema = z.object({\n /** Discriminator. The `data` bag carries other kinds of payload on other messages. */\n approvalRequested: z.literal(true),\n approvalId: z.string(),\n /** The tool call being gated. */\n toolName: z.string(),\n /**\n * The tool call's ARGUMENTS — the structured thing a person is actually being asked to approve.\n * Loose here because the shape belongs to the tool, not to the transport; a surface that renders\n * these gets their schema from the tool declaration.\n */\n toolArgs: z.record(z.string(), z.unknown()).optional(),\n requestedAt: z.string(),\n /** When the pause lapses. Written since #465; it reaches a client only through this block. */\n expiresAt: z.string().optional(),\n /**\n * The isolation axis the DECISION must carry back, sent unconditionally — including when it is\n * the default sentinel — so a client echoes one field rather than branching on whether the value\n * is meaningful.\n */\n resourceServerInstanceRef: z.string(),\n});\nexport type WS_FlowsActorsApprovalAnnouncementData = z.infer<typeof WS_FlowsActorsApprovalAnnouncementDataSchema>;\n\n/** Human approval request (server → client) */\nexport const WS_FlowsActorsApprovalRequestPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n approvalId: z.string(),\n actionDescription: z.string(),\n riskLevel: z.enum(['low', 'medium', 'high', 'critical']),\n requiredRoles: z.array(z.string()).optional(),\n expiresAt: WebSocketOptionalTimestampSchema,\n});\n\nexport type WS_FlowsActorsApprovalRequestPayload = z.infer<typeof WS_FlowsActorsApprovalRequestPayloadSchema>;\n\n/** Human approval response (client → server) */\nexport const WS_FlowsActorsApprovalResponsePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n approvalId: z.string(),\n approved: z.boolean(),\n comment: z.string().optional(),\n /**\n * The agent instance the paused conversation belongs to — ECHOED from the approval REQUEST.\n *\n * A conversation is isolated by owner FK, machine credential AND agent instance, so a resume that\n * omits this axis is filtered against the DEFAULT instance sentinel. An approval raised on a NAMED\n * A2A agent instance therefore matched no row and the decision was dropped silently — logged as\n * \"no pending approval matches\" and returned, with the turn left paused forever.\n *\n * Optional because the in-app conversational plane runs on the default instance and has nothing to\n * echo; absent means default, which is the value those executions were written with.\n */\n resourceServerInstanceRef: z.string().optional(),\n});\nexport type WS_FlowsActorsApprovalResponsePayload = z.infer<typeof WS_FlowsActorsApprovalResponsePayloadSchema>;\n\n/** Status update during execution (server → client) */\nexport const WS_FlowsActorsStatusUpdatePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n status: z.string(),\n progress: z.number().min(0).max(100).optional(),\n currentStep: z.string().optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\nexport type WS_FlowsActorsStatusUpdatePayload = z.infer<typeof WS_FlowsActorsStatusUpdatePayloadSchema>;\n\n/** Execution completed (server → client) */\nexport const WS_FlowsActorsCompletedPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n success: z.boolean(),\n result: z.record(z.string(), z.unknown()).optional(),\n duration: z.number().optional(), // in ms\n});\nexport type WS_FlowsActorsCompletedPayload = z.infer<typeof WS_FlowsActorsCompletedPayloadSchema>;\n\n/** Execution error (server → client) */\nexport const WS_FlowsActorsErrorPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n errorCode: z.string(),\n errorMessage: z.string(),\n recoverable: z.boolean().default(false),\n});\nexport type WS_FlowsActorsErrorPayload = z.infer<typeof WS_FlowsActorsErrorPayloadSchema>;\n\n// =====================================================\n// System Payloads\n// =====================================================\n\nexport const WS_AuthRefreshPayloadSchema = z.object({\n token: z.string(),\n});\nexport type WS_AuthRefreshPayload = z.infer<typeof WS_AuthRefreshPayloadSchema>;\n\nexport const WS_SystemTokenRefreshedPayloadSchema = z.object({\n success: z.literal(true),\n});\nexport type WS_SystemTokenRefreshedPayload = z.infer<typeof WS_SystemTokenRefreshedPayloadSchema>;\n\nexport const WS_OrganizationSwitchPayloadSchema = z.object({\n organizationId: z.string(),\n previousOrganizationId: z.string().optional(),\n});\nexport type WS_OrganizationSwitchPayload = z.infer<typeof WS_OrganizationSwitchPayloadSchema>;\n\nexport const WS_SystemErrorPayloadSchema = z.object({\n code: z.string(),\n message: z.string(),\n details: z.unknown().optional(),\n});\nexport type WS_SystemErrorPayload = z.infer<typeof WS_SystemErrorPayloadSchema>;\n\n// =====================================================\n// Billing Payloads (server → client, invalidation triggers)\n// =====================================================\n\nexport const WS_BillingEventPayloadSchema = z.object({\n scopeType: z.enum(ResourcePrimaryScope),\n scopeEntityId: z.string(),\n billingAccountId: z.string(),\n});\n export type WS_BillingEventPayload = z.infer<typeof WS_BillingEventPayloadSchema>;\n\n// =====================================================\n// Event-to-Schema Map (for validation)\n// =====================================================\n\nexport const WebSocketEventSchemas = {\n // Room management\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBE]: WS_ResourceSubscribePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBE]: WS_ResourceSubscribePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBED]: WS_ResourceSubscribedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBED]: WS_ResourceSubscribedPayloadSchema,\n\n // Notifications\n [CoreWebSocketEvent.RESOURCE_NOTIFICATION]: WS_ResourceNotificationPayloadSchema,\n [CoreWebSocketEvent.USER_NOTIFICATION]: WS_UserNotificationPayloadSchema,\n [CoreWebSocketEvent.BADGE_UPDATE]: WS_BadgeUpdatePayloadSchema,\n [CoreWebSocketEvent.BADGE_GET]: WS_BadgeGetRequestSchema,\n [CoreWebSocketEvent.BADGE_GET_ALL]: WS_BadgeGetAllRequestSchema,\n\n // Resource room events\n [CoreWebSocketEvent.RESOURCE_UPDATED]: WS_ResourceUpdatedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_DELETED]: WS_ResourceDeletedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_START]: WS_ResourceEditingPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_END]: WS_ResourceEditingPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_STARTED]: WS_ResourceEditingResultPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_ERROR]: WS_ResourceEditingResultPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_LOCKED]: WS_ResourceRoomStatePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNLOCKED]: WS_ResourceRoomStatePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_CUSTOM]: WS_ResourceCustomEventPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_CUSTOM_ERROR]: WS_ResourceCustomErrorPayloadSchema,\n\n // FlowsActors\n [CoreWebSocketEvent.FLOWS_ACTORS_START]: WS_FlowsActorsStartPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_STARTED]: WS_FlowsActorsStartedPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_MESSAGE]: WS_FlowsActorsMessagePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_REQUEST]: WS_FlowsActorsApprovalRequestPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_RESPONSE]: WS_FlowsActorsApprovalResponsePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_STATUS_UPDATE]: WS_FlowsActorsStatusUpdatePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_COMPLETED]: WS_FlowsActorsCompletedPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_ERROR]: WS_FlowsActorsErrorPayloadSchema,\n\n // Billing\n [CoreWebSocketEvent.BILLING_STATUS_CHANGED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_USAGE_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_CREDIT_POOL_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_FEATURES_UPDATED]: WS_BillingEventPayloadSchema,\n\n // Analytics\n [CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED]: WS_AnalyticsMomentAchievedPayloadSchema,\n\n // Guidance\n [CoreWebSocketEvent.GUIDANCE_STATE_CHANGED]: WS_GuidanceStateChangedPayloadSchema,\n\n // Progression\n [CoreWebSocketEvent.MILESTONE_ACHIEVED]: WS_MilestoneAchievedPayloadSchema,\n [CoreWebSocketEvent.PROGRESSION_UPDATED]: WS_ProgressionUpdatedPayloadSchema,\n\n // Lifecycle\n [CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED]: WS_LifecycleStageChangedPayloadSchema,\n\n // System\n [CoreWebSocketEvent.AUTH_REFRESH]: WS_AuthRefreshPayloadSchema,\n [CoreWebSocketEvent.ORGANIZATION_SWITCH]: WS_OrganizationSwitchPayloadSchema,\n [CoreWebSocketEvent.SYSTEM_TOKEN_REFRESHED]: WS_SystemTokenRefreshedPayloadSchema,\n [CoreWebSocketEvent.SYSTEM_ERROR]: WS_SystemErrorPayloadSchema,\n} as const;\n\n// =====================================================\n// Typed Payload Map (for TypeScript inference)\n// =====================================================\n\nexport type WebSocketEventPayloads = {\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBE]: WS_ResourceSubscribePayload;\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBE]: WS_ResourceSubscribePayload;\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBED]: WS_ResourceSubscribedPayload;\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBED]: WS_ResourceSubscribedPayload;\n\n [CoreWebSocketEvent.RESOURCE_NOTIFICATION]: WS_ResourceNotificationPayload;\n [CoreWebSocketEvent.USER_NOTIFICATION]: WS_UserNotificationPayload;\n [CoreWebSocketEvent.BADGE_UPDATE]: WS_BadgeUpdatePayload;\n [CoreWebSocketEvent.BADGE_GET]: WS_BadgeGetRequest;\n [CoreWebSocketEvent.BADGE_GET_ALL]: WS_BadgeGetAllRequest;\n\n [CoreWebSocketEvent.RESOURCE_UPDATED]: WS_ResourceUpdatedPayload;\n [CoreWebSocketEvent.RESOURCE_DELETED]: WS_ResourceDeletedPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_START]: WS_ResourceEditingPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_END]: WS_ResourceEditingPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_STARTED]: WS_ResourceEditingResultPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_ERROR]: WS_ResourceEditingResultPayload;\n [CoreWebSocketEvent.RESOURCE_LOCKED]: WS_ResourceRoomStatePayload;\n [CoreWebSocketEvent.RESOURCE_UNLOCKED]: WS_ResourceRoomStatePayload;\n [CoreWebSocketEvent.RESOURCE_CUSTOM]: WS_ResourceCustomEventPayload;\n [CoreWebSocketEvent.RESOURCE_CUSTOM_ERROR]: WS_ResourceCustomErrorPayload;\n\n [CoreWebSocketEvent.FLOWS_ACTORS_START]: WS_FlowsActorsStartPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_STARTED]: WS_FlowsActorsStartedPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_MESSAGE]: WS_FlowsActorsMessagePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_REQUEST]: WS_FlowsActorsApprovalRequestPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_RESPONSE]: WS_FlowsActorsApprovalResponsePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_STATUS_UPDATE]: WS_FlowsActorsStatusUpdatePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_COMPLETED]: WS_FlowsActorsCompletedPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_ERROR]: WS_FlowsActorsErrorPayload;\n\n [CoreWebSocketEvent.BILLING_STATUS_CHANGED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_USAGE_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_CREDIT_POOL_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_FEATURES_UPDATED]: WS_BillingEventPayload;\n\n [CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED]: WS_AnalyticsMomentAchievedPayload;\n\n [CoreWebSocketEvent.GUIDANCE_STATE_CHANGED]: WS_GuidanceStateChangedPayload;\n\n [CoreWebSocketEvent.MILESTONE_ACHIEVED]: WS_MilestoneAchievedPayload;\n [CoreWebSocketEvent.PROGRESSION_UPDATED]: WS_ProgressionUpdatedPayload;\n\n [CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED]: WS_LifecycleStageChangedPayload;\n\n [CoreWebSocketEvent.AUTH_REFRESH]: WS_AuthRefreshPayload;\n [CoreWebSocketEvent.ORGANIZATION_SWITCH]: WS_OrganizationSwitchPayload;\n [CoreWebSocketEvent.SYSTEM_TOKEN_REFRESHED]: WS_SystemTokenRefreshedPayload;\n [CoreWebSocketEvent.SYSTEM_ERROR]: WS_SystemErrorPayload;\n};\n\n// =====================================================\n// Room Naming Utilities\n// =====================================================\n\n/**\n * WebSocket room name prefixes for different room types.\n * These prefixes are used to create room names for Socket.IO.\n */\nexport enum WebSocketRoomPrefix {\n /** User-specific room: user:{userId} */\n USER = 'user',\n /** Organization room: org:{organizationId} */\n ORGANIZATION = 'org',\n /** Organization role room: org:{organizationId}:role:{role} */\n ORGANIZATION_ROLE = 'role',\n /** Application-level role room: app:role:{role} */\n APP_ROLE = 'app:role',\n /** Resource room: resource:{resourceType}:{resourceId} */\n RESOURCE = 'resource',\n /** Public room for unauthenticated users */\n PUBLIC = 'public',\n}\n\n/**\n * Build a user room name\n */\nexport function buildUserRoomName(userId: string): string {\n return `${WebSocketRoomPrefix.USER}:${userId}`;\n}\n\n/**\n * Build an organization room name\n */\nexport function buildOrganizationRoomName(organizationId: string): string {\n return `${WebSocketRoomPrefix.ORGANIZATION}:${organizationId}`;\n}\n\n/**\n * Build an organization role room name\n */\nexport function buildOrganizationRoleRoomName(organizationId: string, role: string): string {\n return `${WebSocketRoomPrefix.ORGANIZATION}:${organizationId}:${WebSocketRoomPrefix.ORGANIZATION_ROLE}:${role}`;\n}\n\n/**\n * Build an application-level role room name\n */\nexport function buildAppRoleRoomName(role: string): string {\n return `${WebSocketRoomPrefix.APP_ROLE}:${role}`;\n}\n\n/**\n * Build a resource room name\n */\nexport function buildResourceRoomName(resourceType: string, resourceId: string): string {\n return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${resourceId}`;\n}\n\n/**\n * Build a scope room name for collection subscriptions\n */\nexport function buildScopeRoomName(resourceType: string, scopeKey: string, scopeId: string): string {\n return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${scopeKey}:${scopeId}`;\n}\n\n/**\n * The scope keys a resource room can be qualified by that the FRAMEWORK owns.\n *\n * Closed, and named because each member carries a different meaning that a bare string cannot: `app`\n * scopes a resource to the whole application, `user` to one principal's own rows, `org` to a tenant.\n * A resource can additionally be scoped by a PARENT RESOURCE, and those keys are genuinely open —\n * they are derived from the application's own resource names — so they stay strings.\n */\nexport enum ResourceScopeRoomKey {\n /**\n * The whole application.\n *\n * **`'app'`, while the APPLICATION resource's field identifier is `applicationId`** — and that\n * mismatch is load-bearing rather than sloppy, so it is stated here instead of being \"tidied\".\n *\n * `mapScopeKeyToResourceType` on the server resolves a scope key by searching the registry for a\n * resource whose field identifier is `<scopeKey>Id`. Renaming this member to `'application'` would\n * make that search succeed and route APPLICATION scope through the generic PARENT-scope branch,\n * which authorizes READ on the `applications` row — a row `ORG_MEMBER` may read, while ten of the\n * eleven APPLICATION-scoped resource configs require `APP_ADMIN_SUPER_ADMIN`. The rename would\n * therefore hand every org member notification streams naming rows of SSO connections, SIEM\n * configuration and webhook configs (issue #247).\n *\n * APPLICATION scope has its own branch in `verifyScopeAccess` that authorizes the SUBSCRIBED\n * resource instead, because a single constant discriminates nothing and so cannot stand in for\n * authorization the way a tenant or a parent row does.\n */\n APPLICATION = 'app',\n /** One principal's own rows. */\n USER = 'user',\n /** One tenant. */\n ORGANIZATION = 'org',\n}\n\n/** One scope a resource room can be qualified by. */\nexport interface ResourceScopeRoomQualifier {\n readonly scopeKey: string;\n readonly scopeId: string;\n}\n\n/**\n * Which scope rooms a resource operation's rows belong to.\n *\n * ## Why this lives in the SHARED models rather than on the backend\n *\n * Both ends need the same answer and for opposite reasons: the backend emits a list/cache-refresh\n * notification INTO these rooms after a mutation, and a client that caches a read has to be IN them\n * to hear it. Two implementations of one rule would agree only until one side gained a case — the\n * shape this repository refuses everywhere else — and the failure would be silent, because a client\n * subscribed to the wrong room does not error, it simply never hears that its cache is stale.\n *\n * Ported verbatim from the notifications dispatcher, quirks included, because moving code must not\n * change which rooms are emitted to. Two of those quirks are worth naming so the next reader does not\n * \"fix\" them into a behaviour change:\n *\n * - the parent-scope branch tests `key.endsWith('Id') && !key.includes('Parent')` with a CAPITAL P,\n * so `myParentId` is excluded while `parentTodoListId` is not;\n * - `organizationId` enters that branch and is then skipped by the inner test, having already been\n * pushed above.\n */\nexport function deriveResourceScopeRoomQualifiers(\n contextResourceIdentifiers: Record<string, string>,\n primaryScope: ResourcePrimaryScope,\n): ResourceScopeRoomQualifier[] {\n const scopes: ResourceScopeRoomQualifier[] = [];\n const seenScopes = new Set<string>();\n const pushScope = (scopeKey: string, scopeId: string | undefined): void => {\n if (!scopeId) {\n return;\n }\n const dedupeKey = `${scopeKey}:${scopeId}`;\n if (seenScopes.has(dedupeKey)) {\n return;\n }\n seenScopes.add(dedupeKey);\n scopes.push({ scopeKey, scopeId });\n };\n\n if (primaryScope === ResourcePrimaryScope.APPLICATION && contextResourceIdentifiers.applicationId) {\n pushScope(ResourceScopeRoomKey.APPLICATION, contextResourceIdentifiers.applicationId);\n }\n\n if (primaryScope === ResourcePrimaryScope.USER_SELF && contextResourceIdentifiers.userId) {\n pushScope(ResourceScopeRoomKey.USER, contextResourceIdentifiers.userId);\n }\n\n if (contextResourceIdentifiers.organizationId) {\n pushScope(ResourceScopeRoomKey.ORGANIZATION, contextResourceIdentifiers.organizationId);\n }\n\n for (const [key, value] of Object.entries(contextResourceIdentifiers)) {\n if (key === 'organizationId' || (key.endsWith('Id') && !key.includes('Parent'))) {\n const scopeKey = key.replace(/Id$/, '').toLowerCase();\n /*\n * `organization` and `application` are SKIPPED because the dedicated branches above already\n * emitted their rooms under the keys the server actually knows — `org` and `app`.\n *\n * Stripping `Id` yields the FIELD's name, not the room's: `applicationId` becomes\n * `application`, and `ResourceScopeRoomKey.APPLICATION` is `'app'`. That divergence is\n * deliberate and documented on the enum, so the generic loop cannot be allowed to invent the\n * long form beside the short one.\n *\n * It was inert for as long as no caller put an `applicationId` into this map. The moment one\n * did (issue #283, so a client could name its own APPLICATION room), every such read claimed a\n * FIFTH room the server refuses — measured live:\n * `resource:workbenchDomainResources:application:… -> success: false`. A refused room is not\n * merely wasted: the read cache's `covers()` requires EVERY room confirmed, so one permanently\n * unconfirmable room disabled the cache outright for every APPLICATION-scoped resource.\n */\n if (scopeKey !== 'organization' && scopeKey !== 'application' && value) {\n pushScope(scopeKey, value);\n }\n }\n }\n\n return scopes;\n}\n\n/**\n * Parse a resource room name into its components\n */\nexport function parseResourceRoomName(roomName: string): {\n resourceType: string;\n resourceId?: string;\n scopeKey?: string;\n scopeId?: string;\n} | null {\n const parts = roomName.split(':');\n if (parts.length < 3 || parts[0] !== WebSocketRoomPrefix.RESOURCE) return null;\n\n if (parts.length === 3) {\n return { resourceType: parts[1], resourceId: parts[2] };\n } else if (parts.length === 4) {\n return { resourceType: parts[1], scopeKey: parts[2], scopeId: parts[3] };\n }\n return null;\n}\n\n/**\n * Extract organization ID from an organization room name\n */\nexport function parseOrganizationRoomName(roomName: string): string | null {\n if (roomName.startsWith(`${WebSocketRoomPrefix.ORGANIZATION}:`)) {\n // Handle both org:{orgId} and org:{orgId}:role:{role}\n const parts = roomName.split(':');\n return parts[1] || null;\n }\n return null;\n}\n\n// =====================================================\n// Validation Helpers\n// =====================================================\n\n/**\n * Validate an incoming WebSocket event payload\n */\nexport function validateWebSocketPayload<E extends keyof typeof WebSocketEventSchemas>(\n event: E,\n payload: unknown\n): E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown {\n const schema = WebSocketEventSchemas[event];\n return schema.parse(payload) as E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown;\n}\n\n/**\n * Safe validation (returns result instead of throwing)\n */\nexport function safeValidateWebSocketPayload<E extends keyof typeof WebSocketEventSchemas>(\n event: E,\n payload: unknown\n): { success: true; data: E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown } | { success: false; error: z.ZodError } {\n const schema = WebSocketEventSchemas[event];\n const result = schema.safeParse(payload);\n if (result.success) {\n return { success: true, data: result.data as E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown };\n }\n return { success: false, error: result.error };\n}\n"]}
1
+ {"version":3,"file":"websocket.shared.schemas.js","sourceRoot":"","sources":["../../../src/requests/websocket.shared.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { DataMode } from '../resources/resources-config.shared.schemas';\nimport { FrontendDisplayHintsSchema } from '../notifications/notifications.shared.schemas';\nimport { ValueMomentRole, ValueMomentScope } from '../config/analytics-value-moments.shared.schemas';\nimport { OnboardingStatus } from '../config/frontend/onboarding.shared.schemas';\nimport { GuidanceFlowScope, GuidanceRenderMode } from '../guidance/guidance-flow.shared.schemas';\nimport { ProgressionScope, MilestoneRewardType } from '../guidance/milestone-definition.shared.schemas';\nimport { LifecycleStage, LifecycleScope } from '../guidance/lifecycle-state.shared.schemas';\nimport { ResourceOperationVariantType } from '../resources/resources.shared.schemas';\nimport { ResourcePrimaryScope } from '../resources/resources.shared.schemas';\n\n// =====================================================\n// WebSocket Event Types (Core Framework Events)\n// =====================================================\n\n/**\n * Core WebSocket events defined by the engine.\n * Custom events use the RESOURCE_CUSTOM type with eventName field.\n */\nexport enum CoreWebSocketEvent {\n // === Room Management Events (client → server) ===\n RESOURCE_SUBSCRIBE = 'resource:subscribe',\n RESOURCE_UNSUBSCRIBE = 'resource:unsubscribe',\n RESOURCE_SUBSCRIBED = 'resource:subscribed', // Server confirmation\n RESOURCE_UNSUBSCRIBED = 'resource:unsubscribed', // Server confirmation\n\n // === Target-Based Notification Events (server → client, via identity rooms) ===\n RESOURCE_NOTIFICATION = 'resource:notification',\n USER_NOTIFICATION = 'user:notification', // Direct user notification (not tied to resource operation)\n BADGE_UPDATE = 'badge:update',\n BADGE_GET = 'badge:get',\n BADGE_GET_ALL = 'badge:get-all',\n\n // === Resource Room Events (bidirectional, via resource rooms) ===\n RESOURCE_UPDATED = 'resource:updated',\n RESOURCE_DELETED = 'resource:deleted',\n RESOURCE_EDITING_START = 'resource:editing:start',\n RESOURCE_EDITING_END = 'resource:editing:end',\n RESOURCE_EDITING_STARTED = 'resource:editing:started', // Server confirmation\n RESOURCE_EDITING_ERROR = 'resource:editing:error',\n RESOURCE_LOCKED = 'resource:locked',\n RESOURCE_UNLOCKED = 'resource:unlocked',\n RESOURCE_CUSTOM = 'resource:custom',\n RESOURCE_CUSTOM_ERROR = 'resource:custom:error',\n\n // === FlowsActors Events (bidirectional) ===\n FLOWS_ACTORS_START = 'flows-actors:start',\n FLOWS_ACTORS_STARTED = 'flows-actors:started',\n FLOWS_ACTORS_MESSAGE = 'flows-actors:message',\n FLOWS_ACTORS_APPROVAL_REQUEST = 'flows-actors:approval-request',\n FLOWS_ACTORS_APPROVAL_RESPONSE = 'flows-actors:approval-response',\n FLOWS_ACTORS_STATUS_UPDATE = 'flows-actors:status-update',\n FLOWS_ACTORS_COMPLETED = 'flows-actors:completed',\n FLOWS_ACTORS_ERROR = 'flows-actors:error',\n\n // === Billing Events (server → client, invalidation triggers) ===\n BILLING_STATUS_CHANGED = 'billing:status_changed',\n BILLING_SUBSCRIPTION_UPDATED = 'billing:subscription_updated',\n BILLING_ACCOUNT_CHANGED = 'billing:account_changed',\n BILLING_USAGE_UPDATED = 'billing:usage_updated',\n BILLING_CREDIT_POOL_UPDATED = 'billing:credit_pool_updated',\n BILLING_FEATURES_UPDATED = 'billing:features_updated',\n\n // === Analytics Events ===\n ANALYTICS_MOMENT_ACHIEVED = 'analytics:moment-achieved',\n\n // === Guidance Events ===\n GUIDANCE_STATE_CHANGED = 'guidance:state-changed',\n\n // === Progression Events ===\n MILESTONE_ACHIEVED = 'progression:milestone-achieved',\n /**\n * Emitted after a milestone-triggering operation increments a scope's\n * `operationCounts` — even when NO milestone was achieved. Lets the frontend\n * advance in-progress milestone bars live (e.g. 8/10 → 9/10) instead of only\n * on achievement or a page reload.\n */\n PROGRESSION_UPDATED = 'progression:updated',\n\n // === Lifecycle Events ===\n LIFECYCLE_STAGE_CHANGED = 'lifecycle:stage-changed',\n\n // === System Events ===\n AUTH_REFRESH = 'auth:refresh',\n ORGANIZATION_SWITCH = 'organization:switch',\n SYSTEM_TOKEN_REFRESHED = 'system:token-refreshed',\n SYSTEM_ERROR = 'system:error',\n}\n\n/**\n * Machine-readable codes attached to a Socket.IO handshake rejection.\n *\n * A rejecting server-side auth middleware calls `next(err)`; Socket.IO forwards\n * the error's `data` field verbatim to the client's `connect_error` handler as\n * `err.data`. Emitting a stable code there lets the client react to WHY the\n * handshake was rejected WITHOUT matching on the human-readable error message\n * (which is localisation- and refactor-fragile).\n *\n * `AUTHENTICATION_FAILED` specifically flags an access-token problem the client\n * can self-heal: the frontend re-runs its token-renewal handler and reconnects\n * with a fresh token. This is what keeps a backgrounded / unfocused tab's socket\n * alive across access-token expiry, when no HTTP traffic is flowing to trigger a\n * reactive refresh (background real-time jobs keep delivering instead of stalling\n * until the user refocuses the window).\n */\nexport enum CoreWebSocketConnectionErrorCode {\n AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED',\n}\n\nexport enum ResourceAction {\n CREATED = 'created',\n UPDATED = 'updated',\n DELETED = 'deleted',\n}\n\nexport const ResourceActionSchema = z.union([z.enum(ResourceAction), z.string()]);\n\nexport enum WebSocketResourceDeliveryTarget {\n RESOURCE_ROOM_SYNC = 'resource-room-sync',\n RESOURCE_ROOM_NOTIFICATION = 'resource-room-notification',\n SCOPE_ROOM_NOTIFICATION = 'scope-room-notification',\n}\n\nexport const WebSocketResourceDeliveryTargetSchema = z.enum(WebSocketResourceDeliveryTarget);\n\n/**\n * Union type for WebSocket event names (core + custom string events)\n */\nexport type WebSocketEventName = CoreWebSocketEvent | `custom:${string}`;\n\n// =====================================================\n// Common Schemas (reusable across payloads)\n// =====================================================\n\nexport const ContextResourceIdentifiersSchema = z.record(z.string(), z.string());\nexport type ContextResourceIdentifiers = z.infer<typeof ContextResourceIdentifiersSchema>;\n\nconst WebSocketTimestampInputSchema = z.union([\n z.date(),\n z.string().datetime({ offset: true }),\n]);\nconst WebSocketTimestampSchema = WebSocketTimestampInputSchema.pipe(z.coerce.date());\nconst WebSocketOptionalTimestampSchema = WebSocketTimestampSchema.optional();\n\n\n// =====================================================\n// Room Management Payloads (client → server)\n// =====================================================\n\nconst WS_ResourceSubscribePayloadBaseSchema = z.object({\n resourceType: z.string().min(1),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n});\n\n/** Subscribe to a specific resource room. */\nconst WS_ResourceSubscribeSinglePayloadSchema = WS_ResourceSubscribePayloadBaseSchema.extend({\n resourceId: z.string().min(1),\n scopeKey: z.undefined().optional(),\n scopeId: z.undefined().optional(),\n});\n\n/** Subscribe to a scoped collection room. */\nconst WS_ResourceSubscribeScopePayloadSchema = WS_ResourceSubscribePayloadBaseSchema.extend({\n resourceId: z.undefined().optional(),\n scopeKey: z.string().min(1),\n scopeId: z.string().min(1),\n});\n\n/** Subscribe to a resource room - either single-resource or scoped collection. */\nexport const WS_ResourceSubscribePayloadSchema = z.union([\n WS_ResourceSubscribeSinglePayloadSchema,\n WS_ResourceSubscribeScopePayloadSchema,\n]);\nexport type WS_ResourceSubscribePayload = z.infer<typeof WS_ResourceSubscribePayloadSchema>;\n\n/** Server confirmation of subscription */\nexport const WS_ResourceSubscribedPayloadSchema = z.object({\n roomName: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n /** List of user IDs currently editing this resource (only for single resource subscriptions) */\n editingUsers: z.array(z.string()).optional(),\n});\nexport type WS_ResourceSubscribedPayload = z.infer<typeof WS_ResourceSubscribedPayloadSchema>;\n\n// =====================================================\n// Notification Payloads (server → client, target-based)\n// =====================================================\n\n/**\n * Notification level enum for typed notifications\n */\nexport enum NotificationLevel {\n INFO = 'info',\n SUCCESS = 'success',\n WARNING = 'warning',\n ERROR = 'error',\n}\n\nexport const NotificationLevelSchema = z.enum(NotificationLevel);\n\n/** Resource notification via identity rooms (org, role, user) */\nexport const WS_ResourceNotificationPayloadSchema = z.object({\n // Operation path fields (for EventBus matching)\n resourceType: z.string(),\n operationIdentifier: z.string(),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().default(false),\n isBulkOperation: z.boolean().default(false),\n variantKey: z.string().optional(),\n\n // Context for scoped matching\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(),\n\n // Notification data\n action: ResourceActionSchema,\n /** Explicit notification level (overrides action-based default) */\n notificationLevel: NotificationLevelSchema.optional(),\n affectedIds: z.array(z.string()),\n notificationIdentifier: z.string().optional(),\n initiatorUserId: z.string().optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n\n /**\n * Frontend display hints (only populated for FRONT_END_SUCCESS channel).\n * Contains optional celebration mode and next-step suggestion.\n * Backend passes these through without interpreting them — the frontend\n * reads them to decide rendering (toast vs overlay vs confetti, with or without CTA).\n */\n frontendDisplayHints: FrontendDisplayHintsSchema.optional(),\n});\nexport type WS_ResourceNotificationPayload = z.infer<typeof WS_ResourceNotificationPayloadSchema>;\n\n/** Badge count update */\nexport const WS_BadgeUpdatePayloadSchema = z.object({\n badgeReference: z.string(),\n badgeCount: z.number().int().min(0),\n organizationId: z.string().optional(),\n});\nexport type WS_BadgeUpdatePayload = z.infer<typeof WS_BadgeUpdatePayloadSchema>;\n\n/**\n * Display target enum for user notifications\n */\nexport enum NotificationDisplayTarget {\n TOAST = 'toast',\n CENTER = 'center',\n BOTH = 'both',\n}\n\nexport const NotificationDisplayTargetSchema = z.enum(NotificationDisplayTarget);\n\n/**\n * Direct user notification (not tied to resource operation)\n * Used for arbitrary backend-initiated notifications like:\n * - \"Your export is ready\"\n * - \"Payment received\"\n * - \"System maintenance scheduled\"\n */\nexport const WS_UserNotificationPayloadSchema = z.object({\n /** Notification level (info, success, warning, error) */\n notificationLevel: NotificationLevelSchema,\n /** i18n identifier for message lookup (FrontendNotificationCustomMessageRefs) */\n identifier: z.string().optional(),\n /** Direct message (fallback if identifier not found or not provided) */\n message: z.string().optional(),\n /** Optional notification title */\n title: z.string().optional(),\n /** Additional context data */\n data: z.record(z.string(), z.unknown()).optional(),\n /** Where to display the notification */\n displayTarget: NotificationDisplayTargetSchema.default(NotificationDisplayTarget.BOTH),\n /** Organization context (if notification is org-scoped) */\n organizationId: z.string().optional(),\n /** Timestamp */\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\nexport type WS_UserNotificationPayload = z.infer<typeof WS_UserNotificationPayloadSchema>;\n\n// =====================================================\n// Analytics Payloads (server → client)\n// =====================================================\n\n/** Analytics moment achievement notification */\nexport const WS_AnalyticsMomentAchievedPayloadSchema = z.object({\n momentIdentifier: z.string(),\n role: z.enum(ValueMomentRole),\n scope: z.enum(ValueMomentScope),\n scopeEntityId: z.string(),\n achievedAt: WebSocketTimestampSchema,\n triggerSource: z.enum(['frontend', 'backend'] as const),\n});\nexport type WS_AnalyticsMomentAchievedPayload = z.infer<typeof WS_AnalyticsMomentAchievedPayloadSchema>;\n\n// =====================================================\n// Guidance Event Payloads\n// =====================================================\n\n/** Guidance state changed event — pushed by backend or frontend for real-time sync */\nexport const GuidanceRealtimeStatusSchema = z.union([\n z.literal(OnboardingStatus.IN_PROGRESS),\n z.literal(OnboardingStatus.COMPLETED),\n z.literal(OnboardingStatus.DISMISSED),\n]);\n\n/** Guidance state changed event — only statuses broadcast through the realtime bridge. */\nexport const WS_GuidanceStateChangedPayloadSchema = z.object({\n flowRef: z.string(),\n status: GuidanceRealtimeStatusSchema,\n elementRef: z.string().optional(),\n triggerSource: z.enum(['frontend', 'backend'] as const),\n /** Which scope this event pertains to — determines how frontend routes state updates */\n scope: z.enum(GuidanceFlowScope),\n renderMode: z.enum(GuidanceRenderMode).optional(),\n});\nexport type WS_GuidanceStateChangedPayload = z.infer<typeof WS_GuidanceStateChangedPayloadSchema>;\n\n// =====================================================\n// Progression Event Payloads\n// =====================================================\n\n/** Milestone achieved event — pushed by backend when a milestone condition is met */\nexport const WS_MilestoneAchievedPayloadSchema = z.object({\n milestoneRef: z.string(),\n category: z.string(),\n points: z.number().int().optional(),\n /** Which scope this milestone belongs to — determines how frontend routes state updates */\n scope: z.enum(ProgressionScope),\n reward: z.object({\n type: z.enum(MilestoneRewardType),\n featureRef: z.string().optional(),\n guidanceFlowRef: z.string().optional(),\n celebrationLevel: z.enum(['low', 'medium', 'high']).optional(),\n }),\n /** Phase 5 integration: lifecycle transition triggered by this milestone */\n lifecycleTransition: z.object({\n from: z.string(),\n to: z.string(),\n }).optional(),\n /** Timestamp of achievement */\n achievedAt: WebSocketTimestampSchema,\n /** Updated total points (post-achievement) */\n totalPoints: z.number().int(),\n});\nexport type WS_MilestoneAchievedPayload = z.infer<typeof WS_MilestoneAchievedPayloadSchema>;\n\n/**\n * Progression progress event — pushed by backend after a milestone-triggering\n * operation increments the scope's `operationCounts`, regardless of whether a\n * milestone was achieved. Carries the authoritative post-increment counts so\n * the frontend can advance in-progress bars without a refetch (the backend\n * evaluation is fire-and-forget, so the frontend cannot re-read counts\n * race-free on its own).\n */\nexport const WS_ProgressionUpdatedPayloadSchema = z.object({\n /** Which scope's progression state changed. */\n scope: z.enum(ProgressionScope),\n /** Full post-increment operation-count map for the scope (`{ 'todos:create': 9 }`). */\n operationCounts: z.record(z.string(), z.number().int()),\n /** Current total points for the scope (unchanged unless a milestone also fired). */\n totalPoints: z.number().int(),\n /** When the increment was applied. */\n updatedAt: WebSocketTimestampSchema,\n});\nexport type WS_ProgressionUpdatedPayload = z.infer<typeof WS_ProgressionUpdatedPayloadSchema>;\n\n// =====================================================\n// Lifecycle Event Payloads\n// =====================================================\n\n/** Lifecycle stage changed event — pushed by backend when a lifecycle transition occurs */\nexport const WS_LifecycleStageChangedPayloadSchema = z.object({\n /** Previous stage before transition */\n previousStage: z.enum(LifecycleStage),\n /** New stage after transition */\n newStage: z.enum(LifecycleStage),\n /** Which scope this lifecycle state belongs to */\n scope: z.enum(LifecycleScope),\n /** What triggered the transition */\n trigger: z.string().optional(),\n /** When the transition occurred */\n changedAt: WebSocketTimestampSchema,\n /** Activation progress snapshot (for SIGNED_UP → ACTIVATED tracking) */\n activationCriteriaMet: z.record(z.string(), z.boolean()).optional(),\n});\nexport type WS_LifecycleStageChangedPayload = z.infer<typeof WS_LifecycleStageChangedPayloadSchema>;\n\n// =====================================================\n// CRDT Field Metadata (shared between backend + frontend)\n// =====================================================\n\n/**\n * Per-field CRDT metadata: server-authoritative timestamp + last editor.\n * `meta` is an extensibility slot for future per-field metadata (e.g. merge strategy hints,\n * conflict resolution context) without requiring a schema migration.\n */\nexport const FieldMetaEntrySchema = z.object({\n ts: z.number(),\n by: z.string(),\n meta: z.record(z.string(), z.unknown()).optional(),\n});\nexport type FieldMetaEntry = z.infer<typeof FieldMetaEntrySchema>;\n\nexport const FieldMetaMapSchema = z.record(z.string(), FieldMetaEntrySchema);\nexport type FieldMetaMap = z.infer<typeof FieldMetaMapSchema>;\n\n// =====================================================\n// Resource Room Payloads (path-independent collaboration)\n// =====================================================\n\nconst ResourceUpdateSyncActionSchema = z.union([\n z.literal(ResourceAction.CREATED),\n z.literal(ResourceAction.UPDATED),\n]);\n\nconst WS_ResourceEventCommonPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n affectedIds: z.array(z.string()).optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\n\nconst WS_ResourceUpdateNotificationPayloadCommonSchema = WS_ResourceEventCommonPayloadSchema.extend({\n affectedIds: z.array(z.string()).min(1),\n action: ResourceActionSchema,\n operationIdentifier: z.string().optional(),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n version: z.number().optional(),\n resourceData: z.unknown().optional(),\n fieldMeta: FieldMetaMapSchema.optional(),\n // DataMode values match directly: DataMode.RAW === 'raw', etc.\n dataMode: z.enum(DataMode).optional(),\n});\n/** Notification-grade resource update event delivered to scope rooms. */\nexport const WS_ScopeRoomUpdateNotificationPayloadSchema = WS_ResourceUpdateNotificationPayloadCommonSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.SCOPE_ROOM_NOTIFICATION),\n});\nexport type WS_ScopeRoomUpdateNotificationPayload = z.infer<typeof WS_ScopeRoomUpdateNotificationPayloadSchema>;\n\n/** Notification-grade resource update event delivered to resource rooms. */\nexport const WS_ResourceRoomUpdateNotificationPayloadSchema = WS_ResourceUpdateNotificationPayloadCommonSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_NOTIFICATION),\n});\nexport type WS_ResourceRoomUpdateNotificationPayload = z.infer<typeof WS_ResourceRoomUpdateNotificationPayloadSchema>;\n\nexport const WS_ResourceUpdateNotificationPayloadSchema = z.discriminatedUnion('deliveryTarget', [\n WS_ScopeRoomUpdateNotificationPayloadSchema,\n WS_ResourceRoomUpdateNotificationPayloadSchema,\n]);\nexport type WS_ResourceUpdateNotificationPayload = z.infer<typeof WS_ResourceUpdateNotificationPayloadSchema>;\n\n/** Synchronization-grade resource update event (resource rooms, RMM replay). */\nexport const WS_ResourceSyncUpdatedPayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: ResourceUpdateSyncActionSchema,\n operationIdentifier: z.string().min(1),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n version: z.number(),\n resourceData: z.record(z.string(), z.unknown()),\n fieldMeta: FieldMetaMapSchema.optional(),\n dataMode: z.enum(DataMode).optional(),\n});\nexport type WS_ResourceSyncUpdatedPayload = z.infer<typeof WS_ResourceSyncUpdatedPayloadSchema>;\n\n/** Update events can be either notification-grade or sync-grade, distinguished explicitly. */\nexport const WS_ResourceUpdatedPayloadSchema = z.discriminatedUnion('deliveryTarget', [\n WS_ScopeRoomUpdateNotificationPayloadSchema,\n WS_ResourceRoomUpdateNotificationPayloadSchema,\n WS_ResourceSyncUpdatedPayloadSchema,\n]);\nexport type WS_ResourceUpdatedPayload = z.infer<typeof WS_ResourceUpdatedPayloadSchema>;\n\n/** Resource deleted event for resource rooms. */\nexport const WS_ResourceDeletedPayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: z.literal(ResourceAction.DELETED),\n operationIdentifier: z.string().min(1),\n operationPathKey: z.string().optional(),\n variantType: z.enum(ResourceOperationVariantType).optional(),\n isOperationDefault: z.boolean().optional(),\n isBulkOperation: z.boolean().optional(),\n variantKey: z.string().optional(),\n initiatorUserId: z.string().optional(),\n});\nexport type WS_ResourceDeletedPayload = z.infer<typeof WS_ResourceDeletedPayloadSchema>;\n\n/** Lightweight resource-room state payload for lock/unlock style events. */\nexport const WS_ResourceRoomStatePayloadSchema = WS_ResourceEventCommonPayloadSchema.extend({\n deliveryTarget: z.literal(WebSocketResourceDeliveryTarget.RESOURCE_ROOM_SYNC),\n action: ResourceActionSchema.optional(),\n operationIdentifier: z.string().optional(),\n initiatorUserId: z.string().optional(),\n});\nexport type WS_ResourceRoomStatePayload = z.infer<typeof WS_ResourceRoomStatePayloadSchema>;\n\n/**\n * Editing start/end payload\n * - Incoming: contextResourceIdentifiers REQUIRED for UPDATE authorization\n * - Outgoing (broadcast): contextResourceIdentifiers omitted\n */\nexport const WS_ResourceEditingPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(), // Required on input\n initiatorUserId: z.string().optional(),\n timestamp: WebSocketOptionalTimestampSchema,\n reason: z.enum(['manual', 'disconnect', 'timeout', 'auth_refresh', 'organization_switch']).optional(), // For editing:end\n});\nexport type WS_ResourceEditingPayload = z.infer<typeof WS_ResourceEditingPayloadSchema>;\n\n/** Editing confirmation/error */\nexport const WS_ResourceEditingResultPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n});\nexport type WS_ResourceEditingResultPayload = z.infer<typeof WS_ResourceEditingResultPayloadSchema>;\n\n/**\n * Custom collaboration event\n * - Incoming: contextResourceIdentifiers REQUIRED for READ authorization\n * - Outgoing (broadcast): contextResourceIdentifiers omitted\n */\nexport const WS_ResourceCustomEventPayloadSchema = z.object({\n resourceType: z.string(),\n resourceId: z.string(),\n eventName: z.string().min(1), // Custom event name (e.g., 'cursor:move', 'comment:add')\n data: z.unknown().optional(),\n contextResourceIdentifiers: ContextResourceIdentifiersSchema.optional(), // Required on input\n initiatorUserId: z.string().optional(),\n includeSelf: z.boolean().optional(), // Only for outgoing\n timestamp: WebSocketOptionalTimestampSchema,\n // Phase 7.1: Optional resource data for custom events with resource context\n // When included, will be validated against appropriate DTO based on dataMode.\n resourceData: z.unknown().optional(),\n // DataMode values match directly: DataMode.RAW === 'raw', etc.\n dataMode: z.enum(DataMode).optional(),\n});\nexport type WS_ResourceCustomEventPayload = z.infer<typeof WS_ResourceCustomEventPayloadSchema>;\n\n/** Error response for custom events */\nexport const WS_ResourceCustomErrorPayloadSchema = z.object({\n eventName: z.string(),\n error: z.string(),\n});\nexport type WS_ResourceCustomErrorPayload = z.infer<typeof WS_ResourceCustomErrorPayloadSchema>;\n\n// =====================================================\n// Badge Request/Response Payloads\n// =====================================================\n\n/** Badge get request (client → server) */\nexport const WS_BadgeGetRequestSchema = z.object({\n identifier: z.string(),\n scope: z.string(),\n scopeId: z.string(),\n});\n\nexport type WS_BadgeGetRequest = z.infer<typeof WS_BadgeGetRequestSchema>;\n\n/** Badge get-all request (client → server) */\nexport const WS_BadgeGetAllRequestSchema = z.object({\n scope: z.string(),\n scopeId: z.string(),\n});\nexport type WS_BadgeGetAllRequest = z.infer<typeof WS_BadgeGetAllRequestSchema>;\n\n/** Badge get-all response (server → client) */\nexport const WS_BadgeGetAllResponseSchema = z.array(z.object({\n identifier: z.string(),\n count: z.number().min(0),\n}));\nexport type WS_BadgeGetAllResponse = z.infer<typeof WS_BadgeGetAllResponseSchema>;\n\n// =====================================================\n// FlowsActors Payloads (bidirectional)\n// =====================================================\n\n/** Start a FlowActorSystem execution (client → server) */\nexport const WS_FlowsActorsStartPayloadSchema = z.object({\n systemRef: z.string().min(1),\n executionId: z.string().optional(), // Server generates if not provided\n contextResourceIdentifiers: ContextResourceIdentifiersSchema,\n initialInput: z.record(z.string(), z.unknown()).optional(),\n});\nexport type WS_FlowsActorsStartPayload = z.infer<typeof WS_FlowsActorsStartPayloadSchema>;\n\n/** Confirmation of FlowActorSystem start (server → client) */\nexport const WS_FlowsActorsStartedPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n success: z.boolean(),\n error: z.string().optional(),\n});\nexport type WS_FlowsActorsStartedPayload = z.infer<typeof WS_FlowsActorsStartedPayloadSchema>;\n\n/** Message from agent/flow (server → client) */\nexport const WS_FlowsActorsMessagePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n messageType: z.enum(['text', 'markdown', 'progress', 'data']),\n content: z.string(),\n data: z.record(z.string(), z.unknown()).optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n\n /**\n * Correlates streamed token deltas to a single logical message. When present,\n * consecutive `messageId`-sharing events belong to the same assistant turn:\n * non-final events (`isFinal !== true`) carry an incremental delta to APPEND to\n * that message's content; the final event (`isFinal === true`) carries the FULL\n * assembled content as the authoritative value. When absent, the event is a\n * standalone message (legacy/one-shot behavior — append a new entry).\n */\n messageId: z.string().optional(),\n /** True on the terminal event of a streamed message (`content` is the full text). */\n isFinal: z.boolean().optional(),\n});\nexport type WS_FlowsActorsMessagePayload = z.infer<typeof WS_FlowsActorsMessagePayloadSchema>;\n\n/**\n * The approval announcement that is ACTUALLY sent, carried in the `data` bag of a\n * `FLOWS_ACTORS_MESSAGE` of type `PROGRESS`.\n *\n * It is a named schema rather than a shape both ends open-code, because the `data` bag is\n * `z.record(z.string(), z.unknown())` — so nothing typed the announcement, and the browser\n * listened on `FLOWS_ACTORS_APPROVAL_REQUEST` instead, an event **nothing has ever emitted**.\n * The result: `pendingApproval` was never set, no shipped screen could observe a paused turn,\n * and `resourceServerInstanceRef` — which the server sends precisely so a decision can echo it —\n * was discarded, leaving an approval raised on a NAMED agent instance unresumable (#528).\n *\n * Producer: `persistApprovalSuspension`. Consumer: `FlowsActorsContext`.\n */\nexport const WS_FlowsActorsApprovalAnnouncementDataSchema = z.object({\n /** Discriminator. The `data` bag carries other kinds of payload on other messages. */\n approvalRequested: z.literal(true),\n approvalId: z.string(),\n /** The tool call being gated. */\n toolName: z.string(),\n /**\n * The tool call's ARGUMENTS — the structured thing a person is actually being asked to approve.\n * Loose here because the shape belongs to the tool, not to the transport; a surface that renders\n * these gets their schema from the tool declaration.\n */\n toolArgs: z.record(z.string(), z.unknown()).optional(),\n requestedAt: z.string(),\n /** When the pause lapses. Written since #465; it reaches a client only through this block. */\n expiresAt: z.string().optional(),\n /**\n * The isolation axis the DECISION must carry back, sent unconditionally — including when it is\n * the default sentinel — so a client echoes one field rather than branching on whether the value\n * is meaningful.\n */\n resourceServerInstanceRef: z.string(),\n});\nexport type WS_FlowsActorsApprovalAnnouncementData = z.infer<typeof WS_FlowsActorsApprovalAnnouncementDataSchema>;\n\n/** Human approval request (server → client) */\nexport const WS_FlowsActorsApprovalRequestPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n approvalId: z.string(),\n actionDescription: z.string(),\n riskLevel: z.enum(['low', 'medium', 'high', 'critical']),\n requiredRoles: z.array(z.string()).optional(),\n expiresAt: WebSocketOptionalTimestampSchema,\n});\n\nexport type WS_FlowsActorsApprovalRequestPayload = z.infer<typeof WS_FlowsActorsApprovalRequestPayloadSchema>;\n\n/** Human approval response (client → server) */\nexport const WS_FlowsActorsApprovalResponsePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n approvalId: z.string(),\n approved: z.boolean(),\n comment: z.string().optional(),\n /**\n * The agent instance the paused conversation belongs to — ECHOED from the approval REQUEST.\n *\n * A conversation is isolated by owner FK, machine credential AND agent instance, so a resume that\n * omits this axis is filtered against the DEFAULT instance sentinel. An approval raised on a NAMED\n * A2A agent instance therefore matched no row and the decision was dropped silently — logged as\n * \"no pending approval matches\" and returned, with the turn left paused forever.\n *\n * Optional because the in-app conversational plane runs on the default instance and has nothing to\n * echo; absent means default, which is the value those executions were written with.\n */\n resourceServerInstanceRef: z.string().optional(),\n /**\n * APPROVE-WITH-MODIFICATIONS (#566): the arguments the approver authored, replacing the ones the\n * model proposed. Meaningful only when `approved` is true — a denial resumes so the model can\n * respond, and there is no call to edit.\n *\n * Absent means \"run the call as proposed\", which is what every decision before this field meant\n * and what the overwhelming majority of decisions will keep meaning. Present means the approver\n * has become an AUTHOR of the call: the server re-validates the arguments against the tool's own\n * `inputSchema`, rewrites the SDK message array it holds, re-signs the approval so the binding\n * still describes the call that will actually run, and records on the audit trail that what\n * executed was not what was proposed.\n *\n * `unknown` values rather than a shaped object, deliberately: the shape is the TOOL's, declared by\n * whichever `FunctionTool` the agent named, and this schema cannot know it. Validation is the\n * server's, against that tool — the browser's is a convenience, never the control.\n */\n modifiedToolArgs: z.record(z.string(), z.unknown()).optional(),\n});\nexport type WS_FlowsActorsApprovalResponsePayload = z.infer<typeof WS_FlowsActorsApprovalResponsePayloadSchema>;\n\n/** Status update during execution (server → client) */\nexport const WS_FlowsActorsStatusUpdatePayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n status: z.string(),\n progress: z.number().min(0).max(100).optional(),\n currentStep: z.string().optional(),\n timestamp: WebSocketTimestampSchema.default(() => new Date()),\n});\nexport type WS_FlowsActorsStatusUpdatePayload = z.infer<typeof WS_FlowsActorsStatusUpdatePayloadSchema>;\n\n/** Execution completed (server → client) */\nexport const WS_FlowsActorsCompletedPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n success: z.boolean(),\n result: z.record(z.string(), z.unknown()).optional(),\n duration: z.number().optional(), // in ms\n});\nexport type WS_FlowsActorsCompletedPayload = z.infer<typeof WS_FlowsActorsCompletedPayloadSchema>;\n\n/** Execution error (server → client) */\nexport const WS_FlowsActorsErrorPayloadSchema = z.object({\n systemRef: z.string(),\n executionId: z.string(),\n errorCode: z.string(),\n errorMessage: z.string(),\n recoverable: z.boolean().default(false),\n});\nexport type WS_FlowsActorsErrorPayload = z.infer<typeof WS_FlowsActorsErrorPayloadSchema>;\n\n// =====================================================\n// System Payloads\n// =====================================================\n\nexport const WS_AuthRefreshPayloadSchema = z.object({\n token: z.string(),\n});\nexport type WS_AuthRefreshPayload = z.infer<typeof WS_AuthRefreshPayloadSchema>;\n\nexport const WS_SystemTokenRefreshedPayloadSchema = z.object({\n success: z.literal(true),\n});\nexport type WS_SystemTokenRefreshedPayload = z.infer<typeof WS_SystemTokenRefreshedPayloadSchema>;\n\nexport const WS_OrganizationSwitchPayloadSchema = z.object({\n organizationId: z.string(),\n previousOrganizationId: z.string().optional(),\n});\nexport type WS_OrganizationSwitchPayload = z.infer<typeof WS_OrganizationSwitchPayloadSchema>;\n\nexport const WS_SystemErrorPayloadSchema = z.object({\n code: z.string(),\n message: z.string(),\n details: z.unknown().optional(),\n});\nexport type WS_SystemErrorPayload = z.infer<typeof WS_SystemErrorPayloadSchema>;\n\n// =====================================================\n// Billing Payloads (server → client, invalidation triggers)\n// =====================================================\n\nexport const WS_BillingEventPayloadSchema = z.object({\n scopeType: z.enum(ResourcePrimaryScope),\n scopeEntityId: z.string(),\n billingAccountId: z.string(),\n});\n export type WS_BillingEventPayload = z.infer<typeof WS_BillingEventPayloadSchema>;\n\n// =====================================================\n// Event-to-Schema Map (for validation)\n// =====================================================\n\nexport const WebSocketEventSchemas = {\n // Room management\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBE]: WS_ResourceSubscribePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBE]: WS_ResourceSubscribePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBED]: WS_ResourceSubscribedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBED]: WS_ResourceSubscribedPayloadSchema,\n\n // Notifications\n [CoreWebSocketEvent.RESOURCE_NOTIFICATION]: WS_ResourceNotificationPayloadSchema,\n [CoreWebSocketEvent.USER_NOTIFICATION]: WS_UserNotificationPayloadSchema,\n [CoreWebSocketEvent.BADGE_UPDATE]: WS_BadgeUpdatePayloadSchema,\n [CoreWebSocketEvent.BADGE_GET]: WS_BadgeGetRequestSchema,\n [CoreWebSocketEvent.BADGE_GET_ALL]: WS_BadgeGetAllRequestSchema,\n\n // Resource room events\n [CoreWebSocketEvent.RESOURCE_UPDATED]: WS_ResourceUpdatedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_DELETED]: WS_ResourceDeletedPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_START]: WS_ResourceEditingPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_END]: WS_ResourceEditingPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_STARTED]: WS_ResourceEditingResultPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_EDITING_ERROR]: WS_ResourceEditingResultPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_LOCKED]: WS_ResourceRoomStatePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_UNLOCKED]: WS_ResourceRoomStatePayloadSchema,\n [CoreWebSocketEvent.RESOURCE_CUSTOM]: WS_ResourceCustomEventPayloadSchema,\n [CoreWebSocketEvent.RESOURCE_CUSTOM_ERROR]: WS_ResourceCustomErrorPayloadSchema,\n\n // FlowsActors\n [CoreWebSocketEvent.FLOWS_ACTORS_START]: WS_FlowsActorsStartPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_STARTED]: WS_FlowsActorsStartedPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_MESSAGE]: WS_FlowsActorsMessagePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_REQUEST]: WS_FlowsActorsApprovalRequestPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_RESPONSE]: WS_FlowsActorsApprovalResponsePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_STATUS_UPDATE]: WS_FlowsActorsStatusUpdatePayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_COMPLETED]: WS_FlowsActorsCompletedPayloadSchema,\n [CoreWebSocketEvent.FLOWS_ACTORS_ERROR]: WS_FlowsActorsErrorPayloadSchema,\n\n // Billing\n [CoreWebSocketEvent.BILLING_STATUS_CHANGED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_USAGE_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_CREDIT_POOL_UPDATED]: WS_BillingEventPayloadSchema,\n [CoreWebSocketEvent.BILLING_FEATURES_UPDATED]: WS_BillingEventPayloadSchema,\n\n // Analytics\n [CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED]: WS_AnalyticsMomentAchievedPayloadSchema,\n\n // Guidance\n [CoreWebSocketEvent.GUIDANCE_STATE_CHANGED]: WS_GuidanceStateChangedPayloadSchema,\n\n // Progression\n [CoreWebSocketEvent.MILESTONE_ACHIEVED]: WS_MilestoneAchievedPayloadSchema,\n [CoreWebSocketEvent.PROGRESSION_UPDATED]: WS_ProgressionUpdatedPayloadSchema,\n\n // Lifecycle\n [CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED]: WS_LifecycleStageChangedPayloadSchema,\n\n // System\n [CoreWebSocketEvent.AUTH_REFRESH]: WS_AuthRefreshPayloadSchema,\n [CoreWebSocketEvent.ORGANIZATION_SWITCH]: WS_OrganizationSwitchPayloadSchema,\n [CoreWebSocketEvent.SYSTEM_TOKEN_REFRESHED]: WS_SystemTokenRefreshedPayloadSchema,\n [CoreWebSocketEvent.SYSTEM_ERROR]: WS_SystemErrorPayloadSchema,\n} as const;\n\n// =====================================================\n// Typed Payload Map (for TypeScript inference)\n// =====================================================\n\nexport type WebSocketEventPayloads = {\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBE]: WS_ResourceSubscribePayload;\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBE]: WS_ResourceSubscribePayload;\n [CoreWebSocketEvent.RESOURCE_SUBSCRIBED]: WS_ResourceSubscribedPayload;\n [CoreWebSocketEvent.RESOURCE_UNSUBSCRIBED]: WS_ResourceSubscribedPayload;\n\n [CoreWebSocketEvent.RESOURCE_NOTIFICATION]: WS_ResourceNotificationPayload;\n [CoreWebSocketEvent.USER_NOTIFICATION]: WS_UserNotificationPayload;\n [CoreWebSocketEvent.BADGE_UPDATE]: WS_BadgeUpdatePayload;\n [CoreWebSocketEvent.BADGE_GET]: WS_BadgeGetRequest;\n [CoreWebSocketEvent.BADGE_GET_ALL]: WS_BadgeGetAllRequest;\n\n [CoreWebSocketEvent.RESOURCE_UPDATED]: WS_ResourceUpdatedPayload;\n [CoreWebSocketEvent.RESOURCE_DELETED]: WS_ResourceDeletedPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_START]: WS_ResourceEditingPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_END]: WS_ResourceEditingPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_STARTED]: WS_ResourceEditingResultPayload;\n [CoreWebSocketEvent.RESOURCE_EDITING_ERROR]: WS_ResourceEditingResultPayload;\n [CoreWebSocketEvent.RESOURCE_LOCKED]: WS_ResourceRoomStatePayload;\n [CoreWebSocketEvent.RESOURCE_UNLOCKED]: WS_ResourceRoomStatePayload;\n [CoreWebSocketEvent.RESOURCE_CUSTOM]: WS_ResourceCustomEventPayload;\n [CoreWebSocketEvent.RESOURCE_CUSTOM_ERROR]: WS_ResourceCustomErrorPayload;\n\n [CoreWebSocketEvent.FLOWS_ACTORS_START]: WS_FlowsActorsStartPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_STARTED]: WS_FlowsActorsStartedPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_MESSAGE]: WS_FlowsActorsMessagePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_REQUEST]: WS_FlowsActorsApprovalRequestPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_APPROVAL_RESPONSE]: WS_FlowsActorsApprovalResponsePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_STATUS_UPDATE]: WS_FlowsActorsStatusUpdatePayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_COMPLETED]: WS_FlowsActorsCompletedPayload;\n [CoreWebSocketEvent.FLOWS_ACTORS_ERROR]: WS_FlowsActorsErrorPayload;\n\n [CoreWebSocketEvent.BILLING_STATUS_CHANGED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_SUBSCRIPTION_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_ACCOUNT_CHANGED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_USAGE_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_CREDIT_POOL_UPDATED]: WS_BillingEventPayload;\n [CoreWebSocketEvent.BILLING_FEATURES_UPDATED]: WS_BillingEventPayload;\n\n [CoreWebSocketEvent.ANALYTICS_MOMENT_ACHIEVED]: WS_AnalyticsMomentAchievedPayload;\n\n [CoreWebSocketEvent.GUIDANCE_STATE_CHANGED]: WS_GuidanceStateChangedPayload;\n\n [CoreWebSocketEvent.MILESTONE_ACHIEVED]: WS_MilestoneAchievedPayload;\n [CoreWebSocketEvent.PROGRESSION_UPDATED]: WS_ProgressionUpdatedPayload;\n\n [CoreWebSocketEvent.LIFECYCLE_STAGE_CHANGED]: WS_LifecycleStageChangedPayload;\n\n [CoreWebSocketEvent.AUTH_REFRESH]: WS_AuthRefreshPayload;\n [CoreWebSocketEvent.ORGANIZATION_SWITCH]: WS_OrganizationSwitchPayload;\n [CoreWebSocketEvent.SYSTEM_TOKEN_REFRESHED]: WS_SystemTokenRefreshedPayload;\n [CoreWebSocketEvent.SYSTEM_ERROR]: WS_SystemErrorPayload;\n};\n\n// =====================================================\n// Room Naming Utilities\n// =====================================================\n\n/**\n * WebSocket room name prefixes for different room types.\n * These prefixes are used to create room names for Socket.IO.\n */\nexport enum WebSocketRoomPrefix {\n /** User-specific room: user:{userId} */\n USER = 'user',\n /** Organization room: org:{organizationId} */\n ORGANIZATION = 'org',\n /** Organization role room: org:{organizationId}:role:{role} */\n ORGANIZATION_ROLE = 'role',\n /** Application-level role room: app:role:{role} */\n APP_ROLE = 'app:role',\n /** Resource room: resource:{resourceType}:{resourceId} */\n RESOURCE = 'resource',\n /** Public room for unauthenticated users */\n PUBLIC = 'public',\n}\n\n/**\n * Build a user room name\n */\nexport function buildUserRoomName(userId: string): string {\n return `${WebSocketRoomPrefix.USER}:${userId}`;\n}\n\n/**\n * Build an organization room name\n */\nexport function buildOrganizationRoomName(organizationId: string): string {\n return `${WebSocketRoomPrefix.ORGANIZATION}:${organizationId}`;\n}\n\n/**\n * Build an organization role room name\n */\nexport function buildOrganizationRoleRoomName(organizationId: string, role: string): string {\n return `${WebSocketRoomPrefix.ORGANIZATION}:${organizationId}:${WebSocketRoomPrefix.ORGANIZATION_ROLE}:${role}`;\n}\n\n/**\n * Build an application-level role room name\n */\nexport function buildAppRoleRoomName(role: string): string {\n return `${WebSocketRoomPrefix.APP_ROLE}:${role}`;\n}\n\n/**\n * Build a resource room name\n */\nexport function buildResourceRoomName(resourceType: string, resourceId: string): string {\n return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${resourceId}`;\n}\n\n/**\n * Build a scope room name for collection subscriptions\n */\nexport function buildScopeRoomName(resourceType: string, scopeKey: string, scopeId: string): string {\n return `${WebSocketRoomPrefix.RESOURCE}:${resourceType}:${scopeKey}:${scopeId}`;\n}\n\n/**\n * The scope keys a resource room can be qualified by that the FRAMEWORK owns.\n *\n * Closed, and named because each member carries a different meaning that a bare string cannot: `app`\n * scopes a resource to the whole application, `user` to one principal's own rows, `org` to a tenant.\n * A resource can additionally be scoped by a PARENT RESOURCE, and those keys are genuinely open —\n * they are derived from the application's own resource names — so they stay strings.\n */\nexport enum ResourceScopeRoomKey {\n /**\n * The whole application.\n *\n * **`'app'`, while the APPLICATION resource's field identifier is `applicationId`** — and that\n * mismatch is load-bearing rather than sloppy, so it is stated here instead of being \"tidied\".\n *\n * `mapScopeKeyToResourceType` on the server resolves a scope key by searching the registry for a\n * resource whose field identifier is `<scopeKey>Id`. Renaming this member to `'application'` would\n * make that search succeed and route APPLICATION scope through the generic PARENT-scope branch,\n * which authorizes READ on the `applications` row — a row `ORG_MEMBER` may read, while ten of the\n * eleven APPLICATION-scoped resource configs require `APP_ADMIN_SUPER_ADMIN`. The rename would\n * therefore hand every org member notification streams naming rows of SSO connections, SIEM\n * configuration and webhook configs (issue #247).\n *\n * APPLICATION scope has its own branch in `verifyScopeAccess` that authorizes the SUBSCRIBED\n * resource instead, because a single constant discriminates nothing and so cannot stand in for\n * authorization the way a tenant or a parent row does.\n */\n APPLICATION = 'app',\n /** One principal's own rows. */\n USER = 'user',\n /** One tenant. */\n ORGANIZATION = 'org',\n}\n\n/** One scope a resource room can be qualified by. */\nexport interface ResourceScopeRoomQualifier {\n readonly scopeKey: string;\n readonly scopeId: string;\n}\n\n/**\n * Which scope rooms a resource operation's rows belong to.\n *\n * ## Why this lives in the SHARED models rather than on the backend\n *\n * Both ends need the same answer and for opposite reasons: the backend emits a list/cache-refresh\n * notification INTO these rooms after a mutation, and a client that caches a read has to be IN them\n * to hear it. Two implementations of one rule would agree only until one side gained a case — the\n * shape this repository refuses everywhere else — and the failure would be silent, because a client\n * subscribed to the wrong room does not error, it simply never hears that its cache is stale.\n *\n * Ported verbatim from the notifications dispatcher, quirks included, because moving code must not\n * change which rooms are emitted to. Two of those quirks are worth naming so the next reader does not\n * \"fix\" them into a behaviour change:\n *\n * - the parent-scope branch tests `key.endsWith('Id') && !key.includes('Parent')` with a CAPITAL P,\n * so `myParentId` is excluded while `parentTodoListId` is not;\n * - `organizationId` enters that branch and is then skipped by the inner test, having already been\n * pushed above.\n */\nexport function deriveResourceScopeRoomQualifiers(\n contextResourceIdentifiers: Record<string, string>,\n primaryScope: ResourcePrimaryScope,\n): ResourceScopeRoomQualifier[] {\n const scopes: ResourceScopeRoomQualifier[] = [];\n const seenScopes = new Set<string>();\n const pushScope = (scopeKey: string, scopeId: string | undefined): void => {\n if (!scopeId) {\n return;\n }\n const dedupeKey = `${scopeKey}:${scopeId}`;\n if (seenScopes.has(dedupeKey)) {\n return;\n }\n seenScopes.add(dedupeKey);\n scopes.push({ scopeKey, scopeId });\n };\n\n if (primaryScope === ResourcePrimaryScope.APPLICATION && contextResourceIdentifiers.applicationId) {\n pushScope(ResourceScopeRoomKey.APPLICATION, contextResourceIdentifiers.applicationId);\n }\n\n if (primaryScope === ResourcePrimaryScope.USER_SELF && contextResourceIdentifiers.userId) {\n pushScope(ResourceScopeRoomKey.USER, contextResourceIdentifiers.userId);\n }\n\n if (contextResourceIdentifiers.organizationId) {\n pushScope(ResourceScopeRoomKey.ORGANIZATION, contextResourceIdentifiers.organizationId);\n }\n\n for (const [key, value] of Object.entries(contextResourceIdentifiers)) {\n if (key === 'organizationId' || (key.endsWith('Id') && !key.includes('Parent'))) {\n const scopeKey = key.replace(/Id$/, '').toLowerCase();\n /*\n * `organization` and `application` are SKIPPED because the dedicated branches above already\n * emitted their rooms under the keys the server actually knows — `org` and `app`.\n *\n * Stripping `Id` yields the FIELD's name, not the room's: `applicationId` becomes\n * `application`, and `ResourceScopeRoomKey.APPLICATION` is `'app'`. That divergence is\n * deliberate and documented on the enum, so the generic loop cannot be allowed to invent the\n * long form beside the short one.\n *\n * It was inert for as long as no caller put an `applicationId` into this map. The moment one\n * did (issue #283, so a client could name its own APPLICATION room), every such read claimed a\n * FIFTH room the server refuses — measured live:\n * `resource:workbenchDomainResources:application:… -> success: false`. A refused room is not\n * merely wasted: the read cache's `covers()` requires EVERY room confirmed, so one permanently\n * unconfirmable room disabled the cache outright for every APPLICATION-scoped resource.\n */\n if (scopeKey !== 'organization' && scopeKey !== 'application' && value) {\n pushScope(scopeKey, value);\n }\n }\n }\n\n return scopes;\n}\n\n/**\n * Parse a resource room name into its components\n */\nexport function parseResourceRoomName(roomName: string): {\n resourceType: string;\n resourceId?: string;\n scopeKey?: string;\n scopeId?: string;\n} | null {\n const parts = roomName.split(':');\n if (parts.length < 3 || parts[0] !== WebSocketRoomPrefix.RESOURCE) return null;\n\n if (parts.length === 3) {\n return { resourceType: parts[1], resourceId: parts[2] };\n } else if (parts.length === 4) {\n return { resourceType: parts[1], scopeKey: parts[2], scopeId: parts[3] };\n }\n return null;\n}\n\n/**\n * Extract organization ID from an organization room name\n */\nexport function parseOrganizationRoomName(roomName: string): string | null {\n if (roomName.startsWith(`${WebSocketRoomPrefix.ORGANIZATION}:`)) {\n // Handle both org:{orgId} and org:{orgId}:role:{role}\n const parts = roomName.split(':');\n return parts[1] || null;\n }\n return null;\n}\n\n// =====================================================\n// Validation Helpers\n// =====================================================\n\n/**\n * Validate an incoming WebSocket event payload\n */\nexport function validateWebSocketPayload<E extends keyof typeof WebSocketEventSchemas>(\n event: E,\n payload: unknown\n): E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown {\n const schema = WebSocketEventSchemas[event];\n return schema.parse(payload) as E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown;\n}\n\n/**\n * Safe validation (returns result instead of throwing)\n */\nexport function safeValidateWebSocketPayload<E extends keyof typeof WebSocketEventSchemas>(\n event: E,\n payload: unknown\n): { success: true; data: E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown } | { success: false; error: z.ZodError } {\n const schema = WebSocketEventSchemas[event];\n const result = schema.safeParse(payload);\n if (result.success) {\n return { success: true, data: result.data as E extends keyof WebSocketEventPayloads ? WebSocketEventPayloads[E] : unknown };\n }\n return { success: false, error: result.error };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"child-operations.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/resources/child-operations.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAO7D;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,yEAAyE;IACzE,SAAS,cAAc;IACvB,kFAAkF;IAClF,IAAI,SAAS;CACd;AAED;;;;GAIG;AACH,oBAAY,sBAAsB;IAChC,yEAAyE;IACzE,MAAM,WAAW;IACjB;;;;;;OAMG;IACH,wBAAwB,6BAA6B;CACtD;AAMD;;;;GAIG;AACH,oBAAY,uBAAuB;IACjC,8CAA8C;IAC9C,WAAW,gBAAgB;IAC3B,oDAAoD;IACpD,aAAa,kBAAkB;IAC/B,8DAA8D;IAC9D,IAAI,SAAS;CACd;AAMD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAMvE;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC;;;;;iBAiC7C,CAAC;AAEH,8DAA8D;AAC9D,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,oEAAoE;AACpE,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAErG;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,YAAY,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED;;;;;;GAMG;AACH,oBAAY,mBAAmB;IAC7B;;;;OAIG;IACH,WAAW,gBAAgB;CA+B5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kCAAkC;;;;;kDAwClB,wBAAwB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,QAAhE,wBAAwB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;iBAI3F,CAAC;AAEH,8DAA8D;AAC9D,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,oEAAoE;AACpE,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAErG;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;sDAfV,wBAAwB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,QAAhE,wBAAwB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;;iBAoB3F,CAAC;AAEH,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,oEAAoE;AACpE,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAMrF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,2BAA2B;;;;;;;iBAsDtC,CAAC;AAEH,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,oEAAoE;AACpE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAMvF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,+BAA+B;;;;;iBAoB1C,CAAC;AAEH,8DAA8D;AAC9D,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,oEAAoE;AACpE,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAM/F;;GAEG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;iBAS5C,CAAC;AAEH,8DAA8D;AAC9D,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,oEAAoE;AACpE,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAMnG;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;0DA/LX,wBAAwB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,QAAhE,wBAAwB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6M3F,CAAC;AAGH,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,oEAAoE;AACpE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAMvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,uCAAuC;;;iBASlD,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC,CAAC"}
1
+ {"version":3,"file":"child-operations.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/resources/child-operations.shared.schemas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-policy.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/resources/context-policy.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAM5E;;;GAGG;AACH,oBAAY,wBAAwB;IAClC,oDAAoD;IACpD,IAAI,SAAS;IACb,iEAAiE;IACjE,OAAO,YAAY;IACnB,wDAAwD;IACxD,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,oBAAY,8BAA8B;IACxC,2DAA2D;IAC3D,GAAG,QAAQ;IACX,qDAAqD;IACrD,aAAa,kBAAkB;IAC/B,sDAAsD;IACtD,cAAc,mBAAmB;CAClC;AAMD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,wBAAwB,CAAC;IAEtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;IAElD;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CACjC,qBAAqB,EACrB,+BAA+B,CAChC,CAAC,CAAC;CACJ;AAMD;;;GAGG;AACH,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CACxD,IAAI,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAMtD,CAAC;AAMF,eAAO,MAAM,qCAAqC;;;;;iBAKhD,CAAC;AACH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAExG,eAAO,MAAM,+BAA+B;;;;;;;;;;;iBAS1C,CAAC"}
1
+ {"version":3,"file":"context-policy.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/resources/context-policy.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAM5E;;;GAGG;AACH,oBAAY,wBAAwB;IAClC,oDAAoD;IACpD,IAAI,SAAS;IACb,iEAAiE;IACjE,OAAO,YAAY;IACnB,wDAAwD;IACxD,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,oBAAY,8BAA8B;IACxC,2DAA2D;IAC3D,GAAG,QAAQ;IACX,qDAAqD;IACrD,aAAa,kBAAkB;IAC/B,sDAAsD;IACtD,cAAc,mBAAmB;CAClC;AAMD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,wBAAwB,CAAC;IAEtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;IAElD;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CACjC,qBAAqB,EACrB,+BAA+B,CAChC,CAAC,CAAC;CACJ;AAMD;;;GAGG;AACH,eAAO,MAAM,mCAAmC,EAAE,QAAQ,CACxD,IAAI,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAMtD,CAAC;AAMF,eAAO,MAAM,qCAAqC;;;;;iBAKhD,CAAC;AACH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAExG,eAAO,MAAM,+BAA+B;;;;;;;;;;;iBAS1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-display.shared.schemas.d.ts","sourceRoot":"","sources":["../../../../src/resources/relationship-display.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiC,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAY9F;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,UAAU,eAAe;IACzB;;;;OAIG;IACH,OAAO,YAAY;IACnB;;;OAGG;IACH,KAAK,UAAU;IACf;;;OAGG;IACH,OAAO,YAAY;IACnB,qEAAqE;IACrE,IAAI,SAAS;CACd;AAOD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;kBAwC7C,CAAC;AACZ,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2CAA2C,CAAC,CAAC;AAOhH;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC;;;kBAoBtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAOlG;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oCAAoC;;kBA4BtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAOlG;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;kBAajC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
1
+ {"version":3,"file":"relationship-display.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/resources/relationship-display.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiC,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAY9F;;;;;;;;;;;;;;;GAeG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,UAAU,eAAe;IACzB;;;;OAIG;IACH,OAAO,YAAY;IACnB;;;OAGG;IACH,KAAK,UAAU;IACf;;;OAGG;IACH,OAAO,YAAY;IACnB,qEAAqE;IACrE,IAAI,SAAS;CACd;AAOD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;kBAwC7C,CAAC;AACZ,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2CAA2C,CAAC,CAAC;AAOhH;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC;;;kBAoBtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAOlG;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oCAAoC;;kBA4BtC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAOlG;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;kBAajC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resources-config.shared.factory.d.ts","sourceRoot":"","sources":["../../../../src/resources/resources-config.shared.factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EAEZ,gBAAgB,EAoBjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6CxB,OAAO,EAEL,KAAK,wBAAwB,EAU7B,qBAAqB,EAKrB,uCAAuC,EAKvC,gCAAgC,EAQjC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAwD,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChJ,OAAO,EAUL,oBAAoB,EAarB,MAAM,4BAA4B,CAAC;AA6OpC,wBAAgB,4CAA4C,CAC1D,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAChE,wBAAwB,EAAE,oBAAoB,EAAE,EAChD,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1F,IAAI,CA0BN;AA8bD,+EAA+E;AAI/E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC1D,UAAU,EAAE,CAAC,EACb,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,CAAC,CAAC,UAAU,CA4Cd;AA6ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACrD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,EACb,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,GACzB,CAAC,CAAC,UAAU,CAqBd;AA4sBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sCAAsC,CACpD,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,EAClE,WAAW,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,EACjD,MAAM,EAAE;IACR,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;OAUG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC,GAAG,gCAAgC,CAAC,aAAa,EAAE,WAAW,CAAC,CAuF/D;AA4GD;;;;GAIG;AACH,wBAAgB,0CAA0C,CACxD,oBAAoB,SAAS,YAAY,GAAG,SAAS,EACrD,kBAAkB,SAAS,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,EACrE,WAAW,SAAS,CAAC,CAAC,UAAU,EAChC,MAAM,EAAE,uCAAuC,CAC/C,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CACtD,GAAG,qBAAqB,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAq8D/E"}
1
+ {"version":3,"file":"resources-config.shared.factory.d.ts","sourceRoot":"","sources":["../../../src/resources/resources-config.shared.factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EAEZ,gBAAgB,EAoBjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6CxB,OAAO,EAEL,KAAK,wBAAwB,EAU7B,qBAAqB,EAKrB,uCAAuC,EAKvC,gCAAgC,EAQjC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAwD,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChJ,OAAO,EAUL,oBAAoB,EAarB,MAAM,4BAA4B,CAAC;AAuSpC,wBAAgB,4CAA4C,CAC1D,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAChE,wBAAwB,EAAE,oBAAoB,EAAE,EAChD,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1F,IAAI,CA0BN;AA8bD,+EAA+E;AAI/E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC1D,UAAU,EAAE,CAAC,EACb,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,CAAC,CAAC,UAAU,CA4Cd;AA6ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACrD,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,EACb,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,GACzB,CAAC,CAAC,UAAU,CAqBd;AA4sBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sCAAsC,CACpD,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,EAClE,WAAW,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,EACjD,MAAM,EAAE;IACR,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;OAUG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC,GAAG,gCAAgC,CAAC,aAAa,EAAE,WAAW,CAAC,CAuF/D;AA4GD;;;;GAIG;AACH,wBAAgB,0CAA0C,CACxD,oBAAoB,SAAS,YAAY,GAAG,SAAS,EACrD,kBAAkB,SAAS,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,EACrE,WAAW,SAAS,CAAC,CAAC,UAAU,EAChC,MAAM,EAAE,uCAAuC,CAC/C,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CACtD,GAAG,qBAAqB,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAk/D/E"}
@@ -140,6 +140,57 @@ const RETENTION_REQUIRED_SERVICE_RESOLVABLE_OPERATIONS = [
140
140
  why: 'the see-through read primitive listRetainedAsSystem surfaces retained records via LIST',
141
141
  },
142
142
  ];
143
+ /**
144
+ * The operations an `isAnonymizable` resource must expose to the SERVICE dispatch
145
+ * layer, with the `AnonymousSessionBackendService` primitive that needs each one.
146
+ *
147
+ * Sibling of {@link RETENTION_REQUIRED_SERVICE_RESOLVABLE_OPERATIONS} and consumed by
148
+ * the same TWO halves — presence (is it declared in `coreOperations`?) and
149
+ * resolvability (does it have a default variant `getServiceOperationPathDefault`
150
+ * can serve?). A separate constant rather than a shared one, because the two
151
+ * capabilities demand different operations for different reasons and merging them
152
+ * would make each entry's `why` unreadable.
153
+ *
154
+ * **Each entry is a DISJUNCTION, and that is the whole design decision.** Retention
155
+ * needs three specific operations, so its constant is a flat list of single ops.
156
+ * The anonymous-session cleanup needs to DELETE a known id set, and
157
+ * `deleteOwnedRecords` deliberately serves that with `DELETE_MANY` when the
158
+ * resource publishes one and per-row `DELETE` otherwise — so demanding
159
+ * `DELETE_MANY` would force every anonymizable resource to publish a bulk-delete
160
+ * surface it may not want (`draftNotes`, the only such resource today, publishes
161
+ * `DELETE` alone), while demanding `DELETE` would refuse a resource that
162
+ * legitimately publishes only the bulk form. The honest requirement is "at least
163
+ * one of these resolves", which is exactly what the runtime probes.
164
+ *
165
+ * Measured 2026-09-09: before this guard existed, `deleteOwnedRecords` resolved
166
+ * `DELETE_MANY` unconditionally, so for `draftNotes` the cleanup batch's phase 1
167
+ * threw on every run — the per-session catch counted an error and the
168
+ * `ANONYMOUS_USERS` anchor row was never removed. The runtime is now correct; this
169
+ * constant is what refuses the configuration at boot instead of discovering it at
170
+ * the first sweep.
171
+ */
172
+ const ANONYMIZABLE_REQUIRED_SERVICE_RESOLVABLE_OPERATIONS = [
173
+ {
174
+ operations: [CoreResourceOperation.LIST],
175
+ primitive: 'listAnonymousRecords',
176
+ why: 'the transposition and cleanup lookups list a session\'s rows via LIST',
177
+ },
178
+ {
179
+ operations: [CoreResourceOperation.UPDATE_MANY],
180
+ primitive: 'reassignOwnership (updateManyAsSystem)',
181
+ why: 'the anon→user transposition rewrites { userId, anonymousUserId } via updateManyAsSystem',
182
+ },
183
+ {
184
+ operations: [CoreResourceOperation.DELETE_MANY, CoreResourceOperation.DELETE],
185
+ primitive: 'deleteOwnedRecords',
186
+ why: 'the expired-session sweep, the DISCARD transposition arm and the REPLACE pre-delete all remove '
187
+ + 'a known id set, preferring DELETE_MANY and falling back to per-row DELETE',
188
+ },
189
+ ];
190
+ /** Human-readable "A or B" rendering of one requirement group's alternatives. */
191
+ function describeOperationAlternatives(operations) {
192
+ return operations.length === 1 ? String(operations[0]) : operations.join(' or ');
193
+ }
143
194
  function assertOperationPathKeySegment(value, label, operation) {
144
195
  if (value.includes(' | ')) {
145
196
  throw createConfigurationError(`Operation '${operation}' cannot use ${label} '${value}' because operation path keys reserve the delimiter ' | '`);
@@ -1801,11 +1852,18 @@ export function createResourceConfiguration_Initialization(params) {
1801
1852
  throw e;
1802
1853
  throw createConfigurationError(`[${resourceIdentifier}] isAnonymizable: true but mainSchema is not a ZodObject (cannot validate userId field).`);
1803
1854
  }
1804
- if (!coreOperations.includes(CoreResourceOperation.LIST)) {
1805
- throw createConfigurationError(`[${resourceIdentifier}] isAnonymizable: true requires LIST in coreOperations (needed for transposition lookup).`);
1806
- }
1807
- if (!coreOperations.includes(CoreResourceOperation.UPDATE_MANY)) {
1808
- throw createConfigurationError(`[${resourceIdentifier}] isAnonymizable: true requires UPDATE_MANY in coreOperations (needed for transposition batch update).`);
1855
+ // PRESENCE half of the anonymizable operation contract: each requirement group must have at
1856
+ // least one of its alternatives declared at all. The RESOLVABILITY half — that a declared op
1857
+ // has a variant `AnonymousSessionBackendService` can actually dispatch — runs later, once the
1858
+ // operation variants are assembled (search `ANONYMIZABLE_REQUIRED_SERVICE_RESOLVABLE_OPERATIONS`).
1859
+ // Deliberately two checks, exactly as for `retentionPolicy`, because they have two different
1860
+ // fixes: "declare the op" vs "declare it with a service-resolvable variant".
1861
+ for (const { operations: alternatives, primitive, why } of ANONYMIZABLE_REQUIRED_SERVICE_RESOLVABLE_OPERATIONS) {
1862
+ if (alternatives.some((alternative) => coreOperations.includes(alternative))) {
1863
+ continue;
1864
+ }
1865
+ throw createConfigurationError(`[${resourceIdentifier}] isAnonymizable: true requires ${describeOperationAlternatives(alternatives)} ` +
1866
+ `in coreOperations (${primitive}: ${why}).`);
1809
1867
  }
1810
1868
  effectiveMainSchema = mainSchema.extend({
1811
1869
  anonymousUserId: z.string().optional().nullable().isDBIndexed()
@@ -3035,6 +3093,41 @@ export function createResourceConfiguration_Initialization(params) {
3035
3093
  `its transport group — a lone variant marked \`isDefault: false\` leaves the group with NO default.`);
3036
3094
  }
3037
3095
  }
3096
+ // ── RESOLVABILITY half of the ANONYMIZABLE operation contract ───────────
3097
+ //
3098
+ // Same two-halves shape as retention above, for the other dynamic-loop capability. The presence
3099
+ // half proved that each requirement group has an alternative DECLARED; this proves one of them
3100
+ // is REACHABLE by `AnonymousSessionBackendService`, whose three primitives
3101
+ // (`listAnonymousRecords` / `updateManyAsSystem` / `deleteOwnedRecords`) all resolve through
3102
+ // `getServiceOperationPathDefault`.
3103
+ //
3104
+ // Runs HERE rather than with the presence half for the same reason retention's does:
3105
+ // `isOperationDefault` is computed by the operations loop above, and it is variant-type-LOCAL —
3106
+ // a lone variant marked `isDefault: false` leaves its transport group with NO default.
3107
+ //
3108
+ // Reads the SAME predicate the resolver applies (`isServiceResolvableDefaultOperation`), and the
3109
+ // same predicate `deleteOwnedRecords` probes with when it chooses between DELETE_MANY and
3110
+ // per-row DELETE — so the guard, the runtime chooser and the resolver cannot disagree.
3111
+ if (isAnonymizable) {
3112
+ for (const { operations: alternatives, primitive, why } of ANONYMIZABLE_REQUIRED_SERVICE_RESOLVABLE_OPERATIONS) {
3113
+ if (alternatives.some((alternative) => operations.some((candidate) => isServiceResolvableDefaultOperation(candidate, alternative)))) {
3114
+ continue;
3115
+ }
3116
+ const declaredVariants = operations
3117
+ .filter((candidate) => alternatives.includes(candidate.operationIdentifier))
3118
+ .map((candidate) => `${String(candidate.operationIdentifier)}/${candidate.variantType}` +
3119
+ `${candidate.variantKey ? `:${candidate.variantKey}` : ''}${candidate.isOperationDefault ? ' (default)' : ''}`);
3120
+ throw createConfigurationError(`[${resourceIdentifier}] isAnonymizable: true requires ${describeOperationAlternatives(alternatives)} ` +
3121
+ `to be SERVICE-RESOLVABLE, but no accepted DEFAULT variant is declared. Declared variants: ` +
3122
+ `[${declaredVariants.length > 0 ? declaredVariants.join(', ') : 'none'}]. The anonymous-session ` +
3123
+ `primitive ${primitive} (${why}) resolves through getServiceOperationPathDefault, which accepts ` +
3124
+ `only [${SERVICE_RESOLVABLE_OPERATION_VARIANT_TYPES.join(', ')}] and only the operation default. ` +
3125
+ `REPOSITORY_ONLY is route-less but is served by the SEPARATE getRepositoryOperationPathDefault ` +
3126
+ `transport, so it passes the "operation exists" check and then FAILS TO RESOLVE the moment an ` +
3127
+ `anonymous session converts or expires. Use ${ResourceOperationVariantType.INTERNAL_CALL} for a ` +
3128
+ `capability that must stay route-less, and make sure it is the default for its transport group.`);
3129
+ }
3130
+ }
3038
3131
  const resourceConfig = {
3039
3132
  isDisabled: params.isDisabled ?? false,
3040
3133
  resourcePrimaryScope,