@salsita-ai/sdk 0.50.0-develop.b47f1774a2 → 0.50.0-develop.b5d443db78

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 (1282) hide show
  1. package/README.md +8 -2
  2. package/dist/admin/AdminShell.js +1 -1
  3. package/dist/admin/common/admin-interface.d.ts +1 -1
  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/core/enhanced-json-value.d.ts +2 -31
  8. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  9. package/dist/application-spec/core/index.d.ts +1 -3
  10. package/dist/application-spec/core/index.js +1 -1
  11. package/dist/application-spec/core/json-schema.d.ts +2 -52
  12. package/dist/application-spec/core/markers/index.d.ts +1 -1
  13. package/dist/application-spec/core/markers/index.js +1 -1
  14. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  15. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  16. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  17. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  18. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  19. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -1
  20. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  21. package/dist/application-spec/errors/diagnostic-messages.d.ts +16 -1
  22. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  23. package/dist/application-spec/generate-application/code/domain-runtime-files.d.ts +0 -19
  24. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  25. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  26. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-locale.js +1 -1
  27. package/dist/application-spec/generate-application/code/templates/gitignore.js +2 -1
  28. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  29. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  30. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +5 -4
  31. package/dist/application-spec/generate-application/code/templates/skills/core/cli.d.ts +2 -0
  32. package/dist/application-spec/generate-application/code/templates/skills/core/cli.js +1 -0
  33. package/dist/application-spec/generate-application/code/templates/skills/core/index.d.ts +3 -0
  34. package/dist/application-spec/generate-application/code/templates/skills/core/index.js +1 -0
  35. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.d.ts +2 -0
  36. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.js +118 -0
  37. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.d.ts +2 -0
  38. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.js +44 -0
  39. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.d.ts +3 -0
  40. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.js +3 -0
  41. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.d.ts +1 -0
  42. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.js +1 -0
  43. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.d.ts +3 -0
  44. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.js +48 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.d.ts +3 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.js +38 -0
  47. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.d.ts +3 -0
  48. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.js +35 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.d.ts +3 -0
  50. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.js +61 -0
  51. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.d.ts +3 -0
  52. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.js +7 -0
  53. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.d.ts +3 -0
  54. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.js +79 -0
  55. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.d.ts +1 -0
  56. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.js +1 -0
  57. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.d.ts +3 -0
  58. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.js +52 -0
  59. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.d.ts +3 -0
  60. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.js +49 -0
  61. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.d.ts +3 -0
  62. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.js +62 -0
  63. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.d.ts +3 -0
  64. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.js +40 -0
  65. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.d.ts +3 -0
  66. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.js +65 -0
  67. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.d.ts +3 -0
  68. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.js +58 -0
  69. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.d.ts +3 -0
  70. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.js +41 -0
  71. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.d.ts +3 -0
  72. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.js +24 -0
  73. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.d.ts +3 -0
  74. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.js +44 -0
  75. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.d.ts +3 -0
  76. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.js +74 -0
  77. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.d.ts +3 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.js +8 -0
  79. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.d.ts +1 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.js +1 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.d.ts +3 -0
  82. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.js +48 -0
  83. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.d.ts +3 -0
  84. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.js +64 -0
  85. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.d.ts +3 -0
  86. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.js +62 -0
  87. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.d.ts +3 -0
  88. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.js +1 -0
  89. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.d.ts +3 -0
  90. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.js +59 -0
  91. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.d.ts +3 -0
  92. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.js +46 -0
  93. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.d.ts +1 -0
  94. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.js +1 -0
  95. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.d.ts +3 -0
  96. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.js +43 -0
  97. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.d.ts +3 -0
  98. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.js +30 -0
  99. package/dist/application-spec/generate-application/code/templates/skills/features/features.d.ts +3 -0
  100. package/dist/application-spec/generate-application/code/templates/skills/features/features.js +1 -0
  101. package/dist/application-spec/generate-application/code/templates/skills/features/index.d.ts +1 -0
  102. package/dist/application-spec/generate-application/code/templates/skills/features/index.js +1 -0
  103. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.d.ts +2 -0
  104. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.js +1 -0
  105. package/dist/application-spec/generate-application/code/templates/skills/features/localization.d.ts +3 -0
  106. package/dist/application-spec/generate-application/code/templates/skills/features/localization.js +87 -0
  107. package/dist/application-spec/generate-application/code/templates/skills/features/scene-objects.d.ts +3 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/features/scene-objects.js +43 -0
  109. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.d.ts +1 -0
  110. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.js +1 -0
  111. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.d.ts +3 -0
  112. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.js +48 -0
  113. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.d.ts +3 -0
  114. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.js +1 -0
  115. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.d.ts +3 -0
  116. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.js +39 -0
  117. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.d.ts +3 -0
  118. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.js +36 -0
  119. package/dist/application-spec/generate-application/code/templates/skills/features/variants.d.ts +2 -0
  120. package/dist/application-spec/generate-application/code/templates/skills/features/variants.js +1 -0
  121. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.d.ts +2 -0
  122. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.js +1 -0
  123. package/dist/application-spec/generate-application/code/templates/skills/guide.d.ts +68 -0
  124. package/dist/application-spec/generate-application/code/templates/skills/guide.js +18 -0
  125. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  126. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +14 -0
  127. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.d.ts +9 -0
  128. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.js +1 -0
  129. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.d.ts +2 -0
  130. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.js +23 -0
  131. package/dist/application-spec/generate-application/code/templates/skills/{phoenix-skill.d.ts → processes/beta.d.ts} +2 -1
  132. package/dist/application-spec/generate-application/code/templates/skills/processes/beta.js +4 -0
  133. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.d.ts +2 -0
  134. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.js +38 -0
  135. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.d.ts +3 -0
  136. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.js +1 -0
  137. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.d.ts +1 -0
  138. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.js +1 -0
  139. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.d.ts +2 -0
  140. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.js +7 -0
  141. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.d.ts +2 -0
  142. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.js +2 -0
  143. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.d.ts +2 -0
  144. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.js +2 -0
  145. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.d.ts +2 -0
  146. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.js +25 -0
  147. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.d.ts +2 -0
  148. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.js +35 -0
  149. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.d.ts +3 -0
  150. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.js +3 -0
  151. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.d.ts +2 -0
  152. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.js +9 -0
  153. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.d.ts +1 -0
  154. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.js +1 -0
  155. package/dist/application-spec/generate-application/code/templates/skills/processes/index.d.ts +8 -0
  156. package/dist/application-spec/generate-application/code/templates/skills/processes/index.js +1 -0
  157. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.d.ts +2 -0
  158. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.js +1 -0
  159. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.d.ts +2 -0
  160. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.js +46 -0
  161. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.d.ts +2 -0
  162. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.js +2 -0
  163. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.d.ts +2 -0
  164. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.js +6 -0
  165. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.d.ts +1 -0
  166. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.js +1 -0
  167. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.d.ts +3 -0
  168. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.js +1 -0
  169. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.d.ts +2 -0
  170. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.js +13 -0
  171. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.d.ts +2 -0
  172. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.js +20 -0
  173. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.d.ts +2 -0
  174. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.js +1 -0
  175. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.d.ts +1 -0
  176. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.js +1 -0
  177. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.d.ts +2 -0
  178. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.js +22 -0
  179. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.d.ts +3 -0
  180. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.js +1 -0
  181. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.d.ts +2 -0
  182. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.js +25 -0
  183. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +51 -258
  184. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +3 -58
  185. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.d.ts +9 -0
  186. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.js +1 -0
  187. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +1 -1
  188. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -1
  189. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  190. package/dist/application-spec/generate-application/code/templates/tsconfig.js +2 -1
  191. package/dist/application-spec/generate-application/index.d.ts +1 -8
  192. package/dist/application-spec/generate-application/index.js +1 -1
  193. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  194. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  195. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  196. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  197. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  198. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  199. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  200. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  201. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +25 -20
  202. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  203. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  204. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  205. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  206. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  207. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  208. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  209. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  210. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  211. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
  212. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  213. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  214. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  215. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  216. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
  217. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  218. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
  219. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
  220. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
  221. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  222. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  223. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  224. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
  225. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  226. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
  227. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  228. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  229. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  230. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  231. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  232. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  233. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  234. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  235. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  236. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  237. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  238. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  239. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  240. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  241. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  242. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  243. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  244. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  245. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  246. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  247. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  248. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  249. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  250. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  251. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  252. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  253. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  254. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  255. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  256. package/dist/client/authorized-client.d.ts +4 -2
  257. package/dist/client/authorized-client.js +1 -1
  258. package/dist/client/contract.d.ts +46 -5
  259. package/dist/client/contract.js +1 -1
  260. package/dist/client/index.d.ts +1 -1
  261. package/dist/client/local-authorized-client.d.ts +3 -1
  262. package/dist/client/local-authorized-client.js +1 -1
  263. package/dist/client/memory-authorized-client.d.ts +4 -1
  264. package/dist/client/memory-authorized-client.js +1 -1
  265. package/dist/client/phoenix-api.d.ts +281 -4
  266. package/dist/configurator/ConfiguratorApp.js +1 -1
  267. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  268. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.d.ts +31 -0
  269. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +142 -24
  270. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  271. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +21 -4
  272. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  273. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +43 -0
  274. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.js +1 -1
  275. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +70 -56
  276. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  277. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +38 -11
  278. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  279. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  280. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  281. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.d.ts +10 -0
  282. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.js +1 -0
  283. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +8 -0
  284. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  285. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +3 -2
  286. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  287. package/dist/configurator/common/configurator-interface.d.ts +14 -4
  288. package/dist/configurator/common/configurator-interface.js +1 -1
  289. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  290. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  291. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  292. package/dist/configurator/configurator-context/index.d.ts +0 -5
  293. package/dist/configurator/configurator-context/index.js +1 -1
  294. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  295. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  296. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  297. package/dist/configurator/pages/default-configurator-elements.d.ts +6 -2
  298. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  299. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.d.ts +5 -0
  300. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.js +1 -0
  301. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  302. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  303. package/dist/configurator/pages/error-boundaries/index.d.ts +1 -0
  304. package/dist/configurator/pages/error-boundaries/index.js +1 -1
  305. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.d.ts +3 -0
  306. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.js +1 -0
  307. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.d.ts +3 -0
  308. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.js +1 -0
  309. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.d.ts +3 -0
  310. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.js +1 -0
  311. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.d.ts +3 -0
  312. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.js +1 -0
  313. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.d.ts +3 -0
  314. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.js +1 -0
  315. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.d.ts +3 -0
  316. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.js +1 -0
  317. package/dist/configurator/pages/provider-slots/index.d.ts +6 -0
  318. package/dist/configurator/pages/provider-slots/index.js +1 -0
  319. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.d.ts +2 -0
  320. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.js +1 -0
  321. package/dist/configurator/pages/ui-elements/configurator-ui-elements.d.ts +3 -0
  322. package/dist/configurator/pages/ui-elements/configurator-ui-elements.js +1 -0
  323. package/dist/configurator/pages/ui-elements/index.d.ts +2 -0
  324. package/dist/configurator/pages/ui-elements/index.js +1 -0
  325. package/dist/configurator/scene/cameras/CameraPadding.js +1 -1
  326. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -0
  327. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  328. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +4 -0
  329. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  330. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  331. package/dist/configurator/ui/assistant/AssistantThread.d.ts +4 -3
  332. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  333. package/dist/configurator/ui/assistant/AssistantThreadItemView.d.ts +27 -0
  334. package/dist/configurator/ui/assistant/AssistantThreadItemView.js +1 -0
  335. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +4 -1
  336. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -1
  337. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.d.ts +9 -0
  338. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.js +1 -0
  339. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.d.ts +6 -0
  340. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.js +1 -0
  341. package/dist/configurator/ui/assistant/annotation/AnnotationPin.d.ts +14 -0
  342. package/dist/configurator/ui/assistant/annotation/AnnotationPin.js +1 -0
  343. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.d.ts +12 -0
  344. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.js +1 -0
  345. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.d.ts +11 -0
  346. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.js +1 -0
  347. package/dist/configurator/ui/assistant/annotation/annotation-host-context.d.ts +5 -0
  348. package/dist/configurator/ui/assistant/annotation/annotation-host-context.js +1 -0
  349. package/dist/configurator/ui/assistant/annotation/annotation-layout.d.ts +26 -0
  350. package/dist/configurator/ui/assistant/annotation/annotation-layout.js +1 -0
  351. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.d.ts +15 -0
  352. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.js +1 -0
  353. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.d.ts +18 -0
  354. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.js +1 -0
  355. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.d.ts +22 -0
  356. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.js +1 -0
  357. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.d.ts +22 -0
  358. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.js +1 -0
  359. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.d.ts +17 -0
  360. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.js +1 -0
  361. package/dist/configurator/ui/assistant/annotation/editor/index.d.ts +1 -0
  362. package/dist/configurator/ui/assistant/annotation/editor/index.js +1 -0
  363. package/dist/configurator/ui/assistant/annotation/index.d.ts +4 -0
  364. package/dist/configurator/ui/assistant/annotation/index.js +1 -0
  365. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.d.ts +2 -0
  366. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.js +1 -0
  367. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.d.ts +6 -0
  368. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.js +1 -0
  369. package/dist/configurator/ui/assistant/assistant-failure.d.ts +17 -7
  370. package/dist/configurator/ui/assistant/assistant-failure.js +1 -1
  371. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +19 -0
  372. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  373. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  374. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  375. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +24 -0
  376. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  377. package/dist/configurator/ui/assistant/composer/composer-frame.d.ts +15 -0
  378. package/dist/configurator/ui/assistant/composer/composer-frame.js +1 -0
  379. package/dist/configurator/ui/assistant/composer/index.d.ts +1 -0
  380. package/dist/configurator/ui/assistant/composer/index.js +1 -0
  381. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  382. package/dist/configurator/ui/assistant/entity-link/index.d.ts +1 -1
  383. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  384. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +26 -0
  385. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -1
  386. package/dist/configurator/ui/assistant/index.d.ts +10 -0
  387. package/dist/configurator/ui/assistant/index.js +1 -1
  388. package/dist/configurator/ui/assistant/popover/AssistantPopover.d.ts +24 -0
  389. package/dist/configurator/ui/assistant/popover/AssistantPopover.js +1 -0
  390. package/dist/configurator/ui/assistant/popover/index.d.ts +1 -0
  391. package/dist/configurator/ui/assistant/popover/index.js +1 -0
  392. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -1
  393. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -1
  394. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  395. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  396. package/dist/configurator/ui/assistant/screenshots/index.d.ts +1 -0
  397. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  398. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +6 -4
  399. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  400. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  401. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  402. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +11 -0
  403. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  404. package/dist/configurator/ui/assistant/thread-items.d.ts +5 -0
  405. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  406. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  407. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  408. package/dist/configurator/ui/assistant/use-assistant-composer.d.ts +69 -0
  409. package/dist/configurator/ui/assistant/use-assistant-composer.js +2 -0
  410. package/dist/configurator/ui/assistant/use-assistant-thread.d.ts +52 -0
  411. package/dist/configurator/ui/assistant/use-assistant-thread.js +1 -0
  412. package/dist/configurator/ui/assistant/use-load-older-on-top.d.ts +22 -0
  413. package/dist/configurator/ui/assistant/use-load-older-on-top.js +1 -0
  414. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  415. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  416. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  417. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  418. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  419. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  420. package/dist/configurator/ui/index.d.ts +1 -1
  421. package/dist/configurator/ui/index.js +1 -1
  422. package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
  423. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  424. package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.js +1 -1
  425. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  426. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  427. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  428. package/dist/configurator/ui/legacy/layout/steps/StepsSideBar.js +1 -1
  429. package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
  430. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  431. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  432. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  433. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  434. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  435. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
  436. package/dist/docs/3d-scene/animations-basic.mdx +0 -4
  437. package/dist/docs/3d-scene/camera-based-hiding.mdx +0 -2
  438. package/dist/docs/3d-scene/cameras/custom.mdx +4 -4
  439. package/dist/docs/3d-scene/cameras/fit-during-drag.mdx +0 -4
  440. package/dist/docs/3d-scene/cameras/locks.mdx +0 -4
  441. package/dist/docs/3d-scene/cameras/transitions.mdx +0 -2
  442. package/dist/docs/3d-scene/engraving.mdx +0 -4
  443. package/dist/docs/3d-scene/materials/custom.mdx +1 -2
  444. package/dist/docs/3d-scene/materials/inherit.mdx +0 -4
  445. package/dist/docs/3d-scene/materials/multilevel.mdx +0 -47
  446. package/dist/docs/3d-scene/materials/override.mdx +0 -4
  447. package/dist/docs/3d-scene/materials/simple.mdx +0 -4
  448. package/dist/docs/3d-scene/materials/transformer.mdx +0 -4
  449. package/dist/docs/3d-scene/materials/transition.mdx +0 -4
  450. package/dist/docs/3d-scene/materials/transmissive.mdx +0 -4
  451. package/dist/docs/3d-scene/postprocessing.mdx +0 -2
  452. package/dist/docs/3d-scene/rendering/basic.mdx +5 -9
  453. package/dist/docs/3d-scene/rendering/custom-entity.mdx +0 -6
  454. package/dist/docs/3d-scene/rendering/lights/ambient-light.mdx +0 -2
  455. package/dist/docs/3d-scene/rendering/lights/directional-light.mdx +0 -2
  456. package/dist/docs/3d-scene/rendering/lights/point-light.mdx +0 -2
  457. package/dist/docs/3d-scene/rendering/lights/rect-area-light.mdx +0 -2
  458. package/dist/docs/3d-scene/rendering/lights/spot-light.mdx +0 -2
  459. package/dist/docs/3d-scene/rendering/object-groups.mdx +0 -2
  460. package/dist/docs/3d-scene/rendering/objects.mdx +0 -4
  461. package/dist/docs/3d-scene/rendering/scene-entity-object.mdx +0 -43
  462. package/dist/docs/3d-scene/rendering/smma.mdx +0 -2
  463. package/dist/docs/3d-scene/rendering/soft-shadows.mdx +0 -2
  464. package/dist/docs/3d-scene/rendering/transformer.mdx +1 -3
  465. package/dist/docs/complex-use-cases/custom-ui-on-root-level.mdx +0 -1
  466. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +19 -19
  467. package/dist/docs/complex-use-cases/navigation-guard.mdx +81 -19
  468. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +28 -65
  469. package/dist/docs/complex-use-cases/navigation-reset-undo.mdx +16 -20
  470. package/dist/docs/complex-use-cases/sketching.mdx +2 -10
  471. package/dist/docs/controls/custom.mdx +88 -87
  472. package/dist/docs/controls/manage-child-entities/entitychildrenlist.mdx +0 -4
  473. package/dist/docs/controls/nullable-attributes.mdx +0 -2
  474. package/dist/docs/controls/scene/custom-controls.mdx +7 -8
  475. package/dist/docs/controls/scene/html-hotspots.mdx +0 -4
  476. package/dist/docs/controls/scene/object-html-hotspots.mdx +0 -4
  477. package/dist/docs/controls/select-attribute/cardselect.mdx +0 -4
  478. package/dist/docs/controls/select-attribute/listselect.mdx +0 -4
  479. package/dist/docs/controls/select-attribute/select.mdx +0 -4
  480. package/dist/docs/controls/select-attribute/swatchselect.mdx +0 -4
  481. package/dist/docs/controls/select-attribute/switchselect.mdx +0 -4
  482. package/dist/docs/controls/select-attribute/toggleselect.mdx +0 -4
  483. package/dist/docs/controls/select-child-entity/cardselect.mdx +2 -6
  484. package/dist/docs/controls/select-child-entity/listselect.mdx +5 -11
  485. package/dist/docs/controls/select-child-entity/toggleselect.mdx +4 -10
  486. package/dist/docs/controls/text-input.mdx +90 -19
  487. package/dist/docs/demos/glass.mdx +0 -4
  488. package/dist/docs/demos/heater.mdx +0 -10
  489. package/dist/docs/demos/office-chair.mdx +0 -8
  490. package/dist/docs/demos/office-desk.mdx +0 -8
  491. package/dist/docs/demos/ring.mdx +0 -9
  492. package/dist/docs/dimensions/3d-scene-integration/angle-indicators.mdx +0 -2
  493. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +0 -2
  494. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +0 -14
  495. package/dist/docs/dimensions/3d-scene-integration/editable-offset-indicator.mdx +0 -6
  496. package/dist/docs/dimensions/3d-scene-integration/editable-size-indicator.mdx +0 -4
  497. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +0 -16
  498. package/dist/docs/dimensions/3d-scene-integration/offset-indicator.mdx +0 -6
  499. package/dist/docs/dimensions/3d-scene-integration/overlap-offset-demo.mdx +0 -6
  500. package/dist/docs/dimensions/basic-concepts/dimension-data-unit.mdx +0 -12
  501. package/dist/docs/dimensions/basic-concepts/dimension-unit-config.mdx +0 -12
  502. package/dist/docs/dimensions/input-controls/distance-input.mdx +0 -12
  503. package/dist/docs/dimensions/input-controls/distance-slider.mdx +6 -18
  504. package/dist/docs/dimensions/selection-controls/list-selector.mdx +0 -14
  505. package/dist/docs/dimensions/selection-controls/toggle-selector.mdx +0 -14
  506. package/dist/docs/drag-and-drop/drag-handle.mdx +0 -1
  507. package/dist/docs/drag-and-drop/hotspot-handle.mdx +0 -1
  508. package/dist/docs/drag-and-drop/no-selection.mdx +0 -1
  509. package/dist/docs/drag-and-drop/planes.mdx +0 -3
  510. package/dist/docs/drag-and-drop/room-planner.mdx +1 -7
  511. package/dist/docs/drag-and-drop/rotatable.mdx +0 -1
  512. package/dist/docs/drag-and-drop/snapping/auto-rotation-demo.mdx +0 -2
  513. package/dist/docs/drag-and-drop/snapping/label-matching-demo.mdx +0 -2
  514. package/dist/docs/drag-and-drop/snapping/multi-snap-composition-demo.mdx +0 -2
  515. package/dist/docs/drag-and-drop/snapping/nested-entity-demo.mdx +0 -2
  516. package/dist/docs/drag-and-drop/snapping/priority-demo.mdx +0 -2
  517. package/dist/docs/drag-and-drop/snapping/snap-axis-demo.mdx +0 -2
  518. package/dist/docs/drag-and-drop/snapping/snap-edge-demo.mdx +0 -2
  519. package/dist/docs/drag-and-drop/snapping/snap-plane-demo.mdx +0 -5
  520. package/dist/docs/drag-and-drop/snapping/snap-point-demo.mdx +0 -2
  521. package/dist/docs/drag-and-drop/spatial-constraints/collision-system.mdx +0 -2
  522. package/dist/docs/drag-and-drop/spatial-constraints/disjoint-and-within.mdx +0 -6
  523. package/dist/docs/drag-and-drop/spatial-constraints/geometry-override.mdx +0 -4
  524. package/dist/docs/drag-and-drop/spatial-constraints/multiple-collision-meshes.mdx +0 -4
  525. package/dist/docs/drag-and-drop/spatial-constraints/touches.mdx +0 -4
  526. package/dist/docs/drag-and-drop/swap.mdx +0 -4
  527. package/dist/docs/fabs/basic.mdx +6 -12
  528. package/dist/docs/fabs/layout.mdx +0 -7
  529. package/dist/docs/index.json +4 -4
  530. package/dist/docs/integrations/lifecycle-providers.mdx +0 -12
  531. package/dist/docs/integrations/onloadprovider.mdx +0 -3
  532. package/dist/docs/integrations/webcomponent-api/basics.mdx +6 -2
  533. package/dist/docs/integrations/webcomponent-api/preset-tags.mdx +4 -1
  534. package/dist/docs/layouts/custom-layout.mdx +1 -41
  535. package/dist/docs/layouts/custom-price.mdx +0 -2
  536. package/dist/docs/layouts/custom-theme-handler.mdx +0 -4
  537. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3 -34
  538. package/dist/docs/layouts/gallery/corvid-drone.mdx +0 -29
  539. package/dist/docs/layouts/gallery/fenwick-window.mdx +0 -25
  540. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +0 -27
  541. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +0 -29
  542. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +2 -35
  543. package/dist/docs/layouts/gallery/sunfold-solar.mdx +0 -26
  544. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +0 -46
  545. package/dist/docs/layouts/header/custom.mdx +0 -2
  546. package/dist/docs/layouts/icon-sets.mdx +0 -6
  547. package/dist/docs/layouts/phoenix-elements.mdx +0 -4
  548. package/dist/docs/layouts/phoenix-handlers.mdx +19 -28
  549. package/dist/docs/layouts/presets/action-and-overlay.mdx +0 -8
  550. package/dist/docs/layouts/presets/custom.mdx +6 -13
  551. package/dist/docs/layouts/preview/always-expand.mdx +4 -14
  552. package/dist/docs/layouts/preview/always.mdx +4 -14
  553. package/dist/docs/layouts/preview/auto-presets.mdx +4 -14
  554. package/dist/docs/layouts/preview/auto.mdx +4 -14
  555. package/dist/docs/layouts/preview/never.mdx +4 -14
  556. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +18 -13
  557. package/dist/docs/layouts/sidebar/property-page-stack.mdx +0 -2
  558. package/dist/docs/layouts/sidebar/property-page.mdx +0 -2
  559. package/dist/docs/layouts/sidebar/tabs.mdx +0 -4
  560. package/dist/docs/layouts/sidebar-footer/custom.mdx +0 -2
  561. package/dist/docs/layouts/sidebar-footer/universal.mdx +0 -10
  562. package/dist/docs/layouts/tool-controls.mdx +0 -1
  563. package/dist/docs/layouts/toolbar.mdx +0 -4
  564. package/dist/docs/layouts/universal.mdx +2 -22
  565. package/dist/docs/other-features/client-side-rendering/camera-padding.mdx +0 -2
  566. package/dist/docs/other-features/client-side-rendering/custom.mdx +0 -6
  567. package/dist/docs/other-features/client-side-rendering/declarative.mdx +0 -4
  568. package/dist/docs/other-features/client-side-rendering/postprocessing.mdx +0 -6
  569. package/dist/docs/other-features/component-filters.mdx +0 -7
  570. package/dist/docs/other-features/currency.mdx +5 -6
  571. package/dist/docs/other-features/domain-actions.mdx +0 -5
  572. package/dist/docs/other-features/dynamic-component-attachments.mdx +75 -46
  573. package/dist/docs/other-features/error-5xx.mdx +0 -14
  574. package/dist/docs/other-features/navigation-hotspot.mdx +0 -5
  575. package/dist/docs/other-features/not-found-404.mdx +0 -14
  576. package/dist/docs/other-features/projected-entities.mdx +0 -5
  577. package/dist/docs/other-features/side-effects.mdx +0 -23
  578. package/dist/docs/other-features/transformers.mdx +101 -96
  579. package/dist/docs/other-features/violation-messages.mdx +0 -4
  580. package/dist/docs/other-features/violation-severity.mdx +2 -3
  581. package/dist/docs/performance/clone-highlight.mdx +0 -7
  582. package/dist/docs/performance/dynamic-components.mdx +0 -6
  583. package/dist/docs/performance/editable-dimension-stress-test.mdx +0 -2
  584. package/dist/docs/performance/fast-highlight.mdx +0 -7
  585. package/dist/docs/performance/general.mdx +0 -7
  586. package/dist/docs/performance/render-isolation.mdx +0 -6
  587. package/dist/docs/phoenix/admin.mdx +75 -100
  588. package/dist/docs/phoenix/application-states.mdx +45 -27
  589. package/dist/docs/phoenix/components.mdx +53 -46
  590. package/dist/docs/phoenix/configurator-interface.mdx +208 -117
  591. package/dist/docs/phoenix/deployments.mdx +11 -1
  592. package/dist/docs/phoenix/domain-model.mdx +24 -16
  593. package/dist/docs/phoenix/expression-context.mdx +3 -29
  594. package/dist/docs/phoenix/getting-started.mdx +0 -2
  595. package/dist/docs/phoenix/layout-slots.mdx +21 -0
  596. package/dist/docs/phoenix/localization.mdx +64 -54
  597. package/dist/docs/phoenix/migration-guide.mdx +10 -11
  598. package/dist/docs/phoenix/phoenix-cli.mdx +57 -15
  599. package/dist/docs/phoenix/project-structure.mdx +52 -55
  600. package/dist/docs/phoenix/quickstart.mdx +1 -3
  601. package/dist/docs/phoenix/sdk-builder-workflow.mdx +3 -9
  602. package/dist/docs/phoenix/state-management.mdx +18 -16
  603. package/dist/docs/phoenix/testing.mdx +6 -1
  604. package/dist/docs/phoenix/webhooks.mdx +9 -1
  605. package/dist/docs/recipes-and-delete/delete-entity.mdx +3 -6
  606. package/dist/docs/recipes-and-delete/dynamic-root-entity.mdx +0 -2
  607. package/dist/docs/recipes-and-delete/grouped-button.mdx +0 -3
  608. package/dist/docs/recipes-and-delete/grouped-panel.mdx +0 -3
  609. package/dist/docs/recipes-and-delete/horizontal.mdx +3 -6
  610. package/dist/docs/recipes-and-delete/recipe-hierarchy-lists.mdx +0 -3
  611. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +0 -5
  612. package/dist/docs/recipes-and-delete/replace-dropdown.mdx +3 -6
  613. package/dist/docs/recipes-and-delete/replace-panel.mdx +0 -7
  614. package/dist/docs/recipes-and-delete/simple.mdx +3 -6
  615. package/dist/docs/recipes-and-delete/vertical.mdx +3 -6
  616. package/dist/docs/relations/aliases.mdx +0 -2
  617. package/dist/docs/relations/all-of-type.mdx +0 -4
  618. package/dist/docs/relations/child-nullable.mdx +0 -4
  619. package/dist/docs/relations/child-required.mdx +0 -2
  620. package/dist/docs/relations/collection-direct.mdx +0 -4
  621. package/dist/docs/relations/collection-indirect.mdx +0 -4
  622. package/dist/docs/relations/collection-multiple.mdx +0 -2
  623. package/dist/docs/relations/cross-reference.mdx +0 -2
  624. package/dist/docs/relations/hierarchy.mdx +0 -2
  625. package/dist/docs/selection-and-highlight/canvas.mdx +0 -1
  626. package/dist/docs/selection-and-highlight/disable-highlight-per-object.mdx +0 -1
  627. package/dist/docs/selection-and-highlight/disable-highlight.mdx +0 -1
  628. package/dist/docs/selection-and-highlight/effects/outline.mdx +0 -3
  629. package/dist/docs/selection-and-highlight/effects/overlay.mdx +0 -3
  630. package/dist/docs/selection-and-highlight/fast-emissive-highlight.mdx +0 -3
  631. package/dist/docs/selection-and-highlight/group-highlighting.mdx +0 -1
  632. package/dist/docs/selection-and-highlight/hierarchy.mdx +100 -151
  633. package/dist/docs/selection-and-highlight/hotspots.mdx +0 -1
  634. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  635. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  636. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  637. package/dist/domain/application/application-config.d.ts +6 -26
  638. package/dist/domain/application/assistant/assistant-fields.d.ts +1 -1
  639. package/dist/domain/application/assistant/assistant-value-type.d.ts +1 -1
  640. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +1 -2
  641. package/dist/domain/application/assistant/build-assistant-lenses.js +1 -1
  642. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +1 -2
  643. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  644. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -2
  645. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  646. package/dist/domain/application/assistant/index.d.ts +0 -4
  647. package/dist/domain/application/assistant/index.js +1 -1
  648. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +1 -1
  649. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +1 -1
  650. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  651. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +3 -5
  652. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  653. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +1 -2
  654. package/dist/domain/application/assistant-field-options.d.ts +1 -1
  655. package/dist/domain/application/assistant-mutations.d.ts +1 -1
  656. package/dist/domain/application/assistant-mutations.js +1 -1
  657. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  658. package/dist/domain/application/configurator-builder.d.ts +1 -2
  659. package/dist/domain/application/create-initial-published-data.d.ts +2 -1
  660. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  661. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  662. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  663. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  664. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  665. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  666. package/dist/domain/available-system-components/available-system-components.js +1 -0
  667. package/dist/domain/available-system-components/index.d.ts +1 -0
  668. package/dist/domain/available-system-components/index.js +1 -0
  669. package/dist/domain/core/domain.js +1 -1
  670. package/dist/domain/core/invariant/violation.d.ts +3 -2
  671. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  672. package/dist/domain/domain-builder/domain-builder.js +1 -0
  673. package/dist/domain/domain-builder/index.d.ts +1 -0
  674. package/dist/domain/domain-builder/index.js +1 -0
  675. package/dist/domain/domain-context/transformers/context.d.ts +4 -2
  676. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -1
  677. package/dist/domain/domain-runtime/domain-runtime.d.ts +24 -24
  678. package/dist/domain/domain-runtime/index.d.ts +0 -1
  679. package/dist/domain/domain-runtime/index.js +1 -1
  680. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +1 -1
  681. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -1
  682. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  683. package/dist/domain/domain-runtime/spec/index.js +1 -1
  684. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  685. package/dist/domain/domain-runtime/spec/{module-checks/resolve-imported-transformers.d.ts → resolve-imported-transformers.d.ts} +3 -3
  686. package/dist/domain/domain-runtime/spec/resolve-imported-transformers.js +1 -0
  687. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -5
  688. package/dist/domain/domain-runtime/spec/types.d.ts +2 -2
  689. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  690. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  691. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  692. package/dist/domain/extensions/export-images/index.js +1 -1
  693. package/dist/domain/extensions/index.d.ts +1 -1
  694. package/dist/domain/extensions/index.js +1 -1
  695. package/dist/domain/extensions/scene-entity-delete-fab.d.ts +1 -1
  696. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -1
  697. package/dist/domain/index.d.ts +15 -2
  698. package/dist/domain/index.js +1 -1
  699. package/dist/domain/mocks/create-test-application-config.d.ts +1 -1
  700. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  701. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  702. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  703. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  704. package/dist/domain/spec/application/index.d.ts +5 -0
  705. package/dist/domain/spec/application/index.js +1 -0
  706. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  707. package/dist/domain/spec/components/bindings/index.js +1 -0
  708. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  709. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  710. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  711. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  712. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
  713. package/dist/domain/spec/components/component-entry.js +1 -0
  714. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  715. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  716. package/dist/domain/spec/components/component-filters.js +1 -0
  717. package/dist/domain/spec/components/components.d.ts +4 -0
  718. package/dist/domain/spec/components/components.js +1 -0
  719. package/dist/domain/spec/components/index.d.ts +6 -0
  720. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  721. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  722. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  723. package/dist/domain/spec/enhanced-json/index.js +1 -0
  724. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
  725. package/dist/domain/spec/expressions/expression.js +1 -0
  726. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  727. package/dist/domain/spec/expressions/expressions.js +1 -0
  728. package/dist/domain/spec/expressions/index.d.ts +5 -0
  729. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  730. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  731. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  732. package/dist/domain/spec/index.d.ts +4 -0
  733. package/dist/domain/spec/index.js +1 -0
  734. package/dist/domain/spec/invariants/index.d.ts +2 -0
  735. package/dist/domain/spec/invariants/index.js +1 -0
  736. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  737. package/dist/domain/spec/invariants/invariant.js +1 -0
  738. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  739. package/dist/domain/spec/invariants/invariants.js +1 -0
  740. package/dist/domain/spec/json-schema.d.ts +52 -0
  741. package/dist/domain/spec/json-schema.js +1 -0
  742. package/dist/domain/spec/markers/index.d.ts +3 -0
  743. package/dist/domain/spec/markers/index.js +1 -0
  744. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  745. package/dist/domain/spec/markers/msg-marker.js +1 -0
  746. package/dist/domain/spec/model/aliases.d.ts +9 -0
  747. package/dist/domain/spec/model/aliases.js +1 -0
  748. package/dist/domain/spec/model/common-types.d.ts +15 -0
  749. package/dist/domain/spec/model/common-types.js +1 -0
  750. package/dist/domain/spec/model/defaults.d.ts +33 -0
  751. package/dist/domain/spec/model/defaults.js +1 -0
  752. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  753. package/dist/domain/spec/model/entity-types.js +1 -0
  754. package/dist/domain/spec/model/index.d.ts +7 -0
  755. package/dist/domain/spec/model/index.js +1 -0
  756. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  757. package/dist/domain/spec/model/model-version-key.js +1 -0
  758. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  759. package/dist/domain/spec/model/names/action-name.js +1 -0
  760. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  761. package/dist/domain/spec/model/names/alias-name.js +1 -0
  762. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  763. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  764. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  765. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  766. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  767. package/dist/domain/spec/model/names/expression-name.js +1 -0
  768. package/dist/domain/spec/model/names/index.d.ts +9 -0
  769. package/dist/domain/spec/model/names/index.js +1 -0
  770. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  771. package/dist/domain/spec/model/names/instance-name.js +1 -0
  772. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  773. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  774. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  775. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  776. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  777. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  778. package/dist/domain/spec/model/presets.d.ts +30 -0
  779. package/dist/domain/spec/model/presets.js +1 -0
  780. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.d.ts +1 -1
  781. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/find-assistant-form-element-errors.d.ts +1 -1
  782. package/dist/domain/spec/modules/find-assistant-form-element-errors.js +1 -0
  783. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/index.d.ts +2 -3
  784. package/dist/domain/spec/modules/index.js +1 -0
  785. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/merge-expression-modules.d.ts +2 -2
  786. package/dist/domain/spec/modules/merge-expression-modules.js +1 -0
  787. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/project-modules.d.ts +1 -1
  788. package/dist/domain/spec/modules/project-modules.js +1 -0
  789. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.d.ts +1 -1
  790. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.d.ts +1 -1
  791. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.d.ts +1 -1
  792. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.d.ts +1 -1
  793. package/dist/domain/spec/phx/index.d.ts +1 -0
  794. package/dist/domain/spec/phx/index.js +1 -0
  795. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-application-types.d.ts +1 -1
  796. package/dist/domain/spec/phx/phx-application-types.js +1 -0
  797. package/dist/domain/spec/phx/phx-domain.js +1 -0
  798. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-model.d.ts +2 -2
  799. package/dist/domain/spec/phx/phx-model.js +1 -0
  800. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.d.ts +1 -2
  801. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-runtime.d.ts +7 -6
  802. package/dist/domain/spec/runtime/admin-runtime/admin-runtime.js +1 -0
  803. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-spec-runtime.d.ts +2 -2
  804. package/dist/domain/spec/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  805. package/dist/domain/spec/runtime/admin-runtime/index.d.ts +2 -0
  806. package/dist/domain/spec/runtime/admin-runtime/index.js +1 -0
  807. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.d.ts +1 -1
  808. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-runtime.d.ts +8 -6
  809. package/dist/domain/spec/runtime/application-runtime.js +1 -0
  810. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-spec-slice.d.ts +3 -1
  811. package/dist/domain/spec/runtime/application-spec-slice.js +1 -0
  812. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-runtime.d.ts +8 -10
  813. package/dist/domain/spec/runtime/configurator-runtime/configurator-runtime.js +1 -0
  814. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-spec-runtime.d.ts +2 -2
  815. package/dist/domain/spec/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  816. package/dist/domain/spec/runtime/configurator-runtime/index.d.ts +2 -0
  817. package/dist/domain/spec/runtime/configurator-runtime/index.js +1 -0
  818. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.d.ts +1 -1
  819. package/dist/{application-spec/generate-application → domain/spec}/runtime/create-application.d.ts +3 -2
  820. package/dist/domain/spec/runtime/create-application.js +1 -0
  821. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/expression-runtime.d.ts +5 -3
  822. package/dist/domain/spec/runtime/expressions/expression-runtime.js +1 -0
  823. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/generate-memo-eval-plan-runtime.d.ts +2 -2
  824. package/dist/domain/spec/runtime/expressions/generate-memo-eval-plan-runtime.js +1 -0
  825. package/dist/domain/spec/runtime/expressions/index.d.ts +3 -0
  826. package/dist/domain/spec/runtime/expressions/index.js +1 -0
  827. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.d.ts +2 -1
  828. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.d.ts +4 -3
  829. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.d.ts +1 -1
  830. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.js +1 -1
  831. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.d.ts +2 -2
  832. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.js +1 -1
  833. package/dist/{application-spec/generate-application → domain/spec}/runtime/generate-runtime-instance.d.ts +1 -1
  834. package/dist/domain/spec/runtime/generate-runtime-instance.js +1 -0
  835. package/dist/domain/spec/runtime/index.d.ts +13 -0
  836. package/dist/domain/spec/runtime/index.js +1 -0
  837. package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/migration-runtime.d.ts +2 -2
  838. package/dist/domain/spec/runtime/migrations/migration-runtime.js +1 -0
  839. package/dist/{application-spec/generate-application/runtime/admin-runtime → domain/spec/runtime/model}/admin-model-runtime.d.ts +4 -3
  840. package/dist/domain/spec/runtime/model/admin-model-runtime.js +1 -0
  841. package/dist/{application-spec/generate-application/runtime/configurator-runtime → domain/spec/runtime/model}/configurator-model-runtime.d.ts +4 -3
  842. package/dist/domain/spec/runtime/model/configurator-model-runtime.js +1 -0
  843. package/dist/domain/spec/runtime/model/index.d.ts +2 -0
  844. package/dist/domain/spec/runtime/model/index.js +1 -0
  845. package/dist/domain/spec/runtime/optics/build-sdk-optic.d.ts +7 -0
  846. package/dist/domain/spec/runtime/optics/build-sdk-optic.js +1 -0
  847. package/dist/domain/spec/runtime/optics/build-user-bound-optic.d.ts +7 -0
  848. package/dist/domain/spec/runtime/optics/build-user-bound-optic.js +1 -0
  849. package/dist/domain/spec/runtime/optics/built-component-optic.d.ts +11 -0
  850. package/dist/domain/spec/runtime/optics/built-component-optic.js +1 -0
  851. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.d.ts +4 -14
  852. package/dist/domain/spec/runtime/optics/index.d.ts +2 -0
  853. package/dist/domain/spec/runtime/optics/index.js +1 -0
  854. package/dist/{application-spec/caching → domain/spec/runtime}/runtime-reference-store.d.ts +1 -5
  855. package/dist/domain/spec/runtime/runtime-reference-store.js +1 -0
  856. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.d.ts +3 -3
  857. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.d.ts +2 -2
  858. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.d.ts +1 -1
  859. package/dist/domain/spec/runtime/sections/index.d.ts +6 -0
  860. package/dist/domain/spec/runtime/sections/index.js +1 -0
  861. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.d.ts +4 -4
  862. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.d.ts +1 -1
  863. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.d.ts +2 -2
  864. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  865. package/dist/domain/spec/runtime/spec-code/spec-code-module.js +1 -0
  866. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-runtime.d.ts +3 -3
  867. package/dist/domain/spec/runtime/spec-runtime.js +1 -0
  868. package/dist/domain/spec/runtime-spec/index.d.ts +4 -0
  869. package/dist/domain/spec/runtime-spec/index.js +1 -0
  870. package/dist/domain/spec/runtime-spec/runtime-spec.d.ts +174 -0
  871. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.d.ts +1 -1
  872. package/dist/domain/spec/sections/actions.d.ts +23 -0
  873. package/dist/domain/spec/sections/actions.js +1 -0
  874. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  875. package/dist/domain/spec/sections/app-metadata.js +1 -0
  876. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  877. package/dist/domain/spec/sections/application-version.js +1 -0
  878. package/dist/domain/{application → spec/sections}/assistant/assistant-manifest.d.ts +13 -3
  879. package/dist/domain/{application → spec/sections}/assistant/assistant-resolved-manifest.d.ts +5 -9
  880. package/dist/domain/spec/sections/assistant/assistant-resolved-manifest.js +1 -0
  881. package/dist/domain/spec/sections/assistant/index.d.ts +4 -0
  882. package/dist/domain/spec/sections/assistant/index.js +1 -0
  883. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  884. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  885. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  886. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  887. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  888. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  889. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  890. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  891. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  892. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  893. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  894. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  895. package/dist/domain/spec/sections/index.d.ts +10 -0
  896. package/dist/domain/spec/sections/index.js +1 -0
  897. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  898. package/dist/domain/spec/sections/infra/acl.js +1 -0
  899. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  900. package/dist/domain/spec/sections/infra/index.js +1 -0
  901. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  902. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  903. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  904. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  905. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  906. package/dist/domain/spec/sections/state-value.js +1 -0
  907. package/dist/domain/spec/sections/theme.d.ts +10 -0
  908. package/dist/domain/spec/sections/theme.js +1 -0
  909. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  910. package/dist/domain/spec/sections/transformers.js +1 -0
  911. package/dist/domain/spec/sections/ui.d.ts +12 -0
  912. package/dist/domain/spec/sections/ui.js +1 -0
  913. package/dist/domain/system-components/phoenix-entity-elements/child-entity-card-selector.d.ts +2 -3
  914. package/dist/domain/system-components/phoenix-entity-elements/child-entity-list-selector.d.ts +2 -3
  915. package/dist/domain/system-components/phoenix-entity-elements/child-entity-toggle-selector.d.ts +2 -3
  916. package/dist/domain/system-definitions.js +1 -1
  917. package/dist/domain/utils/index.d.ts +2 -0
  918. package/dist/domain/utils/index.js +1 -0
  919. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  920. package/dist/i18n/locales/cs/messages.js +1 -1
  921. package/dist/i18n/locales/da/messages.js +1 -1
  922. package/dist/i18n/locales/de/messages.js +1 -1
  923. package/dist/i18n/locales/de-AT/messages.js +1 -1
  924. package/dist/i18n/locales/en/messages.js +1 -1
  925. package/dist/i18n/locales/en-AU/messages.js +1 -1
  926. package/dist/i18n/locales/en-GB/messages.js +1 -1
  927. package/dist/i18n/locales/es/messages.js +1 -1
  928. package/dist/i18n/locales/fr/messages.js +1 -1
  929. package/dist/i18n/locales/hu/messages.js +1 -1
  930. package/dist/i18n/locales/it/messages.js +1 -1
  931. package/dist/i18n/locales/nl/messages.js +1 -1
  932. package/dist/i18n/locales/pl/messages.js +1 -1
  933. package/dist/i18n/locales/pt/messages.js +1 -1
  934. package/dist/i18n/locales/ro/messages.js +1 -1
  935. package/dist/i18n/locales/sk/messages.js +1 -1
  936. package/dist/i18n/locales/tr/messages.js +1 -1
  937. package/dist/i18n/merge-catalogs.d.ts +4 -1
  938. package/dist/i18n/merge-catalogs.js +1 -1
  939. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  940. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  941. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +4 -2
  942. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/i18n-index.js +3 -3
  943. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  944. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  945. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  946. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  947. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  948. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
  949. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  950. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
  951. package/dist/phoenix/application-spec/index.d.ts +2 -0
  952. package/dist/phoenix/application-spec/index.js +1 -1
  953. package/dist/phoenix/application-spec/project-files.d.ts +8 -2
  954. package/dist/phoenix/application-spec/project-files.js +1 -1
  955. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  956. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  957. package/dist/phoenix/bin.js +1 -1
  958. package/dist/phoenix/cli.js +1 -1
  959. package/dist/phoenix/commands/activate-deployment.js +1 -1
  960. package/dist/phoenix/commands/build.js +1 -1
  961. package/dist/phoenix/commands/changelog.js +1 -1
  962. package/dist/phoenix/commands/check.js +1 -1
  963. package/dist/phoenix/commands/clean.js +1 -1
  964. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  965. package/dist/phoenix/commands/create-environment.js +1 -1
  966. package/dist/phoenix/commands/data.js +1 -1
  967. package/dist/phoenix/commands/deploy.js +3 -3
  968. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  969. package/dist/phoenix/commands/dev.js +4 -5
  970. package/dist/phoenix/commands/docs.js +1 -1
  971. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  972. package/dist/phoenix/commands/fix.js +1 -1
  973. package/dist/phoenix/commands/index.d.ts +1 -1
  974. package/dist/phoenix/commands/index.js +1 -1
  975. package/dist/phoenix/commands/inspect-assets.js +1 -1
  976. package/dist/phoenix/commands/list-environments.js +1 -1
  977. package/dist/phoenix/commands/login.d.ts +4 -1
  978. package/dist/phoenix/commands/login.js +2 -2
  979. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  980. package/dist/phoenix/commands/register-deployment.js +1 -1
  981. package/dist/phoenix/commands/scene.js +1 -1
  982. package/dist/phoenix/commands/screenshot.js +1 -1
  983. package/dist/phoenix/commands/state.js +1 -1
  984. package/dist/phoenix/commands/story-build.js +3 -3
  985. package/dist/phoenix/commands/story-create.js +1 -1
  986. package/dist/phoenix/commands/story-dev.js +2 -2
  987. package/dist/phoenix/commands/sync.js +1 -1
  988. package/dist/phoenix/commands/variants.js +1 -1
  989. package/dist/phoenix/editor-server/commands-router.js +1 -1
  990. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  991. package/dist/phoenix/editor-server/editor-server.js +1 -1
  992. package/dist/phoenix/editor-server/spec-router.js +1 -1
  993. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  994. package/dist/phoenix/lingui/index.d.ts +1 -0
  995. package/dist/phoenix/lingui/index.js +1 -0
  996. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  997. package/dist/phoenix/lingui/lingui.js +1 -0
  998. package/dist/phoenix/scripts/docs-utils.js +1 -1
  999. package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
  1000. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  1001. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  1002. package/dist/phoenix/services/cli-credentials.js +1 -1
  1003. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  1004. package/dist/phoenix/services/cli-exit.js +1 -0
  1005. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  1006. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  1007. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  1008. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  1009. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  1010. package/dist/phoenix/services/deployment/index.js +1 -0
  1011. package/dist/phoenix/services/index.d.ts +5 -1
  1012. package/dist/phoenix/services/index.js +1 -1
  1013. package/dist/phoenix/services/lingui-watcher.js +1 -1
  1014. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  1015. package/dist/phoenix/services/phoenix-store.js +1 -1
  1016. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1017. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  1018. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  1019. package/dist/phoenix/services/session/index.d.ts +2 -0
  1020. package/dist/phoenix/services/session/index.js +1 -0
  1021. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  1022. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  1023. package/dist/phoenix/services/source-archive.d.ts +2 -0
  1024. package/dist/phoenix/services/source-archive.js +1 -1
  1025. package/dist/phoenix/services/swc.d.ts +5 -4
  1026. package/dist/phoenix/services/swc.js +2 -2
  1027. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  1028. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  1029. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  1030. package/dist/phoenix/services/telemetry/index.js +1 -0
  1031. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  1032. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  1033. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  1034. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  1035. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  1036. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  1037. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  1038. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  1039. package/dist/phoenix/services/vite-config.js +1 -1
  1040. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  1041. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  1042. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  1043. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  1044. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
  1045. package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
  1046. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
  1047. package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
  1048. package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
  1049. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
  1050. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
  1051. package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
  1052. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.d.ts +7 -0
  1053. package/dist/react-sdk/configurator-ui-elements/ConfiguratorUiElementHost.js +1 -0
  1054. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.d.ts +14 -0
  1055. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackElement.js +1 -0
  1056. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.d.ts +18 -0
  1057. package/dist/react-sdk/configurator-ui-elements/ErrorFallbackPropsProvider.js +1 -0
  1058. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.d.ts +5 -0
  1059. package/dist/react-sdk/configurator-ui-elements/PlainErrorFallback.js +1 -0
  1060. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.d.ts +17 -0
  1061. package/dist/react-sdk/configurator-ui-elements/configurator-ui-element.js +1 -0
  1062. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.d.ts +5 -0
  1063. package/dist/react-sdk/configurator-ui-elements/create-configurator-ui-element.js +1 -0
  1064. package/dist/react-sdk/configurator-ui-elements/index.d.ts +6 -0
  1065. package/dist/react-sdk/configurator-ui-elements/index.js +1 -0
  1066. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  1067. package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
  1068. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  1069. package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
  1070. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  1071. package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
  1072. package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
  1073. package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
  1074. package/dist/react-sdk/domain-application-context/index.js +1 -1
  1075. package/dist/react-sdk/domain-context/common-hooks/use-state-validity.d.ts +6 -1
  1076. package/dist/react-sdk/domain-context/common-hooks/use-state-validity.js +1 -1
  1077. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.d.ts +2 -2
  1078. package/dist/react-sdk/domain-controls/ChildEntityCardSelector.d.ts +2 -3
  1079. package/dist/react-sdk/domain-controls/ChildEntityListSelector.d.ts +2 -3
  1080. package/dist/react-sdk/domain-controls/ChildEntityToggleSelector.d.ts +2 -3
  1081. package/dist/react-sdk/domain-controls/hooks/use-cook-replace-recipes.d.ts +3 -3
  1082. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  1083. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  1084. package/dist/react-sdk/index.d.ts +7 -0
  1085. package/dist/react-sdk/index.js +1 -1
  1086. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  1087. package/dist/react-sdk/integration/index.d.ts +1 -0
  1088. package/dist/react-sdk/integration/index.js +1 -0
  1089. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  1090. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  1091. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  1092. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  1093. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  1094. package/dist/react-sdk/notifications/index.d.ts +1 -0
  1095. package/dist/react-sdk/notifications/index.js +1 -0
  1096. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  1097. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  1098. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  1099. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  1100. package/dist/react-sdk/preset-selection/index.js +1 -0
  1101. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.d.ts +11 -0
  1102. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.js +1 -0
  1103. package/dist/react-sdk/provider-slots/configurator-provider-slot.d.ts +24 -0
  1104. package/dist/react-sdk/provider-slots/configurator-provider-slot.js +1 -0
  1105. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.d.ts +5 -0
  1106. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.js +1 -0
  1107. package/dist/react-sdk/provider-slots/index.d.ts +3 -0
  1108. package/dist/react-sdk/provider-slots/index.js +1 -0
  1109. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  1110. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  1111. package/dist/ui-sdk/components/numerical-input/InputField.d.ts +2 -0
  1112. package/dist/ui-sdk/components/numerical-input/InputField.js +1 -1
  1113. package/dist/ui-sdk/components/numerical-input/NumericalInput.d.ts +2 -2
  1114. package/dist/ui-sdk/components/numerical-input/Slider.d.ts +3 -1
  1115. package/dist/ui-sdk/components/numerical-input/Slider.js +1 -1
  1116. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  1117. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  1118. package/dist/ui-sdk/icons/__generated/ChatCircleText.d.ts +3 -0
  1119. package/dist/ui-sdk/icons/__generated/ChatCircleText.js +1 -0
  1120. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  1121. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  1122. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.d.ts +3 -0
  1123. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.js +1 -0
  1124. package/dist/ui-sdk/icons/__generated/index.d.ts +6 -0
  1125. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1126. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1127. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1128. package/dist/watch/glob-matcher.d.ts +4 -4
  1129. package/dist/watch/glob-matcher.js +1 -1
  1130. package/dist/watch/watch.d.ts +4 -4
  1131. package/dist/watch/watch.js +1 -1
  1132. package/package.json +3 -3
  1133. package/schema/domain-spec.json +88 -4
  1134. package/dist/application-spec/caching/runtime-reference-store.js +0 -1
  1135. package/dist/application-spec/core/components/index.d.ts +0 -2
  1136. package/dist/application-spec/core/expressions/index.d.ts +0 -2
  1137. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.d.ts +0 -1
  1138. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +0 -1
  1139. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.d.ts +0 -3
  1140. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +0 -166
  1141. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.d.ts +0 -1
  1142. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +0 -54
  1143. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.d.ts +0 -1
  1144. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +0 -115
  1145. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +0 -1
  1146. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +0 -1
  1147. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +0 -6
  1148. package/dist/application-spec/generate-application/implementations/phx-application-types.js +0 -1
  1149. package/dist/application-spec/generate-application/implementations/phx-domain.js +0 -1
  1150. package/dist/application-spec/generate-application/implementations/phx-model.js +0 -1
  1151. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +0 -1
  1152. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +0 -1
  1153. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +0 -1
  1154. package/dist/application-spec/generate-application/runtime/application-runtime.js +0 -1
  1155. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +0 -1
  1156. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +0 -1
  1157. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +0 -1
  1158. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +0 -1
  1159. package/dist/application-spec/generate-application/runtime/create-application.js +0 -1
  1160. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +0 -1
  1161. package/dist/application-spec/generate-application/runtime/index.d.ts +0 -8
  1162. package/dist/application-spec/generate-application/runtime/index.js +0 -1
  1163. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +0 -1
  1164. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +0 -8
  1165. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +0 -1
  1166. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +0 -8
  1167. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +0 -1
  1168. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +0 -1
  1169. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +0 -1
  1170. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +0 -10
  1171. package/dist/application-spec/generate-application/runtime/sections/index.js +0 -1
  1172. package/dist/application-spec/generate-application/runtime/spec-runtime.js +0 -1
  1173. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +0 -5
  1174. package/dist/application-spec/generate-application/runtime-spec/index.js +0 -1
  1175. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +0 -103
  1176. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.d.ts +0 -17
  1177. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +0 -1
  1178. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  1179. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  1180. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  1181. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  1182. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  1183. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  1184. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  1185. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  1186. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  1187. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  1188. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  1189. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  1190. package/dist/domain/available-system-components.d.ts +0 -11
  1191. package/dist/domain/available-system-components.js +0 -1
  1192. package/dist/domain/domain-builder.js +0 -1
  1193. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +0 -1
  1194. package/dist/domain/domain-runtime/spec/module-checks/index.js +0 -1
  1195. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +0 -1
  1196. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +0 -1
  1197. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +0 -1
  1198. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  1199. package/dist/phoenix/services/lingui.d.ts +0 -15
  1200. package/dist/phoenix/services/lingui.js +0 -1
  1201. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  1202. package/dist/phoenix/services/phoenix-application.js +0 -1
  1203. /package/dist/{application-spec/core/expressions/relation-expression-params.js → configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.js} +0 -0
  1204. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.d.ts +0 -0
  1205. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.js +0 -0
  1206. /package/dist/{application-spec/generate-application/runtime/spec-code/spec-code-module.js → domain/spec/application/admin-pages-section.js} +0 -0
  1207. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-pages.js} +0 -0
  1208. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/admin-states.js} +0 -0
  1209. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  1210. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  1211. /package/dist/domain/{application/assistant/assistant-manifest.js → spec/application/configurator-states.js} +0 -0
  1212. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  1213. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  1214. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  1215. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  1216. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.d.ts +0 -0
  1217. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.js +0 -0
  1218. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.d.ts +0 -0
  1219. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.js +0 -0
  1220. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.d.ts +0 -0
  1221. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.js +0 -0
  1222. /package/dist/domain/{domain-runtime → spec}/errors/index.d.ts +0 -0
  1223. /package/dist/domain/{domain-runtime → spec}/errors/index.js +0 -0
  1224. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.d.ts +0 -0
  1225. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.js +0 -0
  1226. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  1227. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  1228. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  1229. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  1230. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  1231. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  1232. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  1233. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  1234. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.js +0 -0
  1235. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.d.ts +0 -0
  1236. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.js +0 -0
  1237. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.js +0 -0
  1238. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.js +0 -0
  1239. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.js +0 -0
  1240. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.js +0 -0
  1241. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-domain.d.ts +0 -0
  1242. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.js +0 -0
  1243. /package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.js +0 -0
  1244. /package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.js +0 -0
  1245. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.js +0 -0
  1246. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.js +0 -0
  1247. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.d.ts +0 -0
  1248. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.js +0 -0
  1249. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.d.ts +0 -0
  1250. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.js +0 -0
  1251. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.js +0 -0
  1252. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.js +0 -0
  1253. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.js +0 -0
  1254. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.js +0 -0
  1255. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.js +0 -0
  1256. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.js +0 -0
  1257. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.js +0 -0
  1258. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.d.ts +0 -0
  1259. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.js +0 -0
  1260. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.js +0 -0
  1261. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/spec-code-module.d.ts +0 -0
  1262. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.d.ts +0 -0
  1263. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.js +0 -0
  1264. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.d.ts +0 -0
  1265. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.js +0 -0
  1266. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.d.ts +0 -0
  1267. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.js +0 -0
  1268. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.js +0 -0
  1269. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.js +0 -0
  1270. /package/dist/domain/{application/assistant/assistant-resolved-manifest.js → spec/sections/assistant/assistant-manifest.js} +0 -0
  1271. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.d.ts +0 -0
  1272. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.js +0 -0
  1273. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.d.ts +0 -0
  1274. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.js +0 -0
  1275. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.d.ts +0 -0
  1276. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.js +0 -0
  1277. /package/dist/domain/{application → spec/sections}/assistant/form/index.d.ts +0 -0
  1278. /package/dist/domain/{application → spec/sections}/assistant/form/index.js +0 -0
  1279. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  1280. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  1281. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  1282. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.d.ts +0 -0
@@ -1,9 +1,11 @@
1
1
  import type { AnyClientTool } from '@tanstack/ai';
2
2
  import { type UIMessage } from '@tanstack/ai-client';
3
3
  import { type ObservableWithLastValue } from '@salsita-ai/common/utils';
4
+ import { type AssistantMessageAnnotation } from '@salsita-ai/contracts/assistant';
4
5
  import { type AuthorizedPhoenixApiClient } from '#package/client';
5
- import type { AssistantManifest, DomainContextSelectors, DomainServicesSelectors, InitializableSystem, SessionAssistantSetup, SpecSelectors } from '#package/domain';
6
+ import type { AssistantManifest, DomainContextSelectors, DomainServicesSelectors, InitializableSystem, SessionAssistantSetup } from '#package/domain';
6
7
  import type { ConfiguratorExtensionSelectors } from '../../selectors.js';
8
+ import type { AssistantAnnotation, AssistantAnnotationOverlay } from './assistant-annotation.js';
7
9
  /** A tool of the assistant that the model calls and the browser runs, as the chat client accepts it. */
8
10
  export type AssistantClientTool = AnyClientTool;
9
11
  /**
@@ -15,12 +17,19 @@ export interface AssistantSystemContext {
15
17
  readonly configuratorExtensionSelectors: ConfiguratorExtensionSelectors;
16
18
  readonly domainContextSelectors: DomainContextSelectors;
17
19
  readonly domainServicesSelectors: DomainServicesSelectors;
18
- readonly specSelectors: SpecSelectors;
19
20
  readonly getConfigurationId: () => string;
20
21
  readonly getAuthorizedClient: () => AuthorizedPhoenixApiClient<any, any, any>;
21
22
  /** The assistant the initialized session runs: its tools, its exposed fields and whether chat runs at all. */
22
23
  readonly getAssistantSetup: () => SessionAssistantSetup;
24
+ /**
25
+ * Copies the configurator view as the next frame draws it, for the user to annotate; see
26
+ * {@link AssistantSystem.annotate}. The only browser-bound step of an annotation the system takes,
27
+ * so a test can provide one that takes none.
28
+ */
29
+ readonly freezeView: () => Promise<HTMLCanvasElement>;
23
30
  }
31
+ /** What the user attaches to a message: an image, or an annotation of their configurator view. */
32
+ export type AssistantAttachment = Blob | AssistantAnnotation;
24
33
  /**
25
34
  * The conversation with the assistant as the panel paints it. One value is published per change, so
26
35
  * it changes with every chunk of a streaming reply.
@@ -37,8 +46,20 @@ export interface AssistantChatSnapshot {
37
46
  * the server was never reached.
38
47
  */
39
48
  readonly failedStatus: number | undefined;
49
+ /**
50
+ * The seconds the server asked to wait before sending again, from the `Retry-After` header of the
51
+ * latest chat request it answered with a failure: a message refused for the assistant's hourly
52
+ * limits. Nothing when that request carried none.
53
+ */
54
+ readonly retryAfterSeconds: number | undefined;
40
55
  /** False when the server said this session may read the thread but not add to it. */
41
56
  readonly isContinuable: boolean;
57
+ /**
58
+ * True when the server said the assistant banned the user on this configuration for misuse: on the thread read, or
59
+ * on a message it refused for it. The thread stays readable, but the server refuses every new message until the ban
60
+ * expires.
61
+ */
62
+ readonly isLocked: boolean;
42
63
  /** False until the first request of the chat, the thread read, was answered or failed. */
43
64
  readonly isLoaded: boolean;
44
65
  /**
@@ -51,10 +72,34 @@ export interface AssistantChatSnapshot {
51
72
  * the chat was open, and the ones loaded with {@link AssistantSystem.loadEarlierThread}.
52
73
  */
53
74
  readonly earlierThreads: ReadonlyArray<AssistantEarlierThreadSnapshot>;
54
- /** True when the server holds a thread older than the oldest painted one. */
55
- readonly hasEarlierThread: boolean;
56
- /** True while that older thread is being loaded. */
75
+ /**
76
+ * The closed thread that {@link AssistantSystem.loadEarlierThread} loads next; `null` when the
77
+ * painted threads start the conversation. Usually the thread before the oldest painted one, but
78
+ * the oldest painted one itself when it was closed while only its newest messages were painted:
79
+ * loading it then paints it whole.
80
+ */
81
+ readonly earlierThreadId: string | null;
82
+ /** True while that thread is being loaded. */
57
83
  readonly isLoadingEarlierThread: boolean;
84
+ /** True when the thread of the chat has older messages than the painted ones on the server; see {@link AssistantSystem.loadOlderMessages}. */
85
+ readonly hasOlderMessages: boolean;
86
+ /** True while those older messages are being loaded. */
87
+ readonly isLoadingOlderMessages: boolean;
88
+ }
89
+ /** What else the caller of {@link AssistantSystem.send} learns about the message. */
90
+ export interface AssistantSendOptions {
91
+ /**
92
+ * Called once the message is handed to the chat, which paints it: after its images were uploaded,
93
+ * and not at all when it is not sent because the thread could not be resumed or an upload failed.
94
+ * The composer keeps the message until then, so a message that is not sent can be sent again.
95
+ */
96
+ readonly onSent?: () => void;
97
+ /**
98
+ * Called when a message that was handed to the chat is gone from it after all: the server refused
99
+ * it because the thread could not continue, the thread was resumed without it, and its images
100
+ * could not be uploaded into the new thread. The caller gets it back, so it can be sent again.
101
+ */
102
+ readonly onUnsent?: () => void;
58
103
  }
59
104
  /** A closed thread of the conversation as the panel paints it above the thread that continues it. */
60
105
  export interface AssistantEarlierThreadSnapshot {
@@ -73,9 +118,9 @@ export interface AssistantPanelSnapshot {
73
118
  readonly isInputFocused: boolean;
74
119
  }
75
120
  /**
76
- * Owns the conversational assistant of a configurator: its client tools (`getBrowserDetails`,
77
- * `query` and `apply`), the chat with the server, the state of the built-in panel, and the record
78
- * of what changed in the configuration since the agent last acted, which every user message carries.
121
+ * Owns the conversational assistant of a configurator: its client tools (`query` and `apply`), the
122
+ * chat with the server, the state of the built-in panel, and the record of what changed in the
123
+ * configuration since the agent last acted, which every user message carries.
79
124
  *
80
125
  * The server owns the thread, so the chat keeps nothing in browser storage: its client hydrates
81
126
  * from the server and rejoins a reply that is still streaming.
@@ -89,6 +134,9 @@ export declare class AssistantSystem implements InitializableSystem {
89
134
  private readonly _tools;
90
135
  private readonly _chat;
91
136
  private readonly _panel;
137
+ private readonly _annotationOverlay;
138
+ /** Identity of the `annotate()` call that runs; a new configuration load forgets it, which cancels it. */
139
+ private _annotationRun;
92
140
  /** Identity of the current `activate()` call; nothing while the chat is not active. */
93
141
  private _activation;
94
142
  /** The chat of the current activation; nothing while no chat is active. */
@@ -98,11 +146,6 @@ export declare class AssistantSystem implements InitializableSystem {
98
146
  * background. Each leaves the set when its reply ends or when a new chat takes its thread over.
99
147
  */
100
148
  private readonly _finishing;
101
- /**
102
- * The thread before the oldest painted one, as the server named it; nothing when the painted
103
- * threads start the conversation. `hasEarlierThread` of the chat says whether it is set.
104
- */
105
- private _olderThreadId;
106
149
  /** The resume that is running, so two sends that find the thread locked share one. */
107
150
  private _resuming;
108
151
  /**
@@ -122,8 +165,6 @@ export declare class AssistantSystem implements InitializableSystem {
122
165
  * thread continues the same chain; any other new chat starts another one.
123
166
  */
124
167
  private _chain;
125
- /** The earlier thread that is being loaded, so a second press loads nothing twice. */
126
- private _loadingThreadId;
127
168
  private readonly _recorder;
128
169
  /** The recorder's subscription to the committed emissions of the store; made by the first `initialize()`. */
129
170
  private _recording;
@@ -136,11 +177,21 @@ export declare class AssistantSystem implements InitializableSystem {
136
177
  */
137
178
  private readonly _applyToolCallIds;
138
179
  private readonly _undoTipToolCallId;
180
+ /**
181
+ * Object URLs of the screenshots read so far, by image id. An uploaded image never changes, so
182
+ * each is read once and kept while the configuration stays loaded.
183
+ */
184
+ private _screenshotUrls;
139
185
  constructor(_context: AssistantSystemContext);
140
186
  /** The conversation. It never completes, and holds the empty chat whenever no chat is active. */
141
187
  readonly chat$: ObservableWithLastValue<AssistantChatSnapshot>;
142
188
  /** The state of the built-in panel. It never completes. */
143
189
  readonly panel$: ObservableWithLastValue<AssistantPanelSnapshot>;
190
+ /**
191
+ * What covers the configurator for an annotation, as the layout renders it; nothing while no
192
+ * annotation is made or shown. See {@link AssistantSystem.annotate}. It never completes.
193
+ */
194
+ readonly annotationOverlay$: ObservableWithLastValue<AssistantAnnotationOverlay | null>;
144
195
  /**
145
196
  * The `apply` tool call whose committed state is the step of the undo history the configuration is
146
197
  * at; nothing when that step is not a change of the assistant. It never completes.
@@ -194,6 +245,14 @@ export declare class AssistantSystem implements InitializableSystem {
194
245
  * acted, which the server puts in front of the message for the model. The record is taken only
195
246
  * when there is a chat to send it on, because taking it moves its baseline.
196
247
  *
248
+ * The images the user attached go with the message: they are uploaded into the chat's thread
249
+ * first, and the message references them, one image part after its text each. The text part is
250
+ * left out of a message with images only. An annotation is attached like an image: its image is
251
+ * uploaded and referenced in its place among the images, and its pins go into the metadata of the
252
+ * message, by the id of its image, for the server to tell the model. Each attempt to send uploads them again, into the
253
+ * thread it sends on. An upload that fails leaves the message unsent, with the failure as the
254
+ * error of the chat; `onSent` is not called then.
255
+ *
197
256
  * A thread can end in a tool call that nothing will answer: its reply parked while no page was
198
257
  * open, or the page that ran the tool was left before the result was sent. The client refuses to
199
258
  * send while it waits on such a call, so the wait is given up first, and the server records for
@@ -204,20 +263,44 @@ export declare class AssistantSystem implements InitializableSystem {
204
263
  *
205
264
  * The chat can be out of date about that: the thread reached its size limit with the reply before
206
265
  * this message, or the assistant's setup changed while the configurator stayed open. The server
207
- * then refuses the message and says that the thread cannot be continued. The message stays
208
- * painted while the thread is resumed, and is then sent again on the new thread, with the change
209
- * record it was first sent with. This happens once: a refusal of the second attempt is the
210
- * failure it is. When resuming fails, the message is left as any message that failed to send:
211
- * painted, with the failure as the error of the chat.
266
+ * then refuses the message, or the upload of one of its images, and says that the thread cannot
267
+ * be continued. The thread is resumed, and the message is then sent again on the new thread, its
268
+ * images uploaded again, with the change record it was first sent with. This happens once: a
269
+ * refusal of the second attempt is the failure it is. When resuming fails, a refused message is
270
+ * left as any message that failed to send: painted, with the failure as the error of the chat; a
271
+ * refused upload leaves the message unsent. When the images of a refused message cannot be
272
+ * uploaded into the new thread, the message is given back through `onUnsent`.
273
+ *
274
+ * A chat that ends while the images upload, because another configuration was loaded or the
275
+ * thread is read again, sends nothing.
212
276
  *
213
277
  * Accepted: when the server refuses the compaction itself with a conflict, because another tab
214
278
  * compacted the thread or a run is still running, the thread is read again (see `resume`) and
215
279
  * the refused message is gone without a notice. It takes two tabs or a run racing the send, and
216
280
  * the user writes the message again, as after any reload of a thread that failed.
217
281
  *
282
+ * Accepted: images uploaded by an attempt that is not sent stay stored in that thread, which no
283
+ * message references.
284
+ *
218
285
  * It never rejects: a message the client could not send is reported as the error of the chat.
219
286
  */
220
- send: (content: string) => Promise<void>;
287
+ send: (content: string, attachments?: ReadonlyArray<AssistantAttachment>, { onSent, onUnsent }?: AssistantSendOptions) => Promise<void>;
288
+ /**
289
+ * Lets the user annotate their current view of the configurator, and resolves with what they made,
290
+ * or with `null` when they cancel, the view cannot be frozen or another configuration is loaded
291
+ * meanwhile. Nothing happens while another annotation is made or shown: it resolves with `null` at once.
292
+ *
293
+ * The layout is inert from the start, and `annotationOverlay$` says what covers it. Once the camera
294
+ * is still, the view glides from the canvas padding to none, so the product is centred on the whole
295
+ * configurator area, and the next frame is frozen for the editor. When the editor finishes, the
296
+ * view glides back to the padding and the layout is released.
297
+ */
298
+ annotate: () => Promise<AssistantAnnotation | null>;
299
+ /**
300
+ * Shows an annotation of a sent message over the configurator, read-only, until its overlay is
301
+ * closed. Nothing happens while another annotation is made or shown.
302
+ */
303
+ viewAnnotation: (annotation: AssistantMessageAnnotation) => void;
221
304
  /**
222
305
  * Makes the chat ready for the next message. A thread the server no longer lets this session
223
306
  * continue, because the assistant's setup changed since it was started or the thread reached
@@ -232,10 +315,25 @@ export declare class AssistantSystem implements InitializableSystem {
232
315
  */
233
316
  resume: () => Promise<boolean>;
234
317
  /**
235
- * Loads the thread before the oldest painted one and paints it above. Does nothing when there is
236
- * none or one is being loaded. A load that fails is logged and can be asked for again.
318
+ * An object URL of a screenshot of the conversation, by the id its tool result references it by.
319
+ * It is read from the server through the client of the current chat, once per image; a read that
320
+ * failed is forgotten, so it can be asked for again. Rejects without a chat or when the read fails.
321
+ */
322
+ loadScreenshotUrl: (imageId: string) => Promise<string>;
323
+ /**
324
+ * Loads the closed thread named by `earlierThreadId` of the chat, whole, and paints it above the
325
+ * painted ones; when it is the oldest painted thread itself, closed while only its newest messages
326
+ * were painted, it replaces that partial copy. Does nothing when there is none, one is being
327
+ * loaded, or the chat's own thread still has older messages: the earlier threads come above them.
328
+ * A load that fails is logged and can be asked for again.
237
329
  */
238
330
  loadEarlierThread: () => Promise<void>;
331
+ /**
332
+ * Loads the page of messages before the oldest painted one of the chat's thread and paints it
333
+ * above. Does nothing when the thread has no older messages or a page is being loaded. A load that
334
+ * fails is logged and can be asked for again; one that ends after its chat did is dropped.
335
+ */
336
+ loadOlderMessages: () => Promise<void>;
239
337
  /**
240
338
  * Stops the reply on both sides. Closing the stream alone keeps the server run going, because a
241
339
  * closed connection is also how a reload looks and a reload must be able to rejoin the run.
@@ -259,14 +357,32 @@ export declare class AssistantSystem implements InitializableSystem {
259
357
  undoToolCalls: (toolCallIds: ReadonlySet<string>) => void;
260
358
  setOpen: (open: boolean) => void;
261
359
  setInputFocused: (isInputFocused: boolean) => void;
360
+ /** A new configuration load cancels an annotation that is made, and closes one that is shown. */
361
+ private _closeAnnotationOverlay;
262
362
  /**
263
363
  * Where the message starts that is being sent on the chat for the first time and that the server
264
364
  * refused because its thread cannot be continued, so it never reached the thread; `-1` when there
265
365
  * is no such message. A refused continuation of a reply is not one: its message is stored.
266
366
  */
267
367
  private _findRefusedMessageIndex;
368
+ /** The content of a user message: its text, when it has any, and a reference to each of its images. */
369
+ private _messageContent;
370
+ /**
371
+ * Uploads the images of a message into the chat's thread, in their order, and resolves with their
372
+ * ids. Resolves with `'refused'` when the server refused an upload because the thread cannot be
373
+ * continued, and marks the chat so; then with `null` for any other failure, which is reported as
374
+ * the error of the chat. It never rejects.
375
+ */
376
+ private _uploadImages;
377
+ /**
378
+ * Uploads the images of a message into the thread that was resumed for it. A message the chat
379
+ * refused shows nowhere meanwhile, so the chat stays resuming until the upload is over: nothing
380
+ * else is sent ahead of it.
381
+ */
382
+ private _uploadSuccessorImages;
383
+ private _reportUploadFailure;
268
384
  private _sendOn;
269
- private _resume;
385
+ private _compact;
270
386
  /**
271
387
  * The `apply` call whose committed state is the step the configuration is at. Nothing at the bottom
272
388
  * of the history, where nothing can be undone: that step was not made by a change it could take back.
@@ -300,6 +416,8 @@ export declare class AssistantSystem implements InitializableSystem {
300
416
  * it is: whether it finishes its reply or is cut off is the caller's decision.
301
417
  */
302
418
  private _retireChat;
419
+ /** Revokes the object URLs of the screenshots read for the configuration that was loaded, also those still being read. */
420
+ private _releaseScreenshotUrls;
303
421
  /** Ends the current chat without cutting its reply off. */
304
422
  private _endChat;
305
423
  }
@@ -1 +1 @@
1
- import{ChatClient as e,fetchServerSentEvents as t}from"@tanstack/ai-client";import{BehaviorSubject as i}from"rxjs";import{skip as s}from"rxjs/operators";import{isShallowEqual as a}from"@salsita-ai/common/utils";import{AssistantRequestError as r}from"#package/client";import{createBrowserDetailsClientTool as n}from"./browser-details.js";import{ChangeRecorder as o}from"./change-recorder.js";import{createApplyClientTool as l,createQueryClientTool as h,toToolResult as d}from"./graphql-tools.js";let c=Object.freeze({messages:Object.freeze([]),isLoading:!1,error:void 0,failedStatus:void 0,isContinuable:!0,isLoaded:!1,isResuming:!1,earlierThreads:Object.freeze([]),hasEarlierThread:!1,isLoadingEarlierThread:!1}),u=Object.freeze({open:!1,hasUnreadReply:!1,isInputFocused:!1}),_=Object.freeze({}),g=d({results:[],committed:!1,sideEffects:[],screenshots:new Map,message:"Nothing was run, because the user closed the configurator while this reply was being written. Do not call any more tools in this reply and end it now. The tools work again as soon as the user writes the next message."}),m=e=>{if(e.getError())return!0;let t=e.getMessages().at(-1)?.parts.at(-1);return t?.type!=="tool-call"&&t?.type!=="tool-result"};export class AssistantSystem{_context;_tools;_chat=new i(c);_panel=new i(u);_activation=null;_current=null;_finishing=new Set;_olderThreadId=null;_resuming=null;_refused=null;_firstAttempt=null;_chain={};_loadingThreadId=null;_recorder;_recording=null;_applyToolCallIds=new WeakMap;_undoTipToolCallId=new i(void 0);constructor(e){this._context=e;let{configuratorExtensionSelectors:t,domainContextSelectors:i,domainServicesSelectors:s,getAssistantSetup:a}=e;this._recorder=new o({maxEntities:30},{readers:{selectedEntityId:e=>i.getNavigationSystem().getActiveSelectionState(e),navigationState:e=>i.getNavigationSystem().getActiveNavigationState(e),viewState:e=>i.getNavigationSystem().getActiveViewState(e),toolState:e=>i.getNavigationSystem().getActiveToolState(e)},getExposedFields:()=>a().manifest?.fields??_,resolveLocalizable:e=>s.getResolveLocalizable()(e)});let r={getGraphQLSystem:()=>t.getGraphQLSystem(),getStoreSystem:()=>i.getStoreSystem(),getActiveMode:()=>i.getActiveMode(),getIsViewMode:()=>i.getIsViewMode(),clearChanges:()=>this._recorder.clear(this._committedState()),rememberCommit:(e,t)=>{this._applyToolCallIds.set(t,e),this._refreshUndoTip()}};this._tools=[n(),h(r),l(r)],i.getUndoSystem().tip$.subscribe(this._refreshUndoTip)}chat$=this._chat;panel$=this._panel;undoTipToolCallId$=this._undoTipToolCallId;getSessionManifest=()=>this._context.getAssistantSetup().manifest;initialize=()=>{let{committed:e}=this._context.domainContextSelectors.getStoreSystem().stateSlices;this._recording??=e.pipe(s(1)).subscribe(this._recorder.record),this._recorder.reset(e.value.state),this._endChat(),this._patchPanel(u),this._activation&&this._startClient()};activate=()=>{this._endChat();let e={};return this._activation=e,this._startClient(),()=>{this._activation===e&&(this._activation=null,this._endChat())}};send=async e=>{if(!this._chat.value.isContinuable&&!await this.resume())return;let t=this._current;if(!t)return;let i={changes:this._recorder.take(this._committedState())};this._firstAttempt=t;try{await this._sendOn(t,e,i);let s=this._findRefusedMessageIndex(t);if(-1===s)return;this._refused={chat:t,index:s}}finally{this._firstAttempt===t&&(this._firstAttempt=null)}if(!await this.resume())return;let s=this._current;s&&await this._sendOn(s,e,i)};resume=async()=>{let e=this._current;if(!e)return!1;if(this._chat.value.isContinuable)return!0;if(this._resuming)return this._resuming;let t=this._resume(e).finally(()=>{this._resuming===t&&(this._resuming=null)});return this._resuming=t,t};loadEarlierThread=async()=>{let e=this._current,t=this._olderThreadId;if(!e||null===t||this._loadingThreadId===t)return;let i=this._chain;this._loadingThreadId=t,this._chat.next({...this._chat.value,isLoadingEarlierThread:!0});try{let s=await e.authorizedClient.getAssistantEarlierThread(e.configurationId,t,50);if(this._chain!==i||this._olderThreadId!==t)return;this._olderThreadId=s.previousThreadId,this._chat.next({...this._chat.value,earlierThreads:[{threadId:t,messages:s.messages},...this._chat.value.earlierThreads],hasEarlierThread:null!==s.previousThreadId})}catch(e){this._context.domainServicesSelectors.getLogger().warn("Could not load the earlier assistant conversation",{error:e})}finally{this._chain===i&&this._loadingThreadId===t&&(this._loadingThreadId=null,this._chat.next({...this._chat.value,isLoadingEarlierThread:!1}))}};stop=async()=>{let e=this._current;if(!e)return;let t=e.client.getCurrentRunId();if(e.client.stop(),null!=t)try{let i=e.getConnection();await fetch(`${i.url}/runs/${encodeURIComponent(t)}/cancel`,{method:"POST",headers:await i.headers()})}catch(e){this._context.domainServicesSelectors.getLogger().warn("Could not cancel the assistant run on the server",{error:e})}};reloadThread=()=>{if(!this._activation)return;let e=this._retireChat();e?.client.stop(),e?.dispose(),this._recorder.reset(this._committedState()),this._startClient()};undoToolCalls=e=>{let t=this._context.domainContextSelectors.getUndoSystem(),i=()=>{let t=this._findTipToolCallId();return void 0!==t&&e.has(t)};for(;i();)t.undo()};setOpen=e=>{this._patchPanel(e?{open:e,hasUnreadReply:!1}:{open:e,isInputFocused:!1})};setInputFocused=e=>{this._patchPanel({isInputFocused:e})};_findRefusedMessageIndex=e=>{var t;let i,{failedStatus:s,isContinuable:a}=this._chat.value;return this._firstAttempt===e&&e.generation.active&&409===s&&!a?(i=(t=e.client.getMessages()).map(e=>e.role).lastIndexOf("user"),t.slice(i+1).every(e=>0===e.parts.length)?i:-1):-1};_sendOn=async(e,t,i)=>{let{client:s}=e;s.getIsLoading()||null===s.getResumeState()||s.stop();try{await s.sendMessage({content:t,metadata:i})}catch(i){let t=i instanceof Error?i:Error(String(i));e.generation.active&&this._chat.next({...this._chat.value,error:t}),this._context.domainServicesSelectors.getLogger().error("The assistant message could not be sent",{},t)}};_resume=async e=>{this._chat.next({...this._chat.value,isResuming:!0,error:void 0,failedStatus:void 0});try{let{previousThreadId:t}=await e.authorizedClient.compactAssistantThread(e.configurationId);if(!e.generation.active)return!1;let{messages:i,earlierThreads:s,hasEarlierThread:a}=this._chat.value,r=this._refused?.chat===e?i.slice(0,this._refused.index):i;return e.generation.active=!1,this._current=null,e.client.stop(),e.dispose(),this._chat.next({...c,earlierThreads:[...s,{threadId:t,messages:r}],hasEarlierThread:a,isLoadingEarlierThread:null!==this._loadingThreadId}),this._startClient(),!0}catch(i){let t=i instanceof Error?i:Error(String(i));if(t instanceof r&&409===t.status)return e.generation.active&&this.reloadThread(),!1;return e.generation.active&&this._chat.next({...this._chat.value,isResuming:!1,error:t,failedStatus:t instanceof r?t.status:void 0}),this._context.domainServicesSelectors.getLogger().error("The assistant thread could not be resumed",{},t),!1}};_findTipToolCallId=()=>{let e=this._context.domainContextSelectors.getUndoSystem(),t=e.tip$.value?.committedState;return void 0!==t&&e.canUndo()?this._applyToolCallIds.get(t):void 0};_refreshUndoTip=()=>{let e=this._findTipToolCallId();e!==this._undoTipToolCallId.value&&this._undoTipToolCallId.next(e)};_committedState=()=>this._context.domainContextSelectors.getStoreSystem().stateSlices.committed.value.state;_patchPanel=e=>{let t={...this._panel.value,...e};a(t,this._panel.value)||this._panel.next(t)};_takeOverThread=e=>{for(let t of this._finishing)t.configurationId===e&&(t.client.stop(),t.dispose())};_startClient=()=>{let i={active:!0},s=this._context.getConfigurationId();this._takeOverThread(s);let r=this._context.getAuthorizedClient(),n=()=>{if(i.active){let{manifest:e,error:t}=this._context.getAssistantSetup();if(t)throw t;if(!e)throw Error("The assistant is disabled for this session.")}return r.getAssistantChatConnection(s)},o=e=>{if(!i.active)return;let t={...this._chat.value,...e};a(t,this._chat.value)||this._chat.next(t)},l=async(e,t)=>{let s=await fetch(e,t).finally(()=>o({isLoaded:!0})),a=s.headers.get("x-assistant-thread-continuable");return null!=a&&s.ok&&i.active&&0===this._chat.value.earlierThreads.length&&(this._olderThreadId=s.headers.get("x-assistant-previous-thread")),o({failedStatus:s.ok?void 0:s.status,...null!=a&&{isContinuable:"false"!==a,hasEarlierThread:null!==this._olderThreadId}}),s},h=async()=>({headers:await n().headers(),fetchClient:l}),d=t(()=>n().url,h),c=t(()=>`${n().url}/runs`,h),u=this._tools.map(e=>({...e,execute:(t,s)=>{if(!i.active)return g;let{manifest:a,error:r}=this._context.getAssistantSetup();return r||!a?{error:r?.message??"The assistant is disabled for this session."}:e.execute?.(t,s)}})),_=new e({threadId:`assistant:${s}`,connection:{...d,joinRun:c.joinRun},persistence:!0,history:{pageSize:50},tools:u,onMessagesChange:e=>o({messages:e}),onLoadingChange:e=>{let t=i.active&&this._chat.value.isLoading;o({isLoading:e}),!e&&m(_)&&(i.active?t&&!this._panel.value.open&&this._patchPanel({hasUnreadReply:!0}):p())},onErrorChange:e=>{i.active&&e!==this._chat.value.error&&(!e||-1===this._findRefusedMessageIndex(v))&&(o({error:e}),e&&this._context.domainServicesSelectors.getLogger().error("The assistant request failed",{status:this._chat.value.failedStatus},e))}}),f=!1,p=()=>{f||(f=!0,this._finishing.delete(v),_.dispose())},v={client:_,configurationId:s,generation:i,authorizedClient:r,getConnection:n,dispose:p};this._current=v,_.attach()};_retireChat=()=>{let e=this._current;return this._current=null,e&&(e.generation.active=!1),this._chain={},this._olderThreadId=null,this._resuming=null,this._refused=null,this._loadingThreadId=null,this._chat.value!==c&&this._chat.next(c),e};_endChat=()=>{let e=this._retireChat();if(e){if(!e.client.getIsLoading()&&m(e.client))return void e.dispose();this._finishing.add(e)}}}
1
+ import{ChatClient as t,fetchServerSentEvents as e}from"@tanstack/ai-client";import{BehaviorSubject as a,firstValueFrom as s,race as i,timer as n}from"rxjs";import{filter as r,skip as o}from"rxjs/operators";import{isShallowEqual as l}from"@salsita-ai/common/utils";import{assistantImageReference as h}from"@salsita-ai/contracts/assistant";import{AssistantRequestError as c}from"#package/client";import{ChangeRecorder as d}from"./change-recorder.js";import{createApplyClientTool as u,createQueryClientTool as _,toToolResult as g}from"./graphql-tools.js";let f=Object.freeze({messages:Object.freeze([]),isLoading:!1,error:void 0,failedStatus:void 0,retryAfterSeconds:void 0,isContinuable:!0,isLocked:!1,isLoaded:!1,isResuming:!1,earlierThreads:Object.freeze([]),earlierThreadId:null,isLoadingEarlierThread:!1,hasOlderMessages:!1,isLoadingOlderMessages:!1}),v=Object.freeze({top:0,right:0,bottom:0,left:0}),m=Object.freeze({kind:"transition"}),p=Object.freeze({open:!1,hasUnreadReply:!1,isInputFocused:!1}),S=Object.freeze({}),y=g({results:[],committed:!1,sideEffects:[],warnings:[],screenshots:new Map,message:"Nothing was run, because the user closed the configurator while this reply was being written. Do not call any more tools in this reply and end it now. The tools work again as soon as the user writes the next message."}),x=t=>{if(t.getError())return!0;let e=t.getMessages().at(-1)?.parts.at(-1);return e?.type!=="tool-call"&&e?.type!=="tool-result"},w=async t=>{try{let e=await t.clone().json(),a=e?.page;return a?.truncated===!0&&"string"==typeof a.cursor&&""!==a.cursor}catch{return!1}};export class AssistantSystem{_context;_tools;_chat=new a(f);_panel=new a(p);_annotationOverlay=new a(null);_annotationRun=null;_activation=null;_current=null;_finishing=new Set;_resuming=null;_refused=null;_firstAttempt=null;_chain={};_recorder;_recording=null;_applyToolCallIds=new WeakMap;_undoTipToolCallId=new a(void 0);_screenshotUrls=new Map;constructor(t){this._context=t;let{configuratorExtensionSelectors:e,domainContextSelectors:a,domainServicesSelectors:s,getAssistantSetup:i}=t;this._recorder=new d({maxEntities:30},{readers:{selectedEntityId:t=>a.getNavigationSystem().getActiveSelectionState(t),navigationState:t=>a.getNavigationSystem().getActiveNavigationState(t),viewState:t=>a.getNavigationSystem().getActiveViewState(t),toolState:t=>a.getNavigationSystem().getActiveToolState(t)},getExposedFields:()=>i().manifest?.fields??S,resolveLocalizable:t=>s.getResolveLocalizable()(t)});let n={getGraphQLSystem:()=>e.getGraphQLSystem(),getStoreSystem:()=>a.getStoreSystem(),getActiveMode:()=>a.getActiveMode(),getIsViewMode:()=>a.getIsViewMode(),clearChanges:()=>this._recorder.clear(this._committedState()),rememberCommit:(t,e)=>{this._applyToolCallIds.set(e,t),this._refreshUndoTip()}};this._tools=[_(n),u(n)],a.getUndoSystem().tip$.subscribe(this._refreshUndoTip)}chat$=this._chat;panel$=this._panel;annotationOverlay$=this._annotationOverlay;undoTipToolCallId$=this._undoTipToolCallId;getSessionManifest=()=>this._context.getAssistantSetup().manifest;initialize=()=>{let{committed:t}=this._context.domainContextSelectors.getStoreSystem().stateSlices;this._recording??=t.pipe(o(1)).subscribe(this._recorder.record),this._recorder.reset(t.value.state),this._endChat(),this._patchPanel(p),this._releaseScreenshotUrls(),this._closeAnnotationOverlay(),this._activation&&this._startClient()};activate=()=>{this._endChat();let t={};return this._activation=t,this._startClient(),()=>{this._activation===t&&(this._activation=null,this._endChat())}};send=async(t,e=[],{onSent:a,onUnsent:s}={})=>{if(!this._chat.value.isContinuable&&!await this.resume())return;let i=this._current;if(!i)return;let n={changes:this._recorder.take(this._committedState()),locale:this._context.domainServicesSelectors.getI18n().locale},r=()=>this._recorder.reset(this._committedState()),o=e.map(t=>t instanceof Blob?t:t.blob),l=!1,h=(s,i)=>{l||(l=!0,a?.());let r=e.flatMap((t,e)=>{let a=i[e];return t instanceof Blob||void 0===a?[]:[{imageId:a,pins:t.pins}]});return this._sendOn(s,this._messageContent(t,i),0===r.length?n:{...n,annotations:r})};this._firstAttempt=i;try{let t=0===o.length?[]:await this._uploadImages(i,o);if(null===t||!i.generation.active)return void r();if("refused"!==t){await h(i,t);let e=this._findRefusedMessageIndex(i);if(-1===e)return;this._refused={chat:i,index:e}}}finally{this._firstAttempt===i&&(this._firstAttempt=null)}if(!await this.resume()){l||r();return}let c=this._current,d=c?await this._uploadSuccessorImages(c,o):null;if(!c||null===d||"refused"===d||!c.generation.active){c&&"refused"===d&&this._reportUploadFailure(c,this._chat.value.error),l&&s?.(),r();return}await h(c,d)};annotate=async()=>{if(null!==this._annotationOverlay.value)return null;let{getCameraControlSystem:t,getCanvasSystem:e}=this._context.configuratorExtensionSelectors,a=t(),o=e().r3fHandle$.value?.get().frameloop==="demand",l={},h=()=>this._annotationRun===l;if(this._annotationRun=l,this._annotationOverlay.next(m),await s(i(a.transitionState$.pipe(r(t=>"still"===t||"sleep"===t&&!o)),n(2e3))),!h())return this._annotationOverlay.next(null),null;let c=a.holdCameraOffset(),d=null;try{await a.glideCameraOffset(v);let t=await this._context.freezeView();h()&&(d=await new Promise(e=>{this._annotationOverlay.next({kind:"editor",view:t,finish:e})}))}catch(e){let t=e instanceof Error?e:Error(String(e));this._context.domainServicesSelectors.getLogger().error("The configurator view could not be frozen for an annotation",{},t)}this._annotationOverlay.next(m);try{await a.glideCameraOffset(a.canvasPadding$.value)}finally{c(),this._annotationOverlay.next(null),h()&&(this._annotationRun=null)}return d};viewAnnotation=t=>{if(null!==this._annotationOverlay.value)return;let e={kind:"viewer",annotation:t,close:()=>{this._annotationOverlay.value===e&&this._annotationOverlay.next(null)}};this._annotationOverlay.next(e)};resume=async()=>{let t=this._current;if(!t)return!1;if(this._chat.value.isContinuable)return!0;if(this._resuming)return this._resuming;let e=this._compact(t).finally(()=>{this._resuming===e&&(this._resuming=null)});return this._resuming=e,e};loadScreenshotUrl=t=>{let e=this._screenshotUrls.get(t);if(e)return e;let a=this._current;if(!a)return Promise.reject(Error(`The screenshot ${t} cannot be read, because the assistant chat is not active. Open the assistant panel of the configuration first.`));let s=this._screenshotUrls,i=a.authorizedClient.getAssistantImage(a.configurationId,t).then(t=>URL.createObjectURL(t));return s.set(t,i),i.catch(()=>{s.get(t)===i&&s.delete(t)}),i};loadEarlierThread=async()=>{let t=this._current,{earlierThreadId:e,isLoadingEarlierThread:a,hasOlderMessages:s}=this._chat.value;if(!t||null===e||a||s)return;let i=this._chain;this._chat.next({...this._chat.value,isLoadingEarlierThread:!0});try{let a=await t.authorizedClient.getAssistantEarlierThread(t.configurationId,e);if(this._chain!==i||this._chat.value.earlierThreadId!==e)return;let[s,...n]=this._chat.value.earlierThreads,r={threadId:e,messages:a.messages};this._chat.next({...this._chat.value,earlierThreads:s?.threadId===e?[r,...n]:[r,...this._chat.value.earlierThreads],earlierThreadId:a.previousThreadId})}catch(t){this._context.domainServicesSelectors.getLogger().warn("Could not load the earlier assistant conversation",{error:t})}finally{this._chain===i&&this._chat.next({...this._chat.value,isLoadingEarlierThread:!1})}};loadOlderMessages=async()=>{let t=this._current,{hasOlderMessages:e,isLoadingOlderMessages:a}=this._chat.value;if(t&&e&&!a){this._chat.next({...this._chat.value,isLoadingOlderMessages:!0});try{await t.client.loadOlderMessages()}catch(t){this._context.domainServicesSelectors.getLogger().warn("Could not load older assistant messages",{error:t})}finally{t===this._current&&this._chat.next({...this._chat.value,hasOlderMessages:t.client.getHasOlderMessages(),isLoadingOlderMessages:!1})}}};stop=async()=>{let t=this._current;if(!t)return;let e=t.client.getCurrentRunId();if(t.client.stop(),null!=e)try{let a=t.getConnection();await fetch(`${a.url}/runs/${encodeURIComponent(e)}/cancel`,{method:"POST",headers:await a.headers()})}catch(t){this._context.domainServicesSelectors.getLogger().warn("Could not cancel the assistant run on the server",{error:t})}};reloadThread=()=>{if(!this._activation)return;let t=this._retireChat();t?.client.stop(),t?.dispose(),this._recorder.reset(this._committedState()),this._startClient()};undoToolCalls=t=>{let e=this._context.domainContextSelectors.getUndoSystem(),a=()=>{let e=this._findTipToolCallId();return void 0!==e&&t.has(e)};for(;a();)e.undo()};setOpen=t=>{this._patchPanel(t?{open:t,hasUnreadReply:!1}:{open:t,isInputFocused:!1})};setInputFocused=t=>{this._patchPanel({isInputFocused:t})};_closeAnnotationOverlay=()=>{let t=this._annotationOverlay.value;this._annotationRun=null,t?.kind==="editor"&&t.finish(null),t?.kind==="viewer"&&t.close()};_findRefusedMessageIndex=t=>{var e;let a,{failedStatus:s,isContinuable:i}=this._chat.value;return this._firstAttempt===t&&t.generation.active&&409===s&&!i?(a=(e=t.client.getMessages()).map(t=>t.role).lastIndexOf("user"),e.slice(a+1).every(t=>0===t.parts.length)?a:-1):-1};_messageContent=(t,e)=>0===e.length?t:[...t?[{type:"text",content:t}]:[],...e.map(t=>({type:"image",source:{type:"url",value:h(t)}}))];_uploadImages=async(t,e)=>{if(0===e.length)return[];t.generation.active&&this._chat.next({...this._chat.value,error:void 0,failedStatus:void 0});try{return(await Promise.all(e.map(e=>t.authorizedClient.uploadAssistantImage(t.configurationId,e)))).map(({imageId:t})=>t)}catch(a){let e=a instanceof Error?a:Error(String(a));if(e instanceof c&&e.threadNotContinuable)return t.generation.active&&this._chat.next({...this._chat.value,isContinuable:!1,error:e,failedStatus:e.status}),"refused";return this._reportUploadFailure(t,e),null}};_uploadSuccessorImages=async(t,e)=>{if(0===e.length)return[];this._chat.next({...this._chat.value,isResuming:!0});try{return await this._uploadImages(t,e)}finally{t.generation.active&&this._chat.next({...this._chat.value,isResuming:!1})}};_reportUploadFailure=(t,e)=>{t.generation.active&&this._chat.next({...this._chat.value,error:e,failedStatus:e instanceof c?e.status:void 0}),this._context.domainServicesSelectors.getLogger().error("The images of the assistant message could not be uploaded",{},e)};_sendOn=async(t,e,a)=>{let{client:s}=t;s.getIsLoading()||null===s.getResumeState()||s.stop();try{await s.sendMessage({content:e,metadata:a})}catch(a){let e=a instanceof Error?a:Error(String(a));t.generation.active&&this._chat.next({...this._chat.value,error:e}),this._context.domainServicesSelectors.getLogger().error("The assistant message could not be sent",{},e)}};_compact=async t=>{this._chat.next({...this._chat.value,isResuming:!0,error:void 0,failedStatus:void 0});try{let{previousThreadId:e}=await t.authorizedClient.compactAssistantThread(t.configurationId);if(!t.generation.active)return!1;let{messages:a,earlierThreads:s,earlierThreadId:i,isLoadingEarlierThread:n}=this._chat.value,r=this._refused?.chat===t?a.slice(0,this._refused.index):a,o=t.client.getHasOlderMessages()?e:i;return t.generation.active=!1,this._current=null,t.client.stop(),t.dispose(),this._chat.next({...f,earlierThreads:[...s,{threadId:e,messages:r}],earlierThreadId:o,isLoadingEarlierThread:n}),this._startClient(),!0}catch(a){let e=a instanceof Error?a:Error(String(a));if(e instanceof c&&409===e.status)return t.generation.active&&this.reloadThread(),!1;return t.generation.active&&this._chat.next({...this._chat.value,isResuming:!1,error:e,failedStatus:e instanceof c?e.status:void 0,...e instanceof c&&e.locked&&{isLocked:!0}}),this._context.domainServicesSelectors.getLogger().error("The assistant thread could not be resumed",{},e),!1}};_findTipToolCallId=()=>{let t=this._context.domainContextSelectors.getUndoSystem(),e=t.tip$.value?.committedState;return void 0!==e&&t.canUndo()?this._applyToolCallIds.get(e):void 0};_refreshUndoTip=()=>{let t=this._findTipToolCallId();t!==this._undoTipToolCallId.value&&this._undoTipToolCallId.next(t)};_committedState=()=>this._context.domainContextSelectors.getStoreSystem().stateSlices.committed.value.state;_patchPanel=t=>{let e={...this._panel.value,...t};l(e,this._panel.value)||this._panel.next(e)};_takeOverThread=t=>{for(let e of this._finishing)e.configurationId===t&&(e.client.stop(),e.dispose())};_startClient=()=>{let a={active:!0},s=this._context.getConfigurationId();this._takeOverThread(s);let i=this._context.getAuthorizedClient(),n=()=>{if(a.active){let{manifest:t,error:e}=this._context.getAssistantSetup();if(e)throw e;if(!t)throw Error("The assistant is disabled for this session.")}return i.getAssistantChatConnection(s)},r=t=>{if(!a.active)return;let e={...this._chat.value,...t};l(e,this._chat.value)||this._chat.next(e)},o=async(t,e)=>{let a,s=await fetch(t,e).finally(()=>r({isLoaded:!0})),i=s.headers.get("x-assistant-thread-continuable"),n="true"===s.headers.get("x-assistant-locked"),o=null!=i&&s.ok,l=o&&0===this._chat.value.earlierThreads.length,h=l?s.headers.get("x-assistant-previous-thread"):null;return r({failedStatus:s.ok?void 0:s.status,retryAfterSeconds:s.ok?void 0:null!==(a=s.headers.get("retry-after"))&&/^\d+$/.test(a.trim())?Number(a):void 0,...null!=i&&{isContinuable:"false"!==i},...(o||n)&&{isLocked:n},...l&&{earlierThreadId:h,...null!==h&&{hasOlderMessages:await w(s)}}}),s},h=async()=>({headers:await n().headers(),fetchClient:o}),c=e(()=>n().url,h),d=e(()=>`${n().url}/runs`,h),u=this._tools.map(t=>({...t,execute:(e,s)=>{if(!a.active)return y;let{manifest:i,error:n}=this._context.getAssistantSetup();return n||!i?{error:n?.message??"The assistant is disabled for this session."}:t.execute?.(e,s)}})),_=new t({threadId:`assistant:${s}`,connection:{...c,joinRun:d.joinRun},persistence:!0,history:{pageSize:50},tools:u,onMessagesChange:t=>r({messages:t,hasOlderMessages:_.getHasOlderMessages()}),onLoadingChange:t=>{let e=a.active&&this._chat.value.isLoading;r({isLoading:t}),!t&&x(_)&&(a.active?e&&!this._panel.value.open&&this._patchPanel({hasUnreadReply:!0}):f())},onErrorChange:t=>{a.active&&t!==this._chat.value.error&&(!t||-1===this._findRefusedMessageIndex(v))&&(r({error:t}),t&&this._context.domainServicesSelectors.getLogger().error("The assistant request failed",{status:this._chat.value.failedStatus},t))}}),g=!1,f=()=>{g||(g=!0,this._finishing.delete(v),_.dispose())},v={client:_,configurationId:s,generation:a,authorizedClient:i,getConnection:n,dispose:f};this._current=v,_.attach()};_retireChat=()=>{let t=this._current;return this._current=null,t&&(t.generation.active=!1),this._chain={},this._resuming=null,this._refused=null,this._chat.value!==f&&this._chat.next(f),t};_releaseScreenshotUrls=()=>{for(let t of this._screenshotUrls.values())t.then(URL.revokeObjectURL,()=>void 0);this._screenshotUrls=new Map};_endChat=()=>{let t=this._retireChat();if(t){if(!t.client.getIsLoading()&&x(t.client))return void t.dispose();this._finishing.add(t)}}}
@@ -7,7 +7,7 @@ import type { GraphQLExecution, GraphQLSystem } from '../graphql-system/graphql-
7
7
  * mode current at that moment, never against ones captured when its reply began streaming.
8
8
  */
9
9
  export interface AssistantToolDependencies {
10
- readonly getGraphQLSystem: () => Pick<GraphQLSystem, 'prepare' | 'execute' | 'readSideEffects' | 'readScreenshots'>;
10
+ readonly getGraphQLSystem: () => Pick<GraphQLSystem, 'prepare' | 'execute' | 'readSideEffects' | 'readWarnings' | 'readScreenshots'>;
11
11
  readonly getStoreSystem: () => {
12
12
  readonly isInitialized: boolean;
13
13
  readonly stateSlices: {
@@ -35,7 +35,8 @@ export interface AssistantToolDependencies {
35
35
  /**
36
36
  * A tool result as the chat client accepts it: content parts, the execution's JSON as a text part
37
37
  * followed, per screenshot, by its label as a text part and its picture as an image part, so the
38
- * model reads each picture under the label its `image` field returned. The client deep-clones a
38
+ * model reads each picture under the label its `image` field returned; the image part references the picture the browser uploaded, which the server
39
+ * inlines only for the model. The client deep-clones a
39
40
  * result and rejects anything that is not plain JSON, so the `GraphQLError` instances of a result
40
41
  * are formatted through their `toJSON` and `undefined` members are dropped. The prepared state stays
41
42
  * in the browser.
@@ -44,12 +45,16 @@ export declare const toToolResult: ({ preparedState, screenshots, ...execution }
44
45
  /**
45
46
  * Browser implementation of the assistant's `query` tool: prepares the operations from the
46
47
  * committed state and drops their emissions, so mutations in the list show a hypothetical state and
47
- * the configuration, the undo stack and the saved revision stay as they were. The side effects of
48
- * the dropped emissions are still reported, as what the changes would do.
48
+ * the configuration, the undo stack and the saved revision stay as they were. The side effects and
49
+ * the new warnings of the dropped emissions are still reported, as what the changes would do.
49
50
  */
50
51
  export declare const createQueryClientTool: (dependencies: AssistantToolDependencies) => import("@tanstack/ai").ClientTool<{
51
52
  type: string;
52
53
  properties: {
54
+ title: {
55
+ type: string;
56
+ description: string;
57
+ };
53
58
  operations: {
54
59
  type: string;
55
60
  minItems: number;
@@ -79,6 +84,10 @@ export declare const createQueryClientTool: (dependencies: AssistantToolDependen
79
84
  inputSchema: {
80
85
  type: string;
81
86
  properties: {
87
+ title: {
88
+ type: string;
89
+ description: string;
90
+ };
82
91
  operations: {
83
92
  type: string;
84
93
  minItems: number;
@@ -132,6 +141,10 @@ export declare const createQueryClientTool: (dependencies: AssistantToolDependen
132
141
  export declare const createApplyClientTool: (dependencies: AssistantToolDependencies) => import("@tanstack/ai").ClientTool<{
133
142
  type: string;
134
143
  properties: {
144
+ title: {
145
+ type: string;
146
+ description: string;
147
+ };
135
148
  operations: {
136
149
  type: string;
137
150
  minItems: number;
@@ -161,6 +174,10 @@ export declare const createApplyClientTool: (dependencies: AssistantToolDependen
161
174
  inputSchema: {
162
175
  type: string;
163
176
  properties: {
177
+ title: {
178
+ type: string;
179
+ description: string;
180
+ };
164
181
  operations: {
165
182
  type: string;
166
183
  minItems: number;
@@ -1 +1 @@
1
- import{AssistantGraphQLToolInput as e,applyTool as t,queryTool as o}from"@salsita-ai/contracts/assistant";let a=e=>({results:[],committed:!1,message:e,sideEffects:[],screenshots:new Map});export const toToolResult=({preparedState:e,screenshots:t,...o})=>[{type:"text",content:JSON.stringify(o)},...[...t].flatMap(([e,{data:t,mimeType:o}])=>[{type:"text",content:e},{type:"image",source:{type:"data",value:t,mimeType:o}}])];let i=t=>{let o=e.safeParse(t);if(!o.success){let e=o.error.issues.map(e=>`${e.path.join(".")}: ${e.message}`).join("; ");return{ok:!1,refusal:a(`Nothing was run, because the tool input is not a list of operations (${e}). Send { "operations": [{ "query": "<one GraphQL operation>" }] } with at least one item.`)}}return{ok:!0,operations:o.data.operations.map(({query:e,variables:t,operationName:o})=>({document:e,variables:t??void 0,operationName:o??void 0}))}};export const createQueryClientTool=e=>o.client(async t=>{let o=i(t);if(!o.ok)return toToolResult(o.refusal);let s=e.getStoreSystem();if(!s.isInitialized)return toToolResult(a("Nothing was run, because the configuration is not loaded yet, so there is no state to query. Call the tool again once the configurator has finished loading."));let n=e.getGraphQLSystem(),r=await n.prepare(s.stateSlices.committed.value.state,o.operations);return toToolResult({results:r.map(({result:e})=>e),committed:!1,sideEffects:n.readSideEffects(r),screenshots:n.readScreenshots(r)})});export const createApplyClientTool=e=>t.client(async(t,o)=>{if("finalize"===e.getActiveMode())return toToolResult(a("Nothing was run, because changes cannot be applied in this session: the user may view this configuration but not change it. The query tool still works here, including mutations, to show what a change would do without keeping it."));if(e.getIsViewMode())return toToolResult(a("Nothing was run, because the configuration is read-only right now: the user may view it but not change it. The query tool still works here, including mutations, to show what a change would do without keeping it. Call apply again only once the configuration is editable."));let s=i(t);if(!s.ok)return toToolResult(s.refusal);let n=await e.getGraphQLSystem().execute(s.operations),r=o?.toolCallId;return void 0!==r&&void 0!==n.preparedState&&e.rememberCommit(r,n.preparedState),n.committed&&e.clearChanges(),toToolResult(n)});
1
+ import{AssistantGraphQLToolInput as e,applyTool as t,assistantImageReference as o,queryTool as a}from"@salsita-ai/contracts/assistant";let i=e=>({results:[],committed:!1,message:e,sideEffects:[],screenshots:new Map,warnings:[]});export const toToolResult=({preparedState:e,screenshots:t,...a})=>[{type:"text",content:JSON.stringify(a)},...[...t].flatMap(([e,{imageId:t}])=>[{type:"text",content:e},{type:"image",source:{type:"url",value:o(t)}}])];let s=t=>{let o=e.safeParse(t);if(!o.success){let e=o.error.issues.map(e=>`${e.path.join(".")}: ${e.message}`).join("; ");return{ok:!1,refusal:i(`Nothing was run, because the tool input is not a list of operations (${e}). Send { "operations": [{ "query": "<one GraphQL operation>" }] } with at least one item.`)}}return{ok:!0,operations:o.data.operations.map(({query:e,variables:t,operationName:o})=>({document:e,variables:t??void 0,operationName:o??void 0}))}};export const createQueryClientTool=e=>a.client(async t=>{let o=s(t);if(!o.ok)return toToolResult(o.refusal);let a=e.getStoreSystem();if(!a.isInitialized)return toToolResult(i("Nothing was run, because the configuration is not loaded yet, so there is no state to query. Call the tool again once the configurator has finished loading."));let n=e.getGraphQLSystem(),r=a.stateSlices.committed.value.state,l=await n.prepare(r,o.operations);return toToolResult({results:l.map(({result:e})=>e),committed:!1,sideEffects:n.readSideEffects(l),screenshots:n.readScreenshots(l),warnings:n.readWarnings(r,l)})});export const createApplyClientTool=e=>t.client(async(t,o)=>{if("finalize"===e.getActiveMode())return toToolResult(i("Nothing was run, because changes cannot be applied in this session: the user may view this configuration but not change it. The query tool still works here, including mutations, to show what a change would do without keeping it."));if(e.getIsViewMode())return toToolResult(i("Nothing was run, because the configuration is read-only right now: the user may view it but not change it. The query tool still works here, including mutations, to show what a change would do without keeping it. Call apply again only once the configuration is editable."));let a=s(t);if(!a.ok)return toToolResult(a.refusal);let n=await e.getGraphQLSystem().execute(a.operations),r=o?.toolCallId;return void 0!==r&&void 0!==n.preparedState&&e.rememberCommit(r,n.preparedState),n.committed&&e.clearChanges(),toToolResult(n)});
@@ -65,6 +65,10 @@ export declare class CameraControlSystem {
65
65
  */
66
66
  private readonly _canvasPadding$;
67
67
  readonly canvasPadding$: ObservableWithLastValue<CanvasPadding>;
68
+ /** The padding the interactive cameras were last offset by, through `applyCameraOffset`. */
69
+ private _appliedCameraOffset;
70
+ /** How many holders keep CameraPadding from writing the offset; see `holdCameraOffset`. */
71
+ private _cameraOffsetHolds;
68
72
  private _generation;
69
73
  private _pendingAbortController;
70
74
  private _lastTransition;
@@ -118,6 +122,45 @@ export declare class CameraControlSystem {
118
122
  readonly fitRootCamera: () => void;
119
123
  readonly fitEntity: (id: DomainEntityId<string>) => void;
120
124
  readonly setCameraOffset: (props: CameraOffsetProps) => void;
125
+ /**
126
+ * The padding the interactive cameras were last offset by; a glide starts from it.
127
+ *
128
+ * @internal
129
+ */
130
+ get appliedCameraOffset(): CanvasPadding;
131
+ /**
132
+ * True while someone else than CameraPadding owns the offset of the interactive cameras.
133
+ *
134
+ * @internal
135
+ */
136
+ get isCameraOffsetHeld(): boolean;
137
+ /**
138
+ * Takes the offset of the interactive cameras over from CameraPadding, which stops writing it until
139
+ * every hold is released, so the holder can move the view without a refit (see
140
+ * `glideCameraOffset`). Releasing wakes the frameloop, so CameraPadding glides on from wherever the
141
+ * holder left the offset. The returned release does nothing when called again.
142
+ *
143
+ * @internal
144
+ */
145
+ readonly holdCameraOffset: () => (() => void);
146
+ /**
147
+ * Offsets both interactive cameras by `padding` against the measured canvas viewport. Nothing
148
+ * happens while no canvas has been measured: there is no viewport to offset against.
149
+ *
150
+ * @internal
151
+ */
152
+ readonly applyCameraOffset: (padding: CanvasPadding) => void;
153
+ /**
154
+ * Moves the offset of the interactive cameras from the applied padding to `to` in a fixed time, a
155
+ * frame at a time, and resolves once it is there. The offset is a function of the elapsed time, so
156
+ * a slow device shows fewer frames but takes no longer. With reduced motion it is set at once.
157
+ * Meant for the holder of `holdCameraOffset`; CameraPadding would otherwise overwrite every step.
158
+ *
159
+ * @internal
160
+ */
161
+ readonly glideCameraOffset: (to: CanvasPadding) => Promise<void>;
162
+ /** Wakes the demand frameloop of the mounted canvas, so an offset written outside a frame is drawn. */
163
+ private readonly _invalidate;
121
164
  initialize: () => void;
122
165
  }
123
166
  export {};
@@ -1 +1 @@
1
- import t from"promise-queue";import{BehaviorSubject as e,Subject as r,debounceTime as a,map as i,of as o,shareReplay as s,startWith as n,switchMap as h}from"rxjs";import{OrthographicCamera as l,PerspectiveCamera as p}from"three";import{match as c}from"ts-pattern";import{DEFAULT_DIMENSION_UNIT as C,distanceUnitToDefault as m}from"#package/domain";import{createCameraControls as g}from"./create-camera-controls.js";export const CameraControlType={Perspective:"perspective",Orthographic:"orthographic"};let d=t=>Number.isFinite(t.width)&&Number.isFinite(t.height)&&t.width>0&&t.height>0;export class CameraControlSystem{_context;perspectiveCamera=Object.assign(new p,{manual:!0});orthographicCamera=Object.assign(new l,{manual:!0});perspectiveCameraControls=g(this.perspectiveCamera);orthographicCameraControls=g(this.orthographicCamera);_transitionState$=new e("still");_rendered$=new r;_transitionQueue=new t(1,1/0);_activeCameraControls$=new e(void 0);activeCameraControls$=this._activeCameraControls$;_canvasPadding$=new e({top:0,right:0,bottom:0,left:0});canvasPadding$=this._canvasPadding$;_generation=null;_pendingAbortController=void 0;_lastTransition=void 0;_cameraControlState$=new e("idle");cameraControlState$=this._cameraControlState$;transitionState$=this._transitionState$.pipe(h(t=>"sleep"===t?this._rendered$.pipe(a(200),i(()=>"still"),n("sleep")):o(t)),s(1));constructor(t){this._context=t,this.perspectiveCamera.fov=50,this.perspectiveCamera.near=m(500,C),this.perspectiveCamera.far=m(4e4,C),this.perspectiveCamera.position.set(0,1,0),this.orthographicCamera.left=m(-500,C),this.orthographicCamera.bottom=m(-500,C),this.orthographicCamera.right=m(500,C),this.orthographicCamera.top=m(500,C),this.orthographicCamera.far=m(4e4,C),this.orthographicCamera.near=m(500,C),this.orthographicCamera.position.set(0,1,0),this._context.configuratorExtensionSelectors.getCanvasSystem().interactiveViewport$.subscribe(t=>{null!==t&&this.handleCanvasResize(t)})}_seedCameraControls=()=>{this.perspectiveCameraControls.enabled=!0,this.orthographicCameraControls.enabled=!0,this.perspectiveCameraControls.rotateTo(0,1.2,!1),this.orthographicCameraControls.rotateTo(0,1.2,!1),this.orthographicCameraControls.dollyTo(m(1e4,C),!1)};resetCamera=()=>{this._lastTransition&&this.scheduleCameraTransition(this._lastTransition,{bypassViewLocks:!0})};setTransitionState=t=>{this._transitionState$.next(t)};reportRender=()=>{this._rendered$.next()};scheduleCameraTransition(t,e={}){this._pendingAbortController?.abort();let r=new AbortController;this._pendingAbortController=r;let a=this._generation;return{finished:this._transitionQueue.add(async()=>{let i=r.signal;if(i.aborted||!a?.active)return;let o=c(t.cameraType).with(CameraControlType.Perspective,()=>this.perspectiveCameraControls).with(CameraControlType.Orthographic,()=>this.orthographicCameraControls).exhaustive(),s=null==this._activeCameraControls$.value,n=this._activeCameraControls$.value!==o;n&&this._activeCameraControls$.next(o),this._lastTransition=t,await t.run({controls:o,camera:o.camera,abortSignal:i,firstLoad:s,typeChanged:n,bypassViewLocks:!0===e.bypassViewLocks})}),abort:()=>{r.abort()}}}setCameraControlState=t=>{this._cameraControlState$.next(t)};handleCanvasResize=t=>{if(!d(t))return;let e=t.width/t.height;this.perspectiveCamera.aspect=e,this.perspectiveCamera.updateProjectionMatrix();let r=this.orthographicCamera,a=(r.left+r.right)/2,i=(r.top-r.bottom)/2*e;r.left=a-i,r.right=a+i,r.updateProjectionMatrix()};setCanvasPadding=t=>{let e=this._canvasPadding$.value;(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)&&this._canvasPadding$.next(t)};enable=()=>{this.perspectiveCameraControls.enabled=!0,this.orthographicCameraControls.enabled=!0};disable=()=>{this.perspectiveCameraControls.enabled=!1,this.orthographicCameraControls.enabled=!1};fitRootCamera=()=>{let t=this._context.configuratorExtensionSelectors.getCanvasSystem().ready$.value?.scene;t&&this.perspectiveCameraControls.fitToSphere(t,!1)};fitEntity=t=>{let e=this._context.configuratorExtensionSelectors.getCanvasSystem().ready$.value?.scene;if(!e)return;let r=e.getObjectByName(t.toString());null!=r&&this.perspectiveCameraControls.fitToBox(r,!1)};setCameraOffset=t=>{let{padding:e,viewPort:r,camera:a}=t;if(!d(r))return;if(![e.top,e.right,e.bottom,e.left].every(Number.isFinite)||e.left+e.right>=r.width||e.top+e.bottom>=r.height)return void a.clearViewOffset();let i=(e.right-e.left)/2,o=(e.bottom-e.top)/2;a.setViewOffset(r.width,r.height,i,o,r.width,r.height)};initialize=()=>{null!==this._generation&&(this._generation.active=!1),this._pendingAbortController?.abort(),this._pendingAbortController=void 0,this._lastTransition=void 0,this._transitionState$.next("still"),this._cameraControlState$.next("idle"),this._activeCameraControls$.next(void 0),this._generation={active:!0},this._seedCameraControls()}}
1
+ import t from"promise-queue";import{BehaviorSubject as e,Subject as a,debounceTime as r,map as i,of as o,shareReplay as s,startWith as n,switchMap as h}from"rxjs";import{OrthographicCamera as l,PerspectiveCamera as m}from"three";import{match as p}from"ts-pattern";import{DEFAULT_DIMENSION_UNIT as c,distanceUnitToDefault as C}from"#package/domain";import{createCameraControls as d}from"./create-camera-controls.js";export const CameraControlType={Perspective:"perspective",Orthographic:"orthographic"};let f=Object.freeze({top:0,right:0,bottom:0,left:0}),g=t=>Number.isFinite(t.width)&&Number.isFinite(t.height)&&t.width>0&&t.height>0;export class CameraControlSystem{_context;perspectiveCamera=Object.assign(new m,{manual:!0});orthographicCamera=Object.assign(new l,{manual:!0});perspectiveCameraControls=d(this.perspectiveCamera);orthographicCameraControls=d(this.orthographicCamera);_transitionState$=new e("still");_rendered$=new a;_transitionQueue=new t(1,1/0);_activeCameraControls$=new e(void 0);activeCameraControls$=this._activeCameraControls$;_canvasPadding$=new e({top:0,right:0,bottom:0,left:0});canvasPadding$=this._canvasPadding$;_appliedCameraOffset=f;_cameraOffsetHolds=0;_generation=null;_pendingAbortController=void 0;_lastTransition=void 0;_cameraControlState$=new e("idle");cameraControlState$=this._cameraControlState$;transitionState$=this._transitionState$.pipe(h(t=>"sleep"===t?this._rendered$.pipe(r(200),i(()=>"still"),n("sleep")):o(t)),s(1));constructor(t){this._context=t,this.perspectiveCamera.fov=50,this.perspectiveCamera.near=C(500,c),this.perspectiveCamera.far=C(4e4,c),this.perspectiveCamera.position.set(0,1,0),this.orthographicCamera.left=C(-500,c),this.orthographicCamera.bottom=C(-500,c),this.orthographicCamera.right=C(500,c),this.orthographicCamera.top=C(500,c),this.orthographicCamera.far=C(4e4,c),this.orthographicCamera.near=C(500,c),this.orthographicCamera.position.set(0,1,0),this._context.configuratorExtensionSelectors.getCanvasSystem().interactiveViewport$.subscribe(t=>{null!==t&&this.handleCanvasResize(t)})}_seedCameraControls=()=>{this.perspectiveCameraControls.enabled=!0,this.orthographicCameraControls.enabled=!0,this.perspectiveCameraControls.rotateTo(0,1.2,!1),this.orthographicCameraControls.rotateTo(0,1.2,!1),this.orthographicCameraControls.dollyTo(C(1e4,c),!1)};resetCamera=()=>{this._lastTransition&&this.scheduleCameraTransition(this._lastTransition,{bypassViewLocks:!0})};setTransitionState=t=>{this._transitionState$.next(t)};reportRender=()=>{this._rendered$.next()};scheduleCameraTransition(t,e={}){this._pendingAbortController?.abort();let a=new AbortController;this._pendingAbortController=a;let r=this._generation;return{finished:this._transitionQueue.add(async()=>{let i=a.signal;if(i.aborted||!r?.active)return;let o=p(t.cameraType).with(CameraControlType.Perspective,()=>this.perspectiveCameraControls).with(CameraControlType.Orthographic,()=>this.orthographicCameraControls).exhaustive(),s=null==this._activeCameraControls$.value,n=this._activeCameraControls$.value!==o;n&&this._activeCameraControls$.next(o),this._lastTransition=t,await t.run({controls:o,camera:o.camera,abortSignal:i,firstLoad:s,typeChanged:n,bypassViewLocks:!0===e.bypassViewLocks})}),abort:()=>{a.abort()}}}setCameraControlState=t=>{this._cameraControlState$.next(t)};handleCanvasResize=t=>{if(!g(t))return;let e=t.width/t.height;this.perspectiveCamera.aspect=e,this.perspectiveCamera.updateProjectionMatrix();let a=this.orthographicCamera,r=(a.left+a.right)/2,i=(a.top-a.bottom)/2*e;a.left=r-i,a.right=r+i,a.updateProjectionMatrix()};setCanvasPadding=t=>{let e=this._canvasPadding$.value;(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)&&this._canvasPadding$.next(t)};enable=()=>{this.perspectiveCameraControls.enabled=!0,this.orthographicCameraControls.enabled=!0};disable=()=>{this.perspectiveCameraControls.enabled=!1,this.orthographicCameraControls.enabled=!1};fitRootCamera=()=>{let t=this._context.configuratorExtensionSelectors.getCanvasSystem().ready$.value?.scene;t&&this.perspectiveCameraControls.fitToSphere(t,!1)};fitEntity=t=>{let e=this._context.configuratorExtensionSelectors.getCanvasSystem().ready$.value?.scene;if(!e)return;let a=e.getObjectByName(t.toString());null!=a&&this.perspectiveCameraControls.fitToBox(a,!1)};setCameraOffset=t=>{let{padding:e,viewPort:a,camera:r}=t;if(!g(a))return;if(![e.top,e.right,e.bottom,e.left].every(Number.isFinite)||e.left+e.right>=a.width||e.top+e.bottom>=a.height)return void r.clearViewOffset();let i=(e.right-e.left)/2,o=(e.bottom-e.top)/2;r.setViewOffset(a.width,a.height,i,o,a.width,a.height)};get appliedCameraOffset(){return this._appliedCameraOffset}get isCameraOffsetHeld(){return this._cameraOffsetHolds>0}holdCameraOffset=()=>{this._cameraOffsetHolds+=1;let t=!1;return()=>{t||(t=!0,this._cameraOffsetHolds-=1,this._invalidate())}};applyCameraOffset=t=>{let e=this._context.configuratorExtensionSelectors.getCanvasSystem().interactiveViewport$.value;null!==e&&(this.setCameraOffset({padding:t,viewPort:e,camera:this.perspectiveCamera}),this.setCameraOffset({padding:t,viewPort:e,camera:this.orthographicCamera}),this._appliedCameraOffset=t)};glideCameraOffset=async t=>{let e=this._appliedCameraOffset;if(globalThis.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0){this.applyCameraOffset(t),this._invalidate();return}let a=performance.now();await new Promise(r=>{let i=o=>{let s,n=Math.min(1,Math.max(0,(o-a)/300));this.applyCameraOffset((s=n<.5?4*n*n*n:1-(-2*n+2)**3/2,{top:e.top+(t.top-e.top)*s,right:e.right+(t.right-e.right)*s,bottom:e.bottom+(t.bottom-e.bottom)*s,left:e.left+(t.left-e.left)*s})),this._invalidate(),n<1?requestAnimationFrame(i):r()};requestAnimationFrame(i)})};_invalidate=()=>{this._context.configuratorExtensionSelectors.getCanvasSystem().r3fHandle$.value?.get().invalidate()};initialize=()=>{null!==this._generation&&(this._generation.active=!1),this._pendingAbortController?.abort(),this._pendingAbortController=void 0,this._lastTransition=void 0,this._transitionState$.next("still"),this._cameraControlState$.next("idle"),this._activeCameraControls$.next(void 0),this._generation={active:!0},this._seedCameraControls()}}