@salsita-ai/sdk 0.50.0-develop.a926ccd94f → 0.50.0-develop.ab6a7ca8ae

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 (1255) hide show
  1. package/README.md +3 -3
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  4. package/dist/application-spec/core/components/component-filter.js +1 -0
  5. package/dist/application-spec/core/components/index.d.ts +2 -0
  6. package/dist/application-spec/core/components/index.js +1 -0
  7. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  8. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  9. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  10. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  11. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  12. package/dist/application-spec/core/expressions/index.js +1 -0
  13. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  14. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  15. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  16. package/dist/application-spec/core/index.d.ts +2 -0
  17. package/dist/application-spec/core/index.js +1 -1
  18. package/dist/application-spec/core/json-value.d.ts +1 -1
  19. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  20. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  21. package/dist/application-spec/enhanced-json/index.js +1 -0
  22. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  23. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  24. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  25. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  26. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  27. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  28. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  29. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  30. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  31. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  32. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  33. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  34. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  35. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  36. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  37. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  38. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  39. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  40. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  41. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  42. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  43. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +8 -1
  44. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  45. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  46. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  47. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  48. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  49. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  50. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  51. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  52. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  53. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  54. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  55. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  56. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  57. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  59. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  62. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  63. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  64. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  65. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  66. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  67. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  68. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  69. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  70. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  71. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  72. package/dist/application-spec/generate-application/code/templates/globals.js +5 -4
  73. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -8
  74. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  75. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  76. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  77. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +93 -41
  78. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +10 -4
  79. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  80. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  81. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  82. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +46 -14
  83. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -7
  84. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  85. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  86. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  87. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  88. package/dist/application-spec/generate-application/index.d.ts +2 -0
  89. package/dist/application-spec/generate-application/index.js +1 -1
  90. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +6 -2
  91. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  92. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +8 -3
  93. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  94. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +5 -3
  95. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  96. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  97. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  98. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  99. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  100. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  101. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  102. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  103. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  104. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  105. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  106. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  107. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  108. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  109. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  110. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  111. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  112. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  113. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  114. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  115. package/dist/application-spec/index.d.ts +1 -0
  116. package/dist/application-spec/index.js +1 -1
  117. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +6 -0
  118. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  119. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  120. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  121. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  122. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  123. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  124. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  125. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  126. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  127. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  128. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  129. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  130. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  131. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  132. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  133. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  134. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +1 -1
  135. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  136. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  137. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  138. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  139. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  140. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  141. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  142. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  143. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  144. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  145. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  146. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  147. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  148. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
  149. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  150. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
  151. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  152. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  153. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
  154. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  155. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  156. package/dist/client/authorized-client.d.ts +3 -1
  157. package/dist/client/authorized-client.js +1 -1
  158. package/dist/client/contract.d.ts +34 -0
  159. package/dist/client/contract.js +1 -1
  160. package/dist/client/index.d.ts +2 -2
  161. package/dist/client/index.js +1 -1
  162. package/dist/client/local-authorized-client.d.ts +3 -1
  163. package/dist/client/local-authorized-client.js +1 -1
  164. package/dist/client/memory-authorized-client.d.ts +3 -1
  165. package/dist/client/memory-authorized-client.js +1 -1
  166. package/dist/client/phoenix-api.d.ts +367 -30
  167. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  168. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  169. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  170. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +276 -13
  171. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  172. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  173. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  174. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +14 -3
  175. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  176. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  177. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  178. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  179. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +36 -5
  180. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  181. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  182. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  183. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  184. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  185. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  186. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  187. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  188. package/dist/configurator/common/configurator-interface.d.ts +26 -1
  189. package/dist/configurator/common/configurator-interface.js +1 -1
  190. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  191. package/dist/configurator/common/frontend-analytics.js +1 -1
  192. package/dist/configurator/common/index.d.ts +2 -0
  193. package/dist/configurator/common/index.js +1 -1
  194. package/dist/configurator/common/use-finalize-action.d.ts +31 -0
  195. package/dist/configurator/common/use-finalize-action.js +1 -0
  196. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  197. package/dist/configurator/common/use-reset-camera.js +1 -0
  198. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  199. package/dist/configurator/index.d.ts +0 -1
  200. package/dist/configurator/index.js +1 -1
  201. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  202. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  203. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  204. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  205. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  206. package/dist/configurator/pages/default-configurator-elements.d.ts +7 -0
  207. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  208. package/dist/configurator/pages/index.d.ts +1 -0
  209. package/dist/configurator/pages/index.js +1 -1
  210. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  211. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  212. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  213. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  214. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  215. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  216. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  217. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  218. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  219. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  220. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +3 -7
  221. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  222. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  223. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  224. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  225. package/dist/configurator/ui/assistant/AssistantThread.d.ts +7 -8
  226. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  227. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  228. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  229. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  230. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  231. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  232. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  233. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  234. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  235. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  236. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  237. package/dist/configurator/ui/assistant/index.d.ts +1 -1
  238. package/dist/configurator/ui/assistant/index.js +1 -1
  239. package/dist/configurator/ui/assistant/thread-items.d.ts +14 -3
  240. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  241. package/dist/configurator/ui/assistant/tool-chip.d.ts +8 -1
  242. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  243. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  244. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  245. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  246. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  247. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  248. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  249. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  250. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  251. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  252. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  253. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  254. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  255. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  256. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  257. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  258. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  259. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  260. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  261. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  262. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  263. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +2 -2
  264. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  265. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  266. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  267. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  268. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  269. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  270. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +2 -2
  271. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  272. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  273. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  274. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  275. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  276. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  277. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  278. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  279. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  280. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  281. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  282. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  283. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  284. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  285. package/dist/docs/index.json +42 -1
  286. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  287. package/dist/docs/layouts/custom-layout.mdx +2125 -0
  288. package/dist/docs/layouts/custom-price.mdx +14 -16
  289. package/dist/docs/layouts/header/fixed.mdx +2 -2
  290. package/dist/docs/layouts/header/floating.mdx +2 -2
  291. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  292. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  293. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  294. package/dist/docs/layouts/toolbar.mdx +3 -1
  295. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  296. package/dist/docs/other-features/domain-actions.mdx +1 -1
  297. package/dist/docs/other-features/side-effects.mdx +76 -45
  298. package/dist/docs/other-features/transformers.mdx +5 -1
  299. package/dist/docs/other-features/violation-messages.mdx +52 -56
  300. package/dist/docs/phoenix/admin.mdx +9 -24
  301. package/dist/docs/phoenix/application-states.mdx +9 -7
  302. package/dist/docs/phoenix/configurator-interface.mdx +237 -80
  303. package/dist/docs/phoenix/deployments.mdx +1 -1
  304. package/dist/docs/phoenix/domain-model.mdx +4 -0
  305. package/dist/docs/phoenix/expression-context.mdx +11 -3
  306. package/dist/docs/phoenix/finalization.mdx +1 -1
  307. package/dist/docs/phoenix/getting-started.mdx +1 -1
  308. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  309. package/dist/docs/phoenix/localization.mdx +3 -22
  310. package/dist/docs/phoenix/phoenix-cli.mdx +148 -55
  311. package/dist/docs/phoenix/project-structure.mdx +32 -13
  312. package/dist/docs/phoenix/quickstart.mdx +2 -2
  313. package/dist/docs/phoenix/sdk-builder-workflow.mdx +12 -11
  314. package/dist/docs/phoenix/testing.mdx +140 -0
  315. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  316. package/dist/docs/phoenix/webhooks.mdx +19 -2
  317. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  318. package/dist/docs/relations/hierarchy.mdx +13 -2
  319. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  320. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  321. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  322. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  323. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  324. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  325. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  326. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  327. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  328. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  329. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  330. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  331. package/dist/domain/admin-domain/index.d.ts +9 -5
  332. package/dist/domain/admin-domain/index.js +1 -1
  333. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  334. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  335. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  336. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  337. package/dist/domain/application/application-config.d.ts +30 -97
  338. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  339. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  340. package/dist/domain/application/assistant/assistant-manifest.d.ts +71 -0
  341. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +131 -0
  342. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -0
  343. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  344. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  345. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  346. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  347. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  348. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  349. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  350. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  351. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  352. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  353. package/dist/domain/application/assistant/index.d.ts +9 -0
  354. package/dist/domain/application/assistant/index.js +1 -0
  355. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  356. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  357. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  358. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  359. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  360. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  361. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  362. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  363. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  364. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  365. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  366. package/dist/domain/application/assistant-mutations.d.ts +3 -5
  367. package/dist/domain/application/assistant-mutations.js +1 -1
  368. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -7
  369. package/dist/domain/application/configurator-builder.d.ts +36 -18
  370. package/dist/domain/application/configurator-builder.js +1 -1
  371. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  372. package/dist/domain/application/index.d.ts +3 -6
  373. package/dist/domain/application/index.js +1 -1
  374. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  375. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  376. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  377. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  378. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  379. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  380. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  381. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  382. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  383. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  384. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  385. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  386. package/dist/domain/available-system-components.js +1 -1
  387. package/dist/domain/core/action/action-factory.d.ts +11 -0
  388. package/dist/domain/core/{action.d.ts → action/action.d.ts} +22 -18
  389. package/dist/domain/core/action/index.d.ts +2 -0
  390. package/dist/domain/core/action/index.js +1 -0
  391. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  392. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  393. package/dist/domain/core/component/debug-state-component.js +1 -0
  394. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  395. package/dist/domain/core/component/domain-component-optic.js +16 -0
  396. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  397. package/dist/domain/core/component/drag-state-component.js +1 -0
  398. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  399. package/dist/domain/core/component/export-state-component.js +1 -0
  400. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  401. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  402. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  403. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  404. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  405. package/dist/domain/core/component/hover-state-component.js +1 -0
  406. package/dist/domain/core/component/index.d.ts +18 -0
  407. package/dist/domain/core/component/index.js +1 -0
  408. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  409. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  410. package/dist/domain/core/component/navigation-state-component.js +1 -0
  411. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  412. package/dist/domain/core/component/selection-state-component.js +1 -0
  413. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  414. package/dist/domain/core/component/system-component-builder.js +1 -0
  415. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  416. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  417. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  418. package/dist/domain/core/component/tool-state-component.js +1 -0
  419. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  420. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  421. package/dist/domain/core/component/view-state-component.js +1 -0
  422. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  423. package/dist/domain/core/component/viewport-state-component.js +1 -0
  424. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  425. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  426. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  427. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  428. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  429. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  430. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  431. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  432. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  433. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  434. package/dist/domain/core/data-schema/data-schema.js +1 -0
  435. package/dist/domain/core/data-schema/index.d.ts +7 -0
  436. package/dist/domain/core/data-schema/index.js +1 -0
  437. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  438. package/dist/domain/core/decoder/create-decoder.js +1 -0
  439. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  440. package/dist/domain/core/decoder/decoder.js +1 -0
  441. package/dist/domain/core/decoder/index.d.ts +2 -0
  442. package/dist/domain/core/decoder/index.js +1 -0
  443. package/dist/domain/core/domain-factory.d.ts +4 -5
  444. package/dist/domain/core/domain-factory.js +1 -1
  445. package/dist/domain/core/domain.d.ts +4 -5
  446. package/dist/domain/core/domain.js +1 -1
  447. package/dist/domain/core/emission/index.d.ts +8 -0
  448. package/dist/domain/core/emission/index.js +1 -0
  449. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  450. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  451. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  452. package/dist/domain/core/emission/state-emission.js +1 -0
  453. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  454. package/dist/domain/core/emission/state-update-emission.js +1 -0
  455. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  456. package/dist/domain/core/emission/state-validation-result.js +1 -0
  457. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  458. package/dist/domain/core/emission/transformation-log.js +1 -0
  459. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  460. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  461. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  462. package/dist/domain/core/emission/transformer-log.js +1 -0
  463. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  464. package/dist/domain/core/emission/transformer-phase.js +1 -0
  465. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  466. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  467. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  468. package/dist/domain/core/expression/constant-expressions.js +1 -0
  469. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  470. package/dist/domain/core/expression/custom-expression.js +1 -0
  471. package/dist/domain/core/expression/expression.d.ts +46 -0
  472. package/dist/domain/core/expression/expression.js +1 -0
  473. package/dist/domain/core/expression/index.d.ts +4 -0
  474. package/dist/domain/core/expression/index.js +1 -0
  475. package/dist/domain/core/index.d.ts +13 -17
  476. package/dist/domain/core/index.js +1 -1
  477. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  478. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  479. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  480. package/dist/domain/core/invariant/index.d.ts +5 -0
  481. package/dist/domain/core/invariant/index.js +1 -0
  482. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  483. package/dist/domain/core/invariant/invariants.js +1 -0
  484. package/dist/domain/core/invariant/violation-component.js +1 -0
  485. package/dist/domain/{invariants → core/invariant}/violation.d.ts +52 -4
  486. package/dist/domain/core/invariant/violation.js +1 -0
  487. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  488. package/dist/domain/core/model/index.d.ts +6 -0
  489. package/dist/domain/core/model/index.js +1 -0
  490. package/dist/domain/core/{model.d.ts → model/model.d.ts} +1 -1
  491. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  492. package/dist/domain/core/model/reflection.js +1 -0
  493. package/dist/domain/core/recipe/index.d.ts +1 -0
  494. package/dist/domain/core/recipe/index.js +1 -0
  495. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  496. package/dist/domain/core/recipe/recipes.js +1 -0
  497. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  498. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  499. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  500. package/dist/domain/core/relation/component-factories.js +1 -0
  501. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  502. package/dist/domain/core/relation/composed-of.js +1 -0
  503. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  504. package/dist/domain/core/relation/index.d.ts +8 -0
  505. package/dist/domain/core/relation/index.js +1 -0
  506. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  507. package/dist/domain/core/relation/indirect-relation.js +1 -0
  508. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  509. package/dist/domain/core/relation/reference-component.js +1 -0
  510. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  511. package/dist/domain/core/relation/reference-field.js +1 -0
  512. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  513. package/dist/domain/core/relation/relation-factory.js +1 -0
  514. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  515. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  516. package/dist/domain/core/schema/index.d.ts +3 -0
  517. package/dist/domain/core/schema/index.js +1 -0
  518. package/dist/domain/core/schema/schema-validator.js +1 -0
  519. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  520. package/dist/domain/core/state/id-sequence.js +1 -0
  521. package/dist/domain/core/state/index.d.ts +3 -0
  522. package/dist/domain/core/state/index.js +1 -0
  523. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  524. package/dist/domain/core/state/migrations.js +1 -0
  525. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  526. package/dist/domain/domain-builder.d.ts +11 -11
  527. package/dist/domain/domain-builder.js +1 -1
  528. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  529. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  530. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  531. package/dist/domain/domain-context/action-system/index.js +1 -0
  532. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  533. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  534. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  535. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  536. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  537. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  538. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  539. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  540. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  541. package/dist/domain/domain-context/index.d.ts +8 -18
  542. package/dist/domain/domain-context/index.js +1 -1
  543. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  544. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  545. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  546. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  547. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  548. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  549. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  550. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  551. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  552. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  553. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  554. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  555. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  556. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  557. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  558. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  559. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  560. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  561. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  562. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  563. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  564. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  565. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  566. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  567. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  568. package/dist/domain/domain-context/store-system/index.js +1 -0
  569. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  570. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  571. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  572. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  573. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  574. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  575. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  576. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  577. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  578. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  579. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  580. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  581. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  582. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  583. package/dist/domain/domain-context/transformers/context.js +1 -1
  584. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  585. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  586. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  587. package/dist/domain/domain-context/transformers/index.js +1 -1
  588. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  589. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  590. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  591. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  592. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  593. package/dist/domain/domain-context/undo-system.js +1 -1
  594. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  595. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  596. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  597. package/dist/domain/domain-runtime/access/types.js +1 -1
  598. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  599. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  600. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  601. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  602. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  603. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  604. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  605. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  606. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  607. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  608. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  609. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  610. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  611. package/dist/domain/domain-runtime/domain-runtime.d.ts +88 -72
  612. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  613. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  614. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  615. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  616. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  617. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  618. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  619. package/dist/domain/domain-runtime/errors/index.js +1 -0
  620. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  621. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  622. package/dist/domain/domain-runtime/index.d.ts +1 -0
  623. package/dist/domain/domain-runtime/index.js +1 -1
  624. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  625. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  626. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  627. package/dist/domain/domain-runtime/spec/index.js +1 -1
  628. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  629. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  630. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  631. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  632. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  633. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  634. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  635. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  636. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  637. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  638. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  639. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  640. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  641. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  642. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  643. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  644. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  645. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  646. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  647. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  648. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  649. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  650. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  651. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  652. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  653. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  654. package/dist/domain/domain-runtime/spec/types.d.ts +8 -6
  655. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  656. package/dist/domain/extensions/angle-indicator.js +1 -0
  657. package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +1 -1
  658. package/dist/domain/extensions/attribute-switch.js +1 -0
  659. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  660. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  661. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  662. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  663. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  664. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  665. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +2 -2
  666. package/dist/domain/extensions/canvas-config.js +1 -0
  667. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  668. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  669. package/dist/domain/extensions/canvas-padding.js +1 -0
  670. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  671. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  672. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  673. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  674. package/dist/domain/{system-components → extensions}/client-side-image.d.ts +2 -2
  675. package/dist/domain/extensions/client-side-image.js +1 -0
  676. package/dist/domain/extensions/color-value.js +1 -0
  677. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +3 -3
  678. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  679. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +3 -3
  680. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  681. package/dist/domain/extensions/common/index.d.ts +4 -0
  682. package/dist/domain/extensions/common/index.js +1 -0
  683. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  684. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  685. package/dist/domain/extensions/custom-price-footer.js +1 -0
  686. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  687. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  688. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  689. package/dist/domain/extensions/dimension-indicator.js +1 -0
  690. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +4 -3
  691. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  692. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +4 -3
  693. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  694. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +4 -3
  695. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  696. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  697. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  698. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  699. package/dist/domain/extensions/entity-header.js +1 -0
  700. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  701. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  702. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  703. package/dist/domain/extensions/finalize-action.js +1 -0
  704. package/dist/domain/extensions/finalize-component.js +1 -0
  705. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  706. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  707. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  708. package/dist/domain/extensions/fixed-header.js +1 -0
  709. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  710. package/dist/domain/extensions/floating-header.js +1 -0
  711. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  712. package/dist/domain/extensions/hidden-header.js +1 -0
  713. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  714. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  715. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +3 -3
  716. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  717. package/dist/domain/extensions/index.d.ts +69 -0
  718. package/dist/domain/extensions/index.js +1 -0
  719. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +4 -3
  720. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  721. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  722. package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +2 -2
  723. package/dist/domain/extensions/navigation-steps.js +1 -0
  724. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  725. package/dist/domain/extensions/offset-anchors.js +1 -0
  726. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  727. package/dist/domain/extensions/offset-indicator.js +1 -0
  728. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  729. package/dist/domain/extensions/offset.js +1 -0
  730. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  731. package/dist/domain/extensions/other-action.js +1 -0
  732. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  733. package/dist/domain/extensions/property-page.js +1 -0
  734. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  735. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  736. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  737. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  738. package/dist/domain/extensions/rotatable.js +1 -0
  739. package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +2 -2
  740. package/dist/domain/extensions/rotation-handle.js +1 -0
  741. package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +2 -2
  742. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  743. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  744. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  745. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  746. package/dist/domain/extensions/scene-entity-control.js +1 -0
  747. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  748. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  749. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  750. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  751. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  752. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  753. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  754. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  755. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  756. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  757. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  758. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  759. package/dist/domain/extensions/selectable-component.js +1 -0
  760. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  761. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  762. package/dist/domain/extensions/simple-summary.js +1 -0
  763. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  764. package/dist/domain/extensions/size.js +1 -0
  765. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  766. package/dist/domain/extensions/sketching-draw.js +1 -0
  767. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  768. package/dist/domain/extensions/sketching-edit.js +1 -0
  769. package/dist/domain/extensions/summary-component.js +1 -0
  770. package/dist/domain/extensions/text-value.js +1 -0
  771. package/dist/domain/extensions/tool-controls.js +1 -0
  772. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  773. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  774. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  775. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  776. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  777. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  778. package/dist/domain/extensions/view-controls.js +1 -0
  779. package/dist/domain/index.d.ts +2 -32
  780. package/dist/domain/index.js +1 -1
  781. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  782. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  783. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +30 -21
  784. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  785. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  786. package/dist/domain/mocks/create-mock-domain.js +1 -1
  787. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  788. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  789. package/dist/domain/mocks/create-test-application-config.js +1 -0
  790. package/dist/domain/mocks/index.d.ts +1 -0
  791. package/dist/domain/mocks/index.js +1 -1
  792. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  793. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  794. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  795. package/dist/domain/projections/collision-projections.d.ts +1 -1
  796. package/dist/domain/projections/composition-projections.d.ts +1 -1
  797. package/dist/domain/projections/composition-projections.js +1 -1
  798. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  799. package/dist/domain/projections/index.d.ts +1 -1
  800. package/dist/domain/projections/position-projections.d.ts +1 -1
  801. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  802. package/dist/domain/projections/snap-matching.d.ts +1 -2
  803. package/dist/domain/projections/snap-utils.d.ts +1 -2
  804. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  805. package/dist/domain/projections/validation-projections.d.ts +3 -20
  806. package/dist/domain/projections/validation-projections.js +1 -1
  807. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  808. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  809. package/dist/domain/system-components/admin-sidebar.js +1 -1
  810. package/dist/domain/system-components/angle-dimension.js +1 -1
  811. package/dist/domain/system-components/application-config.d.ts +3 -3
  812. package/dist/domain/system-components/application-config.js +1 -1
  813. package/dist/domain/system-components/attribute-selection.js +1 -1
  814. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  815. package/dist/domain/system-components/bounding-box-component.js +1 -1
  816. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  817. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  818. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  819. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  820. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  821. package/dist/domain/system-components/child-entity-selection.js +1 -1
  822. package/dist/domain/system-components/collision-box-geometry.d.ts +5 -3
  823. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  824. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  825. package/dist/domain/system-components/collision-geometry.d.ts +5 -3
  826. package/dist/domain/system-components/collision-geometry.js +1 -1
  827. package/dist/domain/system-components/collision-point-geometry.d.ts +5 -3
  828. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  829. package/dist/domain/system-components/common/index.d.ts +0 -4
  830. package/dist/domain/system-components/common/index.js +1 -1
  831. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  832. package/dist/domain/system-components/common/recipes.d.ts +21 -4
  833. package/dist/domain/system-components/common/recipes.js +1 -1
  834. package/dist/domain/system-components/constraint.d.ts +11 -24
  835. package/dist/domain/system-components/constraint.js +1 -1
  836. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  837. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  838. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  839. package/dist/domain/system-components/detail.js +1 -1
  840. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  841. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  842. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  843. package/dist/domain/system-components/distance-dimension.js +1 -1
  844. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  845. package/dist/domain/system-components/drag-handle.js +1 -1
  846. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  847. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  848. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  849. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  850. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  851. package/dist/domain/system-components/generic-dimension.js +1 -1
  852. package/dist/domain/system-components/hidden-entity.js +1 -1
  853. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  854. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  855. package/dist/domain/system-components/index.d.ts +0 -68
  856. package/dist/domain/system-components/index.js +1 -1
  857. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  858. package/dist/domain/system-components/material-override-transformer.js +1 -1
  859. package/dist/domain/system-components/material-swatch.js +1 -1
  860. package/dist/domain/system-components/navigation-page.js +1 -1
  861. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  862. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  863. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  864. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  865. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  866. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  867. package/dist/domain/system-components/pivot-point.js +1 -1
  868. package/dist/domain/system-components/price.js +1 -1
  869. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  870. package/dist/domain/system-components/projected-entities.js +1 -1
  871. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  872. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  873. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  874. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  875. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  876. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  877. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  878. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  879. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  880. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  881. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  882. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  883. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  884. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  885. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  886. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  887. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  888. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  889. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  890. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  891. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  892. package/dist/domain/system-components/scene-entity-object.js +1 -1
  893. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  894. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  895. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  896. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  897. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  898. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  899. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  900. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  901. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  902. package/dist/domain/system-components/sketching-line.js +1 -1
  903. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  904. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  905. package/dist/domain/system-components/sketching.d.ts +1 -1
  906. package/dist/domain/system-components/sketching.js +1 -1
  907. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  908. package/dist/domain/system-components/snap-axis.js +1 -1
  909. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  910. package/dist/domain/system-components/snap-edge.js +1 -1
  911. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  912. package/dist/domain/system-components/snap-plane.js +1 -1
  913. package/dist/domain/system-components/snap-point.d.ts +1 -1
  914. package/dist/domain/system-components/snap-point.js +1 -1
  915. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  916. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  917. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  918. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  919. package/dist/domain/utils/eval-cache.d.ts +2 -3
  920. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  921. package/dist/domain/utils/memo-eval.d.ts +2 -4
  922. package/dist/editor/Editor.js +1 -1
  923. package/dist/editor/domain-editors/use-implementation-files.d.ts +8 -8
  924. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  925. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  926. package/dist/editor/mocks/EditorMockContext.js +1 -1
  927. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  928. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  929. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  930. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  931. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  932. package/dist/editor/variants/variant-preview-styles.js +1 -0
  933. package/dist/i18n/locales/cs/messages.js +1 -1
  934. package/dist/i18n/locales/da/messages.js +1 -1
  935. package/dist/i18n/locales/de/messages.js +1 -1
  936. package/dist/i18n/locales/de-AT/messages.js +1 -1
  937. package/dist/i18n/locales/en/messages.js +1 -1
  938. package/dist/i18n/locales/en-AU/messages.js +1 -1
  939. package/dist/i18n/locales/en-GB/messages.js +1 -1
  940. package/dist/i18n/locales/es/messages.js +1 -1
  941. package/dist/i18n/locales/fr/messages.js +1 -1
  942. package/dist/i18n/locales/hu/messages.js +1 -1
  943. package/dist/i18n/locales/it/messages.js +1 -1
  944. package/dist/i18n/locales/nl/messages.js +1 -1
  945. package/dist/i18n/locales/pl/messages.js +1 -1
  946. package/dist/i18n/locales/pt/messages.js +1 -1
  947. package/dist/i18n/locales/ro/messages.js +1 -1
  948. package/dist/i18n/locales/sk/messages.js +1 -1
  949. package/dist/i18n/locales/tr/messages.js +1 -1
  950. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  951. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  952. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  953. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  954. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  955. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  956. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  957. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  958. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +81 -68
  959. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  960. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  961. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  962. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  963. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  964. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  965. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  966. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +16 -15
  967. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +16 -15
  968. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +23 -22
  969. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +16 -15
  970. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  971. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  972. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  973. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  974. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  975. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  976. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  977. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  978. package/dist/phoenix/cli.js +1 -1
  979. package/dist/phoenix/commands/check.js +1 -1
  980. package/dist/phoenix/commands/deploy.js +1 -1
  981. package/dist/phoenix/commands/dev.js +5 -5
  982. package/dist/phoenix/commands/fix.js +1 -1
  983. package/dist/phoenix/commands/index.d.ts +1 -0
  984. package/dist/phoenix/commands/index.js +1 -1
  985. package/dist/phoenix/commands/init.d.ts +4 -4
  986. package/dist/phoenix/commands/init.js +1 -1
  987. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  988. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  989. package/dist/phoenix/commands/prettier.js +1 -1
  990. package/dist/phoenix/commands/story-dev.js +2 -2
  991. package/dist/phoenix/commands/variants.d.ts +35 -0
  992. package/dist/phoenix/commands/variants.js +1 -0
  993. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  994. package/dist/phoenix/editor-server/commands-router.js +1 -1
  995. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  996. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  997. package/dist/phoenix/editor-server/editor-server.js +1 -1
  998. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  999. package/dist/phoenix/editor-server/spec-router.js +1 -1
  1000. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  1001. package/dist/phoenix/scripts/build-admin.js +1 -1
  1002. package/dist/phoenix/services/application-spec-project-watcher.d.ts +15 -2
  1003. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  1004. package/dist/phoenix/services/index.d.ts +4 -0
  1005. package/dist/phoenix/services/index.js +1 -1
  1006. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  1007. package/dist/phoenix/services/phoenix-application.js +1 -0
  1008. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  1009. package/dist/phoenix/services/phoenix-store.js +1 -0
  1010. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  1011. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  1012. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1013. package/dist/phoenix/services/source-archive.d.ts +1 -0
  1014. package/dist/phoenix/services/source-archive.js +1 -1
  1015. package/dist/phoenix/services/swc.js +1 -1
  1016. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  1017. package/dist/phoenix/services/variant-file-session.js +1 -0
  1018. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  1019. package/dist/phoenix/services/variant-preview-service.js +1 -0
  1020. package/dist/phoenix/services/vite-config.js +1 -1
  1021. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1022. package/dist/phoenix/utils/git/index.js +1 -0
  1023. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1024. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1025. package/dist/phoenix/utils/index.d.ts +1 -0
  1026. package/dist/phoenix/utils/index.js +1 -1
  1027. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  1028. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  1029. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  1030. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  1031. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1032. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1033. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +57 -40
  1034. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1035. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  1036. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1037. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  1038. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  1039. package/dist/react-sdk/domain-context/index.js +1 -1
  1040. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  1041. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1042. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1043. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  1044. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  1045. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1046. package/dist/webhook/builders/common.d.ts +8 -0
  1047. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  1048. package/dist/webhook/builders/webhook-builder.js +1 -1
  1049. package/package.json +34 -27
  1050. package/schema/domain-spec.json +1115 -209
  1051. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1052. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1053. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1054. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  1055. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1056. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1057. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1058. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1059. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1060. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1061. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1062. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1063. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1064. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1065. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1066. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1067. package/dist/configurator/assistant/index.d.ts +0 -1
  1068. package/dist/configurator/assistant/index.js +0 -1
  1069. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -30
  1070. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  1071. package/dist/configurator/ui/assistant/AssistantPanelProvider.d.ts +0 -42
  1072. package/dist/configurator/ui/assistant/AssistantPanelProvider.js +0 -1
  1073. package/dist/domain/actions/action-factory.d.ts +0 -10
  1074. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  1075. package/dist/domain/application/element-registration.js +0 -1
  1076. package/dist/domain/application/handler-registration.js +0 -1
  1077. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  1078. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1079. package/dist/domain/application/resource-builder.d.ts +0 -13
  1080. package/dist/domain/application/resource-builder.js +0 -1
  1081. package/dist/domain/components/debug-state-component.js +0 -1
  1082. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  1083. package/dist/domain/components/domain-component-optic.js +0 -16
  1084. package/dist/domain/components/drag-state-component.js +0 -1
  1085. package/dist/domain/components/export-state-component.js +0 -1
  1086. package/dist/domain/components/fullscreen-state-component.js +0 -1
  1087. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  1088. package/dist/domain/components/hover-state-component.js +0 -1
  1089. package/dist/domain/components/index.d.ts +0 -2
  1090. package/dist/domain/components/index.js +0 -1
  1091. package/dist/domain/components/navigation-state-component.js +0 -1
  1092. package/dist/domain/components/selection-state-component.js +0 -1
  1093. package/dist/domain/components/system-component-builder.js +0 -1
  1094. package/dist/domain/components/system-virtual-entity.js +0 -1
  1095. package/dist/domain/components/tool-state-component.js +0 -1
  1096. package/dist/domain/components/view-state-component.js +0 -1
  1097. package/dist/domain/components/viewport-state-component.js +0 -1
  1098. package/dist/domain/core/expression.d.ts +0 -50
  1099. package/dist/domain/core/json-schema.js +0 -1
  1100. package/dist/domain/core/migrations.js +0 -1
  1101. package/dist/domain/core/reflection.js +0 -1
  1102. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  1103. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  1104. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  1105. package/dist/domain/expressions/constant-expressions.js +0 -1
  1106. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  1107. package/dist/domain/expressions/custom-expression.js +0 -1
  1108. package/dist/domain/expressions/index.d.ts +0 -1
  1109. package/dist/domain/expressions/index.js +0 -1
  1110. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  1111. package/dist/domain/invariants/custom-invariants.js +0 -1
  1112. package/dist/domain/invariants/invariants.d.ts +0 -68
  1113. package/dist/domain/invariants/invariants.js +0 -1
  1114. package/dist/domain/invariants/violation-component.js +0 -1
  1115. package/dist/domain/invariants/violation.js +0 -1
  1116. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  1117. package/dist/domain/relations/all-of-type-relation.js +0 -1
  1118. package/dist/domain/relations/component-factories.js +0 -1
  1119. package/dist/domain/relations/composed-of.js +0 -1
  1120. package/dist/domain/relations/direct-relation.d.ts +0 -29
  1121. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  1122. package/dist/domain/relations/indirect-relation.js +0 -1
  1123. package/dist/domain/relations/reference-component.js +0 -1
  1124. package/dist/domain/relations/relation-factory.d.ts +0 -19
  1125. package/dist/domain/relations/relation-factory.js +0 -1
  1126. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  1127. package/dist/domain/system-components/angle-indicator.js +0 -1
  1128. package/dist/domain/system-components/attribute-switch.js +0 -1
  1129. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  1130. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  1131. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  1132. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1133. package/dist/domain/system-components/canvas-config.js +0 -1
  1134. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1135. package/dist/domain/system-components/canvas-padding.js +0 -1
  1136. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1137. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1138. package/dist/domain/system-components/client-side-image.js +0 -1
  1139. package/dist/domain/system-components/color-value.js +0 -1
  1140. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1141. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1142. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1143. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1144. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1145. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1146. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1147. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1148. package/dist/domain/system-components/entity-header.js +0 -1
  1149. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1150. package/dist/domain/system-components/finalize-action.js +0 -1
  1151. package/dist/domain/system-components/finalize-component.js +0 -1
  1152. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1153. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1154. package/dist/domain/system-components/fixed-header.js +0 -1
  1155. package/dist/domain/system-components/floating-header.js +0 -1
  1156. package/dist/domain/system-components/hidden-header.js +0 -1
  1157. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1158. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1159. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1160. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1161. package/dist/domain/system-components/navigation-steps.js +0 -1
  1162. package/dist/domain/system-components/offset-anchors.js +0 -1
  1163. package/dist/domain/system-components/offset-indicator.js +0 -1
  1164. package/dist/domain/system-components/offset.js +0 -1
  1165. package/dist/domain/system-components/other-action.js +0 -1
  1166. package/dist/domain/system-components/property-page.js +0 -1
  1167. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1168. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1169. package/dist/domain/system-components/rotatable.js +0 -1
  1170. package/dist/domain/system-components/rotation-handle.js +0 -1
  1171. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1172. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1173. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1174. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1175. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1176. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1177. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1178. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1179. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1180. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1181. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1182. package/dist/domain/system-components/selectable-component.js +0 -1
  1183. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1184. package/dist/domain/system-components/simple-summary.js +0 -1
  1185. package/dist/domain/system-components/size.js +0 -1
  1186. package/dist/domain/system-components/sketching-draw.js +0 -1
  1187. package/dist/domain/system-components/sketching-edit.js +0 -1
  1188. package/dist/domain/system-components/summary-component.js +0 -1
  1189. package/dist/domain/system-components/text-value.js +0 -1
  1190. package/dist/domain/system-components/tool-controls.js +0 -1
  1191. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1192. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1193. package/dist/domain/system-components/view-controls.js +0 -1
  1194. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  1195. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  1196. /package/dist/{domain/components/component-reader-types.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1197. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1198. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1199. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1200. /package/dist/domain/{core/action.js → application/assistant/assistant-manifest.js} +0 -0
  1201. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  1202. /package/dist/domain/core/{enhanced-json-schema.js → action/action.js} +0 -0
  1203. /package/dist/domain/core/{expression.js → component/component-reader-types.js} +0 -0
  1204. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1205. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1206. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1207. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1208. /package/dist/domain/core/{schema-validator.js → data-schema/data-cell-value.js} +0 -0
  1209. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-array-field.js} +0 -0
  1210. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field-object.js} +0 -0
  1211. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1212. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1213. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1214. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1215. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1216. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1217. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1218. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1219. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1220. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1221. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1222. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1223. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1224. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1225. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1226. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1227. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1228. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1229. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1230. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1231. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1232. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1233. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1234. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1235. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1236. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1237. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1238. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1239. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1240. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1241. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1242. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1243. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1244. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1245. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1246. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1247. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1248. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1249. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1250. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1251. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1252. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1253. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1254. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1255. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1,35 +1,298 @@
1
1
  import type { AnyClientTool } from '@tanstack/ai';
2
- import type { DomainContextSelectors, InitializableSystem, SpecSelectors } from '#package/domain';
2
+ import { type UIMessage } from '@tanstack/ai-client';
3
+ import { type ObservableWithLastValue } from '@salsita-ai/common/utils';
4
+ import { type AuthorizedPhoenixApiClient } from '#package/client';
5
+ import type { DomainContextSelectors, DomainServicesSelectors, InitializableSystem, SessionAssistantSetup, SpecSelectors } from '#package/domain';
3
6
  import type { ConfiguratorExtensionSelectors } from '../../selectors.js';
4
7
  /** A tool of the assistant that the model calls and the browser runs, as the chat client accepts it. */
5
8
  export type AssistantClientTool = AnyClientTool;
6
9
  /**
7
10
  * Constructor context of an `AssistantSystem`: whole selector objects, like its peers take them, so
8
- * the tools reach the store, the session mode and the `GraphQLSystem` when they are called.
11
+ * the tools reach the store, the session mode and the `GraphQLSystem` when they are called, and the
12
+ * chat reaches the server of the current session when it sends a request.
9
13
  */
10
14
  export interface AssistantSystemContext {
11
15
  readonly configuratorExtensionSelectors: ConfiguratorExtensionSelectors;
12
16
  readonly domainContextSelectors: DomainContextSelectors;
17
+ readonly domainServicesSelectors: DomainServicesSelectors;
13
18
  readonly specSelectors: SpecSelectors;
19
+ readonly getConfigurationId: () => string;
20
+ readonly getAuthorizedClient: () => AuthorizedPhoenixApiClient<any, any, any>;
21
+ /** The assistant the initialized session runs: its tools, its exposed fields and whether chat runs at all. */
22
+ readonly getAssistantSetup: () => SessionAssistantSetup;
14
23
  }
15
24
  /**
16
- * Owns the client tools of the conversational assistant: `getBrowserDetails`, `query` and `apply`.
17
- * They are built once, over the runtime's selectors, and offered only by a configurator whose
18
- * application spec has an `assistant` section, so a configurator without one has no tools to
19
- * register with a chat.
25
+ * The conversation with the assistant as the panel paints it. One value is published per change, so
26
+ * it changes with every chunk of a streaming reply.
27
+ */
28
+ export interface AssistantChatSnapshot {
29
+ /** The thread as painted: hydrated from the server, then streamed. */
30
+ readonly messages: ReadonlyArray<UIMessage>;
31
+ /** True while a round of a reply streams or its browser tools run; false in the pause before the next round. */
32
+ readonly isLoading: boolean;
33
+ readonly error: Error | undefined;
34
+ /**
35
+ * HTTP status of the latest request the server answered with a failure, for telling a refusal from
36
+ * a dropped connection when `error` is set. Nothing when the latest answered request succeeded or
37
+ * the server was never reached.
38
+ */
39
+ readonly failedStatus: number | undefined;
40
+ /** False when the server said this session may read the thread but not add to it. */
41
+ readonly isContinuable: boolean;
42
+ /** False until the first request of the chat, the thread read, was answered or failed. */
43
+ readonly isLoaded: boolean;
44
+ /**
45
+ * True while a thread this session may not continue is being continued in a new one, which the
46
+ * user's next message starts; see {@link AssistantSystem.resume}.
47
+ */
48
+ readonly isResuming: boolean;
49
+ /**
50
+ * The closed threads the painted thread continues, oldest first: the ones that were resumed while
51
+ * the chat was open, and the ones loaded with {@link AssistantSystem.loadEarlierThread}.
52
+ */
53
+ 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. */
57
+ readonly isLoadingEarlierThread: boolean;
58
+ }
59
+ /** A closed thread of the conversation as the panel paints it above the thread that continues it. */
60
+ export interface AssistantEarlierThreadSnapshot {
61
+ readonly threadId: string;
62
+ readonly messages: ReadonlyArray<UIMessage>;
63
+ }
64
+ /**
65
+ * The built-in assistant panel as a layout and the toolbar button see it: whether it is open, and
66
+ * the few facts about it they render. It changes only when one of those does.
67
+ */
68
+ export interface AssistantPanelSnapshot {
69
+ readonly open: boolean;
70
+ /** True when a reply finished while the panel was closed and the panel was not opened since. */
71
+ readonly hasUnreadReply: boolean;
72
+ /** True while the message input has focus; a phone layout gives the panel the whole screen then. */
73
+ readonly isInputFocused: boolean;
74
+ }
75
+ /**
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.
79
+ *
80
+ * The server owns the thread, so the chat keeps nothing in browser storage: its client hydrates
81
+ * from the server and rejoins a reply that is still streaming.
82
+ *
83
+ * WORKAROUND: the runtime cannot tell a system that its configuration was left, and a system cannot
84
+ * observe the application spec. Until it can do both, the chat is started and ended from outside,
85
+ * through {@link AssistantSystem.activate}; see there for what that costs.
20
86
  */
21
87
  export declare class AssistantSystem implements InitializableSystem {
22
88
  private readonly _context;
23
89
  private readonly _tools;
24
- private _isInitialized;
90
+ private readonly _chat;
91
+ private readonly _panel;
92
+ /** Identity of the current `activate()` call; nothing while the chat is not active. */
93
+ private _activation;
94
+ /** The chat of the current activation; nothing while no chat is active. */
95
+ private _current;
96
+ /**
97
+ * Chats that have ended while their reply was still running and are finishing it in the
98
+ * background. Each leaves the set when its reply ends or when a new chat takes its thread over.
99
+ */
100
+ 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
+ /** The resume that is running, so two sends that find the thread locked share one. */
107
+ private _resuming;
108
+ /**
109
+ * The message the server refused on a chat because its thread cannot be continued, by where it
110
+ * starts in the chat's messages: it is painted, but it is not part of the thread, so a resume
111
+ * leaves it out of the closed thread it paints above the new one.
112
+ */
113
+ private _refused;
114
+ /**
115
+ * The chat a message is being sent on for the first time. When the server refuses that message
116
+ * because the thread cannot be continued, the refusal is not a failure of the chat: the thread is
117
+ * resumed and the message is sent again; see `send`.
118
+ */
119
+ private _firstAttempt;
120
+ /**
121
+ * Identity of the chain of threads that is painted. A resumed chat keeps it, because its new
122
+ * thread continues the same chain; any other new chat starts another one.
123
+ */
124
+ private _chain;
125
+ /** The earlier thread that is being loaded, so a second press loads nothing twice. */
126
+ private _loadingThreadId;
127
+ private readonly _recorder;
128
+ /** The recorder's subscription to the committed emissions of the store; made by the first `initialize()`. */
129
+ private _recording;
130
+ /**
131
+ * The tool call of every `apply` by the state it committed or held, for as long as the state
132
+ * lives: an undone state that the undo history dropped is forgotten with it.
133
+ *
134
+ * Accepted: a commit the project's `registerIsUndoable` keeps out of the history never becomes a
135
+ * step, so the row of its `apply` never offers Undo.
136
+ */
137
+ private readonly _applyToolCallIds;
138
+ private readonly _undoTipToolCallId;
25
139
  constructor(_context: AssistantSystemContext);
140
+ /** The conversation. It never completes, and holds the empty chat whenever no chat is active. */
141
+ readonly chat$: ObservableWithLastValue<AssistantChatSnapshot>;
142
+ /** The state of the built-in panel. It never completes. */
143
+ readonly panel$: ObservableWithLastValue<AssistantPanelSnapshot>;
144
+ /**
145
+ * The `apply` tool call whose committed state is the step of the undo history the configuration is
146
+ * at; nothing when that step is not a change of the assistant. It never completes.
147
+ */
148
+ readonly undoTipToolCallId$: ObservableWithLastValue<string | undefined>;
149
+ /**
150
+ * A new configuration load: the chat of the previous one is deactivated and both observables go
151
+ * back to their empty values. An activation that is still held outlives it and gets the chat of
152
+ * the new load, because the page that holds it can be mounted before this runs: a configuration
153
+ * that is entered again renders its page at once and initializes from an effect after the page's.
154
+ *
155
+ * Accepted cost: on such a re-entry the thread is read twice. The page's `activate()` has already
156
+ * created a client and started its read when this runs, and that client is replaced here, because
157
+ * the system cannot tell that it was created for the load that is only now being initialized.
158
+ *
159
+ * The change recorder starts over from the loaded state, so the first message after a load says
160
+ * that the changes are unavailable. The store is retained across loads and has already emitted the
161
+ * loaded state when this runs, so one subscription serves every load.
162
+ */
26
163
  initialize: () => void;
27
164
  /**
28
- * The tools to register with the chat: all of them when the application spec has an `assistant`
29
- * section, none otherwise or before the first initialization. The section is read on every call
30
- * and not in `initialize()`, because editor hot reload adds or removes it by reconciliation alone.
31
- * Each answer is always the same array instance, so the getter is a valid snapshot for a hook
32
- * subscribed to the runtime.
165
+ * Starts the chat of the loaded configuration: creates the client, which reads the thread from the
166
+ * server and rejoins a reply that is still running. The returned function ends it.
167
+ *
168
+ * WORKAROUND, to be replaced once the runtime has teardown and spec observation for systems. Two
169
+ * things a system cannot learn by itself are decided by the caller, the loaded configurator page:
170
+ *
171
+ * - Whether the application spec has an `assistant` section, also after editor hot reload added or
172
+ * removed it. The page calls this only while the section is there; the system does not check.
173
+ * - That the user left the configuration. No `initialize()` follows a route change, so without the
174
+ * returned function the chat would go on working on a configuration nobody looks at.
175
+ *
176
+ * Ending the chat does not cut a running reply off: it finishes in the background, where every
177
+ * tool call it still makes is answered with a refusal that tells the model to stop, and it no
178
+ * longer reaches `chat$` or `panel$`. A tool call that is already running when the chat ends is
179
+ * not interrupted, so an `apply` that has started may still commit. The background reply keeps
180
+ * the configuration and the authorized client it started with.
181
+ *
182
+ * The background reply is disconnected when a new chat starts for the same configuration, which is
183
+ * what opening the configuration again does: see `_takeOverThread`.
184
+ */
185
+ activate: () => (() => void);
186
+ /**
187
+ * Sends a user message with the record of what changed in the configuration since the agent last
188
+ * acted, which the server puts in front of the message for the model. The record is taken only
189
+ * when there is a chat to send it on, because taking it moves its baseline.
190
+ *
191
+ * A thread can end in a tool call that nothing will answer: its reply parked while no page was
192
+ * open, or the page that ran the tool was left before the result was sent. The client refuses to
193
+ * send while it waits on such a call, so the wait is given up first, and the server records for
194
+ * the model that the call got no result.
195
+ *
196
+ * A thread this session may not continue is resumed first, in a new thread; see `resume`. When
197
+ * that fails the message is not sent.
198
+ *
199
+ * The chat can be out of date about that: the thread reached its size limit with the reply before
200
+ * this message, or the assistant's setup changed while the configurator stayed open. The server
201
+ * then refuses the message and says that the thread cannot be continued. The message stays
202
+ * painted while the thread is resumed, and is then sent again on the new thread, with the change
203
+ * record it was first sent with. This happens once: a refusal of the second attempt is the
204
+ * failure it is. When resuming fails, the message is left as any message that failed to send:
205
+ * painted, with the failure as the error of the chat.
206
+ *
207
+ * Accepted: when the server refuses the compaction itself with a conflict, because another tab
208
+ * compacted the thread or a run is still running, the thread is read again (see `resume`) and
209
+ * the refused message is gone without a notice. It takes two tabs or a run racing the send, and
210
+ * the user writes the message again, as after any reload of a thread that failed.
211
+ *
212
+ * It never rejects: a message the client could not send is reported as the error of the chat.
213
+ */
214
+ send: (content: string) => Promise<void>;
215
+ /**
216
+ * Makes the chat ready for the next message. A thread the server no longer lets this session
217
+ * continue, because the assistant's setup changed since it was started or the thread reached
218
+ * its size limit, is compacted there: the
219
+ * server closes it and opens a thread that starts from its summary. The messages painted so far
220
+ * move to `earlierThreads`, and a new client takes the new thread over.
221
+ *
222
+ * Resolves to whether a message can be sent now: at once for a thread that can continue, and
223
+ * `false` when there is no chat or the compaction failed, which is reported as the error of the
224
+ * chat. It never rejects. Calling it again runs the compaction again. A compaction the server
225
+ * refuses with a conflict is not a failure: the thread is read again and `false` is returned.
226
+ */
227
+ resume: () => Promise<boolean>;
228
+ /**
229
+ * Loads the thread before the oldest painted one and paints it above. Does nothing when there is
230
+ * none or one is being loaded. A load that fails is logged and can be asked for again.
231
+ */
232
+ loadEarlierThread: () => Promise<void>;
233
+ /**
234
+ * Stops the reply on both sides. Closing the stream alone keeps the server run going, because a
235
+ * closed connection is also how a reload looks and a reload must be able to rejoin the run.
236
+ */
237
+ stop: () => Promise<void>;
238
+ /**
239
+ * Loads the thread from the server again, rejoining a reply that is still running there. It never
240
+ * sends a message again, because the server may already hold it; a message that did not reach the
241
+ * server is therefore gone from the thread and has to be written again.
242
+ */
243
+ reloadThread: () => void;
244
+ /**
245
+ * Undoes the changes of the given `apply` tool calls, one undo step at a time, while the step the
246
+ * configuration is at is one of them. A change the user made in between stops it, so it is never
247
+ * taken back; the non-undoable commits made on top of an undone change go with it, as with the
248
+ * toolbar's undo.
249
+ *
250
+ * Accepted: like the toolbar's undo, it does not check the session mode; only `apply` requires `owner`.
251
+ */
252
+ undoToolCalls: (toolCallIds: ReadonlySet<string>) => void;
253
+ setOpen: (open: boolean) => void;
254
+ setInputFocused: (isInputFocused: boolean) => void;
255
+ /**
256
+ * Where the message starts that is being sent on the chat for the first time and that the server
257
+ * refused because its thread cannot be continued, so it never reached the thread; `-1` when there
258
+ * is no such message. A refused continuation of a reply is not one: its message is stored.
259
+ */
260
+ private _findRefusedMessageIndex;
261
+ private _sendOn;
262
+ private _resume;
263
+ /**
264
+ * The `apply` call whose committed state is the step the configuration is at. Nothing at the bottom
265
+ * of the history, where nothing can be undone: that step was not made by a change it could take back.
266
+ */
267
+ private _findTipToolCallId;
268
+ private _refreshUndoTip;
269
+ private _committedState;
270
+ private _patchPanel;
271
+ /**
272
+ * Disconnects every chat that is still finishing a reply on the thread of the given configuration,
273
+ * so the chat that is about to start is the only one on it.
274
+ *
275
+ * Two clients on one thread would both follow the same server run: the new one rejoins it when it
276
+ * reads the thread. Both would then handle the run's next tool call, the old one with a refusal
277
+ * and the new one for real, and both would send the result back, of which the server accepts one.
278
+ * The model could be told that nothing was run about a change that was made.
279
+ *
280
+ * Stopping a client closes its stream in the browser and cancels nothing on the server: a run that
281
+ * is still producing goes on there and the new chat rejoins it. The stopped client also drops the
282
+ * result of a tool call that is still running in it, and any continuation it has not sent yet. Such
283
+ * a call still finishes, so an `apply` may commit, but the server never gets its result: the run is
284
+ * parked on the call with nothing running for the new chat to rejoin, and the thread waits on it
285
+ * until the user's next message gives the wait up; see `send`.
286
+ *
287
+ * A chat that finishes a reply for another configuration is on another thread and is left alone.
288
+ */
289
+ private _takeOverThread;
290
+ private _startClient;
291
+ /**
292
+ * Lets go of the current chat and puts the empty chat in its place. The client itself is left as
293
+ * it is: whether it finishes its reply or is cut off is the caller's decision.
33
294
  */
34
- getTools: () => readonly AssistantClientTool[];
295
+ private _retireChat;
296
+ /** Ends the current chat without cutting its reply off. */
297
+ private _endChat;
35
298
  }
@@ -1 +1 @@
1
- import{createBrowserDetailsClientTool as t}from"./browser-details.js";import{createApplyClientTool as e,createQueryClientTool as s}from"./graphql-tools.js";let i=[];export class AssistantSystem{_context;_tools;_isInitialized=!1;constructor(i){this._context=i;let{configuratorExtensionSelectors:o,domainContextSelectors:l}=i,r={getGraphQLSystem:()=>o.getGraphQLSystem(),getStoreSystem:()=>l.getStoreSystem(),getActiveMode:()=>l.getActiveMode()};this._tools=[t(),s(r),e(r)]}initialize=()=>{this._isInitialized=!0};getTools=()=>this._isInitialized&&this._context.specSelectors.getAssistant()?this._tools:i}
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}from"./graphql-tools.js";let d=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}),c=Object.freeze({open:!1,hasUnreadReply:!1,isInputFocused:!1}),u=Object.freeze({}),_=Object.freeze({results:Object.freeze([]),committed:!1,sideEffects:Object.freeze([]),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."}),g=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(d);_panel=new i(c);_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??u,resolveLocalizable:e=>s.getResolveLocalizable()(e)});let r={getGraphQLSystem:()=>t.getGraphQLSystem(),getStoreSystem:()=>i.getStoreSystem(),getActiveMode:()=>i.getActiveMode(),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;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(c),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({...d,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 _;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)}})),m=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&&g(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),m.dispose())},v={client:m,configurationId:s,generation:i,authorizedClient:r,getConnection:n,dispose:p};this._current=v,m.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!==d&&this._chat.next(d),e};_endChat=()=>{let e=this._retireChat();if(e){if(!e.client.getIsLoading()&&g(e.client))return void e.dispose();this._finishing.add(e)}}}
@@ -0,0 +1,85 @@
1
+ import type { Localizable } from '@salsita-ai/common/utils';
2
+ import { type $DomainEntity, type AssistantManifest, type DomainEntity, type DomainState, type StateEmission } from '#package/domain';
3
+ type AnyDomainEntity = DomainEntity<string>;
4
+ type AnyDomainState = DomainState<AnyDomainEntity>;
5
+ type AnyStateEmission = StateEmission<AnyDomainEntity, Record<string, $DomainEntity<AnyDomainEntity>>>;
6
+ /**
7
+ * What the change record compares besides the entities: the values the `Query` root of the
8
+ * assistant's schema exposes as `selectedEntity` and `navigation`, read off a state.
9
+ */
10
+ export interface ChangeRecorderStateReaders {
11
+ readonly selectedEntityId: (state: AnyDomainState) => string | undefined;
12
+ readonly navigationState: (state: AnyDomainState) => string | undefined;
13
+ readonly viewState: (state: AnyDomainState) => string | undefined;
14
+ readonly toolState: (state: AnyDomainState) => string | undefined;
15
+ }
16
+ /** What a {@link ChangeRecorder} reads from the running configurator. */
17
+ export interface ChangeRecorderContext {
18
+ readonly readers: ChangeRecorderStateReaders;
19
+ /**
20
+ * The field table of the assistant manifest: per entity type of the schema, each exposed field
21
+ * name with the stored field or expression it reads. The record lists nothing the table does not
22
+ * hold, so the agent is shown only what it could also query. Read at every take, because editor
23
+ * hot reload replaces the manifest.
24
+ */
25
+ readonly getExposedFields: () => AssistantManifest['fields'];
26
+ readonly resolveLocalizable: (message: Localizable) => string;
27
+ }
28
+ export interface ChangeRecorderProps {
29
+ /** More differing entities than this are counted and not listed. */
30
+ readonly maxEntities: number;
31
+ }
32
+ /**
33
+ * Records what changed in the committed configuration since the assistant agent last acted, and
34
+ * prints it as the change record a user message carries to the agent.
35
+ *
36
+ * The record is a net diff: the committed state at the last take or clear is kept as the baseline
37
+ * and compared with the current one, so a value that was changed and changed back is not listed.
38
+ * Of the emissions in between, only the last update that touched each entity and each entity field
39
+ * is kept, to say why a line is there. Selection and navigation are read off the two states and
40
+ * never from their updates.
41
+ *
42
+ * Only what the assistant manifest exposes is listed: entities of the types its schema has, and of
43
+ * their stored fields the exposed ones, under their exposed names and localized like the schema
44
+ * returns them. A change of anything else is not in the record.
45
+ */
46
+ export declare class ChangeRecorder {
47
+ private readonly _props;
48
+ private readonly _context;
49
+ private _baseline;
50
+ /** True from a reset until the first take: what happened before the baseline is not known. */
51
+ private _isUnavailable;
52
+ private readonly _touches;
53
+ private _lastReset;
54
+ private _wasUndoneOrRedone;
55
+ constructor(_props: ChangeRecorderProps, _context: ChangeRecorderContext);
56
+ /** Starts over from this committed state; the next take reports `unavailable`. */
57
+ reset: (state: AnyDomainState) => void;
58
+ /** Records one committed emission: the last update that touched each entity and field, or the reset. */
59
+ record: (emission: AnyStateEmission) => void;
60
+ /** The change record since the last take or clear, as the prompt describes it; moves the baseline. */
61
+ take: (state: AnyDomainState) => string;
62
+ /** Forgets what was recorded and makes this committed state the baseline. */
63
+ clear: (state: AnyDomainState) => void;
64
+ private _touchesOf;
65
+ private _touchFields;
66
+ private _print;
67
+ private _diffStates;
68
+ /** Added and modified entities in the order of the current state, then the deleted ones in the order they had. */
69
+ private _diffEntities;
70
+ /**
71
+ * The lines of the exposed stored fields that differ, in manifest order. A field no update
72
+ * touched since its entity was created or replaced under an id that existed before is explained
73
+ * by that creation.
74
+ */
75
+ private _diffFields;
76
+ /** Why a line is in the record; a line no recorded update explains was left by a reset. */
77
+ private _comment;
78
+ /**
79
+ * What the agent is told about an update, else what the user was told, else the update tag. As
80
+ * for `sideEffects`, an `agentHint` replaces the `hint` whatever it holds: `null` or empty text
81
+ * hides the wording from the agent, not the change, so the tag stands in.
82
+ */
83
+ private _explain;
84
+ }
85
+ export {};
@@ -0,0 +1 @@
1
+ import{match as e}from"ts-pattern";import{isUndoRedoReset as t}from"#package/domain";import{localize as i}from"../graphql-system/graphql-system.js";let s=[["selected","selectedEntityId"],["navigationState","navigationState"],["viewState","viewState"],["toolState","toolState"]],n=e=>e.length>80?`${e.slice(0,80)}…`:e,a=e=>void 0===e||""===e?"none":e,r=e=>new Map(Object.entries(e)),l=["id","type"];export class ChangeRecorder{_props;_context;_baseline;_isUnavailable=!0;_touches=new Map;_lastReset;_wasUndoneOrRedone=!1;constructor(e,t){this._props=e,this._context=t}reset=e=>{this.clear(e),this._isUnavailable=!0};record=i=>{if("reset"===i.kind){this._touches.clear(),this._lastReset=t(i)?"undo/redo":"reset",this._wasUndoneOrRedone||="undo/redo"===this._lastReset;return}for(let t of i.updates)e(t).with({kind:"createDomainEntity"},e=>{this._touchesOf(e.entityId).created=e}).with({kind:"deleteEntity"},e=>{let t=this._touchesOf(e.entityId);t.fields.clear(),t.deleted=e}).with({kind:"modifyDomainEntity"},e=>{this._touchFields(e.entityId,Object.keys(e.stateDelta),e)}).with({kind:"replaceDomainEntity"},e=>{let{replacementEntity:t}=e;this._touchesOf(e.entityId).fields.clear(),this._touchesOf(e.entityId).deleted=e,this._touchesOf(t.id).created=e}).with({kind:"createEphemeralRecord"},{kind:"modifyEphemeralRecord"},{kind:"deleteEphemeralRecord"},()=>{}).exhaustive()};take=e=>{let t=this._print(e);return this.clear(e),this._isUnavailable=!1,t};clear=e=>{this._baseline=e,this._touches.clear(),this._lastReset=void 0,this._wasUndoneOrRedone=!1};_touchesOf=e=>{let t=this._touches.get(e);if(t)return t;let i={created:void 0,deleted:void 0,fields:new Map};return this._touches.set(e,i),i};_touchFields=(e,t,i)=>{let s=this._touchesOf(e);for(let e of t)s.fields.set(e,i)};_print=e=>{let t=this._baseline;if(this._isUnavailable||!t)return"[changes: unavailable]";let{lines:i,count:s}=this._diffEntities(t,e);if(s>this._props.maxEntities)return`[changes: too many (${s})]`;let n=[...this._diffStates(t,e),...i];return 0===n.length?"[changes: none]":["[changes]",...this._wasUndoneOrRedone?["reset: undo/redo"]:[],...n].join("\n")};_diffStates=(e,t)=>s.flatMap(([i,s])=>{let n=a(this._context.readers[s](e)),r=a(this._context.readers[s](t));return n===r?[]:[`${i}: ${n} -> ${r}`]});_diffEntities=(e,t)=>{let i=this._context.getExposedFields(),s=new Map(e.entities.map(e=>[e.id,e])),n=new Set(t.entities.map(e=>e.id)),a=t.entities.flatMap(e=>{let t=i[e.type],n=s.get(e.id);if(!t)return[];if(!n)return[[`A ${e.id}${this._comment(this._touches.get(e.id)?.created)}`]];let a=n===e?[]:this._diffFields(n,e,t);return a.length>0?[[`M ${e.id}`,...a]]:[]}),r=e.entities.filter(e=>i[e.type]&&!n.has(e.id)).map(e=>[`D ${e.id}${this._comment(this._touches.get(e.id)?.deleted)}`]);return{lines:[...a,...r].flat(),count:a.length+r.length}};_diffFields=(e,t,s)=>{let a=r(e),d=r(t),o=this._touches.get(t.id);return Object.entries(s).flatMap(([e,{source:t,localized:s}])=>{if(!(!t.startsWith("$")&&!l.includes(t)))return[];let r=e=>{let t;return void 0===(t=s?i(e,this._context.resolveLocalizable):e)?"undefined":JSON.stringify(t)},h=r(a.get(t)),c=r(d.get(t));return h===c?[]:[` ${e}: ${n(h)} -> ${n(c)}${this._comment(o?.fields.get(t)??o?.created)}`]})};_comment=e=>e?` # ${this._explain(e).replace(/\s*\n\s*/g," ")}`:this._lastReset?` # ${this._lastReset}`:"";_explain=({agentHint:e,hint:t,updateTag:i})=>void 0!==e?null===e||""===e?i:e:t?this._context.resolveLocalizable(t):i}
@@ -6,7 +6,7 @@ import type { GraphQLSystem } from '../graphql-system/graphql-system.js';
6
6
  * that moment, never against ones captured when its reply began streaming.
7
7
  */
8
8
  export interface AssistantToolDependencies {
9
- readonly getGraphQLSystem: () => Pick<GraphQLSystem, 'prepare' | 'execute'>;
9
+ readonly getGraphQLSystem: () => Pick<GraphQLSystem, 'prepare' | 'execute' | 'readSideEffects'>;
10
10
  readonly getStoreSystem: () => {
11
11
  readonly isInitialized: boolean;
12
12
  readonly stateSlices: {
@@ -18,11 +18,19 @@ export interface AssistantToolDependencies {
18
18
  };
19
19
  };
20
20
  readonly getActiveMode: () => DomainMode;
21
+ /** Forgets the changes recorded for the next change record, so it never lists what the agent itself changed. */
22
+ readonly clearChanges: () => void;
23
+ /**
24
+ * Remembers the state an `apply` call committed or held for the user's approval, so the panel can
25
+ * tell while that state is the step of the undo history the configuration is at.
26
+ */
27
+ readonly rememberCommit: (toolCallId: string, state: DomainState<DomainEntity<string>>) => void;
21
28
  }
22
29
  /**
23
30
  * Browser implementation of the assistant's `query` tool: prepares the operations from the
24
31
  * committed state and drops their emissions, so mutations in the list show a hypothetical state and
25
- * the configuration, the undo stack and the saved revision stay as they were.
32
+ * the configuration, the undo stack and the saved revision stay as they were. The side effects of
33
+ * the dropped emissions are still reported, as what the changes would do.
26
34
  */
27
35
  export declare const createQueryClientTool: (dependencies: AssistantToolDependencies) => import("@tanstack/ai").ClientTool<{
28
36
  type: string;
@@ -88,7 +96,10 @@ export declare const createQueryClientTool: (dependencies: AssistantToolDependen
88
96
  /**
89
97
  * Browser implementation of the assistant's `apply` tool: hands the operations to
90
98
  * `GraphQLSystem.execute`, which commits their changes as one undo step, and returns its result,
91
- * including why nothing was committed when a commit was held or lost to a conflict. Only an owner
99
+ * including why nothing was committed when a commit was held or lost to a conflict. A commit clears
100
+ * the recorded changes; a held one does not, so it shows in the next change record once the user
101
+ * approves it. The state it committed or held is remembered under the id of the call, so the chip
102
+ * row of the call can undo it. Only an owner
92
103
  * session may change the configuration; the check lives here and not in the `GraphQLSystem`, whose
93
104
  * other caller, the editor panel, has its own rules.
94
105
  */
@@ -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}),i=e=>JSON.parse(JSON.stringify(e)),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: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=s(t);if(!o.ok)return o.refusal;let n=e.getStoreSystem();return n.isInitialized?i({results:(await e.getGraphQLSystem().prepare(n.stateSlices.committed.value.state,o.operations)).map(({result:e})=>e),committed:!1}):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.")});export const createApplyClientTool=e=>t.client(async t=>{if("owner"!==e.getActiveMode())return 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.");let o=s(t);return o.ok?i(await e.getGraphQLSystem().execute(o.operations)):o.refusal});
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:[]}),i=({preparedState:e,...t})=>JSON.parse(JSON.stringify(t)),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: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=s(t);if(!o.ok)return o.refusal;let r=e.getStoreSystem();if(!r.isInitialized)return 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(),l=await n.prepare(r.stateSlices.committed.value.state,o.operations);return i({results:l.map(({result:e})=>e),committed:!1,sideEffects:n.readSideEffects(l)})});export const createApplyClientTool=e=>t.client(async(t,o)=>{if("owner"!==e.getActiveMode())return 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.");let r=s(t);if(!r.ok)return r.refusal;let n=await e.getGraphQLSystem().execute(r.operations),l=o?.toolCallId;return void 0!==l&&void 0!==n.preparedState&&e.rememberCommit(l,n.preparedState),n.committed&&e.clearChanges(),i(n)});
@@ -1,6 +1,6 @@
1
1
  import type { Object3D, Vector2, Vector3 } from 'three';
2
2
  import type { ObservableWithLastValue } from '@salsita-ai/common/utils';
3
- import type { DomainContextSelectors, DomainEntity, DomainEntityId, DomainServicesSelectors, DomainState, DraggableSurface } from '#package/domain';
3
+ import type { DomainContextSelectors, DomainEntity, DomainEntityId, DomainServicesSelectors, DomainState, DraggableSurface, RotatableSurface } from '#package/domain';
4
4
  import type { ConfiguratorExtensionSelectors } from '../../selectors.js';
5
5
  /**
6
6
  * Constructor context of a `DragAndDropSystem`. Same-layer configurator peers are reached through
@@ -17,7 +17,7 @@ export interface DraggableState {
17
17
  readonly type: 'draggable';
18
18
  readonly entityId: DomainEntityId<string>;
19
19
  readonly originalMouseDiff: Vector3;
20
- readonly draggingPlanes: DraggableSurface[];
20
+ readonly draggingPlanes: readonly DraggableSurface[];
21
21
  readonly dragHandleInstance: string;
22
22
  readonly newWorldPosition: Vector3;
23
23
  readonly originalWorldPosition: Vector3;
@@ -28,7 +28,7 @@ export interface RotationDraggingState {
28
28
  readonly type: 'rotation';
29
29
  readonly entityId: DomainEntityId<string>;
30
30
  readonly originalMouseVector: Vector2;
31
- readonly draggingPlane: DraggableSurface;
31
+ readonly draggingPlane: RotatableSurface;
32
32
  readonly originalEntityVector: Vector3;
33
33
  readonly initialAngle: number;
34
34
  readonly dragHandleTarget: string;
@@ -47,12 +47,14 @@ export declare const createEntityMeta: (source: EntityMetaSource, context: Entit
47
47
  root: null;
48
48
  changedEntities: never[];
49
49
  deletedEntityIds: never[];
50
+ sideEffects: never[];
50
51
  errors: readonly DryRunError[];
51
52
  } | {
52
53
  ok: boolean;
53
54
  root: unknown;
54
55
  changedEntities: {}[];
55
56
  deletedEntityIds: DomainEntityId<string>[];
57
+ sideEffects: readonly string[];
56
58
  errors: never[];
57
59
  } | null;
58
60
  }[];
@@ -71,12 +73,14 @@ export declare const createEntityMeta: (source: EntityMetaSource, context: Entit
71
73
  root: null;
72
74
  changedEntities: never[];
73
75
  deletedEntityIds: never[];
76
+ sideEffects: never[];
74
77
  errors: readonly DryRunError[];
75
78
  } | {
76
79
  ok: boolean;
77
80
  root: unknown;
78
81
  changedEntities: {}[];
79
82
  deletedEntityIds: DomainEntityId<string>[];
83
+ sideEffects: readonly string[];
80
84
  errors: never[];
81
85
  } | null;
82
86
  }[];
@@ -1 +1 @@
1
- import{findAssistantFieldOptions as e,findAssistantRecipeGroups as t,modifyEntityUpdateTag as i,prepareAssistantRecipeUpdates as r,readAssistantFieldOptions as n,readAssistantRecipeGroup as s,systemUpdateFactory as a}from"#package/domain";let o=e=>({ok:!1,root:null,changedEntities:[],deletedEntityIds:[],errors:e}),d=(e,{state:t},{recipes:i,prepareStateEmission:r,find$Entity:n})=>{let{validity:s,state:a}=r(e,t,"committed");if(s.valid){let e=new Map(t.entities.map(e=>[e.id,e])),i=new Set(a.entities.map(e=>e.id));return{ok:!0,root:n(a.rootEntityId,a),changedEntities:a.entities.filter(t=>e.get(t.id)!==t).flatMap(e=>n(e.id,a)??[]),deletedEntityIds:t.entities.map(e=>e.id).filter(e=>!i.has(e)),errors:[]}}return o("uncaught"===s.severity?[{type:"uncaught",entityId:null,message:s.error.message}]:s.entityViolations.filter(({violation:e})=>e.severity===s.severity).map(({entityId:e,violation:t})=>({type:t.type,entityId:e,message:void 0===t.message?null:i.resolveLocalizable(t.message)})))};export const createEntityMeta=(l,c)=>{let p=e=>()=>t(c.manifest,e,l.entity.type).flatMap(t=>{let i=s(e,t,l.entity.id,l.state,c.recipes);return i?[((e,t,i)=>{let{group:n,label:s,description:a,recipes:l}=e,{resolveLocalizable:c}=i.recipes;return{groupId:n.groupId,name:void 0===s?n.instanceName:c(s),description:n.description??(void 0===a?null:c(a)),recipes:l.map(n=>((e,t,i,n)=>{let{key:s,item:a}=e,{resolveLocalizable:l}=n.recipes;return{key:s,name:l(a.title),description:void 0===a.description?null:l(a.description),imageUrl:void 0===a.thumbnailUrl?null:l(a.thumbnailUrl),dryRun:()=>t.group.dryRuns?((e,t,i,n)=>{let{updates:s,error:a}=((e,t,{entity:i,state:n},{recipes:s})=>{try{return{updates:r(e,t,i.id,n,s),error:void 0}}catch(e){if("child"===t.target.kind)throw e;return{updates:void 0,error:e instanceof Error?e.message:String(e)}}})(e,t,i,n);return void 0===s?o([{type:"uncaught",entityId:null,message:a}]):d(s,i,n)})(e,t,i,n):null}})(n,e,t,i))}})(i,l,c)]:[]});return{...Object.fromEntries(e(c.manifest,l.entity.type).map(e=>[e.edgeName,()=>n(e,l.entity.id,l.state,c.recipes)?.map(t=>({...t,dryRun:()=>e.dryRuns?(({field:e},{value:t},r,n)=>{let{entity:s}=r,l=Object.entries(Object.entries(n.manifest.writableFields??{}).find(([e])=>e===s.type)?.[1]??{}).find(([t])=>t===e)?.[1];if(void 0===l)throw Error(`The options of "${e}" on "${s.id}" cannot be dry-run: the schema lists them, but the configurator has no writable field "${e}" on ${s.type}. Regenerate the application so the schema matches the configurator.`);let c=r.state.entities.find(e=>e.id===s.id),p={[l]:t},u=c?n.validateEntity({...c,...p}):{success:!0};return u.success?d([a.DomainEntityModification({entityId:s.id,stateDelta:p,updateTag:i})],r,n):o([{type:"uncaught",entityId:s.id,message:`Writing ${JSON.stringify(t)} to "${e}" would make "${s.id}" an invalid ${s.type}: ${u.errors.join("; ")}.${e===l?"":` The message names the stored property: ${e} is stored as ${l}.`} The option comes from the configurator and cannot be corrected from here, so do not write it.`}])})(e,t,l,c):null}))??null])),childRecipes:p("child"),replaceRecipes:p("replace")}};
1
+ import{findAssistantFieldOptions as e,findAssistantRecipeGroups as t,modifyEntityUpdateTag as i,prepareAssistantRecipeUpdates as r,readAssistantFieldOptions as n,readAssistantRecipeGroup as o,systemUpdateFactory as s}from"#package/domain";import{readSideEffects as a}from"./side-effects.js";let d=e=>({ok:!1,root:null,changedEntities:[],deletedEntityIds:[],sideEffects:[],errors:e}),l=(e,{state:t},{recipes:i,prepareStateEmission:r,find$Entity:n})=>{let{validity:o,state:s,updates:l}=r(e,t,"committed");if(o.valid){let e=new Map(t.entities.map(e=>[e.id,e])),r=new Set(s.entities.map(e=>e.id));return{ok:!0,root:n(s.rootEntityId,s),changedEntities:s.entities.filter(t=>e.get(t.id)!==t).flatMap(e=>n(e.id,s)??[]),deletedEntityIds:t.entities.map(e=>e.id).filter(e=>!r.has(e)),sideEffects:a(l,i.resolveLocalizable),errors:[]}}return d("uncaught"===o.severity?[{type:"uncaught",entityId:null,message:o.error.message}]:o.entityViolations.filter(({violation:e})=>e.severity===o.severity).map(({entityId:e,violation:t})=>({type:t.type,entityId:e,message:void 0===t.message?null:i.resolveLocalizable(t.message)})))};export const createEntityMeta=(a,u)=>{let c=e=>()=>t(u.manifest,e,a.entity.type).flatMap(t=>{let i=o(e,t,a.entity.id,a.state,u.recipes);return i?[((e,t,i)=>{let{group:n,label:o,description:s,recipes:a}=e,{resolveLocalizable:u}=i.recipes;return{groupId:n.groupId,name:void 0===o?n.instanceName:u(o),description:n.description??(void 0===s?null:u(s)),recipes:a.map(n=>((e,t,i,n)=>{let{key:o,item:s}=e,{resolveLocalizable:a}=n.recipes;return{key:o,name:a(s.title),description:void 0===s.description?null:a(s.description),imageUrl:void 0===s.thumbnailUrl?null:a(s.thumbnailUrl),dryRun:()=>t.group.dryRuns?((e,t,i,n)=>{let{updates:o,error:s}=((e,t,{entity:i,state:n},{recipes:o})=>{try{return{updates:r(e,t,i.id,n,o),error:void 0}}catch(e){if("child"===t.target.kind)throw e;return{updates:void 0,error:e instanceof Error?e.message:String(e)}}})(e,t,i,n);return void 0===o?d([{type:"uncaught",entityId:null,message:s}]):l(o,i,n)})(e,t,i,n):null}})(n,e,t,i))}})(i,a,u)]:[]});return{...Object.fromEntries(e(u.manifest,a.entity.type).map(e=>[e.edgeName,()=>n(e,a.entity.id,a.state,u.recipes)?.map(t=>({...t,dryRun:()=>e.dryRuns?(({field:e},{value:t},r,n)=>{let{entity:o}=r,a=Object.entries(Object.entries(n.manifest.writableFields??{}).find(([e])=>e===o.type)?.[1]??{}).find(([t])=>t===e)?.[1];if(void 0===a)throw Error(`The options of "${e}" on "${o.id}" cannot be dry-run: the schema lists them, but the configurator has no writable field "${e}" on ${o.type}. This is a fault in the configurator, not in your request. Tell the user this is not available.`);let u=r.state.entities.find(e=>e.id===o.id);if(!u)throw Error(`The options of "${e}" on "${o.id}" cannot be dry-run: entity "${o.id}" does not exist. It may have been deleted by an earlier operation or field. Query the current entities and use an id they return.`);let c={[a]:t},p=n.validateEntity({...u,...c});return p.success?l([s.DomainEntityModification({entityId:o.id,stateDelta:c,updateTag:i})],r,n):d([{type:"uncaught",entityId:o.id,message:`Writing ${JSON.stringify(t)} to "${e}" would make "${o.id}" an invalid ${o.type}: ${p.errors.join("; ")}. The option comes from the configurator and cannot be corrected from here, so do not write it.`}])})(e,t,a,u):null}))??null])),childRecipes:c("child"),replaceRecipes:c("replace")}};