@salsita-ai/sdk 0.50.0-develop.bb71259564 → 0.50.0-develop.bc204720a8

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 (1285) hide show
  1. package/README.md +13 -4
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/common/admin-interface.d.ts +3 -3
  4. package/dist/admin/legacy-admin/Application.js +1 -1
  5. package/dist/application-spec/caching/index.d.ts +6 -1
  6. package/dist/application-spec/caching/index.js +1 -1
  7. package/dist/application-spec/errors/diagnostic-codes.d.ts +5 -0
  8. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  9. package/dist/application-spec/errors/diagnostic-messages.d.ts +9 -0
  10. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  11. package/dist/application-spec/generate-application/code/domain-runtime-files.d.ts +0 -19
  12. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  13. package/dist/application-spec/generate-application/code/index.d.ts +1 -0
  14. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +4 -3
  15. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  16. package/dist/application-spec/generate-application/code/templates/admin-config.d.ts +1 -1
  17. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -2
  18. package/dist/application-spec/generate-application/code/templates/configurator-config.js +2 -1
  19. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +9 -8
  20. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +3 -3
  21. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-base-configurator-builder.js +2 -1
  22. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +31 -31
  23. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-locale.js +1 -1
  24. package/dist/application-spec/generate-application/code/templates/editor.d.ts +1 -1
  25. package/dist/application-spec/generate-application/code/templates/editor.js +16 -3
  26. package/dist/application-spec/generate-application/code/templates/gitignore.js +2 -1
  27. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +15 -15
  28. package/dist/application-spec/generate-application/code/templates/html-index.d.ts +12 -1
  29. package/dist/application-spec/generate-application/code/templates/html-index.js +9 -10
  30. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -2
  31. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  32. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +5 -4
  33. package/dist/application-spec/generate-application/code/templates/skills/core/cli.d.ts +2 -0
  34. package/dist/application-spec/generate-application/code/templates/skills/core/cli.js +1 -0
  35. package/dist/application-spec/generate-application/code/templates/skills/core/index.d.ts +3 -0
  36. package/dist/application-spec/generate-application/code/templates/skills/core/index.js +1 -0
  37. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.d.ts +2 -0
  38. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.js +89 -0
  39. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.d.ts +2 -0
  40. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.js +46 -0
  41. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.d.ts +3 -0
  42. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.js +3 -0
  43. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.d.ts +1 -0
  44. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.js +1 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.d.ts +3 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.js +48 -0
  47. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.d.ts +3 -0
  48. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.js +38 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.d.ts +3 -0
  50. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.js +35 -0
  51. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.d.ts +3 -0
  52. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.js +61 -0
  53. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.d.ts +3 -0
  54. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.js +7 -0
  55. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.d.ts +3 -0
  56. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.js +79 -0
  57. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.d.ts +1 -0
  58. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.js +1 -0
  59. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.d.ts +3 -0
  60. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.js +52 -0
  61. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.d.ts +3 -0
  62. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.js +49 -0
  63. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.d.ts +3 -0
  64. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.js +62 -0
  65. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.d.ts +3 -0
  66. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.js +40 -0
  67. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.d.ts +3 -0
  68. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.js +65 -0
  69. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.d.ts +3 -0
  70. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.js +58 -0
  71. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.d.ts +3 -0
  72. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.js +41 -0
  73. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.d.ts +3 -0
  74. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.js +24 -0
  75. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.d.ts +3 -0
  76. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.js +44 -0
  77. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.d.ts +3 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.js +74 -0
  79. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.d.ts +3 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.js +8 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.d.ts +1 -0
  82. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.js +1 -0
  83. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.d.ts +3 -0
  84. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.js +48 -0
  85. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.d.ts +3 -0
  86. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.js +64 -0
  87. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.d.ts +3 -0
  88. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.js +62 -0
  89. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.d.ts +3 -0
  90. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.js +1 -0
  91. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.d.ts +3 -0
  92. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.js +59 -0
  93. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.d.ts +3 -0
  94. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.js +46 -0
  95. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.d.ts +1 -0
  96. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.js +1 -0
  97. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.d.ts +3 -0
  98. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.js +43 -0
  99. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.d.ts +3 -0
  100. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.js +30 -0
  101. package/dist/application-spec/generate-application/code/templates/skills/features/features.d.ts +3 -0
  102. package/dist/application-spec/generate-application/code/templates/skills/features/features.js +1 -0
  103. package/dist/application-spec/generate-application/code/templates/skills/features/index.d.ts +1 -0
  104. package/dist/application-spec/generate-application/code/templates/skills/features/index.js +1 -0
  105. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.d.ts +2 -0
  106. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.js +1 -0
  107. package/dist/application-spec/generate-application/code/templates/skills/features/localization.d.ts +3 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/features/localization.js +87 -0
  109. package/dist/application-spec/generate-application/code/templates/skills/features/scene-objects.d.ts +3 -0
  110. package/dist/application-spec/generate-application/code/templates/skills/features/scene-objects.js +43 -0
  111. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.d.ts +1 -0
  112. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.js +1 -0
  113. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.d.ts +3 -0
  114. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.js +48 -0
  115. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.d.ts +3 -0
  116. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.js +1 -0
  117. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.d.ts +3 -0
  118. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.js +39 -0
  119. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.d.ts +3 -0
  120. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.js +36 -0
  121. package/dist/application-spec/generate-application/code/templates/skills/features/variants.d.ts +2 -0
  122. package/dist/application-spec/generate-application/code/templates/skills/features/variants.js +1 -0
  123. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/assistant-setup.d.ts +3 -0
  124. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/assistant-setup.js +32 -0
  125. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/authentication.d.ts +3 -0
  126. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/authentication.js +42 -0
  127. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/backend-data.d.ts +3 -0
  128. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/backend-data.js +45 -0
  129. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/entry-and-environment.d.ts +3 -0
  130. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/entry-and-environment.js +38 -0
  131. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/finalization.d.ts +3 -0
  132. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/finalization.js +92 -0
  133. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/index.d.ts +1 -0
  134. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/index.js +1 -0
  135. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/publishing.d.ts +3 -0
  136. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/publishing.js +1 -0
  137. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/callback.d.ts +3 -0
  138. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/callback.js +26 -0
  139. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/documents.d.ts +3 -0
  140. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/documents.js +51 -0
  141. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/email.d.ts +3 -0
  142. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/email.js +38 -0
  143. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/index.d.ts +1 -0
  144. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/index.js +1 -0
  145. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/integrations.d.ts +3 -0
  146. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/integrations.js +88 -0
  147. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/links-and-images.d.ts +3 -0
  148. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/links-and-images.js +68 -0
  149. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/tasks.d.ts +3 -0
  150. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/tasks/tasks.js +1 -0
  151. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/webhooks.d.ts +3 -0
  152. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks/webhooks.js +1 -0
  153. package/dist/application-spec/generate-application/code/templates/skills/guide.d.ts +68 -0
  154. package/dist/application-spec/generate-application/code/templates/skills/guide.js +18 -0
  155. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +2 -2
  156. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +12 -5
  157. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.d.ts +9 -0
  158. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.js +1 -0
  159. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.d.ts +2 -0
  160. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.js +23 -0
  161. package/dist/application-spec/generate-application/code/templates/skills/{phoenix-skill.d.ts → processes/beta.d.ts} +2 -1
  162. package/dist/application-spec/generate-application/code/templates/skills/processes/beta.js +4 -0
  163. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.d.ts +2 -0
  164. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.js +38 -0
  165. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.d.ts +3 -0
  166. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.js +1 -0
  167. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.d.ts +1 -0
  168. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.js +1 -0
  169. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.d.ts +2 -0
  170. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.js +35 -0
  171. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.d.ts +2 -0
  172. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.js +2 -0
  173. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.d.ts +2 -0
  174. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.js +2 -0
  175. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.d.ts +2 -0
  176. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.js +25 -0
  177. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.d.ts +2 -0
  178. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.js +35 -0
  179. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.d.ts +3 -0
  180. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.js +3 -0
  181. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.d.ts +2 -0
  182. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.js +9 -0
  183. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.d.ts +1 -0
  184. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.js +1 -0
  185. package/dist/application-spec/generate-application/code/templates/skills/processes/index.d.ts +8 -0
  186. package/dist/application-spec/generate-application/code/templates/skills/processes/index.js +1 -0
  187. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.d.ts +2 -0
  188. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.js +1 -0
  189. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.d.ts +2 -0
  190. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.js +46 -0
  191. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.d.ts +2 -0
  192. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.js +2 -0
  193. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.d.ts +2 -0
  194. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.js +6 -0
  195. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.d.ts +1 -0
  196. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.js +1 -0
  197. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.d.ts +3 -0
  198. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.js +1 -0
  199. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.d.ts +2 -0
  200. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.js +13 -0
  201. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.d.ts +2 -0
  202. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.js +20 -0
  203. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.d.ts +2 -0
  204. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.js +1 -0
  205. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.d.ts +1 -0
  206. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.js +1 -0
  207. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.d.ts +2 -0
  208. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.js +22 -0
  209. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.d.ts +3 -0
  210. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.js +1 -0
  211. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.d.ts +2 -0
  212. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.js +25 -0
  213. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +49 -263
  214. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +3 -58
  215. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.d.ts +9 -0
  216. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.js +1 -0
  217. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +1 -1
  218. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -1
  219. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  220. package/dist/application-spec/generate-application/code/templates/tsconfig.js +2 -1
  221. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
  222. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +2 -1
  223. package/dist/application-spec/generate-application/code/templates/webhook-index.js +2 -2
  224. package/dist/application-spec/generate-application/index.d.ts +1 -8
  225. package/dist/application-spec/generate-application/index.js +1 -1
  226. package/dist/application-spec/parse-application-files/merge/merged-app-metadata.d.ts +1 -0
  227. package/dist/application-spec/parse-application-files/merge/merged-app-metadata.js +1 -1
  228. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +1 -1
  229. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  230. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  231. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +10 -13
  232. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  233. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.d.ts +1 -0
  234. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  235. package/dist/application-spec/parse-application-files/spec/model/session-data-schema.js +1 -1
  236. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.js +1 -1
  237. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  238. package/dist/application-spec/webhook-boundary.js +1 -1
  239. package/dist/client/authorized-client.d.ts +2 -1
  240. package/dist/client/authorized-client.js +1 -1
  241. package/dist/client/contract.d.ts +43 -9
  242. package/dist/client/contract.js +1 -1
  243. package/dist/client/local-authorized-client.d.ts +1 -0
  244. package/dist/client/local-authorized-client.js +1 -1
  245. package/dist/client/memory-authorized-client.d.ts +1 -0
  246. package/dist/client/memory-authorized-client.js +1 -1
  247. package/dist/client/phoenix-api.d.ts +744 -63
  248. package/dist/configurator/ConfiguratorApp.js +1 -1
  249. package/dist/configurator/agent-at-work/AgentAtWorkFallback.d.ts +7 -0
  250. package/dist/configurator/agent-at-work/AgentAtWorkFallback.js +1 -0
  251. package/dist/configurator/agent-at-work/AgentAtWorkPage.d.ts +20 -0
  252. package/dist/configurator/agent-at-work/AgentAtWorkPage.js +1 -0
  253. package/dist/configurator/agent-at-work/AgentModeBadge.d.ts +11 -0
  254. package/dist/configurator/agent-at-work/AgentModeBadge.js +1 -0
  255. package/dist/configurator/agent-at-work/StudioMark.d.ts +8 -0
  256. package/dist/configurator/agent-at-work/StudioMark.js +1 -0
  257. package/dist/configurator/agent-at-work/agent-at-work-copy.d.ts +17 -0
  258. package/dist/configurator/agent-at-work/agent-at-work-copy.js +1 -0
  259. package/dist/configurator/agent-at-work/agent-at-work-styles.d.ts +23 -0
  260. package/dist/configurator/agent-at-work/agent-at-work-styles.js +374 -0
  261. package/dist/configurator/agent-at-work/index.d.ts +3 -0
  262. package/dist/configurator/agent-at-work/index.js +1 -0
  263. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  264. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.d.ts +34 -0
  265. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-image-view.d.ts +18 -0
  266. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-speech-player.d.ts +69 -0
  267. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-speech-player.js +1 -0
  268. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +289 -24
  269. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  270. package/dist/configurator/application-runtime/extensions/systems/assistant-system/composer-attachments.d.ts +68 -0
  271. package/dist/configurator/application-runtime/extensions/systems/assistant-system/composer-attachments.js +1 -0
  272. package/dist/configurator/application-runtime/extensions/systems/assistant-system/rasterize-image.d.ts +13 -0
  273. package/dist/configurator/application-runtime/extensions/systems/assistant-system/rasterize-image.js +1 -0
  274. package/dist/configurator/application-runtime/extensions/systems/assistant-system/speakable-reply.d.ts +7 -0
  275. package/dist/configurator/application-runtime/extensions/systems/assistant-system/speakable-reply.js +1 -0
  276. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +43 -0
  277. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.js +1 -1
  278. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +4 -1
  279. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  280. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +61 -52
  281. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  282. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +8 -2
  283. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  284. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.d.ts +10 -0
  285. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.js +1 -0
  286. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +8 -0
  287. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  288. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +7 -2
  289. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  290. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +11 -0
  291. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  292. package/dist/configurator/application-runtime/extensions/systems/sketching-system/sketching-system.d.ts +5 -5
  293. package/dist/configurator/common/configurator-interface.d.ts +18 -8
  294. package/dist/configurator/common/configurator-interface.js +1 -1
  295. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  296. package/dist/configurator/configurator-context/index.d.ts +0 -1
  297. package/dist/configurator/configurator-context/index.js +1 -1
  298. package/dist/configurator/index.d.ts +1 -0
  299. package/dist/configurator/index.js +1 -1
  300. package/dist/configurator/{ui/configurator-layout/universal → pages}/ExportingOverlay.d.ts +3 -2
  301. package/dist/configurator/pages/ExportingOverlay.js +1 -0
  302. package/dist/configurator/pages/InertRoot.d.ts +10 -0
  303. package/dist/configurator/pages/InertRoot.js +1 -0
  304. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  305. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  306. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  307. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  308. package/dist/configurator/pages/default-configurator-elements.d.ts +6 -2
  309. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  310. package/dist/configurator/pages/error-boundaries/AgentModeErrorFallback.d.ts +8 -0
  311. package/dist/configurator/pages/error-boundaries/AgentModeErrorFallback.js +1 -0
  312. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.d.ts +5 -0
  313. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.js +1 -0
  314. package/dist/configurator/pages/error-boundaries/DevContextFallback.d.ts +4 -2
  315. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  316. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.d.ts +6 -4
  317. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  318. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  319. package/dist/configurator/pages/error-boundaries/index.d.ts +1 -0
  320. package/dist/configurator/pages/error-boundaries/index.js +1 -1
  321. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.d.ts +3 -0
  322. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.js +1 -0
  323. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.d.ts +3 -0
  324. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.js +1 -0
  325. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.d.ts +3 -0
  326. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.js +1 -0
  327. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.d.ts +3 -0
  328. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.js +1 -0
  329. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.d.ts +3 -0
  330. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.js +1 -0
  331. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.d.ts +3 -0
  332. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.js +1 -0
  333. package/dist/configurator/pages/provider-slots/index.d.ts +6 -0
  334. package/dist/configurator/pages/provider-slots/index.js +1 -0
  335. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.d.ts +2 -0
  336. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.js +1 -0
  337. package/dist/configurator/pages/ui-elements/configurator-ui-elements.d.ts +3 -0
  338. package/dist/configurator/pages/ui-elements/configurator-ui-elements.js +1 -0
  339. package/dist/configurator/pages/ui-elements/index.d.ts +2 -0
  340. package/dist/configurator/pages/ui-elements/index.js +1 -0
  341. package/dist/configurator/scene/cameras/CameraPadding.js +1 -1
  342. package/dist/configurator/ui/assistant/AssistantChips.d.ts +83 -1
  343. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  344. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +102 -1
  345. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  346. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +37 -3
  347. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  348. package/dist/configurator/ui/assistant/AssistantPanel.d.ts +46 -1
  349. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  350. package/dist/configurator/ui/assistant/AssistantThread.d.ts +80 -4
  351. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  352. package/dist/configurator/ui/assistant/AssistantThreadItemView.d.ts +104 -0
  353. package/dist/configurator/ui/assistant/AssistantThreadItemView.js +1 -0
  354. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +39 -2
  355. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -1
  356. package/dist/configurator/ui/assistant/alert/index.d.ts +1 -1
  357. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.d.ts +43 -0
  358. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.js +1 -0
  359. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.d.ts +5 -0
  360. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.js +1 -0
  361. package/dist/configurator/ui/assistant/annotation/AnnotationPin.d.ts +14 -0
  362. package/dist/configurator/ui/assistant/annotation/AnnotationPin.js +1 -0
  363. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.d.ts +12 -0
  364. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.js +1 -0
  365. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.d.ts +11 -0
  366. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.js +1 -0
  367. package/dist/configurator/ui/assistant/annotation/annotation-layout.d.ts +80 -0
  368. package/dist/configurator/ui/assistant/annotation/annotation-layout.js +1 -0
  369. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.d.ts +49 -0
  370. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.js +1 -0
  371. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.d.ts +18 -0
  372. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.js +1 -0
  373. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.d.ts +22 -0
  374. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.js +1 -0
  375. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.d.ts +22 -0
  376. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.js +1 -0
  377. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.d.ts +17 -0
  378. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.js +1 -0
  379. package/dist/configurator/ui/assistant/annotation/editor/index.d.ts +2 -0
  380. package/dist/configurator/ui/assistant/annotation/editor/index.js +1 -0
  381. package/dist/configurator/ui/assistant/annotation/index.d.ts +6 -0
  382. package/dist/configurator/ui/assistant/annotation/index.js +1 -0
  383. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.d.ts +2 -0
  384. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.js +1 -0
  385. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.d.ts +6 -0
  386. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.js +1 -0
  387. package/dist/configurator/ui/assistant/assistant-failure.d.ts +20 -7
  388. package/dist/configurator/ui/assistant/assistant-failure.js +1 -1
  389. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +63 -0
  390. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  391. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  392. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  393. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +24 -0
  394. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  395. package/dist/configurator/ui/assistant/composer/composer-frame.d.ts +20 -0
  396. package/dist/configurator/ui/assistant/composer/composer-frame.js +1 -0
  397. package/dist/configurator/ui/assistant/composer/index.d.ts +1 -0
  398. package/dist/configurator/ui/assistant/composer/index.js +1 -0
  399. package/dist/configurator/ui/assistant/drawing/AssistantDrawing.d.ts +58 -0
  400. package/dist/configurator/ui/assistant/drawing/AssistantDrawing.js +1 -0
  401. package/dist/configurator/ui/assistant/drawing/index.d.ts +2 -0
  402. package/dist/configurator/ui/assistant/drawing/index.js +1 -0
  403. package/dist/configurator/ui/assistant/drawing/parse-drawing.d.ts +18 -0
  404. package/dist/configurator/ui/assistant/drawing/parse-drawing.js +1 -0
  405. package/dist/configurator/ui/assistant/drawing/use-drawing-url.d.ts +14 -0
  406. package/dist/configurator/ui/assistant/drawing/use-drawing-url.js +1 -0
  407. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +35 -1
  408. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  409. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -2
  410. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +59 -2
  411. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  412. package/dist/configurator/ui/assistant/form/built-in-form-slots.d.ts +16 -0
  413. package/dist/configurator/ui/assistant/form/built-in-form-slots.js +1 -0
  414. package/dist/configurator/ui/assistant/form/index.d.ts +2 -1
  415. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +26 -0
  416. package/dist/configurator/ui/assistant/form/registry/index.d.ts +1 -1
  417. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +59 -0
  418. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -1
  419. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +51 -0
  420. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -1
  421. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +47 -0
  422. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -1
  423. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +43 -0
  424. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -1
  425. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +51 -0
  426. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -1
  427. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +43 -0
  428. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -1
  429. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +51 -0
  430. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -1
  431. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +47 -0
  432. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -1
  433. package/dist/configurator/ui/assistant/form-elements/index.d.ts +8 -8
  434. package/dist/configurator/ui/assistant/image-view/ImageView.d.ts +66 -0
  435. package/dist/configurator/ui/assistant/image-view/ImageView.js +1 -0
  436. package/dist/configurator/ui/assistant/image-view/index.d.ts +1 -0
  437. package/dist/configurator/ui/assistant/image-view/index.js +1 -0
  438. package/dist/configurator/ui/assistant/image-view/use-image-blob.d.ts +7 -0
  439. package/dist/configurator/ui/assistant/image-view/use-image-blob.js +1 -0
  440. package/dist/configurator/ui/assistant/index.d.ts +24 -3
  441. package/dist/configurator/ui/assistant/index.js +1 -1
  442. package/dist/configurator/ui/assistant/panel/AssistantPanelHeader.d.ts +57 -0
  443. package/dist/configurator/ui/assistant/panel/AssistantPanelHeader.js +1 -0
  444. package/dist/configurator/ui/assistant/panel/index.d.ts +1 -0
  445. package/dist/configurator/ui/assistant/panel/index.js +1 -0
  446. package/dist/configurator/ui/assistant/popover/AssistantPopover.d.ts +24 -0
  447. package/dist/configurator/ui/assistant/popover/AssistantPopover.js +1 -0
  448. package/dist/configurator/ui/assistant/popover/index.d.ts +1 -0
  449. package/dist/configurator/ui/assistant/popover/index.js +1 -0
  450. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +43 -1
  451. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -1
  452. package/dist/configurator/ui/assistant/reference-link/index.d.ts +1 -1
  453. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -1
  454. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +49 -2
  455. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -1
  456. package/dist/configurator/ui/assistant/resource-image/index.d.ts +1 -1
  457. package/dist/configurator/ui/assistant/resource-image/index.js +1 -1
  458. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +34 -0
  459. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  460. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -1
  461. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  462. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +3 -9
  463. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  464. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +4 -4
  465. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -1
  466. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +11 -0
  467. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  468. package/dist/configurator/ui/assistant/thread-items.d.ts +22 -3
  469. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  470. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  471. package/dist/configurator/ui/assistant/use-assistant-composer.d.ts +88 -0
  472. package/dist/configurator/ui/assistant/use-assistant-composer.js +2 -0
  473. package/dist/configurator/ui/assistant/use-assistant-thread.d.ts +52 -0
  474. package/dist/configurator/ui/assistant/use-assistant-thread.js +1 -0
  475. package/dist/configurator/ui/assistant/use-load-older-on-top.d.ts +22 -0
  476. package/dist/configurator/ui/assistant/use-load-older-on-top.js +1 -0
  477. package/dist/configurator/ui/assistant/voice/RecordingBar.d.ts +21 -0
  478. package/dist/configurator/ui/assistant/voice/RecordingBar.js +1 -0
  479. package/dist/configurator/ui/assistant/voice/ReplyPlayButton.d.ts +43 -0
  480. package/dist/configurator/ui/assistant/voice/ReplyPlayButton.js +1 -0
  481. package/dist/configurator/ui/assistant/voice/index.d.ts +4 -0
  482. package/dist/configurator/ui/assistant/voice/index.js +1 -0
  483. package/dist/configurator/ui/assistant/voice/use-voice-recording.d.ts +39 -0
  484. package/dist/configurator/ui/assistant/voice/use-voice-recording.js +1 -0
  485. package/dist/configurator/ui/assistant/voice/voice-capture.d.ts +22 -0
  486. package/dist/configurator/ui/assistant/voice/voice-capture.js +1 -0
  487. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  488. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  489. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  490. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  491. package/dist/configurator/ui/index.d.ts +1 -1
  492. package/dist/configurator/ui/index.js +1 -1
  493. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  494. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  495. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  496. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  497. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  498. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  499. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  500. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  501. package/dist/docs/3d-scene/animations-basic.mdx +0 -4
  502. package/dist/docs/3d-scene/camera-based-hiding.mdx +0 -2
  503. package/dist/docs/3d-scene/cameras/custom.mdx +0 -2
  504. package/dist/docs/3d-scene/cameras/fit-during-drag.mdx +0 -4
  505. package/dist/docs/3d-scene/cameras/locks.mdx +0 -4
  506. package/dist/docs/3d-scene/cameras/transitions.mdx +0 -2
  507. package/dist/docs/3d-scene/engraving.mdx +0 -4
  508. package/dist/docs/3d-scene/materials/custom.mdx +1 -2
  509. package/dist/docs/3d-scene/materials/inherit.mdx +0 -4
  510. package/dist/docs/3d-scene/materials/multilevel.mdx +0 -47
  511. package/dist/docs/3d-scene/materials/override.mdx +0 -4
  512. package/dist/docs/3d-scene/materials/simple.mdx +0 -4
  513. package/dist/docs/3d-scene/materials/transformer.mdx +0 -4
  514. package/dist/docs/3d-scene/materials/transition.mdx +0 -4
  515. package/dist/docs/3d-scene/materials/transmissive.mdx +0 -4
  516. package/dist/docs/3d-scene/postprocessing.mdx +0 -2
  517. package/dist/docs/3d-scene/rendering/basic.mdx +5 -9
  518. package/dist/docs/3d-scene/rendering/custom-entity.mdx +0 -6
  519. package/dist/docs/3d-scene/rendering/lights/ambient-light.mdx +0 -2
  520. package/dist/docs/3d-scene/rendering/lights/directional-light.mdx +0 -2
  521. package/dist/docs/3d-scene/rendering/lights/point-light.mdx +0 -2
  522. package/dist/docs/3d-scene/rendering/lights/rect-area-light.mdx +0 -2
  523. package/dist/docs/3d-scene/rendering/lights/spot-light.mdx +0 -2
  524. package/dist/docs/3d-scene/rendering/object-groups.mdx +0 -2
  525. package/dist/docs/3d-scene/rendering/objects.mdx +0 -4
  526. package/dist/docs/3d-scene/rendering/scene-entity-object.mdx +0 -43
  527. package/dist/docs/3d-scene/rendering/smma.mdx +0 -2
  528. package/dist/docs/3d-scene/rendering/soft-shadows.mdx +0 -2
  529. package/dist/docs/3d-scene/rendering/transformer.mdx +1 -3
  530. package/dist/docs/complex-use-cases/custom-ui-on-root-level.mdx +0 -1
  531. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +19 -19
  532. package/dist/docs/complex-use-cases/navigation-guard.mdx +81 -19
  533. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +28 -65
  534. package/dist/docs/complex-use-cases/navigation-reset-undo.mdx +16 -20
  535. package/dist/docs/complex-use-cases/sketching.mdx +2 -10
  536. package/dist/docs/controls/custom.mdx +88 -87
  537. package/dist/docs/controls/manage-child-entities/entitychildrenlist.mdx +0 -4
  538. package/dist/docs/controls/nullable-attributes.mdx +0 -2
  539. package/dist/docs/controls/scene/custom-controls.mdx +7 -8
  540. package/dist/docs/controls/scene/html-hotspots.mdx +0 -4
  541. package/dist/docs/controls/scene/object-html-hotspots.mdx +0 -4
  542. package/dist/docs/controls/select-attribute/cardselect.mdx +0 -4
  543. package/dist/docs/controls/select-attribute/listselect.mdx +0 -4
  544. package/dist/docs/controls/select-attribute/select.mdx +0 -4
  545. package/dist/docs/controls/select-attribute/swatchselect.mdx +0 -4
  546. package/dist/docs/controls/select-attribute/switchselect.mdx +0 -4
  547. package/dist/docs/controls/select-attribute/toggleselect.mdx +0 -4
  548. package/dist/docs/controls/select-child-entity/cardselect.mdx +2 -6
  549. package/dist/docs/controls/select-child-entity/listselect.mdx +5 -11
  550. package/dist/docs/controls/select-child-entity/toggleselect.mdx +4 -10
  551. package/dist/docs/controls/text-input.mdx +90 -19
  552. package/dist/docs/demos/glass.mdx +0 -4
  553. package/dist/docs/demos/heater.mdx +0 -10
  554. package/dist/docs/demos/office-chair.mdx +0 -8
  555. package/dist/docs/demos/office-desk.mdx +0 -8
  556. package/dist/docs/demos/ring.mdx +0 -9
  557. package/dist/docs/dimensions/3d-scene-integration/angle-indicators.mdx +0 -2
  558. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +0 -2
  559. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +0 -14
  560. package/dist/docs/dimensions/3d-scene-integration/editable-offset-indicator.mdx +0 -6
  561. package/dist/docs/dimensions/3d-scene-integration/editable-size-indicator.mdx +0 -4
  562. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +0 -16
  563. package/dist/docs/dimensions/3d-scene-integration/offset-indicator.mdx +0 -6
  564. package/dist/docs/dimensions/3d-scene-integration/overlap-offset-demo.mdx +0 -6
  565. package/dist/docs/dimensions/basic-concepts/dimension-data-unit.mdx +0 -12
  566. package/dist/docs/dimensions/basic-concepts/dimension-unit-config.mdx +0 -12
  567. package/dist/docs/dimensions/input-controls/distance-input.mdx +0 -12
  568. package/dist/docs/dimensions/input-controls/distance-slider.mdx +6 -18
  569. package/dist/docs/dimensions/selection-controls/list-selector.mdx +0 -14
  570. package/dist/docs/dimensions/selection-controls/toggle-selector.mdx +0 -14
  571. package/dist/docs/drag-and-drop/drag-handle.mdx +0 -1
  572. package/dist/docs/drag-and-drop/hotspot-handle.mdx +0 -1
  573. package/dist/docs/drag-and-drop/no-selection.mdx +0 -1
  574. package/dist/docs/drag-and-drop/planes.mdx +0 -3
  575. package/dist/docs/drag-and-drop/room-planner.mdx +0 -6
  576. package/dist/docs/drag-and-drop/rotatable.mdx +0 -1
  577. package/dist/docs/drag-and-drop/snapping/auto-rotation-demo.mdx +0 -2
  578. package/dist/docs/drag-and-drop/snapping/label-matching-demo.mdx +0 -2
  579. package/dist/docs/drag-and-drop/snapping/multi-snap-composition-demo.mdx +0 -2
  580. package/dist/docs/drag-and-drop/snapping/nested-entity-demo.mdx +0 -2
  581. package/dist/docs/drag-and-drop/snapping/priority-demo.mdx +0 -2
  582. package/dist/docs/drag-and-drop/snapping/snap-axis-demo.mdx +0 -2
  583. package/dist/docs/drag-and-drop/snapping/snap-edge-demo.mdx +0 -2
  584. package/dist/docs/drag-and-drop/snapping/snap-plane-demo.mdx +0 -5
  585. package/dist/docs/drag-and-drop/snapping/snap-point-demo.mdx +0 -2
  586. package/dist/docs/drag-and-drop/spatial-constraints/collision-system.mdx +0 -2
  587. package/dist/docs/drag-and-drop/spatial-constraints/disjoint-and-within.mdx +0 -6
  588. package/dist/docs/drag-and-drop/spatial-constraints/geometry-override.mdx +0 -4
  589. package/dist/docs/drag-and-drop/spatial-constraints/multiple-collision-meshes.mdx +0 -4
  590. package/dist/docs/drag-and-drop/spatial-constraints/touches.mdx +0 -4
  591. package/dist/docs/drag-and-drop/swap.mdx +0 -4
  592. package/dist/docs/fabs/basic.mdx +6 -12
  593. package/dist/docs/fabs/layout.mdx +0 -7
  594. package/dist/docs/index.json +6 -6
  595. package/dist/docs/integrations/lifecycle-providers.mdx +0 -12
  596. package/dist/docs/integrations/onloadprovider.mdx +0 -3
  597. package/dist/docs/integrations/webcomponent-api/basics.mdx +6 -2
  598. package/dist/docs/integrations/webcomponent-api/preset-tags.mdx +4 -1
  599. package/dist/docs/integrations/woocommerce/overview.mdx +4 -2
  600. package/dist/docs/layouts/custom-layout.mdx +1 -41
  601. package/dist/docs/layouts/custom-price.mdx +0 -2
  602. package/dist/docs/layouts/custom-theme-handler.mdx +0 -4
  603. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3 -34
  604. package/dist/docs/layouts/gallery/corvid-drone.mdx +0 -29
  605. package/dist/docs/layouts/gallery/fenwick-window.mdx +0 -25
  606. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +0 -27
  607. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +0 -29
  608. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +2 -35
  609. package/dist/docs/layouts/gallery/sunfold-solar.mdx +0 -26
  610. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +0 -46
  611. package/dist/docs/layouts/header/custom.mdx +0 -2
  612. package/dist/docs/layouts/icon-sets.mdx +0 -6
  613. package/dist/docs/layouts/phoenix-elements.mdx +0 -4
  614. package/dist/docs/layouts/phoenix-handlers.mdx +19 -28
  615. package/dist/docs/layouts/presets/action-and-overlay.mdx +0 -8
  616. package/dist/docs/layouts/presets/custom.mdx +6 -13
  617. package/dist/docs/layouts/preview/always-expand.mdx +4 -14
  618. package/dist/docs/layouts/preview/always.mdx +4 -14
  619. package/dist/docs/layouts/preview/auto-presets.mdx +4 -14
  620. package/dist/docs/layouts/preview/auto.mdx +4 -14
  621. package/dist/docs/layouts/preview/never.mdx +4 -14
  622. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +18 -13
  623. package/dist/docs/layouts/sidebar/property-page-stack.mdx +0 -2
  624. package/dist/docs/layouts/sidebar/property-page.mdx +0 -2
  625. package/dist/docs/layouts/sidebar/tabs.mdx +0 -4
  626. package/dist/docs/layouts/sidebar-footer/custom.mdx +0 -2
  627. package/dist/docs/layouts/sidebar-footer/universal.mdx +0 -10
  628. package/dist/docs/layouts/tool-controls.mdx +0 -1
  629. package/dist/docs/layouts/toolbar.mdx +0 -4
  630. package/dist/docs/layouts/universal.mdx +2 -22
  631. package/dist/docs/other-features/client-side-rendering/camera-padding.mdx +0 -2
  632. package/dist/docs/other-features/client-side-rendering/custom.mdx +0 -6
  633. package/dist/docs/other-features/client-side-rendering/declarative.mdx +0 -4
  634. package/dist/docs/other-features/client-side-rendering/postprocessing.mdx +0 -6
  635. package/dist/docs/other-features/component-filters.mdx +0 -7
  636. package/dist/docs/other-features/currency.mdx +5 -6
  637. package/dist/docs/other-features/domain-actions.mdx +33 -7
  638. package/dist/docs/other-features/dynamic-component-attachments.mdx +75 -46
  639. package/dist/docs/other-features/error-5xx.mdx +0 -14
  640. package/dist/docs/other-features/navigation-hotspot.mdx +0 -5
  641. package/dist/docs/other-features/not-found-404.mdx +0 -14
  642. package/dist/docs/other-features/projected-entities.mdx +0 -5
  643. package/dist/docs/other-features/side-effects.mdx +0 -23
  644. package/dist/docs/other-features/transformers.mdx +101 -96
  645. package/dist/docs/other-features/violation-messages.mdx +0 -4
  646. package/dist/docs/other-features/violation-severity.mdx +2 -3
  647. package/dist/docs/performance/clone-highlight.mdx +0 -7
  648. package/dist/docs/performance/dynamic-components.mdx +0 -6
  649. package/dist/docs/performance/editable-dimension-stress-test.mdx +0 -2
  650. package/dist/docs/performance/fast-highlight.mdx +0 -7
  651. package/dist/docs/performance/general.mdx +0 -7
  652. package/dist/docs/performance/render-isolation.mdx +0 -6
  653. package/dist/docs/phoenix/admin.mdx +105 -134
  654. package/dist/docs/phoenix/application-states.mdx +45 -27
  655. package/dist/docs/phoenix/blender-rendering.mdx +3 -1
  656. package/dist/docs/phoenix/components.mdx +53 -46
  657. package/dist/docs/phoenix/configurator-interface.mdx +272 -116
  658. package/dist/docs/phoenix/data-sources.mdx +61 -37
  659. package/dist/docs/phoenix/deployments.mdx +11 -1
  660. package/dist/docs/phoenix/domain-model.mdx +20 -15
  661. package/dist/docs/phoenix/expression-context.mdx +3 -29
  662. package/dist/docs/phoenix/finalization.mdx +2 -1
  663. package/dist/docs/phoenix/getting-started.mdx +1 -3
  664. package/dist/docs/phoenix/integration/authentication-internal.mdx +2 -2
  665. package/dist/docs/phoenix/integration/finalization-internal.mdx +1 -1
  666. package/dist/docs/phoenix/localization.mdx +66 -55
  667. package/dist/docs/phoenix/migration-guide.mdx +10 -11
  668. package/dist/docs/phoenix/phoenix-cli.mdx +57 -18
  669. package/dist/docs/phoenix/project-structure.mdx +58 -65
  670. package/dist/docs/phoenix/quickstart.mdx +1 -3
  671. package/dist/docs/phoenix/sdk-builder-workflow.mdx +17 -23
  672. package/dist/docs/phoenix/sessions-and-access.mdx +61 -40
  673. package/dist/docs/phoenix/sharing.mdx +1 -1
  674. package/dist/docs/phoenix/state-management.mdx +18 -16
  675. package/dist/docs/phoenix/testing.mdx +6 -1
  676. package/dist/docs/phoenix/webhooks.mdx +421 -241
  677. package/dist/docs/recipes-and-delete/delete-entity.mdx +3 -6
  678. package/dist/docs/recipes-and-delete/dynamic-root-entity.mdx +0 -2
  679. package/dist/docs/recipes-and-delete/grouped-button.mdx +0 -3
  680. package/dist/docs/recipes-and-delete/grouped-panel.mdx +0 -3
  681. package/dist/docs/recipes-and-delete/horizontal.mdx +3 -6
  682. package/dist/docs/recipes-and-delete/recipe-hierarchy-lists.mdx +0 -3
  683. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +0 -5
  684. package/dist/docs/recipes-and-delete/replace-dropdown.mdx +3 -6
  685. package/dist/docs/recipes-and-delete/replace-panel.mdx +0 -7
  686. package/dist/docs/recipes-and-delete/simple.mdx +3 -6
  687. package/dist/docs/recipes-and-delete/vertical.mdx +3 -6
  688. package/dist/docs/relations/aliases.mdx +0 -2
  689. package/dist/docs/relations/all-of-type.mdx +0 -4
  690. package/dist/docs/relations/child-nullable.mdx +0 -4
  691. package/dist/docs/relations/child-required.mdx +0 -2
  692. package/dist/docs/relations/collection-direct.mdx +0 -4
  693. package/dist/docs/relations/collection-indirect.mdx +0 -4
  694. package/dist/docs/relations/collection-multiple.mdx +0 -2
  695. package/dist/docs/relations/cross-reference.mdx +0 -2
  696. package/dist/docs/relations/hierarchy.mdx +0 -2
  697. package/dist/docs/selection-and-highlight/canvas.mdx +0 -1
  698. package/dist/docs/selection-and-highlight/disable-highlight-per-object.mdx +0 -1
  699. package/dist/docs/selection-and-highlight/disable-highlight.mdx +0 -1
  700. package/dist/docs/selection-and-highlight/effects/outline.mdx +0 -3
  701. package/dist/docs/selection-and-highlight/effects/overlay.mdx +0 -3
  702. package/dist/docs/selection-and-highlight/fast-emissive-highlight.mdx +0 -3
  703. package/dist/docs/selection-and-highlight/group-highlighting.mdx +0 -1
  704. package/dist/docs/selection-and-highlight/hierarchy.mdx +100 -151
  705. package/dist/docs/selection-and-highlight/hotspots.mdx +0 -1
  706. package/dist/domain/admin-domain/index.d.ts +2 -2
  707. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  708. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  709. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  710. package/dist/domain/application/application-config.d.ts +1 -3
  711. package/dist/domain/application/assistant/assistant-fields.d.ts +1 -1
  712. package/dist/domain/application/assistant/assistant-value-type.d.ts +1 -1
  713. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +1 -2
  714. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +1 -2
  715. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  716. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -2
  717. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  718. package/dist/domain/application/assistant/index.d.ts +0 -4
  719. package/dist/domain/application/assistant/index.js +1 -1
  720. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +1 -1
  721. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +1 -1
  722. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  723. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +3 -5
  724. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  725. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +1 -2
  726. package/dist/domain/application/assistant-field-options.d.ts +1 -1
  727. package/dist/domain/application/assistant-mutations.d.ts +1 -1
  728. package/dist/domain/application/assistant-mutations.js +1 -1
  729. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  730. package/dist/domain/application/configurator-builder.d.ts +38 -39
  731. package/dist/domain/application/create-initial-published-data.d.ts +2 -1
  732. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  733. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  734. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  735. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  736. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  737. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  738. package/dist/domain/available-system-components/available-system-components.js +1 -0
  739. package/dist/domain/available-system-components/index.d.ts +1 -0
  740. package/dist/domain/available-system-components/index.js +1 -0
  741. package/dist/domain/core/action/index.d.ts +0 -1
  742. package/dist/domain/core/action/index.js +1 -1
  743. package/dist/domain/core/domain.js +1 -1
  744. package/dist/domain/core/index.d.ts +1 -1
  745. package/dist/domain/core/index.js +1 -1
  746. package/dist/domain/core/invariant/violation.d.ts +3 -2
  747. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  748. package/dist/domain/domain-builder/domain-builder.js +1 -0
  749. package/dist/domain/domain-builder/index.d.ts +1 -0
  750. package/dist/domain/domain-builder/index.js +1 -0
  751. package/dist/domain/domain-context/action-system/action-system.d.ts +32 -6
  752. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  753. package/dist/domain/domain-context/domain-context-systems.d.ts +1 -1
  754. package/dist/domain/domain-context/transformers/context.d.ts +4 -2
  755. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -1
  756. package/dist/domain/domain-runtime/action-factory.d.ts +11 -0
  757. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +5 -5
  758. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +2 -0
  759. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  760. package/dist/domain/domain-runtime/domain-runtime.d.ts +36 -24
  761. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  762. package/dist/domain/domain-runtime/environment/actions.d.ts +1 -0
  763. package/dist/domain/domain-runtime/environment/actions.js +1 -1
  764. package/dist/domain/domain-runtime/environment/initialize.js +1 -1
  765. package/dist/domain/domain-runtime/environment/selectors.d.ts +2 -0
  766. package/dist/domain/domain-runtime/environment/selectors.js +1 -1
  767. package/dist/domain/domain-runtime/environment/types.d.ts +6 -0
  768. package/dist/domain/domain-runtime/index.d.ts +1 -1
  769. package/dist/domain/domain-runtime/index.js +1 -1
  770. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +1 -1
  771. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -1
  772. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  773. package/dist/domain/domain-runtime/spec/index.js +1 -1
  774. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  775. package/dist/domain/domain-runtime/spec/{module-checks/resolve-imported-transformers.d.ts → resolve-imported-transformers.d.ts} +3 -3
  776. package/dist/domain/domain-runtime/spec/resolve-imported-transformers.js +1 -0
  777. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -5
  778. package/dist/domain/domain-runtime/spec/types.d.ts +2 -2
  779. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  780. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  781. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  782. package/dist/domain/extensions/export-images/index.js +1 -1
  783. package/dist/domain/extensions/index.d.ts +1 -1
  784. package/dist/domain/extensions/index.js +1 -1
  785. package/dist/domain/extensions/scene-entity-delete-fab.d.ts +1 -1
  786. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -1
  787. package/dist/domain/index.d.ts +15 -3
  788. package/dist/domain/index.js +1 -1
  789. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +5 -0
  790. package/dist/domain/mocks/create-test-application-config.d.ts +1 -1
  791. package/dist/domain/spec/{enhanced-json-value.d.ts → enhanced-json/enhanced-json-value.d.ts} +1 -1
  792. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  793. package/dist/domain/spec/enhanced-json/index.js +1 -0
  794. package/dist/domain/spec/expressions/expression.d.ts +1 -1
  795. package/dist/domain/spec/expressions/relation-expression-params.d.ts +1 -1
  796. package/dist/domain/spec/index.d.ts +3 -8
  797. package/dist/domain/spec/index.js +1 -1
  798. package/dist/domain/spec/model/defaults.d.ts +1 -1
  799. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.d.ts +1 -1
  800. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/find-assistant-form-element-errors.d.ts +1 -1
  801. package/dist/domain/spec/modules/find-assistant-form-element-errors.js +1 -0
  802. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/index.d.ts +2 -3
  803. package/dist/domain/spec/modules/index.js +1 -0
  804. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/merge-expression-modules.d.ts +2 -2
  805. package/dist/domain/spec/modules/merge-expression-modules.js +1 -0
  806. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/project-modules.d.ts +1 -1
  807. package/dist/domain/spec/modules/project-modules.js +1 -0
  808. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.d.ts +1 -1
  809. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.d.ts +1 -1
  810. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.d.ts +1 -1
  811. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.d.ts +1 -1
  812. package/dist/domain/spec/phx/index.d.ts +1 -0
  813. package/dist/domain/spec/phx/index.js +1 -0
  814. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-application-types.d.ts +1 -1
  815. package/dist/domain/spec/phx/phx-application-types.js +1 -0
  816. package/dist/domain/spec/phx/phx-domain.js +1 -0
  817. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-model.d.ts +2 -2
  818. package/dist/domain/spec/phx/phx-model.js +1 -0
  819. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.d.ts +1 -2
  820. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-runtime.d.ts +7 -6
  821. package/dist/domain/spec/runtime/admin-runtime/admin-runtime.js +1 -0
  822. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-spec-runtime.d.ts +2 -2
  823. package/dist/domain/spec/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  824. package/dist/domain/spec/runtime/admin-runtime/index.d.ts +2 -0
  825. package/dist/domain/spec/runtime/admin-runtime/index.js +1 -0
  826. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.d.ts +1 -1
  827. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-runtime.d.ts +8 -6
  828. package/dist/domain/spec/runtime/application-runtime.js +1 -0
  829. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-spec-slice.d.ts +3 -1
  830. package/dist/domain/spec/runtime/application-spec-slice.js +1 -0
  831. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-runtime.d.ts +8 -10
  832. package/dist/domain/spec/runtime/configurator-runtime/configurator-runtime.js +1 -0
  833. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-spec-runtime.d.ts +2 -2
  834. package/dist/domain/spec/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  835. package/dist/domain/spec/runtime/configurator-runtime/index.d.ts +2 -0
  836. package/dist/domain/spec/runtime/configurator-runtime/index.js +1 -0
  837. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.d.ts +1 -1
  838. package/dist/{application-spec/generate-application → domain/spec}/runtime/create-application.d.ts +3 -2
  839. package/dist/domain/spec/runtime/create-application.js +1 -0
  840. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/expression-runtime.d.ts +5 -2
  841. package/dist/domain/spec/runtime/expressions/expression-runtime.js +1 -0
  842. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/generate-memo-eval-plan-runtime.d.ts +2 -1
  843. package/dist/domain/spec/runtime/expressions/generate-memo-eval-plan-runtime.js +1 -0
  844. package/dist/domain/spec/runtime/expressions/index.d.ts +3 -0
  845. package/dist/domain/spec/runtime/expressions/index.js +1 -0
  846. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.d.ts +2 -1
  847. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.d.ts +4 -2
  848. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.d.ts +1 -1
  849. package/dist/domain/spec/runtime/factory-data/recipe-defaults.js +1 -0
  850. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.d.ts +2 -1
  851. package/dist/domain/spec/runtime/factory-data/static-violations.js +1 -0
  852. package/dist/{application-spec/generate-application → domain/spec}/runtime/generate-runtime-instance.d.ts +1 -1
  853. package/dist/domain/spec/runtime/generate-runtime-instance.js +1 -0
  854. package/dist/domain/spec/runtime/index.d.ts +13 -0
  855. package/dist/domain/spec/runtime/index.js +1 -0
  856. package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/migration-runtime.d.ts +2 -2
  857. package/dist/domain/spec/runtime/migrations/migration-runtime.js +1 -0
  858. package/dist/{application-spec/generate-application/runtime/admin-runtime → domain/spec/runtime/model}/admin-model-runtime.d.ts +4 -2
  859. package/dist/domain/spec/runtime/model/admin-model-runtime.js +1 -0
  860. package/dist/{application-spec/generate-application/runtime/configurator-runtime → domain/spec/runtime/model}/configurator-model-runtime.d.ts +4 -2
  861. package/dist/domain/spec/runtime/model/configurator-model-runtime.js +1 -0
  862. package/dist/domain/spec/runtime/model/index.d.ts +2 -0
  863. package/dist/domain/spec/runtime/model/index.js +1 -0
  864. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/build-sdk-optic.d.ts +3 -4
  865. package/dist/domain/spec/runtime/optics/build-sdk-optic.js +1 -0
  866. package/dist/domain/spec/runtime/optics/build-user-bound-optic.d.ts +7 -0
  867. package/dist/domain/spec/runtime/optics/build-user-bound-optic.js +1 -0
  868. package/dist/domain/spec/runtime/optics/built-component-optic.d.ts +11 -0
  869. package/dist/domain/spec/runtime/optics/built-component-optic.js +1 -0
  870. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.d.ts +4 -13
  871. package/dist/domain/spec/runtime/optics/index.d.ts +2 -0
  872. package/dist/domain/spec/runtime/optics/index.js +1 -0
  873. package/dist/{application-spec/caching → domain/spec/runtime}/runtime-reference-store.d.ts +1 -5
  874. package/dist/domain/spec/runtime/runtime-reference-store.js +1 -0
  875. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.d.ts +3 -2
  876. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.d.ts +2 -2
  877. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.d.ts +1 -1
  878. package/dist/domain/spec/runtime/sections/index.d.ts +6 -0
  879. package/dist/domain/spec/runtime/sections/index.js +1 -0
  880. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.d.ts +3 -2
  881. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.d.ts +1 -1
  882. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.d.ts +2 -2
  883. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  884. package/dist/domain/spec/runtime/spec-code/spec-code-module.js +1 -0
  885. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-runtime.d.ts +3 -3
  886. package/dist/domain/spec/runtime/spec-runtime.js +1 -0
  887. package/dist/domain/spec/runtime-spec/index.d.ts +4 -0
  888. package/dist/domain/spec/runtime-spec/index.js +1 -0
  889. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.d.ts +7 -1
  890. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.d.ts +1 -1
  891. package/dist/domain/spec/sections/app-metadata.d.ts +1 -0
  892. package/dist/domain/{application → spec/sections}/assistant/assistant-manifest.d.ts +13 -3
  893. package/dist/domain/{application → spec/sections}/assistant/assistant-resolved-manifest.d.ts +14 -19
  894. package/dist/domain/spec/sections/assistant/assistant-resolved-manifest.js +1 -0
  895. package/dist/domain/spec/sections/assistant/index.d.ts +4 -0
  896. package/dist/domain/spec/sections/assistant/index.js +1 -0
  897. package/dist/domain/spec/sections/index.d.ts +1 -0
  898. package/dist/domain/spec/sections/index.js +1 -1
  899. package/dist/domain/system-components/phoenix-entity-elements/child-entity-card-selector.d.ts +2 -3
  900. package/dist/domain/system-components/phoenix-entity-elements/child-entity-list-selector.d.ts +2 -3
  901. package/dist/domain/system-components/phoenix-entity-elements/child-entity-toggle-selector.d.ts +2 -3
  902. package/dist/domain/system-definitions.js +1 -1
  903. package/dist/domain/utils/index.d.ts +2 -0
  904. package/dist/domain/utils/index.js +1 -0
  905. package/dist/editor/Editor.d.ts +5 -0
  906. package/dist/editor/Editor.js +1 -1
  907. package/dist/editor/EditorMode.d.ts +2 -0
  908. package/dist/editor/EditorMode.js +1 -1
  909. package/dist/editor/agent-mode/AgentModeBridge.d.ts +10 -0
  910. package/dist/editor/agent-mode/AgentModeBridge.js +1 -0
  911. package/dist/editor/agent-mode/agent-at-work-fonts.d.ts +2 -0
  912. package/dist/editor/agent-mode/agent-at-work-fonts.js +1 -0
  913. package/dist/editor/console-reporter/BrowserConsoleReporter.js +1 -1
  914. package/dist/editor/console-reporter/console-capture.d.ts +20 -0
  915. package/dist/editor/console-reporter/console-capture.js +1 -0
  916. package/dist/editor/index.d.ts +1 -0
  917. package/dist/editor/index.js +1 -1
  918. package/dist/editor/variants/VariantAnswerFooter.d.ts +8 -1
  919. package/dist/editor/variants/VariantAnswerFooter.js +1 -1
  920. package/dist/editor/variants/VariantPageUnavailable.d.ts +5 -0
  921. package/dist/editor/variants/VariantPageUnavailable.js +1 -0
  922. package/dist/editor/variants/VariantPreviewHandler.js +1 -1
  923. package/dist/editor/variants/variant-preview-fonts.d.ts +2 -0
  924. package/dist/editor/variants/variant-preview-fonts.js +1 -0
  925. package/dist/editor/variants/variant-preview-styles.d.ts +40 -48
  926. package/dist/editor/variants/variant-preview-styles.js +493 -1
  927. package/dist/extras/cognito/CognitoSignInPage.d.ts +2 -0
  928. package/dist/extras/cognito/CognitoSignInPage.js +1 -0
  929. package/dist/extras/cognito/index.d.ts +1 -0
  930. package/dist/extras/cognito/index.js +1 -0
  931. package/dist/i18n/locales/cs/messages.js +1 -1
  932. package/dist/i18n/locales/da/messages.js +1 -1
  933. package/dist/i18n/locales/de/messages.js +1 -1
  934. package/dist/i18n/locales/de-AT/messages.js +1 -1
  935. package/dist/i18n/locales/en/messages.js +1 -1
  936. package/dist/i18n/locales/en-AU/messages.js +1 -1
  937. package/dist/i18n/locales/en-GB/messages.js +1 -1
  938. package/dist/i18n/locales/es/messages.js +1 -1
  939. package/dist/i18n/locales/fr/messages.js +1 -1
  940. package/dist/i18n/locales/hu/messages.js +1 -1
  941. package/dist/i18n/locales/it/messages.js +1 -1
  942. package/dist/i18n/locales/nl/messages.js +1 -1
  943. package/dist/i18n/locales/pl/messages.js +1 -1
  944. package/dist/i18n/locales/pt/messages.js +1 -1
  945. package/dist/i18n/locales/ro/messages.js +1 -1
  946. package/dist/i18n/locales/sk/messages.js +1 -1
  947. package/dist/i18n/locales/tr/messages.js +1 -1
  948. package/dist/i18n/merge-catalogs.d.ts +4 -1
  949. package/dist/i18n/merge-catalogs.js +1 -1
  950. package/dist/legacy/domain-cli/gen/configurator-builder.js +5 -4
  951. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  952. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  953. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +4 -2
  954. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/i18n-index.js +3 -3
  955. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  956. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  957. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  958. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  959. package/dist/legacy/webhook-cli/lib/webhook-boundary.js +1 -1
  960. package/dist/phoenix/application-spec/application-spec-builder.d.ts +2 -2
  961. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  962. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +2 -1
  963. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  964. package/dist/phoenix/application-spec/generate-project-files.d.ts +4 -3
  965. package/dist/phoenix/application-spec/generate-project-files.js +1 -1
  966. package/dist/phoenix/application-spec/index.d.ts +2 -0
  967. package/dist/phoenix/application-spec/index.js +1 -1
  968. package/dist/phoenix/application-spec/project-files.d.ts +8 -2
  969. package/dist/phoenix/application-spec/project-files.js +1 -1
  970. package/dist/phoenix/application-spec/read-spec-project.d.ts +1 -2
  971. package/dist/phoenix/application-spec/read-spec-project.js +1 -1
  972. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +1 -0
  973. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  974. package/dist/phoenix/cli.js +1 -1
  975. package/dist/phoenix/commands/account/index.d.ts +1 -0
  976. package/dist/phoenix/commands/account/index.js +1 -0
  977. package/dist/phoenix/commands/account/whoami.d.ts +4 -0
  978. package/dist/phoenix/commands/account/whoami.js +3 -0
  979. package/dist/phoenix/commands/activate-deployment.js +1 -1
  980. package/dist/phoenix/commands/build.d.ts +2 -1
  981. package/dist/phoenix/commands/build.js +1 -1
  982. package/dist/phoenix/commands/changelog.js +1 -1
  983. package/dist/phoenix/commands/check.js +1 -1
  984. package/dist/phoenix/commands/clean.d.ts +2 -1
  985. package/dist/phoenix/commands/clean.js +1 -1
  986. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  987. package/dist/phoenix/commands/create-environment.js +1 -1
  988. package/dist/phoenix/commands/data.js +1 -1
  989. package/dist/phoenix/commands/deploy.js +3 -3
  990. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  991. package/dist/phoenix/commands/dev.d.ts +2 -1
  992. package/dist/phoenix/commands/dev.js +4 -5
  993. package/dist/phoenix/commands/docs.js +1 -1
  994. package/dist/phoenix/commands/feedback.js +1 -1
  995. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  996. package/dist/phoenix/commands/fix.js +1 -1
  997. package/dist/phoenix/commands/index.d.ts +1 -0
  998. package/dist/phoenix/commands/index.js +1 -1
  999. package/dist/phoenix/commands/inspect-assets.js +1 -1
  1000. package/dist/phoenix/commands/list-environments.js +1 -1
  1001. package/dist/phoenix/commands/login.d.ts +9 -3
  1002. package/dist/phoenix/commands/login.js +3 -3
  1003. package/dist/phoenix/commands/logout.js +1 -1
  1004. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  1005. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  1006. package/dist/phoenix/commands/register-deployment.js +1 -1
  1007. package/dist/phoenix/commands/scene.js +1 -1
  1008. package/dist/phoenix/commands/screenshot.js +1 -1
  1009. package/dist/phoenix/commands/state.js +1 -1
  1010. package/dist/phoenix/commands/story-build.js +3 -3
  1011. package/dist/phoenix/commands/story-create.js +1 -1
  1012. package/dist/phoenix/commands/story-dev.js +2 -2
  1013. package/dist/phoenix/commands/sync.d.ts +2 -1
  1014. package/dist/phoenix/commands/sync.js +1 -1
  1015. package/dist/phoenix/commands/variants.js +1 -1
  1016. package/dist/phoenix/editor-server/commands-router.js +1 -1
  1017. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  1018. package/dist/phoenix/editor-server/editor-server.js +1 -1
  1019. package/dist/phoenix/editor-server/spec-router.js +1 -1
  1020. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  1021. package/dist/phoenix/lingui/lingui.d.ts +4 -4
  1022. package/dist/phoenix/scripts/docs-utils.js +1 -1
  1023. package/dist/phoenix/services/application-spec-project-watcher.d.ts +14 -9
  1024. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  1025. package/dist/phoenix/services/cli-credentials.d.ts +9 -6
  1026. package/dist/phoenix/services/cli-credentials.js +2 -2
  1027. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  1028. package/dist/phoenix/services/cli-exit.js +1 -0
  1029. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  1030. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  1031. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  1032. package/dist/phoenix/services/deployment/index.js +1 -0
  1033. package/dist/phoenix/services/dev-experience/dev-experience.d.ts +31 -0
  1034. package/dist/phoenix/services/dev-experience/dev-experience.js +1 -0
  1035. package/dist/phoenix/services/dev-experience/index.d.ts +3 -0
  1036. package/dist/phoenix/services/dev-experience/index.js +1 -0
  1037. package/dist/phoenix/services/dev-experience/read-explicit-editor-setting.d.ts +7 -0
  1038. package/dist/phoenix/services/dev-experience/read-explicit-editor-setting.js +1 -0
  1039. package/dist/phoenix/services/dev-experience/regenerated-page-experience.d.ts +24 -0
  1040. package/dist/phoenix/services/dev-experience/regenerated-page-experience.js +1 -0
  1041. package/dist/phoenix/services/index.d.ts +6 -2
  1042. package/dist/phoenix/services/index.js +1 -1
  1043. package/dist/phoenix/services/phoenix-pubsub.d.ts +4 -0
  1044. package/dist/phoenix/services/phoenix-regions.d.ts +1 -1
  1045. package/dist/phoenix/services/phoenix-regions.js +1 -1
  1046. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  1047. package/dist/phoenix/services/phoenix-store.js +1 -1
  1048. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1049. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  1050. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  1051. package/dist/phoenix/services/session/index.d.ts +2 -0
  1052. package/dist/phoenix/services/session/index.js +1 -0
  1053. package/dist/phoenix/services/session/phoenix-application.d.ts +83 -0
  1054. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  1055. package/dist/phoenix/services/signed-in-development-environment.js +1 -1
  1056. package/dist/phoenix/services/source-archive.d.ts +2 -0
  1057. package/dist/phoenix/services/source-archive.js +1 -1
  1058. package/dist/phoenix/services/swc.d.ts +5 -4
  1059. package/dist/phoenix/services/swc.js +2 -2
  1060. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  1061. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  1062. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  1063. package/dist/phoenix/services/telemetry/index.js +1 -0
  1064. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  1065. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  1066. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  1067. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  1068. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  1069. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  1070. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  1071. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  1072. package/dist/phoenix/services/vite-config.d.ts +2 -1
  1073. package/dist/phoenix/services/vite-config.js +1 -1
  1074. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  1075. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  1076. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  1077. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +2 -0
  1078. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -1
  1079. package/dist/react-sdk/application-runtime/hooks/use-environment.d.ts +7 -0
  1080. package/dist/react-sdk/application-runtime/hooks/use-environment.js +1 -1
  1081. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1082. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +6 -0
  1083. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -1
  1084. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -1
  1085. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -1
  1086. package/dist/react-sdk/application-runtime/responsive/types.d.ts +9 -0
  1087. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +18 -0
  1088. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1089. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.d.ts +7 -0
  1090. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.js +1 -0
  1091. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.d.ts +14 -0
  1092. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.js +1 -0
  1093. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.d.ts +18 -0
  1094. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.js +1 -0
  1095. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.d.ts +5 -0
  1096. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.js +1 -0
  1097. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.d.ts +17 -0
  1098. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.js +1 -0
  1099. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.d.ts +5 -0
  1100. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.js +1 -0
  1101. package/dist/react-sdk/configurator-ui-elements/index.d.ts +6 -0
  1102. package/dist/react-sdk/configurator-ui-elements/index.js +1 -0
  1103. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  1104. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  1105. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  1106. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +4 -3
  1107. package/dist/react-sdk/domain-context/common-hooks/use-state-validity.d.ts +6 -1
  1108. package/dist/react-sdk/domain-context/common-hooks/use-state-validity.js +1 -1
  1109. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.d.ts +2 -2
  1110. package/dist/react-sdk/domain-controls/ChildEntityCardSelector.d.ts +2 -3
  1111. package/dist/react-sdk/domain-controls/ChildEntityListSelector.d.ts +2 -3
  1112. package/dist/react-sdk/domain-controls/ChildEntityToggleSelector.d.ts +2 -3
  1113. package/dist/react-sdk/domain-controls/hooks/use-cook-replace-recipes.d.ts +3 -3
  1114. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  1115. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  1116. package/dist/react-sdk/index.d.ts +3 -0
  1117. package/dist/react-sdk/index.js +1 -1
  1118. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  1119. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  1120. package/dist/react-sdk/preset-selection/index.js +1 -0
  1121. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.d.ts +11 -0
  1122. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.js +1 -0
  1123. package/dist/react-sdk/provider-slots/configurator-provider-slot.d.ts +24 -0
  1124. package/dist/react-sdk/provider-slots/configurator-provider-slot.js +1 -0
  1125. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.d.ts +5 -0
  1126. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.js +1 -0
  1127. package/dist/react-sdk/provider-slots/index.d.ts +3 -0
  1128. package/dist/react-sdk/provider-slots/index.js +1 -0
  1129. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  1130. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  1131. package/dist/ui-sdk/components/numerical-input/InputField.d.ts +2 -0
  1132. package/dist/ui-sdk/components/numerical-input/InputField.js +1 -1
  1133. package/dist/ui-sdk/components/numerical-input/NumericalInput.d.ts +2 -2
  1134. package/dist/ui-sdk/components/numerical-input/Slider.d.ts +3 -1
  1135. package/dist/ui-sdk/components/numerical-input/Slider.js +1 -1
  1136. package/dist/ui-sdk/icons/__generated/ChatCircleText.d.ts +3 -0
  1137. package/dist/ui-sdk/icons/__generated/ChatCircleText.js +1 -0
  1138. package/dist/ui-sdk/icons/__generated/Microphone.d.ts +3 -0
  1139. package/dist/ui-sdk/icons/__generated/Microphone.js +1 -0
  1140. package/dist/ui-sdk/icons/__generated/MicrophoneSlash.d.ts +3 -0
  1141. package/dist/ui-sdk/icons/__generated/MicrophoneSlash.js +1 -0
  1142. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  1143. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  1144. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.d.ts +3 -0
  1145. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.js +1 -0
  1146. package/dist/ui-sdk/icons/__generated/SpeakerHigh.d.ts +3 -0
  1147. package/dist/ui-sdk/icons/__generated/SpeakerHigh.js +1 -0
  1148. package/dist/ui-sdk/icons/__generated/SpeakerSlash.d.ts +3 -0
  1149. package/dist/ui-sdk/icons/__generated/SpeakerSlash.js +1 -0
  1150. package/dist/ui-sdk/icons/__generated/Stop.d.ts +3 -0
  1151. package/dist/ui-sdk/icons/__generated/Stop.js +1 -0
  1152. package/dist/ui-sdk/icons/__generated/index.d.ts +16 -0
  1153. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1154. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1155. package/dist/ui-sdk/theme/types.d.ts +0 -4
  1156. package/dist/watch/glob-matcher.d.ts +4 -4
  1157. package/dist/watch/glob-matcher.js +1 -1
  1158. package/dist/watch/watch.d.ts +4 -4
  1159. package/dist/watch/watch.js +1 -1
  1160. package/dist/webhook/builders/auth-handler-builder.d.ts +3 -0
  1161. package/dist/webhook/builders/auth-handler-builder.js +1 -1
  1162. package/dist/webhook/builders/common.d.ts +4 -2
  1163. package/package.json +10 -4
  1164. package/schema/domain-spec.json +88 -4
  1165. package/dist/application-spec/caching/runtime-reference-store.js +0 -1
  1166. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.d.ts +0 -1
  1167. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +0 -1
  1168. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.d.ts +0 -3
  1169. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +0 -166
  1170. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.d.ts +0 -1
  1171. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +0 -54
  1172. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.d.ts +0 -1
  1173. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +0 -115
  1174. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +0 -1
  1175. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +0 -1
  1176. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +0 -6
  1177. package/dist/application-spec/generate-application/implementations/phx-application-types.js +0 -1
  1178. package/dist/application-spec/generate-application/implementations/phx-domain.js +0 -1
  1179. package/dist/application-spec/generate-application/implementations/phx-model.js +0 -1
  1180. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +0 -1
  1181. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +0 -1
  1182. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +0 -1
  1183. package/dist/application-spec/generate-application/runtime/application-runtime.js +0 -1
  1184. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +0 -1
  1185. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +0 -1
  1186. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +0 -1
  1187. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +0 -1
  1188. package/dist/application-spec/generate-application/runtime/create-application.js +0 -1
  1189. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +0 -1
  1190. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +0 -1
  1191. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +0 -1
  1192. package/dist/application-spec/generate-application/runtime/index.d.ts +0 -8
  1193. package/dist/application-spec/generate-application/runtime/index.js +0 -1
  1194. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +0 -1
  1195. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +0 -1
  1196. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +0 -8
  1197. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +0 -1
  1198. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +0 -1
  1199. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +0 -1
  1200. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +0 -10
  1201. package/dist/application-spec/generate-application/runtime/sections/index.js +0 -1
  1202. package/dist/application-spec/generate-application/runtime/spec-runtime.js +0 -1
  1203. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +0 -5
  1204. package/dist/application-spec/generate-application/runtime-spec/index.js +0 -1
  1205. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.d.ts +0 -17
  1206. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +0 -1
  1207. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  1208. package/dist/configurator/ui/assistant/theme.d.ts +0 -2
  1209. package/dist/configurator/ui/assistant/theme.js +0 -1
  1210. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +0 -1
  1211. package/dist/domain/available-system-components.d.ts +0 -11
  1212. package/dist/domain/available-system-components.js +0 -1
  1213. package/dist/domain/core/action/action-factory.d.ts +0 -11
  1214. package/dist/domain/domain-builder.js +0 -1
  1215. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +0 -1
  1216. package/dist/domain/domain-runtime/spec/module-checks/index.js +0 -1
  1217. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +0 -1
  1218. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +0 -1
  1219. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +0 -1
  1220. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  1221. package/dist/phoenix/services/phoenix-application.js +0 -1
  1222. /package/dist/{application-spec/generate-application/runtime/spec-code/spec-code-module.js → configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.js} +0 -0
  1223. /package/dist/{domain/application/assistant/assistant-manifest.js → configurator/application-runtime/extensions/systems/assistant-system/assistant-image-view.js} +0 -0
  1224. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.d.ts +0 -0
  1225. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.js +0 -0
  1226. /package/dist/domain/{core/action → domain-runtime}/action-factory.js +0 -0
  1227. /package/dist/domain/spec/{enhanced-json-value.js → enhanced-json/enhanced-json-value.js} +0 -0
  1228. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.d.ts +0 -0
  1229. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.js +0 -0
  1230. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.d.ts +0 -0
  1231. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.js +0 -0
  1232. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.d.ts +0 -0
  1233. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.js +0 -0
  1234. /package/dist/domain/{domain-runtime → spec}/errors/index.d.ts +0 -0
  1235. /package/dist/domain/{domain-runtime → spec}/errors/index.js +0 -0
  1236. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.d.ts +0 -0
  1237. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.js +0 -0
  1238. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.js +0 -0
  1239. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.d.ts +0 -0
  1240. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.js +0 -0
  1241. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.js +0 -0
  1242. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.js +0 -0
  1243. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.js +0 -0
  1244. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.js +0 -0
  1245. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-domain.d.ts +0 -0
  1246. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.js +0 -0
  1247. /package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.js +0 -0
  1248. /package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.js +0 -0
  1249. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.js +0 -0
  1250. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.js +0 -0
  1251. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.d.ts +0 -0
  1252. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.js +0 -0
  1253. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.d.ts +0 -0
  1254. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.js +0 -0
  1255. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.js +0 -0
  1256. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.js +0 -0
  1257. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.js +0 -0
  1258. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.js +0 -0
  1259. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.js +0 -0
  1260. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.js +0 -0
  1261. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.js +0 -0
  1262. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.d.ts +0 -0
  1263. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.js +0 -0
  1264. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.js +0 -0
  1265. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/spec-code-module.d.ts +0 -0
  1266. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.d.ts +0 -0
  1267. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.js +0 -0
  1268. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.d.ts +0 -0
  1269. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.js +0 -0
  1270. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.d.ts +0 -0
  1271. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.js +0 -0
  1272. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.js +0 -0
  1273. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.js +0 -0
  1274. /package/dist/domain/{application/assistant/assistant-resolved-manifest.js → spec/sections/assistant/assistant-manifest.js} +0 -0
  1275. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.d.ts +0 -0
  1276. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.js +0 -0
  1277. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.d.ts +0 -0
  1278. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.js +0 -0
  1279. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.d.ts +0 -0
  1280. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.js +0 -0
  1281. /package/dist/domain/{application → spec/sections}/assistant/form/index.d.ts +0 -0
  1282. /package/dist/domain/{application → spec/sections}/assistant/form/index.js +0 -0
  1283. /package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +0 -0
  1284. /package/dist/phoenix/{commands → services/deployment}/generated-env-markers.js +0 -0
  1285. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -10,31 +10,35 @@
10
10
  - [Dynamic Resources Factory](#dynamic-resources-factory)
11
11
  - [Backend Data Handler](#backend-data-handler)
12
12
 
13
- To support project specific finalization workflows, authentication and custom integrations, platform provides a way to define webhooks.
14
- These webhooks are deployed on aws lambda and can be triggered by specific platform triggers. Currently we support three types of webhooks.
13
+ To support project specific finalization workflows, authentication and custom integrations, the platform runs a project webhook: one bundle, deployed as a cloud function (AWS Lambda), that the platform calls for these operations:
15
14
 
16
- - Configurator Finalization
17
- - Admin Finalization
18
- - Auth Hook
15
+ - **auth** - creating or refreshing a configurator session ([Auth Hook](#auth-hook))
16
+ - **fetchBackendData** - server-side data for the configurator ([Backend Data Handler](#backend-data-handler))
17
+ - **finalize** - configurator finalization ([Configurator Finalization](#configurator-finalization)) and Admin finalization when an admin publishes from Project Admin ([Admin Finalization](#admin-finalization))
18
+ - **callback** - the result of a configurator finalization ([Callback Hook / Result](#callback-hook--result))
19
+ - **assistantSetup** - the assistant's setup for a session, when the spec configures the assistant
20
+
21
+ Under `phoenix dev` the webhook runs on the developer's machine, and the platform reaches it through the development webhook tunnel instead of the cloud function.
19
22
 
20
23
  ## Webhook builders
21
24
 
22
- Phoenix provides domain-aware builders through the global `phx.webhooks` namespace. These are automatically generated from your `spec/application.yaml` configuration and available without imports.
25
+ Phoenix provides domain-aware builders through the global `phx.webhooks` namespace. These are automatically generated from your spec into `.phoenix/webhook-builders.ts` and available without imports.
23
26
 
24
27
  **Available builders and factories:**
25
28
 
26
- - `phx.webhooks.webhookBuilder` - Main webhook builder for composing handlers
27
- - `phx.webhooks.finalizeHandlerBuilder` - Configurator finalization handler builder
28
- - `phx.webhooks.adminFinalizeHandlerBuilder` - Admin finalization handler builder
29
29
  - `phx.webhooks.authHandlerBuilder` - Authentication handler builder
30
+ - `phx.webhooks.webhookBuilder` - Main webhook builder for composing handlers: `withAuthHook`, `withFetchBackendData`, `withConfiguratorFinalize` and `build()`
30
31
  - `phx.webhooks.taskFactory` - Factory for creating finalization tasks
32
+ - `phx.webhooks.finalizeHandlerBuilder` - Configurator finalization handler builder; pass its `build()` result to `withConfiguratorFinalize`
31
33
  - `phx.webhooks.callbackBuilder` - Builder for callback handlers
32
34
  - `phx.webhooks.prefetchBuilder` - Builder for prefetch handlers
33
35
  - `phx.webhooks.dynamicResourcesFactory` - Factory for dynamic resource creation
34
36
 
37
+ There is no builder for Admin finalization: the SDK builds it itself (see [Admin Finalization](#admin-finalization)).
38
+
35
39
  ### Webhook Entry Point
36
40
 
37
- Your webhook is the default export of `src/webhooks/index.ts`. With the application-spec pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), the file is yours to create; sync does not write it. A project without it gets a built-in webhook, so it builds and deploys with no webhook code. The built-in webhook has one handler, an anonymous auth handler, which the platform calls only when `spec/application.yaml` sets `useAuthHook`. The legacy pipeline writes the file with that webhook on the first sync.
41
+ Your webhook is the default export of `src/webhooks/index.ts`. With the application-spec pipeline (see [Current and legacy project tooling](?path=/docs/phoenix-phoenix-cli--docs#current-and-legacy-project-tooling)), the file is yours to create; sync does not write it. A project without it gets a built-in webhook, so it builds and deploys with no webhook code. Unless `useCognito` is enabled, the built-in webhook has one handler, an anonymous auth handler, which the platform calls only when `spec/application.yaml` sets `useAuthHook`. The legacy pipeline writes the file with that webhook on the first sync.
38
42
 
39
43
  Create `src/webhooks/index.ts` when the project needs its own handlers: finalization, backend data, or an auth handler that does more than start an anonymous session.
40
44
 
@@ -53,6 +57,8 @@ export default phx.webhooks.webhookBuilder.withAuthHook(authHandler).build()
53
57
 
54
58
  The next `phoenix sync` or `phoenix build`, or the rebuild of a running `phoenix dev`, uses the file; deleting it brings the built-in webhook back. A webhook needs at least one handler, and a project with any other file in `src/webhooks/` must have `index.ts`.
55
59
 
60
+ Only `src/webhooks/index.ts` is imported: other files in `src/webhooks/` run only when it imports them. Sync generates the rest: `.phoenix/webhook.ts` (the bundle's entry, which exports your webhook or the built-in one), `.phoenix/webhook-builders.ts` (the `phx.webhooks` builders) and `.phoenix/webhooks.config.ts` (the reader of [environment variables](#environment-variables)).
61
+
56
62
  A webhook with more handlers:
57
63
 
58
64
  ```ts
@@ -84,16 +90,35 @@ Environment variables for webhooks are defined in `spec/application.yaml` under
84
90
  # spec/application.yaml
85
91
  env:
86
92
  webhook:
87
- EMAIL_TO:
88
- type: email
93
+ CRM_API_URL:
94
+ type: url
95
+ required: true
96
+ devDefault: http://localhost:4000
97
+ CRM_API_TOKEN:
98
+ type: str
99
+ required: true
89
100
  EMAIL_FROM:
90
- type: email
101
+ type: str
102
+ default: configurator@example.com
103
+ WOOCOMMERCE_SHOP_URL:
104
+ type: url
105
+ WOOCOMMERCE_API_KEY:
106
+ type: str
91
107
  GOOGLE_SPREADSHEET_ID:
92
108
  type: str
93
- GOOGLE_SERVICE_ACCOUNT_KEY:
109
+ GOOGLE_SERVICE_ACCOUNT_JSON:
94
110
  type: str
95
111
  ```
96
112
 
113
+ Each entry accepts only these keys:
114
+
115
+ - `type` - `bool`, `str`, `num` or `url`
116
+ - `default` - the value when the variable is not set
117
+ - `devDefault` - the value when the variable is not set under `phoenix dev`, which builds the webhook outside production
118
+ - `required` - `true` when the variable must be set
119
+
120
+ A variable that is neither required nor defaulted is `undefined` when it is not set, so code checks it before use.
121
+
97
122
  ### Using Environment Variables
98
123
 
99
124
  Environment variables are available through the `phx.webhooksEnv` global:
@@ -101,11 +126,11 @@ Environment variables are available through the `phx.webhooksEnv` global:
101
126
  ```ts
102
127
  // src/webhooks/handlers/some-handler.ts
103
128
  const GOOGLE_SPREADSHEET_ID = phx.webhooksEnv.GOOGLE_SPREADSHEET_ID
104
- const GOOGLE_SERVICE_ACCOUNT_KEY = phx.webhooksEnv.GOOGLE_SERVICE_ACCOUNT_KEY
129
+ const GOOGLE_SERVICE_ACCOUNT_JSON = phx.webhooksEnv.GOOGLE_SERVICE_ACCOUNT_JSON
105
130
  ```
106
131
 
107
- These variables are automatically injected from the project's parameter store in the CI pipeline and are built into the bundled lambda code deployed to AWS.
108
- They cannot be changed after deployment - redeployment is required to update them.
132
+ The values are inlined into the webhook bundle when it is built, so a changed value takes effect only after a restart of `phoenix dev`, or a new deploy on a deployed environment.
133
+ Deployed builds take the values from the environment variables a workspace super admin sets in Studio (see [SDK Builder Workflow](?path=/docs/phoenix-sdk-builder-workflow--docs)); `phoenix dev` reads them from the project's `.env`.
109
134
 
110
135
  ## Configurator Finalization
111
136
 
@@ -181,7 +206,7 @@ Additionally, tasks receive:
181
206
  - `prefetchedData`: Results from [prefetch handlers](#prefetch-tasks), if configured
182
207
  - `backendData`: Server-side data from [backend data handlers](#backend-data-handler), if configured
183
208
 
184
- Before the task is executed, the domain state is validated using the configurator's domain and its violations. If any violations are found (warning level and up), the task is not executed and the error is returned to the client.
209
+ Before the task is executed, the domain state is validated using the configurator's domain and its violations. If any violations are found (warning level and up), the task is not executed and the finalization fails; the client learns only that it failed, and the reason is in the webhook's log.
185
210
 
186
211
  #### Task Context
187
212
 
@@ -211,26 +236,28 @@ export interface TaskContext<
211
236
 
212
237
  #### Static assets
213
238
 
214
- Some tasks may need access to static assets, like logos, fonts, scripts, blender files, etc... The deployment client allows to upload public and private assets.
215
- To make these assets available to the tasks, put them in `/assets/private` and `/assets/public` folders respectively.
239
+ Some tasks may need access to static assets, like logos, fonts, scripts, blender files, etc...
240
+ Put files only the server uses (Blender templates, models, render scripts) in `/assets/private`, and files that must be reachable by URL (logos, fonts) in `/assets/public`. Both folders are uploaded with the deployment; a task resolves a public file's URL with `ctx.getPublicAssetUrl(path)`.
216
241
 
217
242
  ### Task execution order
218
243
 
219
- The webhook finalization follows a specific execution order to ensure proper data flow and resource availability:
244
+ The webhook prepares the finalization, then the platform runs its tasks:
220
245
 
221
- 1. **Backend Data Handler** (if configured) - Fetches server-side data
246
+ 1. **Backend Data Handler** (if configured) - The webhook runs it again before every configurator finalization; a failure fails the finalization
222
247
  2. **Prefetch Handler** (if configured) - Data preparation and external system setup
223
- 3. **Task execution in fixed order** - Tasks run sequentially to allow resource reuse:
224
- - GenerateConfigurationLinkTask / PublishRevisionTask
225
- - GenerateImages
226
- - GenerateCsv
227
- - GeneratePdf
228
- - SendEmail
229
- - SendHttpRequest
230
- - WooCommerceAddToCart
231
- - EditGoogleSpreadsheet
232
- 4. **Callback Handler** (if configured) - Process results and return final response
233
- 5. **Result** - Final response returned to client
248
+ 3. **Task collection** - The webhook calls the `withTask` and `withResources` handlers and returns the tasks and resources to the platform
249
+ 4. **Task execution by type** - The server runs tasks by type, not in `withTask` order. Tasks of one type run in parallel, except server renders, which the rendering worker takes one at a time:
250
+ 1. As child jobs: `GenerateConfigurationLink` (and the `Publish*` tasks of Admin finalization) on the server, and `GenerateImages` on the rendering worker
251
+ 2. Then, on the finalize worker: `GenerateCsv`, then `GeneratePdf` and `GenerateStaticPdf`
252
+ 3. The generated PDFs and CSVs are uploaded to their `s3Key` - only when the finalization also has a `CallLambdaBack` or `WooCommerceAddToCart` task
253
+ 4. `SendEmail` and `SendStaticEmail`
254
+ 5. `SendHttpRequest`
255
+ 6. `WooCommerceAddToCart`
256
+ 7. `EditGoogleSpreadsheet`
257
+ 8. `CallLambdaBack` - the [callback](#callback-hook--result), last
258
+ 5. **Result** - The callback's result is returned to the client; without a callback the client receives no result
259
+
260
+ So a PDF or an email can use the links and rendered images, and an email can attach the generated PDFs and CSVs. Nothing is retried or rolled back: when a task fails, the finalization fails and what already ran stays done.
234
261
 
235
262
  ### GenerateConfigurationLink Task
236
263
 
@@ -702,11 +729,26 @@ To avoid sending real emails through SES during local development, set the `EMAI
702
729
 
703
730
  ### SendHttpRequest Task
704
731
 
705
- Sends a HTTP request to the provided URL.
732
+ Sends an HTTP request to the provided URL with `method` (`GET` by default), `headers` and a string `body`. A body needs a method other than `GET`. An answer outside 2xx fails the finalization; there is no timeout and no retry.
733
+
734
+ Following example shows a task that posts the configuration to a CRM, with the URL and token from [environment variables](#environment-variables):
735
+
736
+ ```ts
737
+ // src/webhooks/handlers/configurator-finalize-handler/tasks/crm-quote-task.ts
738
+ export const crmQuoteTask = phx.webhooks.taskFactory.createSendHttpRequestTask((_resources, data, ctx) => {
739
+ const chair = ctx.domain.getRoot$Entity(data.state)
706
740
 
707
- TODO: Provide a simple example
741
+ return {
742
+ type: 'SendHttpRequest',
743
+ url: `${phx.webhooksEnv.CRM_API_URL}/quotes`,
744
+ method: 'POST',
745
+ headers: { authorization: `Bearer ${phx.webhooksEnv.CRM_API_TOKEN}`, 'content-type': 'application/json' },
746
+ body: JSON.stringify({ configurationId: data.configurationId, model: chair.label }),
747
+ }
748
+ })
749
+ ```
708
750
 
709
- Following example shows a simple task that sends a HTTP request to the provided URL.
751
+ Full definition of the task is defined in the `SendHttpRequestTask` type.
710
752
 
711
753
  ```ts
712
754
  /**
@@ -733,11 +775,52 @@ export interface SendHttpRequestTask {
733
775
  }
734
776
  ```
735
777
 
736
- ### WoocommerceAddToCart Task
778
+ ### WooCommerceAddToCart Task
737
779
 
738
780
  Adds the configured product to a WooCommerce cart. This task is part of the WooCommerce integration, which also requires the WordPress plugin —
739
- see [Integrations / WooCommerce / Overview](/docs/integrations-woocommerce-overview--docs) for the full picture and
740
- [Integrations / WooCommerce / Local Development](/docs/integrations-woocommerce-local-development--docs) for a local setup guide.
781
+ see [Integrations / WooCommerce / Overview](?path=/docs/integrations-woocommerce-overview--docs) for the full picture and
782
+ [Integrations / WooCommerce / Local Development](?path=/docs/integrations-woocommerce-local-development--docs) for a local setup guide.
783
+
784
+ The task takes:
785
+
786
+ - `items` - each with a `product`, and optionally `productName`, `productDescription`, `price`, `quantity`, `image` (the name of a declared `Image` resource, not a URL), `customData` and `resources` listed in the order as `{ type, name, label }`
787
+ - `fees` - optional, each `{ type: 'Flat' | 'Percentage', name, amount, taxable?, taxClass? }`
788
+ - `session` and `addToCartUrl` - the Phoenix WordPress plugin puts `session` and a relative `add-to-cart-url` as attributes on the configurator tag; the configurator passes both unchanged in the finalize data. The task's `addToCartUrl` must be absolute, and the platform sends the API key to it, so the webhook builds it from the shop's URL in a webhook environment variable and refuses any other origin: a URL taken from the browser as-is would let anyone have the key sent to a server of their choosing
789
+ - `apiKey` - the key configured in the plugin, kept in a webhook environment variable
790
+
791
+ The example assumes `cartSession` and `addToCartUrl` in the `finalizeData` schema and skips the task when the configurator does not run in the shop:
792
+
793
+ ```ts
794
+ // src/webhooks/handlers/configurator-finalize-handler/tasks/cart-task.ts
795
+ export const cartTask = phx.webhooks.taskFactory.createWooCommerceAddToCartTask((resources, data, ctx) => {
796
+ const { cartSession, addToCartUrl } = data.finalizeData
797
+ const shopUrl = phx.webhooksEnv.WOOCOMMERCE_SHOP_URL
798
+ const apiKey = phx.webhooksEnv.WOOCOMMERCE_API_KEY
799
+
800
+ if (cartSession === undefined || addToCartUrl === undefined || shopUrl === undefined || apiKey === undefined) {
801
+ return null
802
+ }
803
+
804
+ // The platform sends the API key to this URL, so it may only point at the shop
805
+ const cartEndpoint = new URL(addToCartUrl, shopUrl)
806
+
807
+ if (cartEndpoint.origin !== new URL(shopUrl).origin) {
808
+ throw new Error(
809
+ `The add-to-cart URL ${addToCartUrl} is not on the shop ${shopUrl}. Pass the plugin's add-to-cart-url unchanged.`
810
+ )
811
+ }
812
+
813
+ const chair = ctx.domain.getRoot$Entity(data.state)
814
+
815
+ return {
816
+ type: 'WooCommerceAddToCart',
817
+ session: cartSession,
818
+ addToCartUrl: cartEndpoint.href,
819
+ apiKey,
820
+ items: [{ product: 'custom-chair', productName: chair.label, quantity: 1, image: resources.simpleImage }],
821
+ }
822
+ })
823
+ ```
741
824
 
742
825
  ### EditGoogleSpreadsheet Task
743
826
 
@@ -747,8 +830,8 @@ Google spreadsheet and share it with a service account created for this purpose.
747
830
 
748
831
  For details on how to create a service account, see the [official documentation](https://cloud.google.com/iam/docs/service-accounts-create).
749
832
 
750
- To edit the spreadsheet, the lambda returns a `EditGoogleSpreadsheetTask` object in tasks. The lambda specifies the
751
- service account key (content of credentials json file), the id of the spreadsheet (from url), and an array of edits to make to the spreadsheet.
833
+ To edit the spreadsheet, the webhook returns an `EditGoogleSpreadsheetTask` object in tasks. The task specifies the
834
+ service account key (the parsed content of the credentials JSON file), the id of the spreadsheet (from its URL), and an array of edits to make to the spreadsheet.
752
835
 
753
836
  ```ts
754
837
  export interface EditGoogleSpreadsheetTask {
@@ -776,19 +859,21 @@ There are currently two types of edit mode available:
776
859
  - **overwrite** overwrite the contents of one or more ranges of cells in the spreadsheet
777
860
  - **append** append new rows of cells
778
861
 
779
- Within each edit, the lambda provides one or more operations to perform. Each operation relates to a single range of cells and their corresponding new values.
862
+ Within each edit, the task provides one or more operations to perform. Each operation relates to a single range of cells and their corresponding new values.
780
863
 
781
864
  ```ts
865
+ export type GoogleSpreadsheetCellValue = string | number | boolean | { type: 'ConfigurationLink'; name: string }
866
+
782
867
  export interface GoogleSpreadsheetEdit {
783
868
  /**
784
869
  * Ranges of cells to edit
785
870
  */
786
- ranges: Record<string, Array<Array<string | number | boolean>>>
871
+ ranges: Record<string, GoogleSpreadsheetCellValue[][]>
787
872
 
788
873
  /**
789
874
  * Edit mode
790
875
  */
791
- mode: GoogleSpreadsheetEditMode
876
+ mode: 'append' | 'overwrite'
792
877
  }
793
878
  ```
794
879
 
@@ -797,51 +882,62 @@ The operations are stored in the `ranges` property. The keys represent reference
797
882
  In append mode, the key represents the range of columns that the appended row or rows will span. Cells in the given range are scanned, and data is inserted into the first row where all cells in the range of that row and all subsequent rows are empty.
798
883
 
799
884
  The values are two dimensional arrays of corresponding cell content to write. The major dimension is always 'rows'. That means
800
- that the outer array represents rows and the inner arrays represent cells arranged in columns.
885
+ that the outer array represents rows and the inner arrays represent cells arranged in columns. A cell is a string, number or boolean, written exactly as given (raw, not parsed as a formula), or `{ type: 'ConfigurationLink', name }`, replaced with a link generated in the same finalization.
801
886
 
802
887
  example:
803
888
 
804
889
  ```ts
805
- const editSpreadsheetTask: EditGoogleSpreadsheetTask = {
806
- type: 'EditGoogleSpreadsheet',
807
- spreadsheetId: phx.webhooksEnv.GOOGLE_SPREADSHEET_ID,
808
- credentials: <service account credentials>,
809
- edits: [
810
- {
811
- ranges: {
812
- 'Orders!A:B': [
813
- ['Custom Chair', 1000],
814
- ['Custom Table', 2000]
815
- ],
890
+ // src/webhooks/handlers/configurator-finalize-handler/tasks/spreadsheet-task.ts
891
+ export const spreadsheetTask = phx.webhooks.taskFactory.createEditGoogleSpreadsheetTask((resources, data) => {
892
+ const spreadsheetId = phx.webhooksEnv.GOOGLE_SPREADSHEET_ID
893
+ const serviceAccount = phx.webhooksEnv.GOOGLE_SERVICE_ACCOUNT_JSON
894
+
895
+ if (spreadsheetId === undefined || serviceAccount === undefined) {
896
+ return null
897
+ }
898
+
899
+ return {
900
+ type: 'EditGoogleSpreadsheet',
901
+ spreadsheetId,
902
+ credentials: JSON.parse(serviceAccount),
903
+ edits: [
904
+ {
905
+ ranges: {
906
+ 'Orders!A:C': [
907
+ [data.configurationId, 'Custom Chair', { type: 'ConfigurationLink', name: resources.ownerLink }],
908
+ ],
909
+ },
910
+ mode: 'append',
816
911
  },
817
- mode: 'append',
818
- },
819
- {
820
- ranges: {
821
- 'Summary!B5': [[new Date().toLocaleString('en-GB')]],
912
+ {
913
+ ranges: {
914
+ 'Summary!B5': [[new Date().toLocaleString('en-GB')]],
915
+ },
916
+ mode: 'overwrite',
822
917
  },
823
- mode: 'overwrite',
824
- },
825
- ],
826
- }
918
+ ],
919
+ }
920
+ })
827
921
  ```
828
922
 
829
923
  ### Callback Hook / Result
830
924
 
831
- Sometimes, the provided tasks are not enough and you need to define a custom callback to be called after the tasks are executed. You can define a callback task in `phx.webhooks.finalizeHandlerBuilder` and even return a result to the client.
925
+ Sometimes, the provided tasks are not enough and you need to define a custom callback to be called after the tasks are executed. Build it with `phx.webhooks.callbackBuilder`, register it with `withCallback` on `phx.webhooks.finalizeHandlerBuilder`, and even return a result to the client.
832
926
  This callback handler is meant to be used for custom integrations, sending data to 3rd party services, etc.
833
927
 
834
- The callback definition has two parts, first you define a `CallbackData` handler that maps the resources and state to the data that will be passed to the callback handler.
928
+ The callback adds a `CallLambdaBack` task, which the platform runs after all other tasks; it then calls the webhook's callback operation with the data and resource links. The resource links it receives are signed and expire after 30 minutes. Only resources with an `s3Key` (generated PDFs, CSVs and images) and configuration links can be passed.
929
+
930
+ The callback definition has two parts, first you define a `CallbackData` handler that maps the resources and task data to the data that will be passed to the callback handler.
835
931
 
836
932
  ```ts
837
933
  // src/webhooks/handlers/configurator-finalize-handler/tasks/callback-task.ts
838
934
  export const callbackTask = phx.webhooks.callbackBuilder
839
935
  // Task Data and Context is available
840
- .withCallbackData((resources, state) => {
936
+ .withCallbackData((resources, data) => {
841
937
  return {
842
938
  // data that will be passed to the callback handler
843
939
  replayData: {
844
- emailAddress: state.finalizeData.emailAddress,
940
+ emailAddress: data.finalizeData.emailAddress,
845
941
  },
846
942
  // generated resources that should be forwarded to the callback handler
847
943
  resources: {
@@ -880,7 +976,7 @@ The `FinalizeResult` returned from the callback handler is then passed back to t
880
976
 
881
977
  ## Admin Finalization
882
978
 
883
- Admin finalization is triggered when an admin publishes an AdminConfiguration. The Admin Finalization handler can publish a `PublishRevisionTask`, that maps `AdminConfiguration` to a public
979
+ Admin finalization is triggered when an admin publishes from Project Admin. The SDK builds the Admin finalization handler automatically: `phx.webhooks` has no builder for it, and `src/webhooks/index.ts` registers nothing. Without chunks, it returns a `PublishRevision` task that maps the `AdminConfiguration` to a public
884
980
  `PublishedDataRevision` that is stored in the database and published to s3. Latest published revision link is stored in `SessionToken` and its data are fetched before initializing domain.
885
981
 
886
982
  When chunks are defined in the domain spec, the handler auto-detects them and maps the published data into per-chunk payloads. Current servers provide a pre-signed staging URL; the current SDK uploads all chunks there and returns the lightweight `PublishRevisionChunksStaged` task, keeping chunk data out of the Lambda response and Redis job payload. The server checks the staged object before downloading it: payloads up to **100 MiB** are accepted, while a larger payload fails publishing with an explicit size-limit error.
@@ -889,30 +985,32 @@ Compatibility is preserved during upgrades. An older SDK still returns the inlin
889
985
 
890
986
  No sensitive data should be exposed!
891
987
 
892
- The schema of the published data is defined in the `AdminData` type passed from domain and it is validated before initializing a domain.
988
+ The published data is validated against the project's published data schema before a configurator initializes its domain with it.
893
989
 
894
- You can define the Admin Finalization handler in the following way.
990
+ Presets, preset categories, recipes and swatch options are published without project code. To customise the published data, default-export a handler from a file in `src/handlers/`:
991
+
992
+ - `phx.domain.admin.createMapPublishedRevisionDataHandler(({ entities, adminEntity }) => data)` - the published data of a project without chunks (the `PublishRevision` task)
993
+ - `phx.domain.admin.createMapPublishedChunkedDataHandler(({ entities, adminEntity, connectedSheetData }) => chunks)` - per-chunk data of a project with chunks (the `PublishRevisionChunksStaged` task, or `PublishRevisionChunks` inline when the platform offers no staging upload)
994
+ - `phx.domain.admin.createDataRowValidatorHandler` and `phx.domain.admin.createSheetValidatorHandler` - business rules for manual and connected data, checked again when publishing
895
995
 
896
996
  ```ts
897
- // src/webhooks/handlers/admin-finalize-handler.ts
898
- export const adminFinalizeHandler = phx.webhooks.adminFinalizeHandlerBuilder
899
- .withPublishedRevision(entities => {
900
- // validated configuration state is passed to the handler
901
- return entities
902
- .filter((e): e is AdminDomain.PresetCategory => AdminDomain.PresetCategory.is(e) && e.visible)
903
- .sort((a, b) => a.index - b.index)
904
- .map(category => {
905
- // .. map the admin data to whatever the configurator needs
906
- })
907
- })
908
- .build()
997
+ // src/handlers/map-published-revision-data.ts
998
+ export default phx.domain.admin.createMapPublishedRevisionDataHandler(({ entities }) => {
999
+ // validated admin entities are passed to the handler
1000
+ return {
1001
+ customMaterials: entities
1002
+ .filter(phx.domain.admin.model.CustomMaterial.is)
1003
+ .filter(material => material.visible)
1004
+ .map(material => ({ id: material.id, name: material.name })),
1005
+ }
1006
+ })
909
1007
  ```
910
1008
 
911
- Before the admin finalization handler is called, the `AdminConfiguration` data are first validated via the admin domain and its violations.
1009
+ Before the admin finalization runs, the `AdminConfiguration` data are first validated via the admin domain and its violations. See **[Publishing](?path=/docs/phoenix-publishing--docs)** for the mapping handlers and chunks, and **[Connected Data Sources](?path=/docs/phoenix-connected-data-sources--docs)** for `connectedSheetData` and the validators.
912
1010
 
913
1011
  ## Auth Hook
914
1012
 
915
- Auth hook is triggered when a configurator session is created or refreshed and the deployment enables it. For legacy projects, set this in `spec/application.yaml`, then run `phoenix sync`:
1013
+ Auth hook is triggered when a configurator session is created or refreshed and the deployment enables it. Enable it in a spec file such as `spec/application.yaml` (add `useClerk: true` as well for Clerk sign-in), then run `phoenix sync`:
916
1014
 
917
1015
  ```yaml
918
1016
  useAuthHook: true
@@ -921,32 +1019,36 @@ useAuthHook: true
921
1019
  Auth hook can define different types of handlers.
922
1020
 
923
1021
  - For Clerk:
924
- - CodeFlow Handler
925
- - RefreshFlow Handler
1022
+ - CodeFlow Handler (`withClerkCodeHandler`)
1023
+ - Session Handler (`withClerkSessionHandler`), for the inline Clerk sign-in
1024
+ - RefreshFlow Handler (`withClerkRefreshHandler`)
926
1025
  - Custom handlers:
927
- - CodeFlow Handler
928
- - RefreshFlow Handler
929
- - AnonymousFlow Handler
1026
+ - CodeFlow Handler (`withCodeHandler`)
1027
+ - RefreshFlow Handler (`withRefreshHandler`)
1028
+ - AnonymousFlow Handler (`withAnonymousHandler`)
930
1029
 
931
1030
  ```ts
932
1031
  // src/webhooks/handlers/auth-handler.ts
933
1032
  export const authHandler = phx.webhooks.authHandlerBuilder
934
1033
  // To enable default authentication method with Clerk:
935
1034
  .withClerkCodeHandler()
1035
+ .withClerkSessionHandler()
936
1036
  .withClerkRefreshHandler()
937
1037
 
938
1038
  // To implement custom auth handlers.
939
1039
  // For example to integrate with customer's auth.
940
1040
  .withCodeHandler(async payload => {
941
- // ... CodeFlow implementation
1041
+ // ... CodeFlow implementation, see CodeFlow Handler below
1042
+ return { success: false }
942
1043
  })
943
1044
  .withRefreshHandler(async payload => {
944
- // .. RefreshFlow implementation
1045
+ // .. RefreshFlow implementation, see RefreshFlow Handler below
1046
+ return { success: false }
945
1047
  })
946
1048
 
947
1049
  // Add to allow anonymous access.
948
1050
  .withAnonymousHandler(async () => {
949
- return { success: false }
1051
+ return { success: true, data: {}, role: 'anonymous' }
950
1052
  })
951
1053
 
952
1054
  // Assign chunk scopes for chunked published data access control.
@@ -961,6 +1063,8 @@ export const authHandler = phx.webhooks.authHandlerBuilder
961
1063
 
962
1064
  For full details on `withPublishedChunkScopes()`, scope resolver patterns, and chunked publishing, see **[Publishing - Access Control](?path=/docs/phoenix-publishing--docs#access-control)**.
963
1065
 
1066
+ A handler answers `{ success: false }` to refuse the session, or `{ success: true, data, role, refreshToken?, expirationTime?, scopes?, userId? }` to grant it. `role` is `anonymous`, `user`, `admin` or `superadmin`. `expirationTime` is an absolute Unix timestamp in seconds, not a duration, and defaults to 3 hours from now; keep the default, which session tracking assumes, unless the client needs other session lengths. `data` is validated against the spec's `sessionData` schema, which may not declare required properties: Admin and preset sessions carry no custom session data.
1067
+
964
1068
  ### Clerk handlers
965
1069
 
966
1070
  For the optional inline Configurator and Admin UI that uses `withClerkSessionHandler()`, see [Clerk Sign-In](?path=/docs/phoenix-clerk-sign-in--docs).
@@ -988,31 +1092,15 @@ We get the rest of the Clerk ENVs after creating a new OAuth application in `[YO
988
1092
  - `https://<your server>/deployments/auth/callback` for every server the configurator is deployed to
989
1093
  - `http://localhost:3000/deployments/auth/callback` for local development
990
1094
 
991
- Save the OAuth application, then copy these values to the webhook environment only:
992
-
993
- ```
994
- # Application credentials -> Client ID
995
- # Where to put it: webhook
996
- OAUTH_PROVIDER_CLIENT_ID=xxx
997
-
998
- # Application credentials -> Client Secret
999
- # Where to put it: webhook
1000
- OAUTH_PROVIDER_CLIENT_SECRET=xxx
1095
+ Save the OAuth application, then enter in the customer's **Clerk Settings** tab in Studio:
1001
1096
 
1002
- # Origin part of the Discovery URL
1003
- # Where to put it: webhook
1004
- OAUTH_PROVIDER_BASE_URL=https://<your Clerk frontend API domain>/
1005
- ```
1006
-
1007
- Save the same OAuth client ID, client secret, and base URL in the customer's **Clerk Settings** tab in Studio. The remaining webhook variable is not taken from Clerk:
1097
+ - the client ID and client secret from **Application credentials**
1098
+ - the base URL, the origin part of the Discovery URL (`https://<your Clerk frontend API domain>/`)
1099
+ - a JWT secret for signing tokens: the base64 of a long random key
1008
1100
 
1009
- ```
1010
- # For signing tokens - generate reasonably long alphanumeric key
1011
- # Where to put it: webhook
1012
- JWT_SECRET_BASE64=<base64 of a long random key>
1013
- ```
1101
+ The platform passes them to the webhook as the generated variables `OAUTH_PROVIDER_CLIENT_ID`, `OAUTH_PROVIDER_CLIENT_SECRET`, `OAUTH_PROVIDER_BASE_URL` and `JWT_SECRET_BASE64`, beside `CLERK_API_KEY`, `FRONTEND_URL` and `RESOURCES_URL`. The project declares none of them and keeps none of them in its `.env`.
1014
1102
 
1015
- For a deployment, run `pnpm phoenix deployment:prepare` followed by `pnpm phoenix deployment:finish`. For local development, run `pnpm phoenix deployment:prepare-local`. These current commands use the customer settings stored in Studio; the removed `environment:create` and `deployment:register` commands are not part of the setup flow.
1103
+ Deploy with `pnpm phoenix deploy`; CI pipelines run `pnpm phoenix deployment:prepare` followed by `pnpm phoenix deployment:finish`. For local development, `phoenix dev` prepares its own development deployment. All of them use the customer settings stored in Studio.
1016
1104
 
1017
1105
  #### Clerk organization
1018
1106
 
@@ -1064,27 +1152,40 @@ CodeFlow solves the problem of safely passing credentials to the client from 3rd
1064
1152
  and receives a one time `code` in return. This code is then passed to the client in a query parameter and used to authenticate the session. The server after receiving
1065
1153
  the code, retrieves the passed credentials from temporary storage and calls the Auth Hook CodeFlow Handler. The handler is then responsible for authenticating the user and returning the session data.
1066
1154
 
1155
+ The code handler receives `{ type: 'code', accessToken, refreshToken?, idToken? }`.
1156
+
1067
1157
  ```ts
1068
- export const authHandler = phx.webhooks.authHandlerBuilder.withCodeHandler(async payload => {
1158
+ export const authHandler = phx.webhooks.authHandlerBuilder.withCodeHandler(async (payload, { logger }) => {
1069
1159
  // refresh token may or may not be present based on what the 3rd party service sends
1070
1160
  const { accessToken, refreshToken } = payload
1071
1161
 
1072
- // authenticate the user using the provided credentials, fetch user data, etc...
1162
+ // authenticate the visitor using the provided credentials, fetch user data, etc...
1163
+ const response = await fetch(`${phx.webhooksEnv.CRM_API_URL}/me`, {
1164
+ headers: { authorization: `Bearer ${accessToken}` },
1165
+ })
1166
+
1167
+ if (!response.ok) {
1168
+ logger.warn(`The CRM refused the access token with status ${response.status}.`)
1169
+ // refuse the session
1170
+ return { success: false }
1171
+ }
1172
+
1173
+ const { id: userId }: { readonly id: string } = await response.json()
1073
1174
 
1074
1175
  return {
1075
- // return true/false based on the authentication result, if error is returned, the webhook will return 500 and an error will be reported to the alerting system
1176
+ // return true/false based on the authentication result, if the handler throws, the webhook will return 500 and an error will be reported to the alerting system
1076
1177
  success: true,
1077
1178
  data: {
1078
- // custom session data that will be stored in the session - defined via the SessionData type
1179
+ // custom session data that will be stored in the session - defined via the sessionData schema
1079
1180
  },
1080
- // role of the user, can be 'admin','user' or 'anonymous'
1181
+ // role of the session, can be 'superadmin', 'admin', 'user' or 'anonymous'
1081
1182
  role: 'user',
1082
1183
  // id of the signed-in user in your system; the session token's `sub` becomes `custom-<userId>`
1083
1184
  userId,
1084
1185
  // refresh token that will be passed to the refresh flow when the session expires
1085
1186
  refreshToken,
1086
- // expiration time of the session in seconds
1087
- expirationTime,
1187
+ // optional expirationTime: an absolute Unix timestamp in seconds, not a duration. Keep the 3-hour default,
1188
+ // which session tracking assumes, unless the client needs other session lengths
1088
1189
  }
1089
1190
  })
1090
1191
  ```
@@ -1093,7 +1194,7 @@ export const authHandler = phx.webhooks.authHandlerBuilder.withCodeHandler(async
1093
1194
 
1094
1195
  #### RefreshFlow Handler
1095
1196
 
1096
- RefreshFlow is triggered when the session is authenticated via `refreshToken`. The handler is responsible for refreshing the session data and returning the new session data.
1197
+ RefreshFlow is triggered when the session is authenticated via `refreshToken`. The handler is responsible for refreshing the session data and returning the new session data. It receives `{ type: 'refresh', refreshToken }`.
1097
1198
 
1098
1199
  ```ts
1099
1200
  export const authHandler = phx.webhooks.authHandlerBuilder.withRefreshHandler(async payload => {
@@ -1101,21 +1202,32 @@ export const authHandler = phx.webhooks.authHandlerBuilder.withRefreshHandler(as
1101
1202
  const { refreshToken } = payload
1102
1203
 
1103
1204
  // Use the refresh token to refresh the session data, fetch user data, etc...
1205
+ const response = await fetch(`${phx.webhooksEnv.CRM_API_URL}/token/refresh`, {
1206
+ method: 'POST',
1207
+ headers: { 'content-type': 'application/json' },
1208
+ body: JSON.stringify({ refreshToken }),
1209
+ })
1210
+
1211
+ if (!response.ok) {
1212
+ return { success: false }
1213
+ }
1214
+
1215
+ const refreshed: { readonly userId: string; readonly refreshToken: string } = await response.json()
1104
1216
 
1105
1217
  return {
1106
- // return true/false based on the authentication result, if error is returned, the webhook will return 500 and an error will be reported to the alerting system
1218
+ // return true/false based on the authentication result, if the handler throws, the webhook will return 500 and an error will be reported to the alerting system
1107
1219
  success: true,
1108
1220
  data: {
1109
- // custom session data that will be stored in the session - defined via the SessionData type
1221
+ // custom session data that will be stored in the session - defined via the sessionData schema
1110
1222
  },
1111
- // role of the user, can be 'admin','user' or 'anonymous'
1223
+ // role of the session, can be 'superadmin', 'admin', 'user' or 'anonymous'
1112
1224
  role: 'user',
1113
1225
  // return the user id again: a refresh without it turns the session into the browser's anonymous user
1114
- userId,
1226
+ userId: refreshed.userId,
1115
1227
  // refresh token that will be passed to the refresh flow when the session expires
1116
- refreshToken,
1117
- // expiration time of the session in seconds
1118
- expirationTime,
1228
+ refreshToken: refreshed.refreshToken,
1229
+ // optional expirationTime: an absolute Unix timestamp in seconds, not a duration. Keep the 3-hour default,
1230
+ // which session tracking assumes, unless the client needs other session lengths
1119
1231
  }
1120
1232
  })
1121
1233
  ```
@@ -1131,17 +1243,15 @@ export const authHandler = phx.webhooks.authHandlerBuilder
1131
1243
  // Do whatever you need to here, but it is probably not a good idea
1132
1244
 
1133
1245
  return {
1134
- // return true/false based on the authentication result, if error is returned, the webhook will return 500 and an error will be reported to the alerting system
1246
+ // return true/false based on the authentication result, if the handler throws, the webhook will return 500 and an error will be reported to the alerting system
1135
1247
  success: true,
1136
1248
  data: {
1137
- // custom session data that will be stored in the session - defined via the SessionData type
1249
+ // custom session data that will be stored in the session - defined via the sessionData schema
1138
1250
  },
1139
- // role of the user, can be 'admin','user' or 'anonymous'
1251
+ // role of the session, can be 'superadmin', 'admin', 'user' or 'anonymous'
1140
1252
  role: 'anonymous',
1141
- // refresh token that will be passed to the refresh flow when the session expires
1142
- refreshToken,
1143
- // expiration time of the session in seconds
1144
- expirationTime,
1253
+ // optional: absolute Unix timestamp in seconds, not a duration; defaults to 3 hours from now
1254
+ expirationTime: Math.floor(Date.now() / 1000) + 3 * 60 * 60,
1145
1255
  }
1146
1256
  })
1147
1257
  ```
@@ -1206,35 +1316,31 @@ export const configuratorFinalizeHandler = phx.webhooks.finalizeHandlerBuilder
1206
1316
 
1207
1317
  The data returned by your prefetch handler is available to all subsequent tasks as `prefetchedData`:
1208
1318
 
1209
- ```ts
1319
+ ```tsx
1210
1320
  // Tasks can access prefetched data
1211
1321
  export const pdfTask = phx.webhooks.taskFactory.createGeneratePdfTask((resources, data, ctx) => {
1212
1322
  // Access prefetched data
1213
1323
  const { totalPrice, estimatedDeliveryDate, productCatalog } = data.prefetchedData
1214
1324
 
1215
- return {
1216
- type: 'GeneratePdf',
1217
- name: resources.configurationPdf,
1218
- html: {
1219
- template: `
1220
- <h1>Configuration Summary</h1>
1221
- <p>Total Price: ${'{{'}totalPrice{{"}}"}}</p>
1222
- <p>Estimated Delivery: ${'{{'}deliveryDate{{"}}"}}</p>
1223
- <ul>
1224
- ${'{{'}#each products${'}}'}
1225
- <li>${'{{'}this.name${'}}'} - ${'{{'}this.sku{{"}}"}}</li>
1226
- ${'{{'}/each${'}}'}
1227
- </ul>
1228
- `,
1229
- data: {
1230
- totalPrice,
1231
- deliveryDate: estimatedDeliveryDate,
1232
- products: productCatalog.items,
1233
- },
1234
- includeResources: [],
1235
- },
1236
- // ... rest of PDF configuration
1237
- }
1325
+ return ctx.pdfTaskBuilder
1326
+ .withResourceName(resources.configurationPdf)
1327
+ .withReactBody(
1328
+ <html>
1329
+ <body>
1330
+ <h1>Configuration Summary</h1>
1331
+ <p>Total Price: {totalPrice}</p>
1332
+ <p>Estimated Delivery: {estimatedDeliveryDate}</p>
1333
+ <ul>
1334
+ {productCatalog.items.map(item => (
1335
+ <li key={item.sku}>
1336
+ {item.name} - {item.sku}
1337
+ </li>
1338
+ ))}
1339
+ </ul>
1340
+ </body>
1341
+ </html>
1342
+ )
1343
+ .build()
1238
1344
  })
1239
1345
  ```
1240
1346
 
@@ -1266,39 +1372,38 @@ export interface PrefetchTaskData<
1266
1372
 
1267
1373
  ## Dynamic Resources Factory
1268
1374
 
1269
- The Dynamic Resources Factory allows you to create resources dynamically at runtime based on configuration state, user data, or other conditions. Unlike static resource definitions in the domain, dynamic resources are generated programmatically during finalization.
1375
+ The Dynamic Resources Factory allows you to create resources dynamically at runtime based on configuration state, finalize data, or other conditions. Unlike static resource definitions in the spec, dynamic resources are generated programmatically during finalization.
1270
1376
 
1271
1377
  Its handler context exposes the same request-bound `ctx.resolveLocalizable(value)` and raw `ctx.i18n` as task handlers.
1272
1378
 
1273
- **Important**: Dynamic resource names are not statically typed since they are created at runtime. You'll need to reference them by string names in templates and tasks.
1379
+ **Important**: Dynamic resource names are not statically typed since they are created at runtime, and they are not part of the `resources` map tasks receive. You'll need to reference them by string names in templates and tasks.
1274
1380
 
1275
1381
  ### Available Resource Creation Methods
1276
1382
 
1277
1383
  The `phx.webhooks.dynamicResourcesFactory` provides methods for creating different types of resources:
1278
1384
 
1279
1385
  ```ts
1280
- // src/webhooks/handlers/dynamic-resources.ts
1386
+ // src/webhooks/handlers/configurator-finalize-handler/tasks/dynamic-resources.ts
1281
1387
 
1282
- // Server-generated images
1283
- const generatedImageHandler = phx.webhooks.dynamicResourcesFactory.createGeneratedImage((resources, data, ctx) => {
1388
+ // Server-generated images, produced by a GenerateImages task under the same name
1389
+ export const generatedImageHandler = phx.webhooks.dynamicResourcesFactory.createGeneratedImage((resources, data) => {
1284
1390
  return {
1285
- type: 'GeneratedImage',
1391
+ type: 'Image',
1286
1392
  name: 'dynamicServerImage',
1287
1393
  s3Key: `generated/${data.configurationId}/render.png`,
1288
1394
  }
1289
1395
  })
1290
1396
 
1291
- // Dynamic links
1292
- const linkHandler = phx.webhooks.dynamicResourcesFactory.createLink((resources, data, ctx) => {
1397
+ // Dynamic configuration links, produced by a GenerateConfigurationLink task under the same name
1398
+ export const linkHandler = phx.webhooks.dynamicResourcesFactory.createLink(() => {
1293
1399
  return {
1294
- type: 'Link',
1400
+ type: 'ConfigurationLink',
1295
1401
  name: 'customShareLink',
1296
- url: `${data.frontendUrl}/share/${data.configurationId}?utm_source=dynamic`,
1297
1402
  }
1298
1403
  })
1299
1404
 
1300
- // Dynamic PDFs
1301
- const pdfHandler = phx.webhooks.dynamicResourcesFactory.createPdf((resources, data, ctx) => {
1405
+ // Dynamic PDFs, produced by a PDF task under the same name
1406
+ export const pdfHandler = phx.webhooks.dynamicResourcesFactory.createPdf((resources, data) => {
1302
1407
  return {
1303
1408
  type: 'Pdf',
1304
1409
  name: 'dynamicReport',
@@ -1307,7 +1412,21 @@ const pdfHandler = phx.webhooks.dynamicResourcesFactory.createPdf((resources, da
1307
1412
  })
1308
1413
  ```
1309
1414
 
1310
- Other available methods include: `createClientGeneratedImage`, `createExistingImage`, `createCsv`, and `createResource`.
1415
+ Other available methods include: `createClientGeneratedImage` (`{ type: 'Image', name, clientGenerated: true, s3Key }`), `createExistingImage` (`{ type: 'Image', name, exists: true, url }`), `createCsv` (`{ type: 'Csv', name, s3Key? }`), and `createResource` (any of these). `getClientSideImageResourceName(entityId, instanceName)` returns the name of a configurator-rendered image resource.
1416
+
1417
+ ### Registering dynamic resources
1418
+
1419
+ A dynamic resource takes effect only when its handler is registered with `withResources` on the finalization handler, one call per handler:
1420
+
1421
+ ```ts
1422
+ // src/webhooks/handlers/configurator-finalize-handler/configurator-finalize-handler.ts
1423
+ export const configuratorFinalizeHandler = phx.webhooks.finalizeHandlerBuilder
1424
+ .withResources(generatedImageHandler)
1425
+ .withResources(pdfHandler)
1426
+ .withTask(dynamicImageTask)
1427
+ .withTask(dynamicReportTask)
1428
+ .build()
1429
+ ```
1311
1430
 
1312
1431
  ### Conditional Resource Creation
1313
1432
 
@@ -1324,7 +1443,7 @@ const conditionalImageHandler = phx.webhooks.dynamicResourcesFactory.createGener
1324
1443
  }
1325
1444
 
1326
1445
  return {
1327
- type: 'GeneratedImage',
1446
+ type: 'Image',
1328
1447
  name: 'customMaterialPreview',
1329
1448
  s3Key: `previews/${data.configurationId}/custom-materials.png`,
1330
1449
  }
@@ -1340,7 +1459,7 @@ const multipleImagesHandler = phx.webhooks.dynamicResourcesFactory.createGenerat
1340
1459
  const colorOptions = data.finalizeData.requestedColors || []
1341
1460
 
1342
1461
  return colorOptions.map((color, index) => ({
1343
- type: 'GeneratedImage',
1462
+ type: 'Image',
1344
1463
  name: `colorPreview${index}`,
1345
1464
  s3Key: `colors/${data.configurationId}/${color}.png`,
1346
1465
  }))
@@ -1349,58 +1468,77 @@ const multipleImagesHandler = phx.webhooks.dynamicResourcesFactory.createGenerat
1349
1468
 
1350
1469
  ### Using Dynamic Resources in Tasks
1351
1470
 
1352
- Dynamic resources are automatically available to finalization tasks:
1471
+ Registered dynamic resources are available to finalization tasks by name. A `GenerateImages` task renders the dynamic image, and a PDF built with `pdfTaskBuilder` embeds it and is stored as the dynamic PDF:
1472
+
1473
+ ```tsx
1474
+ // src/webhooks/handlers/configurator-finalize-handler/tasks/dynamic-tasks.tsx
1475
+ import { ResourceHelpers } from '@salsita-ai/sdk/webhook'
1476
+
1477
+ export const dynamicImageTask = phx.webhooks.taskFactory.createGenerateImagesTask((_resources, data, ctx) => {
1478
+ const imageConfig = ctx.blenderProjections.getBlenderImageConfig(data.state, 'Default', data.state.rootEntityId, {
1479
+ width: 1920,
1480
+ height: 1080,
1481
+ })
1353
1482
 
1354
- ```ts
1355
- export const emailTask = phx.webhooks.taskFactory.createSendEmailTask((resources, data) => {
1356
1483
  return {
1357
- type: 'SendEmail',
1358
- from: 'noreply@example.com',
1359
- to: data.finalizeData.emailAddress,
1360
- subject: 'Your Configuration',
1361
- html: {
1362
- template: '<img src="${"{{"}resource-dynamicServerImage{{"}}"}}" />',
1363
- data: {},
1364
- includeResources: [
1365
- {
1366
- name: 'dynamicServerImage', // Reference dynamic resource
1367
- type: 'Image',
1368
- embeddingType: 'Embedded',
1369
- },
1370
- ],
1371
- },
1372
- attachments: [],
1484
+ type: 'GenerateImages',
1485
+ deploymentId: data.deploymentId,
1486
+ blenderSetupTemplate: 'template.blend',
1487
+ templateFiles: ['LaProvencal.gltf'],
1488
+ images: [{ name: 'dynamicServerImage', fileFormat: 'PNG', ...imageConfig }],
1373
1489
  }
1374
1490
  })
1491
+
1492
+ export const dynamicReportTask = phx.webhooks.taskFactory.createGeneratePdfTask((_resources, _data, ctx) => {
1493
+ return ctx.pdfTaskBuilder
1494
+ .withResourceName('dynamicReport')
1495
+ .withIncludedResources({
1496
+ // Reference the dynamic resource by its name
1497
+ other: [{ name: 'dynamicServerImage', type: 'Image', embeddingType: 'Embedded' }],
1498
+ })
1499
+ .withReactBody(
1500
+ <html>
1501
+ <body>
1502
+ <ResourceHelpers.Image resource="dynamicServerImage" alt="Your configuration" />
1503
+ </body>
1504
+ </html>
1505
+ )
1506
+ .build()
1507
+ })
1375
1508
  ```
1376
1509
 
1377
1510
  ## Backend Data Handler
1378
1511
 
1379
1512
  The Backend Data Handler allows you to fetch data on the server that will be automatically made available both in the domain (client-side) and in webhook contexts. Its main purpose is to securely fetch data using API keys or other sensitive credentials that cannot be exposed to the client, while making that data available throughout your application.
1380
1513
 
1514
+ Responses of at least 32 KiB are automatically gzip-compressed when the caller accepts gzip and the base64 representation is smaller. Project handlers return the same `backendData` object; the API and configurator receive decoded JSON. This also works through `phoenix dev` when both the server and CLI support gzip. Older tunnel clients keep plain JSON.
1515
+
1516
+ Compression does not remove platform limits: the complete encoded development-tunnel request must fit within 5 MiB, and deployed webhooks remain subject to Lambda's buffered response limit. The tunnel accepts up to 100 MiB of decoded gzip data. Data that does not compress enough must be reduced or split. Binary responses appear as a byte-count placeholder in the development tunnel inspector.
1517
+
1518
+ The configurator requests backend data in the browser, and the webhook runs the handler again before every configurator finalization, so tasks get their own fresh `backendData`. A failure in the browser only leaves `backendData` undefined; a failure before a finalization fails the finalization.
1519
+
1381
1520
  ### Defining a Backend Data Handler
1382
1521
 
1383
- Backend data handlers are defined inline in the webhook builder:
1522
+ Backend data handlers are defined inline in the webhook builder. The handler returns `{ backendData }`:
1384
1523
 
1385
1524
  ```ts
1386
1525
  // src/webhooks/index.ts
1387
1526
  export default phx.webhooks.webhookBuilder
1388
1527
  .withAuthHook(authHandler)
1389
1528
  .withConfiguratorFinalize(configuratorFinalizeHandler)
1390
- .withFetchBackendData(async ({ frontendData, sessionPayload, deploymentId }, { logger }) => {
1529
+ .withFetchBackendData(async ({ sessionPayload }, { logger }) => {
1391
1530
  logger.info('Fetching backend data')
1392
1531
 
1393
- // Fetch data using API keys not exposed to client
1394
- const userProfile = await fetch('https://api.example.com/users/' + sessionPayload.userId, {
1395
- headers: { Authorization: `Bearer ${phx.webhooksEnv.API_KEY}` },
1396
- }).then(res => res.json())
1397
-
1398
- const pricingData = await fetchPricingData(deploymentId, phx.webhooksEnv.PRICING_API_KEY)
1532
+ // Fetch with an API key the browser never sees; customerId is a field of the spec's sessionData
1533
+ const response = await fetch(`${phx.webhooksEnv.PRICING_API_URL}/customers/${sessionPayload.customerId}`, {
1534
+ headers: { Authorization: `Bearer ${phx.webhooksEnv.PRICING_API_KEY}` },
1535
+ })
1536
+ const customer: { readonly tier: string; readonly basePrice: number } = await response.json()
1399
1537
 
1400
1538
  return {
1401
1539
  backendData: {
1402
- userProfile,
1403
- pricingData,
1540
+ tier: customer.tier,
1541
+ basePrice: customer.basePrice,
1404
1542
  fetchedAt: new Date().toISOString(),
1405
1543
  },
1406
1544
  }
@@ -1417,12 +1555,14 @@ Define the schema for backend data in `spec/application.yaml`:
1417
1555
  backendData:
1418
1556
  type: object
1419
1557
  properties:
1420
- exchangeRateAtStartTime:
1558
+ tier:
1559
+ type: string
1560
+ basePrice:
1421
1561
  type: number
1422
- userProfile:
1423
- type: object
1562
+ fetchedAt:
1563
+ type: string
1424
1564
  required:
1425
- - exchangeRateAtStartTime
1565
+ - fetchedAt
1426
1566
  additionalProperties: false
1427
1567
  ```
1428
1568
 
@@ -1432,46 +1572,31 @@ Backend data is automatically fetched and made available throughout your applica
1432
1572
 
1433
1573
  **In the Domain (Client-side)**: The data is automatically available in the domain context and can be used in expressions, components, and UI logic.
1434
1574
 
1435
- **In Webhooks**: Backend data is available to prefetch handlers and finalization tasks:
1575
+ **In Webhooks**: Backend data is available to prefetch handlers and finalization tasks as `data.backendData`. Like `ctx.backendData` in expressions, it is `Record<string, unknown> | undefined`: the schema validates the handler's answer but does not type what reads it, so narrow each value before use:
1436
1576
 
1437
- ```ts
1577
+ ```tsx
1438
1578
  // Prefetch handlers receive backend data
1439
1579
  export const prefetchHandler = phx.webhooks.prefetchBuilder
1440
- .withPrefetchHandler(async (data, ctx) => {
1441
- const { userProfile, pricingData } = data.backendData || {}
1442
-
1443
- // Use backend data to prepare additional information
1444
- const discountRate = userProfile?.tier === 'premium' ? 0.15 : 0.05
1445
- const finalPrice = pricingData?.basePrice * (1 - discountRate)
1446
-
1447
- // Fetch additional data based on user profile
1448
- const recommendedProducts = await fetchRecommendedProducts(userProfile?.preferences)
1580
+ .withPrefetchHandler(data => {
1581
+ const tier = data.backendData?.['tier']
1582
+ const basePrice = data.backendData?.['basePrice']
1583
+ const discountRate = tier === 'premium' ? 0.15 : 0.05
1449
1584
 
1450
1585
  return {
1451
1586
  discountRate,
1452
- finalPrice,
1453
- recommendedProducts,
1454
- userTier: userProfile?.tier,
1587
+ finalPrice: typeof basePrice === 'number' ? basePrice * (1 - discountRate) : null,
1455
1588
  }
1456
1589
  })
1457
1590
  .build()
1458
1591
 
1459
1592
  // Tasks also receive backend data
1460
1593
  export const pricingTask = phx.webhooks.taskFactory.createGeneratePdfTask((resources, data, ctx) => {
1461
- const { pricingData } = data.backendData || {}
1594
+ const basePrice = data.backendData?.['basePrice']
1462
1595
 
1463
- return {
1464
- type: 'GeneratePdf',
1465
- name: resources.pricingReport,
1466
- html: {
1467
- template: '<h1>Price: ${"{{"}price{{"}}"}}</h1>',
1468
- data: {
1469
- price: pricingData?.totalPrice || 'N/A',
1470
- },
1471
- includeResources: [],
1472
- },
1473
- // ... rest of PDF configuration
1474
- }
1596
+ return ctx.pdfTaskBuilder
1597
+ .withResourceName(resources.pricingReport)
1598
+ .withReactBody(<h1>Price: {typeof basePrice === 'number' ? basePrice.toFixed(2) : 'N/A'}</h1>)
1599
+ .build()
1475
1600
  })
1476
1601
  ```
1477
1602
 
@@ -1486,13 +1611,16 @@ export interface FetchBackendDataPayload<
1486
1611
  > {
1487
1612
  deploymentId: DeploymentId
1488
1613
  frontendUrl: FrontendUrl
1489
- frontendData: FRONTEND_DATA
1614
+ frontendData?: FRONTEND_DATA
1490
1615
  sessionRole: SessionRole
1491
1616
  sessionPayload: SESSION_DATA
1492
- publishedAdminRevisionPath: string | undefined
1617
+ publishedAdminRevisionPath?: string
1618
+ publishedChunkUrls?: Record<string, string>
1493
1619
  }
1494
1620
  ```
1495
1621
 
1622
+ The `backendData` the handler returns is validated against the `backendData` schema.
1623
+
1496
1624
  ### Use Cases
1497
1625
 
1498
1626
  Backend data handlers are ideal when you need to:
@@ -1530,11 +1658,11 @@ In this guide, we explored Phoenix's webhook system:
1530
1658
  - **Webhook-based architecture** enables server-side processing for authentication, finalization, and admin workflows
1531
1659
  - **Domain-aware builders** provide type-safe webhook development with full access to domain context
1532
1660
  - **Environment variables** allow secure configuration management for API keys and external service credentials
1533
- - **Task execution pipeline** processes resources sequentially to enable resource reuse and dependency management
1661
+ - **Task execution pipeline** runs tasks by type, so links and rendered images are ready before the PDFs, emails and callback that use them
1534
1662
  - **Resource system** manages static domain resources and dynamic runtime-generated resources
1535
1663
  - **React templates** render PDF and email bodies as `.tsx` trees via builder chains, with Handlebars retained as legacy
1536
1664
  - **Authentication hooks** support custom auth flows, Clerk integration, and anonymous access patterns
1537
- - **Admin finalization** transforms admin configurations into published data for configurators
1665
+ - **Admin finalization**, built by the SDK and customised with handlers, transforms admin configurations into published data for configurators
1538
1666
 
1539
1667
  **Advanced Features:**
1540
1668
 
@@ -1555,3 +1683,55 @@ Now that you understand Phoenix's webhook system, explore these related topics:
1555
1683
  - **[Best Practices](?path=/docs/phoenix-best-practices--docs)** - Follow proven patterns for webhook implementation and deployment
1556
1684
 
1557
1685
  For hands-on practice, explore webhook examples in the **[demo projects](?path=/docs/phoenix-quickstart--docs)** and finalization workflows.
1686
+
1687
+ ## Cognito configurator sign-in
1688
+
1689
+ Use shared Phoenix accounts when invited dealers should open a configurator and project administrators should edit its catalog. This path requires a Cognito SDK Builder workspace and the current application-spec pipeline. Standard customers and staff retain Clerk; existing `useClerk` and custom handlers keep their defaults.
1690
+
1691
+ Add this to `spec/application.yaml`, then run `phoenix sync` and deploy to your workspace:
1692
+
1693
+ ```yaml
1694
+ useCognito: true
1695
+ sessionData:
1696
+ type: object
1697
+ properties:
1698
+ id:
1699
+ type: string
1700
+ emailAddress:
1701
+ type: string
1702
+ fullName:
1703
+ type:
1704
+ - string
1705
+ - 'null'
1706
+ accessToken:
1707
+ type: string
1708
+ tags:
1709
+ type: array
1710
+ items:
1711
+ type: string
1712
+ required: []
1713
+ additionalProperties: false
1714
+ ```
1715
+
1716
+ `useCognito` enables the auth hook, generated redirect sign-in pages, and the built-in Cognito handler. It cannot be combined with `useClerk: true` or `useAuthHook: false`. An incompatible session schema reports `COGNITO_SESSION_DATA_INCOMPATIBLE`. No custom webhook is needed for an invitation-only project: the built-in webhook refuses anonymous sessions.
1717
+
1718
+ If the project already has a webhook, register its auth hook as usual. The generated auth builder accepts Cognito identities automatically; `withCognitoHandlers()` also enables the handler when assembling a builder manually. Anonymous, custom code and custom refresh handlers compose with it:
1719
+
1720
+ ```typescript
1721
+ const authHandler = phx.webhooks.authHandlerBuilder
1722
+ .withCognitoHandlers()
1723
+ .withAnonymousHandler(async () => ({ success: true, data: {}, role: 'anonymous' }))
1724
+ .build()
1725
+
1726
+ export default phx.webhooks.webhookBuilder.withAuthHook(authHandler).build()
1727
+ ```
1728
+
1729
+ The server redirects through the shared pool's login and `/auth/callback`, then returns a one-use code to the exact allowed frontend origin, preserving its path and query. A signed-in Studio account may still need to authenticate. A missing project grant opens **Access denied**, with an explicit retry instead of a redirect loop. Project User grants open the configurator; Admin and Superadmin grants also open its admin. Workspace Superadmins inherit every project. Workspace User/Admin membership alone grants no project access and does not grant Builder management access.
1730
+
1731
+ `id` is the stable Phoenix account UUID; the session subject is `phoenix-<id>`. `emailAddress` comes from verified native email, `tags` from the current workspace membership, and `fullName` is currently null. `accessToken` is an empty compatibility field: Cognito credentials never reach project code. Custom fields may be added to the schema, but the server protects identity, role and tags from changes by a webhook.
1732
+
1733
+ Sessions last at most five minutes and refresh through an opaque credential bounded to fifteen minutes from sign-in. Refresh does not renew that authentication deadline; sign in again afterwards. The server checks current account status, membership, project role and tags on each protected API request and refresh. Revocation takes effect on the next API request; changed tags or role require a refresh. This does not retract data already downloaded by the browser. Local sign-out clears the configurator session; the shared provider cookie can still make a later explicit sign-in silent.
1734
+
1735
+ Only the existing public `SERVER_URL` and `DEPLOYMENT_ID` are needed in generated projects. The server owns the pool/client configuration, login callback and credentials. There is no customer OAuth secret or per-customer Cognito client. The server sends resolved identities only over the existing IAM-authenticated Lambda transport or authenticated development tunnel; never expose a production webhook as an unauthenticated HTTP endpoint.
1736
+
1737
+ The Fold `demo-modular-layout` demonstrates Cognito admin sign-in alongside a public anonymous configurator. Its README describes workspace setup and the manual regression flow. Browser-local persistence cannot exercise real Cognito sign-in. Social sign-in/linking, MFA, public signup, custom branding and Standard-customer migration are separate work.