@salsita-ai/sdk 0.50.0-develop.b7caacb493 → 0.50.0-develop.b929a82a82

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 (1279) 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/index.d.ts +1 -0
  6. package/dist/application/index.js +1 -1
  7. package/dist/application/mount-application.d.ts +1 -1
  8. package/dist/application/mount-application.js +1 -1
  9. package/dist/application/mount-configurator.d.ts +19 -0
  10. package/dist/application/mount-configurator.js +1 -0
  11. package/dist/application/mounted-application-runtime.d.ts +4 -0
  12. package/dist/application/mounted-application-runtime.js +1 -0
  13. package/dist/application/register-web-component.d.ts +2 -0
  14. package/dist/application/register-web-component.js +1 -0
  15. package/dist/application-spec/caching/index.d.ts +6 -1
  16. package/dist/application-spec/caching/index.js +1 -1
  17. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
  18. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  19. package/dist/application-spec/core/index.d.ts +1 -3
  20. package/dist/application-spec/core/index.js +1 -1
  21. package/dist/application-spec/core/json-schema.d.ts +2 -52
  22. package/dist/application-spec/core/markers/index.d.ts +1 -1
  23. package/dist/application-spec/core/markers/index.js +1 -1
  24. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  25. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  26. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  27. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  28. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  29. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -1
  30. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  31. package/dist/application-spec/errors/diagnostic-messages.d.ts +16 -1
  32. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  33. package/dist/application-spec/generate-application/code/domain-runtime-files.d.ts +0 -19
  34. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  35. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  36. package/dist/application-spec/generate-application/code/templates/gitignore.js +2 -1
  37. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  38. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  39. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +5 -4
  40. package/dist/application-spec/generate-application/code/templates/skills/core/cli.d.ts +2 -0
  41. package/dist/application-spec/generate-application/code/templates/skills/core/cli.js +1 -0
  42. package/dist/application-spec/generate-application/code/templates/skills/core/index.d.ts +3 -0
  43. package/dist/application-spec/generate-application/code/templates/skills/core/index.js +1 -0
  44. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.d.ts +2 -0
  45. package/dist/application-spec/generate-application/code/templates/skills/core/sdk.js +117 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.d.ts +2 -0
  47. package/dist/application-spec/generate-application/code/templates/skills/core/workflow.js +40 -0
  48. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.d.ts +3 -0
  49. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/application-states.js +3 -0
  50. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.d.ts +1 -0
  51. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/index.js +1 -0
  52. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.d.ts +3 -0
  53. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/navigation.js +48 -0
  54. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.d.ts +3 -0
  55. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/presets.js +38 -0
  56. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.d.ts +3 -0
  57. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/selection.js +35 -0
  58. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.d.ts +3 -0
  59. package/dist/application-spec/generate-application/code/templates/skills/features/application-states/views-and-tools.js +61 -0
  60. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.d.ts +3 -0
  61. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/custom-layout.js +7 -0
  62. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.d.ts +3 -0
  63. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/finalization-actions.js +79 -0
  64. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.d.ts +1 -0
  65. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/index.js +1 -0
  66. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.d.ts +3 -0
  67. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/messages.js +52 -0
  68. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.d.ts +3 -0
  69. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/pages.js +49 -0
  70. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.d.ts +3 -0
  71. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/scene-and-safe-area.js +62 -0
  72. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.d.ts +3 -0
  73. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/slots.js +40 -0
  74. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.d.ts +3 -0
  75. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/tabs-and-steps.js +65 -0
  76. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.d.ts +3 -0
  77. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/toolbar-actions.js +58 -0
  78. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.d.ts +3 -0
  79. package/dist/application-spec/generate-application/code/templates/skills/features/custom-layout/view-mode.js +41 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.d.ts +3 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-components.js +24 -0
  82. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.d.ts +3 -0
  83. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/control-hooks.js +44 -0
  84. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.d.ts +3 -0
  85. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/custom-controls.js +74 -0
  86. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.d.ts +3 -0
  87. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/domain-controls.js +8 -0
  88. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.d.ts +1 -0
  89. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/index.js +1 -0
  90. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.d.ts +3 -0
  91. package/dist/application-spec/generate-application/code/templates/skills/features/domain-controls/scene-controls.js +48 -0
  92. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.d.ts +3 -0
  93. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/actions.js +64 -0
  94. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.d.ts +3 -0
  95. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/components.js +62 -0
  96. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.d.ts +3 -0
  97. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/domain-model.js +1 -0
  98. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.d.ts +3 -0
  99. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/entities-and-relations.js +59 -0
  100. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.d.ts +3 -0
  101. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/expressions.js +46 -0
  102. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.d.ts +1 -0
  103. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/index.js +1 -0
  104. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.d.ts +3 -0
  105. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/transformers.js +43 -0
  106. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.d.ts +3 -0
  107. package/dist/application-spec/generate-application/code/templates/skills/features/domain-model/validation-and-repair.js +30 -0
  108. package/dist/application-spec/generate-application/code/templates/skills/features/features.d.ts +3 -0
  109. package/dist/application-spec/generate-application/code/templates/skills/features/features.js +1 -0
  110. package/dist/application-spec/generate-application/code/templates/skills/features/index.d.ts +1 -0
  111. package/dist/application-spec/generate-application/code/templates/skills/features/index.js +1 -0
  112. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.d.ts +2 -0
  113. package/dist/application-spec/generate-application/code/templates/skills/features/inspection.js +1 -0
  114. package/dist/application-spec/generate-application/code/templates/skills/features/localization.d.ts +3 -0
  115. package/dist/application-spec/generate-application/code/templates/skills/features/localization.js +87 -0
  116. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.d.ts +1 -0
  117. package/dist/application-spec/generate-application/code/templates/skills/features/state/index.js +1 -0
  118. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.d.ts +3 -0
  119. package/dist/application-spec/generate-application/code/templates/skills/features/state/slices.js +48 -0
  120. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.d.ts +3 -0
  121. package/dist/application-spec/generate-application/code/templates/skills/features/state/state.js +1 -0
  122. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.d.ts +3 -0
  123. package/dist/application-spec/generate-application/code/templates/skills/features/state/updates.js +39 -0
  124. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.d.ts +3 -0
  125. package/dist/application-spec/generate-application/code/templates/skills/features/state/violations.js +36 -0
  126. package/dist/application-spec/generate-application/code/templates/skills/features/variants.d.ts +2 -0
  127. package/dist/application-spec/generate-application/code/templates/skills/features/variants.js +1 -0
  128. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.d.ts +2 -0
  129. package/dist/application-spec/generate-application/code/templates/skills/features/webhooks.js +1 -0
  130. package/dist/application-spec/generate-application/code/templates/skills/guide.d.ts +68 -0
  131. package/dist/application-spec/generate-application/code/templates/skills/guide.js +18 -0
  132. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  133. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +14 -0
  134. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.d.ts +9 -0
  135. package/dist/application-spec/generate-application/code/templates/skills/phx-members-without-guide.js +1 -0
  136. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.d.ts +2 -0
  137. package/dist/application-spec/generate-application/code/templates/skills/processes/asset-conversion.js +23 -0
  138. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.d.ts +2 -0
  139. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/evaluate.js +39 -0
  140. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.d.ts +3 -0
  141. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/feedback.js +1 -0
  142. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.d.ts +1 -0
  143. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/index.js +1 -0
  144. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.d.ts +2 -0
  145. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/report.js +7 -0
  146. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.d.ts +2 -0
  147. package/dist/application-spec/generate-application/code/templates/skills/processes/feedback/send.js +2 -0
  148. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.d.ts +2 -0
  149. package/dist/application-spec/generate-application/code/templates/skills/processes/finalization.js +2 -0
  150. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.d.ts +2 -0
  151. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/build.js +25 -0
  152. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.d.ts +2 -0
  153. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/direction.js +26 -0
  154. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.d.ts +3 -0
  155. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/first-draft.js +3 -0
  156. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.d.ts +2 -0
  157. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/handoff.js +7 -0
  158. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.d.ts +1 -0
  159. package/dist/application-spec/generate-application/code/templates/skills/processes/first-draft/index.js +1 -0
  160. package/dist/application-spec/generate-application/code/templates/skills/processes/index.d.ts +9 -0
  161. package/dist/application-spec/generate-application/code/templates/skills/processes/index.js +1 -0
  162. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.d.ts +2 -0
  163. package/dist/application-spec/generate-application/code/templates/skills/processes/model-migration.js +1 -0
  164. package/dist/application-spec/generate-application/code/templates/skills/{phoenix-skill.d.ts → processes/operations.d.ts} +2 -1
  165. package/dist/application-spec/generate-application/code/templates/skills/processes/operations.js +2 -0
  166. package/dist/application-spec/generate-application/code/templates/skills/processes/planning.d.ts +2 -0
  167. package/dist/application-spec/generate-application/code/templates/skills/processes/planning.js +5 -0
  168. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.d.ts +2 -0
  169. package/dist/application-spec/generate-application/code/templates/skills/processes/review/appearance.js +46 -0
  170. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.d.ts +2 -0
  171. package/dist/application-spec/generate-application/code/templates/skills/processes/review/code.js +2 -0
  172. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.d.ts +2 -0
  173. package/dist/application-spec/generate-application/code/templates/skills/processes/review/hand-over.js +6 -0
  174. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.d.ts +1 -0
  175. package/dist/application-spec/generate-application/code/templates/skills/processes/review/index.js +1 -0
  176. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.d.ts +3 -0
  177. package/dist/application-spec/generate-application/code/templates/skills/processes/review/review.js +1 -0
  178. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.d.ts +2 -0
  179. package/dist/application-spec/generate-application/code/templates/skills/processes/review/visual-inspection.js +13 -0
  180. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.d.ts +2 -0
  181. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/branding.js +20 -0
  182. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.d.ts +2 -0
  183. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/catalog.js +1 -0
  184. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.d.ts +1 -0
  185. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/index.js +1 -0
  186. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.d.ts +2 -0
  187. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/product-definition.js +22 -0
  188. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.d.ts +3 -0
  189. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/specification.js +1 -0
  190. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.d.ts +2 -0
  191. package/dist/application-spec/generate-application/code/templates/skills/processes/specification/ux-guidelines.js +25 -0
  192. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +51 -258
  193. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +3 -58
  194. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.d.ts +9 -0
  195. package/dist/application-spec/generate-application/code/templates/skills/sdk-subpath-imports.js +1 -0
  196. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +1 -1
  197. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -1
  198. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -4
  199. package/dist/application-spec/generate-application/code/templates/tsconfig.js +2 -1
  200. package/dist/application-spec/generate-application/index.d.ts +1 -7
  201. package/dist/application-spec/generate-application/index.js +1 -1
  202. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  203. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  204. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  205. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  206. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  207. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  208. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  209. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  210. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +25 -20
  211. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  212. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  213. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  214. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  215. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  216. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  217. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  218. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  219. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  220. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
  221. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  222. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  223. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  224. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  225. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
  226. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  227. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
  228. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
  229. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
  230. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  231. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  232. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  233. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
  234. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  235. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +4 -14
  236. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  237. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  238. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  239. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  240. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  241. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  242. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  243. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  244. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  245. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  246. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  247. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  248. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  249. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  250. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  251. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  252. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  253. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  254. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  255. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  256. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  257. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  258. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  259. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  260. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  261. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  262. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  263. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  264. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  265. package/dist/client/authorized-client.d.ts +4 -2
  266. package/dist/client/authorized-client.js +1 -1
  267. package/dist/client/contract.d.ts +34 -4
  268. package/dist/client/contract.js +1 -1
  269. package/dist/client/index.d.ts +1 -1
  270. package/dist/client/local-authorized-client.d.ts +3 -1
  271. package/dist/client/local-authorized-client.js +1 -1
  272. package/dist/client/memory-authorized-client.d.ts +4 -1
  273. package/dist/client/memory-authorized-client.js +1 -1
  274. package/dist/client/phoenix-api.d.ts +279 -2
  275. package/dist/configurator/ConfiguratorApp.js +1 -1
  276. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  277. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.d.ts +31 -0
  278. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +136 -24
  279. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  280. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +21 -4
  281. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  282. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +43 -0
  283. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.js +1 -1
  284. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +70 -56
  285. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  286. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +38 -11
  287. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  288. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  289. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  290. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.d.ts +10 -0
  291. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/capture-next-frame.js +1 -0
  292. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +8 -0
  293. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  294. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +3 -2
  295. package/dist/configurator/application-runtime/extensions/systems/index.js +1 -1
  296. package/dist/configurator/common/configurator-interface.d.ts +3 -3
  297. package/dist/configurator/common/configurator-interface.js +1 -1
  298. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  299. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  300. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  301. package/dist/configurator/configurator-context/index.d.ts +0 -5
  302. package/dist/configurator/configurator-context/index.js +1 -1
  303. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  304. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  305. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  306. package/dist/configurator/pages/default-configurator-elements.d.ts +6 -2
  307. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  308. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.d.ts +5 -0
  309. package/dist/configurator/pages/error-boundaries/BuiltInGeneralErrorFallback.js +1 -0
  310. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  311. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  312. package/dist/configurator/pages/error-boundaries/index.d.ts +1 -0
  313. package/dist/configurator/pages/error-boundaries/index.js +1 -1
  314. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.d.ts +3 -0
  315. package/dist/configurator/pages/provider-slots/ContainerSlotProvider.js +1 -0
  316. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.d.ts +3 -0
  317. package/dist/configurator/pages/provider-slots/LoaderSlotProvider.js +1 -0
  318. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.d.ts +3 -0
  319. package/dist/configurator/pages/provider-slots/MessageHostSlotProvider.js +1 -0
  320. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.d.ts +3 -0
  321. package/dist/configurator/pages/provider-slots/SceneResourcesSlotProvider.js +1 -0
  322. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.d.ts +3 -0
  323. package/dist/configurator/pages/provider-slots/ThemeSlotProvider.js +1 -0
  324. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.d.ts +3 -0
  325. package/dist/configurator/pages/provider-slots/configurator-provider-slot-elements.js +1 -0
  326. package/dist/configurator/pages/provider-slots/index.d.ts +6 -0
  327. package/dist/configurator/pages/provider-slots/index.js +1 -0
  328. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.d.ts +2 -0
  329. package/dist/configurator/pages/ui-elements/BuiltInInvalidDeploymentReload.js +1 -0
  330. package/dist/configurator/pages/ui-elements/configurator-ui-elements.d.ts +3 -0
  331. package/dist/configurator/pages/ui-elements/configurator-ui-elements.js +1 -0
  332. package/dist/configurator/pages/ui-elements/index.d.ts +2 -0
  333. package/dist/configurator/pages/ui-elements/index.js +1 -0
  334. package/dist/configurator/scene/cameras/CameraPadding.js +1 -1
  335. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -0
  336. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  337. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  338. package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
  339. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  340. package/dist/configurator/ui/assistant/AssistantThread.d.ts +4 -3
  341. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  342. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +4 -1
  343. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -1
  344. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.d.ts +9 -0
  345. package/dist/configurator/ui/assistant/annotation/AnnotationBadge.js +1 -0
  346. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.d.ts +6 -0
  347. package/dist/configurator/ui/assistant/annotation/AnnotationOverlay.js +1 -0
  348. package/dist/configurator/ui/assistant/annotation/AnnotationPin.d.ts +14 -0
  349. package/dist/configurator/ui/assistant/annotation/AnnotationPin.js +1 -0
  350. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.d.ts +12 -0
  351. package/dist/configurator/ui/assistant/annotation/AnnotationViewer.js +1 -0
  352. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.d.ts +11 -0
  353. package/dist/configurator/ui/assistant/annotation/MessageAnnotations.js +1 -0
  354. package/dist/configurator/ui/assistant/annotation/annotation-host-context.d.ts +5 -0
  355. package/dist/configurator/ui/assistant/annotation/annotation-host-context.js +1 -0
  356. package/dist/configurator/ui/assistant/annotation/annotation-layout.d.ts +26 -0
  357. package/dist/configurator/ui/assistant/annotation/annotation-layout.js +1 -0
  358. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.d.ts +15 -0
  359. package/dist/configurator/ui/assistant/annotation/editor/AnnotationComment.js +1 -0
  360. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.d.ts +18 -0
  361. package/dist/configurator/ui/assistant/annotation/editor/AnnotationEditor.js +1 -0
  362. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.d.ts +22 -0
  363. package/dist/configurator/ui/assistant/annotation/editor/annotation-drawing.js +1 -0
  364. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.d.ts +22 -0
  365. package/dist/configurator/ui/assistant/annotation/editor/annotation-pins.js +1 -0
  366. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.d.ts +17 -0
  367. package/dist/configurator/ui/assistant/annotation/editor/flatten-annotation.js +1 -0
  368. package/dist/configurator/ui/assistant/annotation/editor/index.d.ts +1 -0
  369. package/dist/configurator/ui/assistant/annotation/editor/index.js +1 -0
  370. package/dist/configurator/ui/assistant/annotation/index.d.ts +4 -0
  371. package/dist/configurator/ui/assistant/annotation/index.js +1 -0
  372. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.d.ts +2 -0
  373. package/dist/configurator/ui/assistant/annotation/prefers-reduced-motion.js +1 -0
  374. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.d.ts +6 -0
  375. package/dist/configurator/ui/assistant/annotation/use-end-on-unmount.js +1 -0
  376. package/dist/configurator/ui/assistant/assistant-failure.d.ts +15 -7
  377. package/dist/configurator/ui/assistant/assistant-failure.js +1 -1
  378. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +19 -0
  379. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  380. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  381. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  382. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +24 -0
  383. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  384. package/dist/configurator/ui/assistant/composer/composer-frame.d.ts +15 -0
  385. package/dist/configurator/ui/assistant/composer/composer-frame.js +1 -0
  386. package/dist/configurator/ui/assistant/composer/index.d.ts +1 -0
  387. package/dist/configurator/ui/assistant/composer/index.js +1 -0
  388. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  389. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -1
  390. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +26 -0
  391. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -1
  392. package/dist/configurator/ui/assistant/index.d.ts +1 -0
  393. package/dist/configurator/ui/assistant/index.js +1 -1
  394. package/dist/configurator/ui/assistant/popover/AssistantPopover.d.ts +24 -0
  395. package/dist/configurator/ui/assistant/popover/AssistantPopover.js +1 -0
  396. package/dist/configurator/ui/assistant/popover/index.d.ts +1 -0
  397. package/dist/configurator/ui/assistant/popover/index.js +1 -0
  398. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -1
  399. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -1
  400. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  401. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  402. package/dist/configurator/ui/assistant/screenshots/index.d.ts +1 -0
  403. package/dist/configurator/ui/assistant/screenshots/index.js +1 -1
  404. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +6 -4
  405. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  406. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  407. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  408. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +11 -0
  409. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  410. package/dist/configurator/ui/assistant/thread-items.d.ts +5 -0
  411. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  412. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  413. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  414. package/dist/configurator/ui/assistant/use-load-older-on-top.d.ts +22 -0
  415. package/dist/configurator/ui/assistant/use-load-older-on-top.js +1 -0
  416. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  417. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  418. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  419. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  420. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  421. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.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 +0 -1
  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 +0 -4
  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 +0 -2
  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 +0 -8
  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 -2
  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 -4
  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/input-controls/distance-slider.mdx +6 -6
  501. package/dist/docs/dimensions/selection-controls/list-selector.mdx +0 -2
  502. package/dist/docs/dimensions/selection-controls/toggle-selector.mdx +0 -2
  503. package/dist/docs/drag-and-drop/drag-handle.mdx +0 -1
  504. package/dist/docs/drag-and-drop/hotspot-handle.mdx +0 -1
  505. package/dist/docs/drag-and-drop/no-selection.mdx +0 -1
  506. package/dist/docs/drag-and-drop/planes.mdx +0 -3
  507. package/dist/docs/drag-and-drop/room-planner.mdx +1 -7
  508. package/dist/docs/drag-and-drop/rotatable.mdx +0 -1
  509. package/dist/docs/drag-and-drop/snapping/auto-rotation-demo.mdx +0 -2
  510. package/dist/docs/drag-and-drop/snapping/label-matching-demo.mdx +0 -2
  511. package/dist/docs/drag-and-drop/snapping/multi-snap-composition-demo.mdx +0 -2
  512. package/dist/docs/drag-and-drop/snapping/nested-entity-demo.mdx +0 -2
  513. package/dist/docs/drag-and-drop/snapping/priority-demo.mdx +0 -2
  514. package/dist/docs/drag-and-drop/snapping/snap-axis-demo.mdx +0 -2
  515. package/dist/docs/drag-and-drop/snapping/snap-edge-demo.mdx +0 -2
  516. package/dist/docs/drag-and-drop/snapping/snap-plane-demo.mdx +0 -5
  517. package/dist/docs/drag-and-drop/snapping/snap-point-demo.mdx +0 -2
  518. package/dist/docs/drag-and-drop/spatial-constraints/collision-system.mdx +0 -2
  519. package/dist/docs/drag-and-drop/spatial-constraints/disjoint-and-within.mdx +0 -6
  520. package/dist/docs/drag-and-drop/spatial-constraints/geometry-override.mdx +0 -4
  521. package/dist/docs/drag-and-drop/spatial-constraints/multiple-collision-meshes.mdx +0 -4
  522. package/dist/docs/drag-and-drop/spatial-constraints/touches.mdx +0 -4
  523. package/dist/docs/drag-and-drop/swap.mdx +0 -4
  524. package/dist/docs/fabs/basic.mdx +8 -12
  525. package/dist/docs/fabs/layout.mdx +0 -7
  526. package/dist/docs/index.json +4 -4
  527. package/dist/docs/integrations/lifecycle-providers.mdx +0 -12
  528. package/dist/docs/integrations/onloadprovider.mdx +0 -3
  529. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -2
  530. package/dist/docs/integrations/webcomponent-api/preset-tags.mdx +0 -1
  531. package/dist/docs/layouts/custom-layout.mdx +1 -41
  532. package/dist/docs/layouts/custom-price.mdx +0 -2
  533. package/dist/docs/layouts/custom-theme-handler.mdx +0 -4
  534. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3 -34
  535. package/dist/docs/layouts/gallery/corvid-drone.mdx +0 -29
  536. package/dist/docs/layouts/gallery/fenwick-window.mdx +0 -25
  537. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +0 -27
  538. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +0 -29
  539. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +2 -35
  540. package/dist/docs/layouts/gallery/sunfold-solar.mdx +0 -26
  541. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +0 -46
  542. package/dist/docs/layouts/header/custom.mdx +0 -2
  543. package/dist/docs/layouts/icon-sets.mdx +0 -6
  544. package/dist/docs/layouts/phoenix-elements.mdx +0 -4
  545. package/dist/docs/layouts/phoenix-handlers.mdx +19 -28
  546. package/dist/docs/layouts/presets/action-and-overlay.mdx +0 -8
  547. package/dist/docs/layouts/presets/custom.mdx +6 -13
  548. package/dist/docs/layouts/preview/always-expand.mdx +4 -14
  549. package/dist/docs/layouts/preview/always.mdx +4 -14
  550. package/dist/docs/layouts/preview/auto-presets.mdx +4 -14
  551. package/dist/docs/layouts/preview/auto.mdx +4 -14
  552. package/dist/docs/layouts/preview/never.mdx +4 -14
  553. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +18 -13
  554. package/dist/docs/layouts/sidebar/property-page-stack.mdx +0 -2
  555. package/dist/docs/layouts/sidebar/property-page.mdx +0 -2
  556. package/dist/docs/layouts/sidebar/tabs.mdx +0 -4
  557. package/dist/docs/layouts/sidebar-footer/custom.mdx +0 -2
  558. package/dist/docs/layouts/sidebar-footer/universal.mdx +0 -10
  559. package/dist/docs/layouts/tool-controls.mdx +0 -1
  560. package/dist/docs/layouts/toolbar.mdx +0 -4
  561. package/dist/docs/layouts/universal.mdx +2 -10
  562. package/dist/docs/other-features/client-side-rendering/camera-padding.mdx +0 -2
  563. package/dist/docs/other-features/client-side-rendering/custom.mdx +0 -6
  564. package/dist/docs/other-features/client-side-rendering/declarative.mdx +0 -4
  565. package/dist/docs/other-features/client-side-rendering/postprocessing.mdx +0 -6
  566. package/dist/docs/other-features/component-filters.mdx +0 -7
  567. package/dist/docs/other-features/currency.mdx +5 -6
  568. package/dist/docs/other-features/domain-actions.mdx +0 -5
  569. package/dist/docs/other-features/dynamic-component-attachments.mdx +75 -46
  570. package/dist/docs/other-features/error-5xx.mdx +0 -2
  571. package/dist/docs/other-features/navigation-hotspot.mdx +0 -5
  572. package/dist/docs/other-features/not-found-404.mdx +0 -2
  573. package/dist/docs/other-features/projected-entities.mdx +0 -5
  574. package/dist/docs/other-features/side-effects.mdx +0 -7
  575. package/dist/docs/other-features/transformers.mdx +101 -96
  576. package/dist/docs/other-features/violation-messages.mdx +0 -4
  577. package/dist/docs/other-features/violation-severity.mdx +2 -3
  578. package/dist/docs/performance/clone-highlight.mdx +0 -7
  579. package/dist/docs/performance/dynamic-components.mdx +0 -6
  580. package/dist/docs/performance/editable-dimension-stress-test.mdx +0 -2
  581. package/dist/docs/performance/fast-highlight.mdx +0 -7
  582. package/dist/docs/performance/general.mdx +0 -7
  583. package/dist/docs/performance/render-isolation.mdx +0 -6
  584. package/dist/docs/phoenix/admin.mdx +75 -100
  585. package/dist/docs/phoenix/application-states.mdx +45 -27
  586. package/dist/docs/phoenix/components.mdx +53 -46
  587. package/dist/docs/phoenix/configurator-interface.mdx +197 -117
  588. package/dist/docs/phoenix/deployments.mdx +11 -1
  589. package/dist/docs/phoenix/domain-model.mdx +24 -16
  590. package/dist/docs/phoenix/expression-context.mdx +3 -29
  591. package/dist/docs/phoenix/getting-started.mdx +0 -2
  592. package/dist/docs/phoenix/layout-slots.mdx +21 -0
  593. package/dist/docs/phoenix/localization.mdx +64 -54
  594. package/dist/docs/phoenix/migration-guide.mdx +10 -11
  595. package/dist/docs/phoenix/phoenix-cli.mdx +57 -15
  596. package/dist/docs/phoenix/project-structure.mdx +51 -54
  597. package/dist/docs/phoenix/quickstart.mdx +1 -3
  598. package/dist/docs/phoenix/sdk-builder-workflow.mdx +7 -11
  599. package/dist/docs/phoenix/state-management.mdx +18 -16
  600. package/dist/docs/phoenix/testing.mdx +6 -1
  601. package/dist/docs/phoenix/webhooks.mdx +9 -1
  602. package/dist/docs/recipes-and-delete/delete-entity.mdx +3 -6
  603. package/dist/docs/recipes-and-delete/dynamic-root-entity.mdx +0 -2
  604. package/dist/docs/recipes-and-delete/grouped-button.mdx +0 -3
  605. package/dist/docs/recipes-and-delete/grouped-panel.mdx +0 -3
  606. package/dist/docs/recipes-and-delete/horizontal.mdx +3 -6
  607. package/dist/docs/recipes-and-delete/recipe-hierarchy-lists.mdx +0 -3
  608. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +0 -5
  609. package/dist/docs/recipes-and-delete/replace-dropdown.mdx +3 -6
  610. package/dist/docs/recipes-and-delete/replace-panel.mdx +0 -7
  611. package/dist/docs/recipes-and-delete/simple.mdx +3 -6
  612. package/dist/docs/recipes-and-delete/vertical.mdx +3 -6
  613. package/dist/docs/relations/aliases.mdx +0 -2
  614. package/dist/docs/relations/all-of-type.mdx +0 -4
  615. package/dist/docs/relations/child-nullable.mdx +0 -4
  616. package/dist/docs/relations/child-required.mdx +0 -2
  617. package/dist/docs/relations/collection-direct.mdx +0 -4
  618. package/dist/docs/relations/collection-indirect.mdx +0 -4
  619. package/dist/docs/relations/collection-multiple.mdx +0 -2
  620. package/dist/docs/relations/cross-reference.mdx +0 -2
  621. package/dist/docs/relations/hierarchy.mdx +0 -2
  622. package/dist/docs/selection-and-highlight/canvas.mdx +0 -1
  623. package/dist/docs/selection-and-highlight/disable-highlight-per-object.mdx +0 -1
  624. package/dist/docs/selection-and-highlight/disable-highlight.mdx +0 -1
  625. package/dist/docs/selection-and-highlight/effects/outline.mdx +0 -3
  626. package/dist/docs/selection-and-highlight/effects/overlay.mdx +0 -3
  627. package/dist/docs/selection-and-highlight/fast-emissive-highlight.mdx +0 -3
  628. package/dist/docs/selection-and-highlight/group-highlighting.mdx +0 -1
  629. package/dist/docs/selection-and-highlight/hierarchy.mdx +100 -151
  630. package/dist/docs/selection-and-highlight/hotspots.mdx +0 -1
  631. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  632. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  633. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  634. package/dist/domain/application/application-config.d.ts +6 -26
  635. package/dist/domain/application/assistant/assistant-fields.d.ts +1 -1
  636. package/dist/domain/application/assistant/assistant-value-type.d.ts +1 -1
  637. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +1 -2
  638. package/dist/domain/application/assistant/build-assistant-lenses.js +1 -1
  639. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +1 -2
  640. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  641. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -2
  642. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  643. package/dist/domain/application/assistant/index.d.ts +0 -4
  644. package/dist/domain/application/assistant/index.js +1 -1
  645. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +1 -1
  646. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +1 -1
  647. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -1
  648. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +3 -5
  649. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -1
  650. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +1 -2
  651. package/dist/domain/application/assistant-field-options.d.ts +1 -1
  652. package/dist/domain/application/assistant-mutations.d.ts +1 -1
  653. package/dist/domain/application/assistant-mutations.js +1 -1
  654. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  655. package/dist/domain/application/configurator-builder.d.ts +7 -2
  656. package/dist/domain/application/configurator-builder.js +1 -1
  657. package/dist/domain/application/create-initial-published-data.d.ts +2 -1
  658. package/dist/domain/application/index.d.ts +1 -1
  659. package/dist/domain/application/index.js +1 -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/invariant/violation.d.ts +3 -2
  670. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +2 -2
  671. package/dist/domain/domain-builder/domain-builder.js +1 -0
  672. package/dist/domain/domain-builder/index.d.ts +1 -0
  673. package/dist/domain/domain-builder/index.js +1 -0
  674. package/dist/domain/domain-context/transformers/context.d.ts +4 -2
  675. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -1
  676. package/dist/domain/domain-runtime/application.d.ts +39 -0
  677. package/dist/domain/domain-runtime/application.js +1 -0
  678. package/dist/domain/domain-runtime/domain-runtime.d.ts +42 -28
  679. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  680. package/dist/domain/domain-runtime/environment/initialize.d.ts +1 -1
  681. package/dist/domain/domain-runtime/index.d.ts +1 -1
  682. package/dist/domain/domain-runtime/index.js +1 -1
  683. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +1 -1
  684. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -1
  685. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  686. package/dist/domain/domain-runtime/spec/index.js +1 -1
  687. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  688. package/dist/domain/domain-runtime/spec/{module-checks/resolve-imported-transformers.d.ts → resolve-imported-transformers.d.ts} +3 -3
  689. package/dist/domain/domain-runtime/spec/resolve-imported-transformers.js +1 -0
  690. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -5
  691. package/dist/domain/domain-runtime/spec/types.d.ts +2 -2
  692. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +6 -0
  693. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -1
  694. package/dist/domain/extensions/export-images/index.d.ts +1 -1
  695. package/dist/domain/extensions/export-images/index.js +1 -1
  696. package/dist/domain/extensions/index.d.ts +1 -1
  697. package/dist/domain/extensions/index.js +1 -1
  698. package/dist/domain/index.d.ts +15 -2
  699. package/dist/domain/index.js +1 -1
  700. package/dist/domain/mocks/create-test-application-config.d.ts +1 -1
  701. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  702. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  703. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  704. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  705. package/dist/domain/spec/application/index.d.ts +5 -0
  706. package/dist/domain/spec/application/index.js +1 -0
  707. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  708. package/dist/domain/spec/components/bindings/index.js +1 -0
  709. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  710. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  711. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  712. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  713. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
  714. package/dist/domain/spec/components/component-entry.js +1 -0
  715. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  716. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  717. package/dist/domain/spec/components/component-filters.js +1 -0
  718. package/dist/domain/spec/components/components.d.ts +4 -0
  719. package/dist/domain/spec/components/components.js +1 -0
  720. package/dist/domain/spec/components/index.d.ts +6 -0
  721. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  722. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  723. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  724. package/dist/domain/spec/enhanced-json/index.js +1 -0
  725. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
  726. package/dist/domain/spec/expressions/expression.js +1 -0
  727. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  728. package/dist/domain/spec/expressions/expressions.js +1 -0
  729. package/dist/domain/spec/expressions/index.d.ts +5 -0
  730. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  731. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  732. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  733. package/dist/domain/spec/index.d.ts +4 -0
  734. package/dist/domain/spec/index.js +1 -0
  735. package/dist/domain/spec/invariants/index.d.ts +2 -0
  736. package/dist/domain/spec/invariants/index.js +1 -0
  737. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  738. package/dist/domain/spec/invariants/invariant.js +1 -0
  739. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  740. package/dist/domain/spec/invariants/invariants.js +1 -0
  741. package/dist/domain/spec/json-schema.d.ts +52 -0
  742. package/dist/domain/spec/json-schema.js +1 -0
  743. package/dist/domain/spec/markers/index.d.ts +3 -0
  744. package/dist/domain/spec/markers/index.js +1 -0
  745. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  746. package/dist/domain/spec/markers/msg-marker.js +1 -0
  747. package/dist/domain/spec/model/aliases.d.ts +9 -0
  748. package/dist/domain/spec/model/aliases.js +1 -0
  749. package/dist/domain/spec/model/common-types.d.ts +15 -0
  750. package/dist/domain/spec/model/common-types.js +1 -0
  751. package/dist/domain/spec/model/defaults.d.ts +33 -0
  752. package/dist/domain/spec/model/defaults.js +1 -0
  753. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  754. package/dist/domain/spec/model/entity-types.js +1 -0
  755. package/dist/domain/spec/model/index.d.ts +7 -0
  756. package/dist/domain/spec/model/index.js +1 -0
  757. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  758. package/dist/domain/spec/model/model-version-key.js +1 -0
  759. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  760. package/dist/domain/spec/model/names/action-name.js +1 -0
  761. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  762. package/dist/domain/spec/model/names/alias-name.js +1 -0
  763. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  764. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  765. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  766. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  767. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  768. package/dist/domain/spec/model/names/expression-name.js +1 -0
  769. package/dist/domain/spec/model/names/index.d.ts +9 -0
  770. package/dist/domain/spec/model/names/index.js +1 -0
  771. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  772. package/dist/domain/spec/model/names/instance-name.js +1 -0
  773. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  774. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  775. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  776. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  777. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  778. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  779. package/dist/domain/spec/model/presets.d.ts +30 -0
  780. package/dist/domain/spec/model/presets.js +1 -0
  781. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.d.ts +1 -1
  782. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/find-assistant-form-element-errors.d.ts +1 -1
  783. package/dist/domain/spec/modules/find-assistant-form-element-errors.js +1 -0
  784. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/index.d.ts +2 -3
  785. package/dist/domain/spec/modules/index.js +1 -0
  786. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/merge-expression-modules.d.ts +2 -2
  787. package/dist/domain/spec/modules/merge-expression-modules.js +1 -0
  788. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/project-modules.d.ts +1 -1
  789. package/dist/domain/spec/modules/project-modules.js +1 -0
  790. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.d.ts +1 -1
  791. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.d.ts +1 -1
  792. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.d.ts +1 -1
  793. package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.d.ts +1 -1
  794. package/dist/domain/spec/phx/index.d.ts +1 -0
  795. package/dist/domain/spec/phx/index.js +1 -0
  796. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-application-types.d.ts +1 -1
  797. package/dist/domain/spec/phx/phx-application-types.js +1 -0
  798. package/dist/domain/spec/phx/phx-domain.js +1 -0
  799. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-model.d.ts +2 -2
  800. package/dist/domain/spec/phx/phx-model.js +1 -0
  801. package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.d.ts +1 -2
  802. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-runtime.d.ts +9 -6
  803. package/dist/domain/spec/runtime/admin-runtime/admin-runtime.js +1 -0
  804. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/admin-spec-runtime.d.ts +2 -2
  805. package/dist/domain/spec/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  806. package/dist/domain/spec/runtime/admin-runtime/index.d.ts +2 -0
  807. package/dist/domain/spec/runtime/admin-runtime/index.js +1 -0
  808. package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.d.ts +1 -1
  809. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-runtime.d.ts +13 -6
  810. package/dist/domain/spec/runtime/application-runtime.js +1 -0
  811. package/dist/{application-spec/generate-application → domain/spec}/runtime/application-spec-slice.d.ts +5 -2
  812. package/dist/domain/spec/runtime/application-spec-slice.js +1 -0
  813. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-runtime.d.ts +10 -10
  814. package/dist/domain/spec/runtime/configurator-runtime/configurator-runtime.js +1 -0
  815. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/configurator-spec-runtime.d.ts +2 -2
  816. package/dist/domain/spec/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  817. package/dist/domain/spec/runtime/configurator-runtime/index.d.ts +2 -0
  818. package/dist/domain/spec/runtime/configurator-runtime/index.js +1 -0
  819. package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.d.ts +1 -1
  820. package/dist/domain/spec/runtime/create-application.d.ts +58 -0
  821. package/dist/domain/spec/runtime/create-application.js +1 -0
  822. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/expression-runtime.d.ts +5 -3
  823. package/dist/domain/spec/runtime/expressions/expression-runtime.js +1 -0
  824. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/generate-memo-eval-plan-runtime.d.ts +2 -2
  825. package/dist/domain/spec/runtime/expressions/generate-memo-eval-plan-runtime.js +1 -0
  826. package/dist/domain/spec/runtime/expressions/index.d.ts +3 -0
  827. package/dist/domain/spec/runtime/expressions/index.js +1 -0
  828. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.d.ts +2 -1
  829. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.d.ts +4 -3
  830. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.d.ts +1 -1
  831. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/recipe-defaults.js +1 -1
  832. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.d.ts +2 -2
  833. package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/static-violations.js +1 -1
  834. package/dist/{application-spec/generate-application → domain/spec}/runtime/generate-runtime-instance.d.ts +1 -1
  835. package/dist/domain/spec/runtime/generate-runtime-instance.js +1 -0
  836. package/dist/domain/spec/runtime/index.d.ts +13 -0
  837. package/dist/domain/spec/runtime/index.js +1 -0
  838. package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/migration-runtime.d.ts +2 -2
  839. package/dist/domain/spec/runtime/migrations/migration-runtime.js +1 -0
  840. package/dist/{application-spec/generate-application/runtime/admin-runtime → domain/spec/runtime/model}/admin-model-runtime.d.ts +4 -3
  841. package/dist/domain/spec/runtime/model/admin-model-runtime.js +1 -0
  842. package/dist/{application-spec/generate-application/runtime/configurator-runtime → domain/spec/runtime/model}/configurator-model-runtime.d.ts +4 -3
  843. package/dist/domain/spec/runtime/model/configurator-model-runtime.js +1 -0
  844. package/dist/domain/spec/runtime/model/index.d.ts +2 -0
  845. package/dist/domain/spec/runtime/model/index.js +1 -0
  846. package/dist/domain/spec/runtime/optics/build-sdk-optic.d.ts +7 -0
  847. package/dist/domain/spec/runtime/optics/build-sdk-optic.js +1 -0
  848. package/dist/domain/spec/runtime/optics/build-user-bound-optic.d.ts +7 -0
  849. package/dist/domain/spec/runtime/optics/build-user-bound-optic.js +1 -0
  850. package/dist/domain/spec/runtime/optics/built-component-optic.d.ts +11 -0
  851. package/dist/domain/spec/runtime/optics/built-component-optic.js +1 -0
  852. package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.d.ts +4 -14
  853. package/dist/domain/spec/runtime/optics/index.d.ts +2 -0
  854. package/dist/domain/spec/runtime/optics/index.js +1 -0
  855. package/dist/{application-spec/caching → domain/spec/runtime}/runtime-reference-store.d.ts +1 -5
  856. package/dist/domain/spec/runtime/runtime-reference-store.js +1 -0
  857. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.d.ts +3 -3
  858. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.d.ts +2 -2
  859. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.d.ts +1 -1
  860. package/dist/domain/spec/runtime/sections/index.d.ts +6 -0
  861. package/dist/domain/spec/runtime/sections/index.js +1 -0
  862. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.d.ts +4 -4
  863. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.d.ts +1 -1
  864. package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.d.ts +2 -2
  865. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  866. package/dist/domain/spec/runtime/spec-code/spec-code-module.js +1 -0
  867. package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-runtime.d.ts +3 -3
  868. package/dist/domain/spec/runtime/spec-runtime.js +1 -0
  869. package/dist/domain/spec/runtime-spec/index.d.ts +4 -0
  870. package/dist/domain/spec/runtime-spec/index.js +1 -0
  871. package/dist/domain/spec/runtime-spec/runtime-spec.d.ts +174 -0
  872. package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.d.ts +1 -1
  873. package/dist/domain/spec/sections/actions.d.ts +23 -0
  874. package/dist/domain/spec/sections/actions.js +1 -0
  875. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  876. package/dist/domain/spec/sections/app-metadata.js +1 -0
  877. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  878. package/dist/domain/spec/sections/application-version.js +1 -0
  879. package/dist/domain/{application → spec/sections}/assistant/assistant-manifest.d.ts +13 -3
  880. package/dist/domain/{application → spec/sections}/assistant/assistant-resolved-manifest.d.ts +5 -9
  881. package/dist/domain/spec/sections/assistant/assistant-resolved-manifest.js +1 -0
  882. package/dist/domain/spec/sections/assistant/index.d.ts +4 -0
  883. package/dist/domain/spec/sections/assistant/index.js +1 -0
  884. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  885. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  886. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  887. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  888. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  889. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  890. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  891. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  892. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  893. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  894. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  895. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  896. package/dist/domain/spec/sections/index.d.ts +10 -0
  897. package/dist/domain/spec/sections/index.js +1 -0
  898. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  899. package/dist/domain/spec/sections/infra/acl.js +1 -0
  900. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  901. package/dist/domain/spec/sections/infra/index.js +1 -0
  902. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  903. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  904. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  905. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  906. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  907. package/dist/domain/spec/sections/state-value.js +1 -0
  908. package/dist/domain/spec/sections/theme.d.ts +10 -0
  909. package/dist/domain/spec/sections/theme.js +1 -0
  910. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  911. package/dist/domain/spec/sections/transformers.js +1 -0
  912. package/dist/domain/spec/sections/ui.d.ts +12 -0
  913. package/dist/domain/spec/sections/ui.js +1 -0
  914. package/dist/domain/system-components/phoenix-entity-elements/child-entity-card-selector.d.ts +2 -3
  915. package/dist/domain/system-components/phoenix-entity-elements/child-entity-list-selector.d.ts +2 -3
  916. package/dist/domain/system-components/phoenix-entity-elements/child-entity-toggle-selector.d.ts +2 -3
  917. package/dist/domain/system-definitions.js +1 -1
  918. package/dist/domain/utils/index.d.ts +2 -0
  919. package/dist/domain/utils/index.js +1 -0
  920. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  921. package/dist/i18n/locales/cs/messages.js +1 -1
  922. package/dist/i18n/locales/da/messages.js +1 -1
  923. package/dist/i18n/locales/de/messages.js +1 -1
  924. package/dist/i18n/locales/de-AT/messages.js +1 -1
  925. package/dist/i18n/locales/en/messages.js +1 -1
  926. package/dist/i18n/locales/en-AU/messages.js +1 -1
  927. package/dist/i18n/locales/en-GB/messages.js +1 -1
  928. package/dist/i18n/locales/es/messages.js +1 -1
  929. package/dist/i18n/locales/fr/messages.js +1 -1
  930. package/dist/i18n/locales/hu/messages.js +1 -1
  931. package/dist/i18n/locales/it/messages.js +1 -1
  932. package/dist/i18n/locales/nl/messages.js +1 -1
  933. package/dist/i18n/locales/pl/messages.js +1 -1
  934. package/dist/i18n/locales/pt/messages.js +1 -1
  935. package/dist/i18n/locales/ro/messages.js +1 -1
  936. package/dist/i18n/locales/sk/messages.js +1 -1
  937. package/dist/i18n/locales/tr/messages.js +1 -1
  938. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +2 -2
  939. package/dist/legacy/phoenix-cli/services/webhook-service/transport.js +1 -1
  940. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.d.ts +1 -0
  941. package/dist/legacy/phoenix-cli/services/webhook-service/tunnel.js +1 -1
  942. package/dist/legacy/webhook-cli/lambda-local/index.js +1 -1
  943. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  944. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
  945. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  946. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
  947. package/dist/phoenix/application-spec/index.d.ts +2 -0
  948. package/dist/phoenix/application-spec/index.js +1 -1
  949. package/dist/phoenix/application-spec/project-files.d.ts +8 -2
  950. package/dist/phoenix/application-spec/project-files.js +1 -1
  951. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  952. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  953. package/dist/phoenix/bin.js +1 -1
  954. package/dist/phoenix/cli.js +1 -1
  955. package/dist/phoenix/commands/activate-deployment.js +1 -1
  956. package/dist/phoenix/commands/build.js +1 -1
  957. package/dist/phoenix/commands/changelog.js +1 -1
  958. package/dist/phoenix/commands/check.js +1 -1
  959. package/dist/phoenix/commands/clean.js +1 -1
  960. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  961. package/dist/phoenix/commands/create-environment.js +1 -1
  962. package/dist/phoenix/commands/data.js +1 -1
  963. package/dist/phoenix/commands/deploy.js +1 -1
  964. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  965. package/dist/phoenix/commands/dev.js +4 -5
  966. package/dist/phoenix/commands/docs.js +1 -1
  967. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  968. package/dist/phoenix/commands/fix.js +1 -1
  969. package/dist/phoenix/commands/index.d.ts +1 -1
  970. package/dist/phoenix/commands/index.js +1 -1
  971. package/dist/phoenix/commands/inspect-assets.js +1 -1
  972. package/dist/phoenix/commands/list-environments.js +1 -1
  973. package/dist/phoenix/commands/login.d.ts +4 -1
  974. package/dist/phoenix/commands/login.js +2 -2
  975. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  976. package/dist/phoenix/commands/register-deployment.js +1 -1
  977. package/dist/phoenix/commands/scene.js +1 -1
  978. package/dist/phoenix/commands/screenshot.js +1 -1
  979. package/dist/phoenix/commands/state.js +1 -1
  980. package/dist/phoenix/commands/story-build.js +3 -3
  981. package/dist/phoenix/commands/story-create.js +1 -1
  982. package/dist/phoenix/commands/story-dev.js +2 -2
  983. package/dist/phoenix/commands/sync.js +1 -1
  984. package/dist/phoenix/commands/variants.js +1 -1
  985. package/dist/phoenix/editor-server/commands-router.js +1 -1
  986. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  987. package/dist/phoenix/editor-server/editor-server.js +1 -1
  988. package/dist/phoenix/editor-server/spec-router.js +1 -1
  989. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  990. package/dist/phoenix/lingui/index.d.ts +1 -0
  991. package/dist/phoenix/lingui/index.js +1 -0
  992. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  993. package/dist/phoenix/lingui/lingui.js +1 -0
  994. package/dist/phoenix/scripts/docs-utils.js +1 -1
  995. package/dist/phoenix/services/application-spec-project-watcher.d.ts +11 -6
  996. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  997. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  998. package/dist/phoenix/services/cli-credentials.js +1 -1
  999. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  1000. package/dist/phoenix/services/cli-exit.js +1 -0
  1001. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  1002. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  1003. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  1004. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  1005. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  1006. package/dist/phoenix/services/deployment/index.js +1 -0
  1007. package/dist/phoenix/services/index.d.ts +5 -1
  1008. package/dist/phoenix/services/index.js +1 -1
  1009. package/dist/phoenix/services/lingui-watcher.js +1 -1
  1010. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  1011. package/dist/phoenix/services/phoenix-store.js +1 -1
  1012. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1013. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  1014. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  1015. package/dist/phoenix/services/session/index.d.ts +2 -0
  1016. package/dist/phoenix/services/session/index.js +1 -0
  1017. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  1018. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  1019. package/dist/phoenix/services/source-archive.d.ts +2 -0
  1020. package/dist/phoenix/services/source-archive.js +1 -1
  1021. package/dist/phoenix/services/swc.d.ts +5 -4
  1022. package/dist/phoenix/services/swc.js +2 -2
  1023. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  1024. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  1025. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  1026. package/dist/phoenix/services/telemetry/index.js +1 -0
  1027. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  1028. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  1029. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  1030. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  1031. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  1032. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  1033. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  1034. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  1035. package/dist/phoenix/services/vite-config.js +1 -1
  1036. package/dist/phoenix/services/webhook-service/transport.js +1 -1
  1037. package/dist/phoenix/services/webhook-service/tunnel.d.ts +1 -0
  1038. package/dist/phoenix/services/webhook-service/tunnel.js +1 -1
  1039. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +1 -1
  1040. package/dist/react-sdk/application-runtime/common-services/initialize.d.ts +2 -2
  1041. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  1042. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +17 -6
  1043. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +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 +7 -1
  1076. package/dist/react-sdk/domain-controls/ChildEntityCardSelector.d.ts +2 -3
  1077. package/dist/react-sdk/domain-controls/ChildEntityListSelector.d.ts +2 -3
  1078. package/dist/react-sdk/domain-controls/ChildEntityToggleSelector.d.ts +2 -3
  1079. package/dist/react-sdk/domain-controls/hooks/use-cook-replace-recipes.d.ts +2 -2
  1080. package/dist/react-sdk/elements/PhoenixEntityElement.js +1 -1
  1081. package/dist/react-sdk/elements/PhoenixLayoutElement.js +1 -1
  1082. package/dist/react-sdk/index.d.ts +7 -0
  1083. package/dist/react-sdk/index.js +1 -1
  1084. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  1085. package/dist/react-sdk/integration/index.d.ts +1 -0
  1086. package/dist/react-sdk/integration/index.js +1 -0
  1087. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  1088. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  1089. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  1090. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  1091. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  1092. package/dist/react-sdk/notifications/index.d.ts +1 -0
  1093. package/dist/react-sdk/notifications/index.js +1 -0
  1094. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  1095. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  1096. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  1097. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  1098. package/dist/react-sdk/preset-selection/index.js +1 -0
  1099. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.d.ts +11 -0
  1100. package/dist/react-sdk/provider-slots/ConfiguratorProviderSlotHost.js +1 -0
  1101. package/dist/react-sdk/provider-slots/configurator-provider-slot.d.ts +24 -0
  1102. package/dist/react-sdk/provider-slots/configurator-provider-slot.js +1 -0
  1103. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.d.ts +5 -0
  1104. package/dist/react-sdk/provider-slots/create-configurator-provider-slot.js +1 -0
  1105. package/dist/react-sdk/provider-slots/index.d.ts +3 -0
  1106. package/dist/react-sdk/provider-slots/index.js +1 -0
  1107. package/dist/react-sdk/session/SessionServiceProvider.d.ts +5 -0
  1108. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  1109. package/dist/ui-sdk/components/numerical-input/InputField.d.ts +2 -0
  1110. package/dist/ui-sdk/components/numerical-input/InputField.js +1 -1
  1111. package/dist/ui-sdk/components/numerical-input/NumericalInput.d.ts +2 -2
  1112. package/dist/ui-sdk/components/numerical-input/Slider.d.ts +3 -1
  1113. package/dist/ui-sdk/components/numerical-input/Slider.js +1 -1
  1114. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  1115. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  1116. package/dist/ui-sdk/icons/__generated/ChatCircleText.d.ts +3 -0
  1117. package/dist/ui-sdk/icons/__generated/ChatCircleText.js +1 -0
  1118. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  1119. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  1120. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.d.ts +3 -0
  1121. package/dist/ui-sdk/icons/__generated/PencilSimpleLine.js +1 -0
  1122. package/dist/ui-sdk/icons/__generated/index.d.ts +6 -0
  1123. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1124. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1125. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1126. package/dist/watch/glob-matcher.d.ts +4 -4
  1127. package/dist/watch/glob-matcher.js +1 -1
  1128. package/dist/watch/watch.d.ts +4 -4
  1129. package/dist/watch/watch.js +1 -1
  1130. package/package.json +3 -3
  1131. package/schema/domain-spec.json +22 -4
  1132. package/dist/application-spec/caching/runtime-reference-store.js +0 -1
  1133. package/dist/application-spec/core/components/index.d.ts +0 -2
  1134. package/dist/application-spec/core/expressions/index.d.ts +0 -2
  1135. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.d.ts +0 -1
  1136. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +0 -1
  1137. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.d.ts +0 -3
  1138. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +0 -166
  1139. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.d.ts +0 -1
  1140. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +0 -54
  1141. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.d.ts +0 -1
  1142. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +0 -115
  1143. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +0 -1
  1144. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +0 -1
  1145. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +0 -6
  1146. package/dist/application-spec/generate-application/implementations/phx-application-types.js +0 -1
  1147. package/dist/application-spec/generate-application/implementations/phx-domain.js +0 -1
  1148. package/dist/application-spec/generate-application/implementations/phx-model.js +0 -1
  1149. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +0 -1
  1150. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +0 -1
  1151. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +0 -1
  1152. package/dist/application-spec/generate-application/runtime/application-runtime.js +0 -1
  1153. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +0 -1
  1154. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +0 -1
  1155. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +0 -1
  1156. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +0 -1
  1157. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +0 -1
  1158. package/dist/application-spec/generate-application/runtime/index.d.ts +0 -8
  1159. package/dist/application-spec/generate-application/runtime/index.js +0 -1
  1160. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +0 -1
  1161. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +0 -8
  1162. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +0 -1
  1163. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +0 -8
  1164. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +0 -1
  1165. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +0 -1
  1166. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +0 -1
  1167. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +0 -10
  1168. package/dist/application-spec/generate-application/runtime/sections/index.js +0 -1
  1169. package/dist/application-spec/generate-application/runtime/spec-runtime.js +0 -1
  1170. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +0 -5
  1171. package/dist/application-spec/generate-application/runtime-spec/index.js +0 -1
  1172. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +0 -103
  1173. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.d.ts +0 -17
  1174. package/dist/configurator/application-runtime/extensions/systems/assistant-system/browser-details.js +0 -1
  1175. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  1176. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  1177. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  1178. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  1179. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  1180. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  1181. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  1182. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  1183. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  1184. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  1185. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  1186. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  1187. package/dist/domain/available-system-components.d.ts +0 -11
  1188. package/dist/domain/available-system-components.js +0 -1
  1189. package/dist/domain/domain-builder.js +0 -1
  1190. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +0 -1
  1191. package/dist/domain/domain-runtime/spec/module-checks/index.js +0 -1
  1192. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +0 -1
  1193. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +0 -1
  1194. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +0 -1
  1195. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  1196. package/dist/phoenix/services/lingui.d.ts +0 -15
  1197. package/dist/phoenix/services/lingui.js +0 -1
  1198. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  1199. package/dist/phoenix/services/phoenix-application.js +0 -1
  1200. /package/dist/{application-spec/core/expressions/relation-expression-params.js → configurator/application-runtime/extensions/systems/assistant-system/assistant-annotation.js} +0 -0
  1201. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.d.ts +0 -0
  1202. /package/dist/configurator/{configurator-context → pages/provider-slots}/ConfiguratorResponsiveProvider.js +0 -0
  1203. /package/dist/{application-spec/generate-application/runtime/spec-code/spec-code-module.js → domain/spec/application/admin-pages-section.js} +0 -0
  1204. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/application/admin-pages.js} +0 -0
  1205. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/application/admin-states.js} +0 -0
  1206. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  1207. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  1208. /package/dist/domain/{application/assistant/assistant-manifest.js → spec/application/configurator-states.js} +0 -0
  1209. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  1210. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  1211. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  1212. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  1213. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.d.ts +0 -0
  1214. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error-collector.js +0 -0
  1215. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.d.ts +0 -0
  1216. /package/dist/domain/{domain-runtime → spec}/errors/implementation-error.js +0 -0
  1217. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.d.ts +0 -0
  1218. /package/dist/domain/{domain-runtime → spec}/errors/implementation-errors.js +0 -0
  1219. /package/dist/domain/{domain-runtime → spec}/errors/index.d.ts +0 -0
  1220. /package/dist/domain/{domain-runtime → spec}/errors/index.js +0 -0
  1221. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.d.ts +0 -0
  1222. /package/dist/domain/{domain-runtime → spec}/errors/to-implementation-errors.js +0 -0
  1223. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  1224. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  1225. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  1226. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  1227. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  1228. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  1229. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  1230. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  1231. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/element-registration.js +0 -0
  1232. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.d.ts +0 -0
  1233. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/handler-registration.js +0 -0
  1234. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-action-modules.js +0 -0
  1235. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-component-optic-modules.js +0 -0
  1236. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-expression-modules.js +0 -0
  1237. /package/dist/domain/{domain-runtime/spec/module-checks → spec/modules}/resolve-invariant-modules.js +0 -0
  1238. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx-domain.d.ts +0 -0
  1239. /package/dist/{application-spec/generate-application/implementations → domain/spec/phx}/phx.js +0 -0
  1240. /package/dist/{application-spec/generate-application → domain/spec}/runtime/admin-runtime/states-runtime.js +0 -0
  1241. /package/dist/{application-spec/generate-application → domain/spec}/runtime/configurator-runtime/states-runtime.js +0 -0
  1242. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/expressions}/reflection-constants-runtime.js +0 -0
  1243. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/factory-data-runtime.js +0 -0
  1244. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.d.ts +0 -0
  1245. /package/dist/{application-spec/generate-application → domain/spec}/runtime/factory-data/index.js +0 -0
  1246. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.d.ts +0 -0
  1247. /package/dist/{application-spec/generate-application → domain/spec}/runtime/migrations/index.js +0 -0
  1248. /package/dist/{application-spec/generate-application/runtime/sections → domain/spec/runtime/optics}/component-optic.js +0 -0
  1249. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/actions-runtime.js +0 -0
  1250. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/assistant-runtime.js +0 -0
  1251. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/data-runtime.js +0 -0
  1252. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/preset-runtime.js +0 -0
  1253. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/theme-runtime.js +0 -0
  1254. /package/dist/{application-spec/generate-application → domain/spec}/runtime/sections/transformers-runtime.js +0 -0
  1255. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.d.ts +0 -0
  1256. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/index.js +0 -0
  1257. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/resolve-spec-code.js +0 -0
  1258. /package/dist/{application-spec/generate-application → domain/spec}/runtime/spec-code/spec-code-module.d.ts +0 -0
  1259. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.d.ts +0 -0
  1260. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/decode-runtime-spec.js +0 -0
  1261. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.d.ts +0 -0
  1262. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encode-runtime-spec.js +0 -0
  1263. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.d.ts +0 -0
  1264. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/encoded-runtime-spec.js +0 -0
  1265. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/runtime-spec.js +0 -0
  1266. /package/dist/{application-spec/generate-application → domain/spec}/runtime-spec/spec-code-id.js +0 -0
  1267. /package/dist/domain/{application/assistant/assistant-resolved-manifest.js → spec/sections/assistant/assistant-manifest.js} +0 -0
  1268. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.d.ts +0 -0
  1269. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-element-name.js +0 -0
  1270. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.d.ts +0 -0
  1271. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-form-elements.js +0 -0
  1272. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.d.ts +0 -0
  1273. /package/dist/domain/{application → spec/sections}/assistant/form/assistant-resource-path.js +0 -0
  1274. /package/dist/domain/{application → spec/sections}/assistant/form/index.d.ts +0 -0
  1275. /package/dist/domain/{application → spec/sections}/assistant/form/index.js +0 -0
  1276. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  1277. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  1278. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  1279. /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,6 +46,12 @@ 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;
42
57
  /** False until the first request of the chat, the thread read, was answered or failed. */
@@ -51,10 +66,34 @@ export interface AssistantChatSnapshot {
51
66
  * the chat was open, and the ones loaded with {@link AssistantSystem.loadEarlierThread}.
52
67
  */
53
68
  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. */
69
+ /**
70
+ * The closed thread that {@link AssistantSystem.loadEarlierThread} loads next; `null` when the
71
+ * painted threads start the conversation. Usually the thread before the oldest painted one, but
72
+ * the oldest painted one itself when it was closed while only its newest messages were painted:
73
+ * loading it then paints it whole.
74
+ */
75
+ readonly earlierThreadId: string | null;
76
+ /** True while that thread is being loaded. */
57
77
  readonly isLoadingEarlierThread: boolean;
78
+ /** True when the thread of the chat has older messages than the painted ones on the server; see {@link AssistantSystem.loadOlderMessages}. */
79
+ readonly hasOlderMessages: boolean;
80
+ /** True while those older messages are being loaded. */
81
+ readonly isLoadingOlderMessages: boolean;
82
+ }
83
+ /** What else the caller of {@link AssistantSystem.send} learns about the message. */
84
+ export interface AssistantSendOptions {
85
+ /**
86
+ * Called once the message is handed to the chat, which paints it: after its images were uploaded,
87
+ * and not at all when it is not sent because the thread could not be resumed or an upload failed.
88
+ * The composer keeps the message until then, so a message that is not sent can be sent again.
89
+ */
90
+ readonly onSent?: () => void;
91
+ /**
92
+ * Called when a message that was handed to the chat is gone from it after all: the server refused
93
+ * it because the thread could not continue, the thread was resumed without it, and its images
94
+ * could not be uploaded into the new thread. The caller gets it back, so it can be sent again.
95
+ */
96
+ readonly onUnsent?: () => void;
58
97
  }
59
98
  /** A closed thread of the conversation as the panel paints it above the thread that continues it. */
60
99
  export interface AssistantEarlierThreadSnapshot {
@@ -73,9 +112,9 @@ export interface AssistantPanelSnapshot {
73
112
  readonly isInputFocused: boolean;
74
113
  }
75
114
  /**
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.
115
+ * Owns the conversational assistant of a configurator: its client tools (`query` and `apply`), the
116
+ * chat with the server, the state of the built-in panel, and the record of what changed in the
117
+ * configuration since the agent last acted, which every user message carries.
79
118
  *
80
119
  * The server owns the thread, so the chat keeps nothing in browser storage: its client hydrates
81
120
  * from the server and rejoins a reply that is still streaming.
@@ -89,6 +128,9 @@ export declare class AssistantSystem implements InitializableSystem {
89
128
  private readonly _tools;
90
129
  private readonly _chat;
91
130
  private readonly _panel;
131
+ private readonly _annotationOverlay;
132
+ /** Identity of the `annotate()` call that runs; a new configuration load forgets it, which cancels it. */
133
+ private _annotationRun;
92
134
  /** Identity of the current `activate()` call; nothing while the chat is not active. */
93
135
  private _activation;
94
136
  /** The chat of the current activation; nothing while no chat is active. */
@@ -98,11 +140,6 @@ export declare class AssistantSystem implements InitializableSystem {
98
140
  * background. Each leaves the set when its reply ends or when a new chat takes its thread over.
99
141
  */
100
142
  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
143
  /** The resume that is running, so two sends that find the thread locked share one. */
107
144
  private _resuming;
108
145
  /**
@@ -122,8 +159,6 @@ export declare class AssistantSystem implements InitializableSystem {
122
159
  * thread continues the same chain; any other new chat starts another one.
123
160
  */
124
161
  private _chain;
125
- /** The earlier thread that is being loaded, so a second press loads nothing twice. */
126
- private _loadingThreadId;
127
162
  private readonly _recorder;
128
163
  /** The recorder's subscription to the committed emissions of the store; made by the first `initialize()`. */
129
164
  private _recording;
@@ -136,11 +171,21 @@ export declare class AssistantSystem implements InitializableSystem {
136
171
  */
137
172
  private readonly _applyToolCallIds;
138
173
  private readonly _undoTipToolCallId;
174
+ /**
175
+ * Object URLs of the screenshots read so far, by image id. An uploaded image never changes, so
176
+ * each is read once and kept while the configuration stays loaded.
177
+ */
178
+ private _screenshotUrls;
139
179
  constructor(_context: AssistantSystemContext);
140
180
  /** The conversation. It never completes, and holds the empty chat whenever no chat is active. */
141
181
  readonly chat$: ObservableWithLastValue<AssistantChatSnapshot>;
142
182
  /** The state of the built-in panel. It never completes. */
143
183
  readonly panel$: ObservableWithLastValue<AssistantPanelSnapshot>;
184
+ /**
185
+ * What covers the configurator for an annotation, as the layout renders it; nothing while no
186
+ * annotation is made or shown. See {@link AssistantSystem.annotate}. It never completes.
187
+ */
188
+ readonly annotationOverlay$: ObservableWithLastValue<AssistantAnnotationOverlay | null>;
144
189
  /**
145
190
  * The `apply` tool call whose committed state is the step of the undo history the configuration is
146
191
  * at; nothing when that step is not a change of the assistant. It never completes.
@@ -194,6 +239,14 @@ export declare class AssistantSystem implements InitializableSystem {
194
239
  * acted, which the server puts in front of the message for the model. The record is taken only
195
240
  * when there is a chat to send it on, because taking it moves its baseline.
196
241
  *
242
+ * The images the user attached go with the message: they are uploaded into the chat's thread
243
+ * first, and the message references them, one image part after its text each. The text part is
244
+ * left out of a message with images only. An annotation is attached like an image: its image is
245
+ * uploaded and referenced in its place among the images, and its pins go into the metadata of the
246
+ * message, by the id of its image, for the server to tell the model. Each attempt to send uploads them again, into the
247
+ * thread it sends on. An upload that fails leaves the message unsent, with the failure as the
248
+ * error of the chat; `onSent` is not called then.
249
+ *
197
250
  * A thread can end in a tool call that nothing will answer: its reply parked while no page was
198
251
  * open, or the page that ran the tool was left before the result was sent. The client refuses to
199
252
  * send while it waits on such a call, so the wait is given up first, and the server records for
@@ -204,20 +257,44 @@ export declare class AssistantSystem implements InitializableSystem {
204
257
  *
205
258
  * The chat can be out of date about that: the thread reached its size limit with the reply before
206
259
  * 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.
260
+ * then refuses the message, or the upload of one of its images, and says that the thread cannot
261
+ * be continued. The thread is resumed, and the message is then sent again on the new thread, its
262
+ * images uploaded again, with the change record it was first sent with. This happens once: a
263
+ * refusal of the second attempt is the failure it is. When resuming fails, a refused message is
264
+ * left as any message that failed to send: painted, with the failure as the error of the chat; a
265
+ * refused upload leaves the message unsent. When the images of a refused message cannot be
266
+ * uploaded into the new thread, the message is given back through `onUnsent`.
267
+ *
268
+ * A chat that ends while the images upload, because another configuration was loaded or the
269
+ * thread is read again, sends nothing.
212
270
  *
213
271
  * Accepted: when the server refuses the compaction itself with a conflict, because another tab
214
272
  * compacted the thread or a run is still running, the thread is read again (see `resume`) and
215
273
  * the refused message is gone without a notice. It takes two tabs or a run racing the send, and
216
274
  * the user writes the message again, as after any reload of a thread that failed.
217
275
  *
276
+ * Accepted: images uploaded by an attempt that is not sent stay stored in that thread, which no
277
+ * message references.
278
+ *
218
279
  * It never rejects: a message the client could not send is reported as the error of the chat.
219
280
  */
220
- send: (content: string) => Promise<void>;
281
+ send: (content: string, attachments?: ReadonlyArray<AssistantAttachment>, { onSent, onUnsent }?: AssistantSendOptions) => Promise<void>;
282
+ /**
283
+ * Lets the user annotate their current view of the configurator, and resolves with what they made,
284
+ * or with `null` when they cancel, the view cannot be frozen or another configuration is loaded
285
+ * meanwhile. Nothing happens while another annotation is made or shown: it resolves with `null` at once.
286
+ *
287
+ * The layout is inert from the start, and `annotationOverlay$` says what covers it. Once the camera
288
+ * is still, the view glides from the canvas padding to none, so the product is centred on the whole
289
+ * configurator area, and the next frame is frozen for the editor. When the editor finishes, the
290
+ * view glides back to the padding and the layout is released.
291
+ */
292
+ annotate: () => Promise<AssistantAnnotation | null>;
293
+ /**
294
+ * Shows an annotation of a sent message over the configurator, read-only, until its overlay is
295
+ * closed. Nothing happens while another annotation is made or shown.
296
+ */
297
+ viewAnnotation: (annotation: AssistantMessageAnnotation) => void;
221
298
  /**
222
299
  * Makes the chat ready for the next message. A thread the server no longer lets this session
223
300
  * continue, because the assistant's setup changed since it was started or the thread reached
@@ -232,10 +309,25 @@ export declare class AssistantSystem implements InitializableSystem {
232
309
  */
233
310
  resume: () => Promise<boolean>;
234
311
  /**
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.
312
+ * An object URL of a screenshot of the conversation, by the id its tool result references it by.
313
+ * It is read from the server through the client of the current chat, once per image; a read that
314
+ * failed is forgotten, so it can be asked for again. Rejects without a chat or when the read fails.
315
+ */
316
+ loadScreenshotUrl: (imageId: string) => Promise<string>;
317
+ /**
318
+ * Loads the closed thread named by `earlierThreadId` of the chat, whole, and paints it above the
319
+ * painted ones; when it is the oldest painted thread itself, closed while only its newest messages
320
+ * were painted, it replaces that partial copy. Does nothing when there is none, one is being
321
+ * loaded, or the chat's own thread still has older messages: the earlier threads come above them.
322
+ * A load that fails is logged and can be asked for again.
237
323
  */
238
324
  loadEarlierThread: () => Promise<void>;
325
+ /**
326
+ * Loads the page of messages before the oldest painted one of the chat's thread and paints it
327
+ * above. Does nothing when the thread has no older messages or a page is being loaded. A load that
328
+ * fails is logged and can be asked for again; one that ends after its chat did is dropped.
329
+ */
330
+ loadOlderMessages: () => Promise<void>;
239
331
  /**
240
332
  * Stops the reply on both sides. Closing the stream alone keeps the server run going, because a
241
333
  * closed connection is also how a reload looks and a reload must be able to rejoin the run.
@@ -259,14 +351,32 @@ export declare class AssistantSystem implements InitializableSystem {
259
351
  undoToolCalls: (toolCallIds: ReadonlySet<string>) => void;
260
352
  setOpen: (open: boolean) => void;
261
353
  setInputFocused: (isInputFocused: boolean) => void;
354
+ /** A new configuration load cancels an annotation that is made, and closes one that is shown. */
355
+ private _closeAnnotationOverlay;
262
356
  /**
263
357
  * Where the message starts that is being sent on the chat for the first time and that the server
264
358
  * refused because its thread cannot be continued, so it never reached the thread; `-1` when there
265
359
  * is no such message. A refused continuation of a reply is not one: its message is stored.
266
360
  */
267
361
  private _findRefusedMessageIndex;
362
+ /** The content of a user message: its text, when it has any, and a reference to each of its images. */
363
+ private _messageContent;
364
+ /**
365
+ * Uploads the images of a message into the chat's thread, in their order, and resolves with their
366
+ * ids. Resolves with `'refused'` when the server refused an upload because the thread cannot be
367
+ * continued, and marks the chat so; then with `null` for any other failure, which is reported as
368
+ * the error of the chat. It never rejects.
369
+ */
370
+ private _uploadImages;
371
+ /**
372
+ * Uploads the images of a message into the thread that was resumed for it. A message the chat
373
+ * refused shows nowhere meanwhile, so the chat stays resuming until the upload is over: nothing
374
+ * else is sent ahead of it.
375
+ */
376
+ private _uploadSuccessorImages;
377
+ private _reportUploadFailure;
268
378
  private _sendOn;
269
- private _resume;
379
+ private _compact;
270
380
  /**
271
381
  * The `apply` call whose committed state is the step the configuration is at. Nothing at the bottom
272
382
  * of the history, where nothing can be undone: that step was not made by a change it could take back.
@@ -300,6 +410,8 @@ export declare class AssistantSystem implements InitializableSystem {
300
410
  * it is: whether it finishes its reply or is cut off is the caller's decision.
301
411
  */
302
412
  private _retireChat;
413
+ /** Revokes the object URLs of the screenshots read for the configuration that was loaded, also those still being read. */
414
+ private _releaseScreenshotUrls;
303
415
  /** Ends the current chat without cutting its reply off. */
304
416
  private _endChat;
305
417
  }
@@ -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 i,race as s,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,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:i,getAssistantSetup:s}=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:()=>s().manifest?.fields??S,resolveLocalizable:t=>i.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:i}={})=>{if(!this._chat.value.isContinuable&&!await this.resume())return;let s=this._current;if(!s)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=(i,s)=>{l||(l=!0,a?.());let r=e.flatMap((t,e)=>{let a=s[e];return t instanceof Blob||void 0===a?[]:[{imageId:a,pins:t.pins}]});return this._sendOn(i,this._messageContent(t,s),0===r.length?n:{...n,annotations:r})};this._firstAttempt=s;try{let t=0===o.length?[]:await this._uploadImages(s,o);if(null===t||!s.generation.active)return void r();if("refused"!==t){await h(s,t);let e=this._findRefusedMessageIndex(s);if(-1===e)return;this._refused={chat:s,index:e}}}finally{this._firstAttempt===s&&(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&&i?.(),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 i(s(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 i=this._screenshotUrls,s=a.authorizedClient.getAssistantImage(a.configurationId,t).then(t=>URL.createObjectURL(t));return i.set(t,s),s.catch(()=>{i.get(t)===s&&i.delete(t)}),s};loadEarlierThread=async()=>{let t=this._current,{earlierThreadId:e,isLoadingEarlierThread:a,hasOlderMessages:i}=this._chat.value;if(!t||null===e||a||i)return;let s=this._chain;this._chat.next({...this._chat.value,isLoadingEarlierThread:!0});try{let a=await t.authorizedClient.getAssistantEarlierThread(t.configurationId,e);if(this._chain!==s||this._chat.value.earlierThreadId!==e)return;let[i,...n]=this._chat.value.earlierThreads,r={threadId:e,messages:a.messages};this._chat.next({...this._chat.value,earlierThreads:i?.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===s&&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:i,isContinuable:s}=this._chat.value;return this._firstAttempt===t&&t.generation.active&&409===i&&!s?(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:i}=t;i.getIsLoading()||null===i.getResumeState()||i.stop();try{await i.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:i,earlierThreadId:s,isLoadingEarlierThread:n}=this._chat.value,r=this._refused?.chat===t?a.slice(0,this._refused.index):a,o=t.client.getHasOlderMessages()?e:s;return t.generation.active=!1,this._current=null,t.client.stop(),t.dispose(),this._chat.next({...f,earlierThreads:[...i,{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}),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},i=this._context.getConfigurationId();this._takeOverThread(i);let s=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 s.getAssistantChatConnection(i)},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,i=await fetch(t,e).finally(()=>r({isLoaded:!0})),s=i.headers.get("x-assistant-thread-continuable"),n=null!=s&&i.ok&&0===this._chat.value.earlierThreads.length,o=n?i.headers.get("x-assistant-previous-thread"):null;return r({failedStatus:i.ok?void 0:i.status,retryAfterSeconds:i.ok?void 0:null!==(a=i.headers.get("retry-after"))&&/^\d+$/.test(a.trim())?Number(a):void 0,...null!=s&&{isContinuable:"false"!==s},...n&&{earlierThreadId:o,...null!==o&&{hasOlderMessages:await w(i)}}}),i},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,i)=>{if(!a.active)return y;let{manifest:s,error:n}=this._context.getAssistantSetup();return n||!s?{error:n?.message??"The assistant is disabled for this session."}:t.execute?.(e,i)}})),_=new t({threadId:`assistant:${i}`,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:i,generation:a,authorizedClient:s,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()}}